From ad50c032fd1959d393a7532ee2f6e1a737225bc7 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 15 Nov 2012 10:46:20 +0100 Subject: [PATCH 01/16] Set working directory for Merge projects command --- src/Gui/CommandDoc.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Gui/CommandDoc.cpp b/src/Gui/CommandDoc.cpp index 698da1a914..030a283dc3 100644 --- a/src/Gui/CommandDoc.cpp +++ b/src/Gui/CommandDoc.cpp @@ -295,9 +295,10 @@ void StdCmdMergeProjects::activated(int iMsg) { QString exe = qApp->applicationName(); QString project = QFileDialog::getOpenFileName(Gui::getMainWindow(), - QString::fromUtf8(QT_TR_NOOP("Merge project")), QDir::homePath(), + QString::fromUtf8(QT_TR_NOOP("Merge project")), FileDialog::getWorkingDirectory(), QString::fromUtf8(QT_TR_NOOP("%1 document (*.fcstd)")).arg(exe)); if (!project.isEmpty()) { + FileDialog::setWorkingDirectory(project); App::Document* doc = App::GetApplication().getActiveDocument(); QFileInfo info(QString::fromUtf8(doc->FileName.getValue())); QFileInfo proj(project); From f03b2e80d0a599b3db0ca6accfd698e1b8e73610 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 15 Nov 2012 11:17:59 +0100 Subject: [PATCH 02/16] 0000869: Mousepointer does not track to line endpoint in sketches attached to copied or imported sketches. --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 42 ++++++++++++++++++--- src/Mod/Sketcher/Gui/ViewProviderSketch.h | 4 ++ 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index eb68aa3466..bc92ce708c 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -326,6 +326,36 @@ void ViewProviderSketch::snapToGrid(double &x, double &y) } } +void ViewProviderSketch::getProjectingLine(const SbVec2s& pnt, const Gui::View3DInventorViewer *viewer, SbLine& line) const +{ + const SbViewportRegion& vp = viewer->getViewportRegion(); + + short x,y; pnt.getValue(x,y); + SbVec2f siz = vp.getViewportSize(); + float dX, dY; siz.getValue(dX, dY); + + float fRatio = vp.getViewportAspectRatio(); + float pX = (float)x / float(vp.getViewportSizePixels()[0]); + float pY = (float)y / float(vp.getViewportSizePixels()[1]); + + // now calculate the real points respecting aspect ratio information + // + if (fRatio > 1.0f) { + pX = (pX - 0.5f*dX) * fRatio + 0.5f*dX; + } + else if (fRatio < 1.0f) { + pY = (pY - 0.5f*dY) / fRatio + 0.5f*dY; + } + + SoCamera* pCam = viewer->getCamera(); + if (!pCam) return; + SbViewVolume vol = pCam->getViewVolume(); + + float focalDist = pCam->focalDistance.getValue(); + + vol.projectPointToLine(SbVec2f(pX,pY), line); +} + void ViewProviderSketch::getCoordsOnSketchPlane(double &u, double &v,const SbVec3f &point, const SbVec3f &normal) { // Plane form @@ -360,8 +390,10 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe assert(edit); // Calculate 3d point to the mouse position - SbVec3f point = viewer->getPointOnScreen(cursorPos); - SbVec3f normal = viewer->getViewDirection(); + SbLine line; + getProjectingLine(cursorPos, viewer, line); + SbVec3f point = line.getPosition(); + SbVec3f normal = line.getDirection(); // use scoped_ptr to make sure that instance gets deleted in all cases boost::scoped_ptr pp(this->getPointOnRay(cursorPos, viewer)); @@ -774,11 +806,11 @@ bool ViewProviderSketch::mouseMove(const SbVec2s &cursorPos, Gui::View3DInventor assert(edit); // Calculate 3d point to the mouse position - SbVec3f point = viewer->getPointOnScreen(cursorPos); - SbVec3f normal = viewer->getViewDirection(); + SbLine line; + getProjectingLine(cursorPos, viewer, line); double x,y; - getCoordsOnSketchPlane(x,y,point,normal); + getCoordsOnSketchPlane(x,y,line.getPosition(),line.getDirection()); snapToGrid(x, y); bool preselectChanged; diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index 5749873a21..ecf41d89da 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -35,6 +35,7 @@ class TopoDS_Shape; class TopoDS_Face; class SoSeparator; +class SbLine; class SbVec3f; class SoCoordinate3; class SoPointSet; @@ -134,6 +135,9 @@ public: /// give the coordinates of a line on the sketch plane in sketcher (2D) coordinates void getCoordsOnSketchPlane(double &u, double &v,const SbVec3f &point, const SbVec3f &normal); + /// give projecting line of position + void getProjectingLine(const SbVec2s&, const Gui::View3DInventorViewer *viewer, SbLine&) const; + /// helper to detect preselection bool detectPreselection(const SoPickedPoint *Point, int &PtIndex,int &GeoIndex, int &ConstrIndex, int &CrossIndex); From 59b8dc2c717b9e4e823d17d55b5943dd2e449755 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 15 Nov 2012 11:44:03 +0100 Subject: [PATCH 03/16] Again fixes on memory leaks --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index bc92ce708c..131e22ade4 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -2658,12 +2658,14 @@ void ViewProviderSketch::rebuildConstraintsVisual(void) for (std::vector::const_iterator it=constrlist.begin(); it != constrlist.end(); ++it) { // root separator for one constraint SoSeparator *sep = new SoSeparator(); + sep->ref(); // no caching for fluctuand data structures sep->renderCaching = SoSeparator::OFF; // every constrained visual node gets its own material for preselection and selection - SoMaterial *Material = new SoMaterial; - Material->diffuseColor = ConstrDimColor; + SoMaterial *mat = new SoMaterial; + mat->ref(); + mat->diffuseColor = ConstrDimColor; // distinguish different constraint types to build up switch ((*it)->Type) { @@ -2683,17 +2685,15 @@ void ViewProviderSketch::rebuildConstraintsVisual(void) edit->constrGroup->addChild(anno); edit->vConstrType.push_back((*it)->Type); // nodes not needed - sep->ref(); sep->unref(); - Material->ref(); - Material->unref(); + mat->unref(); continue; // jump to next constraint } break; case Horizontal: case Vertical: { - sep->addChild(Material); + sep->addChild(mat); sep->addChild(new SoZoomTranslation()); // 1. sep->addChild(new SoImage()); // 2. constraint icon @@ -2709,7 +2709,7 @@ void ViewProviderSketch::rebuildConstraintsVisual(void) case Equal: { // Add new nodes to Constraint Seperator - sep->addChild(Material); + sep->addChild(mat); sep->addChild(new SoZoomTranslation()); // 1. sep->addChild(new SoImage()); // 2. first constraint icon sep->addChild(new SoZoomTranslation()); // 3. @@ -2723,7 +2723,7 @@ void ViewProviderSketch::rebuildConstraintsVisual(void) case Tangent: { // Add new nodes to Constraint Seperator - sep->addChild(Material); + sep->addChild(mat); sep->addChild(new SoZoomTranslation()); // 1. sep->addChild(new SoImage()); // 2. constraint icon @@ -2758,6 +2758,9 @@ void ViewProviderSketch::rebuildConstraintsVisual(void) } edit->constrGroup->addChild(sep); + // decrement ref counter again + sep->unref(); + mat->unref(); } } From 08a39943afe28942015c73c9cbe3c10acde7b300 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 15 Nov 2012 15:04:02 -0200 Subject: [PATCH 04/16] Optimizations in Draft module * More efficient and lightweight ghosts in move & rotate * Track lines now handled directly by the snapper * More precise snapping for move (experimental) --- src/Mod/Draft/DraftSnap.py | 57 ++++---- src/Mod/Draft/DraftTools.py | 245 ++++----------------------------- src/Mod/Draft/DraftTrackers.py | 58 +++++--- 3 files changed, 98 insertions(+), 262 deletions(-) diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index 6b01699fc9..2c9858cf28 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -170,14 +170,21 @@ class Snapper: self.tracker.off() if self.extLine: self.extLine.off() + if self.trackLine: + self.trackLine.off() point = self.getApparentPoint(screenpos[0],screenpos[1]) + + # setup a track line if we got a last point + if lastpoint: + if not self.trackLine: + self.trackLine = DraftTrackers.lineTracker() + self.trackLine.p1(lastpoint) # check if we snapped to something self.snapInfo = Draft.get3DView().getObjectInfo((screenpos[0],screenpos[1])) # checking if parallel to one of the edges of the last objects or to a polar direction - if active: eline = None point,eline = self.snapToPolar(point,lastpoint) @@ -188,7 +195,11 @@ class Snapper: # nothing has been snapped, check fro grid snap if active: point = self.snapToGrid(point) - return cstr(point) + fp = cstr(point) + if self.trackLine and lastpoint: + self.trackLine.p2(fp) + self.trackLine.on() + return fp else: @@ -308,10 +319,16 @@ class Snapper: self.tracker.setCoords(winner[2]) self.tracker.setMarker(self.mk[winner[1]]) self.tracker.on() + # setting the trackline + fp = cstr(winner[2]) + if self.trackLine and lastpoint: + self.trackLine.p2(fp) + self.trackLine.on() + # set the cursor self.setCursor(winner[1]) - + # return the final point - return cstr(winner[2]) + return fp def getApparentPoint(self,x,y): "returns a 3D point, projected on the current working plane" @@ -439,15 +456,14 @@ class Snapper: if self.isEnabled("grid"): np = self.grid.getClosestNode(point) if np: - if self.radius != 0: - dv = point.sub(np) - if dv.Length <= self.radius: - if self.tracker: - self.tracker.setCoords(np) - self.tracker.setMarker(self.mk['grid']) - self.tracker.on() - self.setCursor('grid') - return np + dv = point.sub(np) + if (self.radius == 0) or (dv.Length <= self.radius): + if self.tracker: + self.tracker.setCoords(np) + self.tracker.setMarker(self.mk['grid']) + self.tracker.on() + self.setCursor('grid') + return np return point def snapToEndpoints(self,shape): @@ -663,6 +679,8 @@ class Snapper: "finishes snapping" if self.tracker: self.tracker.off() + if self.trackLine: + self.trackLine.off() if self.extLine: self.extLine.off() if self.radiusTracker: @@ -777,13 +795,6 @@ class Snapper: self.ui = FreeCADGui.draftToolBar self.view = Draft.get3DView() - # setting a track line if we got an existing point - if last: - if not self.trackLine: - self.trackLine = DraftTrackers.lineTracker() - self.trackLine.p1(last) - self.trackLine.on() - def move(event_cb): event = event_cb.getEvent() mousepos = event.getPosition() @@ -792,8 +803,6 @@ class Snapper: self.pt = FreeCADGui.Snapper.snap(mousepos,lastpoint=last,active=ctrl,constrain=shift) if hasattr(FreeCAD,"DraftWorkingPlane"): self.ui.displayPoint(self.pt,last,plane=FreeCAD.DraftWorkingPlane,mask=FreeCADGui.Snapper.affinity) - if self.trackLine: - self.trackLine.p2(self.pt) if movecallback: movecallback(self.pt) @@ -816,8 +825,6 @@ class Snapper: obj = FreeCADGui.Snapper.lastSnappedObject FreeCADGui.Snapper.off() self.ui.offUi() - if self.trackLine: - self.trackLine.off() if callback: if len(inspect.getargspec(callback).args) > 2: callback(self.pt,obj) @@ -830,8 +837,6 @@ class Snapper: self.view.removeEventCallbackPivy(coin.SoLocation2Event.getClassTypeId(),self.callbackMove) FreeCADGui.Snapper.off() self.ui.offUi() - if self.trackLine: - self.trackLine.off() if callback: callback(None) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index bfd4a54782..a51d04c6a9 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -227,7 +227,8 @@ class DraftTool: self.ui = None self.call = None - self.support = None + self.support = None + self.point = None self.commitList = [] self.doc = FreeCAD.ActiveDocument if not self.doc: @@ -250,21 +251,16 @@ class DraftTool: self.extendedCopy = False self.ui.setTitle(name) self.featureName = name - #self.snap = snapTracker() - #self.extsnap = lineTracker(dotted=True) self.planetrack = None if Draft.getParam("showPlaneTracker"): self.planetrack = PlaneTracker() def finish(self): self.node = [] - #self.snap.finalize() - #self.extsnap.finalize() FreeCAD.activeDraftCommand = None if self.ui: self.ui.offUi() self.ui.sourceCmd = None - #self.ui.cross(False) msg("") if self.planetrack: self.planetrack.finalize() @@ -451,8 +447,6 @@ class Line(Creator): self.ui.wireUi(name) else: self.ui.lineUi(name) - self.linetrack = lineTracker() - self.constraintrack = lineTracker(dotted=True) self.obj=self.doc.addObject("Part::Feature",self.featureName) # self.obj.ViewObject.Selectable = False Draft.formatObject(self.obj) @@ -473,9 +467,6 @@ class Line(Creator): ['import Draft', 'points='+pts, 'Draft.makeWire(points,closed='+str(closed)+',face='+fil+',support='+sup+')']) - if self.ui: - self.linetrack.finalize() - self.constraintrack.finalize() Creator.finish(self) if self.ui: if self.ui.continueMode: @@ -490,8 +481,6 @@ class Line(Creator): elif arg["Type"] == "SoLocation2Event": # mouse movement detection point,ctrlPoint,info = getPoint(self,arg) - self.ui.cross(True) - self.linetrack.p2(point) elif arg["Type"] == "SoMouseButtonEvent": # mouse button detection if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): @@ -503,7 +492,6 @@ class Line(Creator): point,ctrlPoint,info = getPoint(self,arg) self.pos = arg["Position"] self.node.append(point) - self.linetrack.p1(point) self.drawSegment(point) if (not self.isWire and len(self.node) == 2): self.finish(False,cont=True) @@ -518,7 +506,6 @@ class Line(Creator): if (len(self.node) > 1): self.node.pop() last = self.node[len(self.node)-1] - self.linetrack.p1(last) if self.obj.Shape.Edges: edges = self.obj.Shape.Edges if len(edges) > 1: @@ -533,7 +520,6 @@ class Line(Creator): def drawSegment(self,point): "draws a new segment" if (len(self.node) == 1): - self.linetrack.on() msg(translate("draft", "Pick next point:\n")) if self.planetrack: self.planetrack.set(self.node[0]) @@ -558,7 +544,6 @@ class Line(Creator): # self.obj.Shape.nullify() - for some reason this fails self.obj.ViewObject.Visibility = False self.node = [self.node[-1]] - self.linetrack.p1(self.node[0]) if self.planetrack: self.planetrack.set(self.node[0]) msg(translate("draft", "Pick next point:\n")) @@ -567,7 +552,6 @@ class Line(Creator): "this function gets called by the toolbar when valid x, y, and z have been entered there" point = Vector(numx,numy,numz) self.node.append(point) - self.linetrack.p1(point) self.drawSegment(point) if (not self.isWire and len(self.node) == 2): self.finish(False,cont=True) @@ -610,14 +594,7 @@ class BSpline(Line): self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection point,ctrlPoint,info = getPoint(self,arg) - self.ui.cross(True) self.bsplinetrack.update(self.node + [point]) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: self.constraintrack.off() elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): if (arg["Position"] == self.pos): @@ -681,7 +658,6 @@ class BSpline(Line): print "Draft: error delaying commit" if self.ui: self.bsplinetrack.finalize() - self.constraintrack.finalize() Creator.finish(self) if self.ui: if self.ui.continueMode: @@ -808,7 +784,6 @@ class Rectangle(Creator): elif arg["Type"] == "SoLocation2Event": #mouse movement detection point,ctrlPoint,info = getPoint(self,arg,mobile=True) self.rect.update(point) - self.ui.cross(True) elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): if (arg["Position"] == self.pos): @@ -865,7 +840,6 @@ class Arc(Creator): self.altdown = False self.ui.sourceCmd = self self.linetrack = lineTracker(dotted=True) - self.constraintrack = lineTracker(dotted=True) self.arctrack = arcTracker() self.call = self.view.addEventCallback("SoEvent",self.action) msg(translate("draft", "Pick center point:\n")) @@ -875,7 +849,6 @@ class Arc(Creator): Creator.finish(self) if self.ui: self.linetrack.finalize() - self.constraintrack.finalize() self.arctrack.finalize() self.doc.recompute() if self.ui: @@ -911,7 +884,6 @@ class Arc(Creator): elif arg["Type"] == "SoLocation2Event": point,ctrlPoint,info = getPoint(self,arg) # this is to make sure radius is what you see on screen - self.ui.cross(True) if self.center and DraftVecUtils.dist(point,self.center) > 0: viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) if not DraftVecUtils.isNull(viewdelta): @@ -919,12 +891,10 @@ class Arc(Creator): if (self.step == 0): # choose center if hasMod(arg,MODALT): if not self.altdown: - self.ui.cross(False) self.altdown = True self.ui.switchUi(True) else: if self.altdown: - self.ui.cross(True) self.altdown = False self.ui.switchUi(False) elif (self.step == 1): # choose radius @@ -938,7 +908,6 @@ class Arc(Creator): self.arctrack.setCenter(self.center) if hasMod(arg,MODALT): if not self.altdown: - self.ui.cross(False) self.altdown = True if info: ob = self.doc.getObject(info['Object']) @@ -956,18 +925,10 @@ class Arc(Creator): self.rad = DraftVecUtils.dist(point,self.center) else: if self.altdown: - self.ui.cross(True) self.altdown = False self.rad = DraftVecUtils.dist(point,self.center) self.ui.setRadiusValue(self.rad) self.arctrack.setRadius(self.rad) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: - self.constraintrack.off() self.linetrack.p1(self.center) self.linetrack.p2(point) self.linetrack.on() @@ -977,13 +938,6 @@ class Arc(Creator): angle = DraftVecUtils.angle(plane.u, point.sub(self.center), plane.axis) else: angle = 0 self.linetrack.p2(DraftVecUtils.scaleTo(point.sub(self.center),self.rad).add(self.center)) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: - self.constraintrack.off() self.ui.setRadiusValue(math.degrees(angle)) self.firstangle = angle else: # choose second angle @@ -992,13 +946,6 @@ class Arc(Creator): angle = DraftVecUtils.angle(plane.u, point.sub(self.center), plane.axis) else: angle = 0 self.linetrack.p2(DraftVecUtils.scaleTo(point.sub(self.center),self.rad).add(self.center)) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: - self.constraintrack.off() self.ui.setRadiusValue(math.degrees(angle)) self.updateAngle(angle) self.arctrack.setApertureAngle(self.angle) @@ -1045,7 +992,6 @@ class Arc(Creator): self.planetrack.set(point) elif (self.step == 1): # choose radius if self.closedCircle: - self.ui.cross(False) self.drawArc() else: self.ui.labelRadius.setText("Start angle") @@ -1187,8 +1133,6 @@ class Polygon(Creator): self.ui.numFaces.show() self.altdown = False self.ui.sourceCmd = self - self.linetrack = lineTracker(dotted=True) - self.constraintrack = lineTracker(dotted=True) self.arctrack = arcTracker() self.call = self.view.addEventCallback("SoEvent",self.action) msg(translate("draft", "Pick center point:\n")) @@ -1197,8 +1141,6 @@ class Polygon(Creator): "finishes the arc" Creator.finish(self) if self.ui: - self.linetrack.finalize() - self.constraintrack.finalize() self.arctrack.finalize() self.doc.recompute() if self.ui.continueMode: @@ -1212,7 +1154,6 @@ class Polygon(Creator): elif arg["Type"] == "SoLocation2Event": point,ctrlPoint,info = getPoint(self,arg) # this is to make sure radius is what you see on screen - self.ui.cross(True) if self.center and DraftVecUtils.dist(point,self.center) > 0: viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) if not DraftVecUtils.isNull(viewdelta): @@ -1220,12 +1161,10 @@ class Polygon(Creator): if (self.step == 0): # choose center if hasMod(arg,MODALT): if not self.altdown: - self.ui.cross(False) self.altdown = True self.ui.switchUi(True) else: if self.altdown: - self.ui.cross(True) self.altdown = False self.ui.switchUi(False) else: # choose radius @@ -1239,7 +1178,6 @@ class Polygon(Creator): self.arctrack.setCenter(self.center) if hasMod(arg,MODALT): if not self.altdown: - self.ui.cross(False) self.altdown = True snapped = self.view.getObjectInfo((arg["Position"][0],arg["Position"][1])) if snapped: @@ -1258,20 +1196,10 @@ class Polygon(Creator): self.rad = DraftVecUtils.dist(point,self.center) else: if self.altdown: - self.ui.cross(True) self.altdown = False self.rad = DraftVecUtils.dist(point,self.center) self.ui.setRadiusValue(self.rad) self.arctrack.setRadius(self.rad) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: self.constraintrack.off() - self.linetrack.p1(self.center) - self.linetrack.p2(point) - self.linetrack.on() elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): @@ -1295,7 +1223,6 @@ class Polygon(Creator): self.arctrack.on() self.ui.radiusUi() self.step = 1 - self.linetrack.on() msg(translate("draft", "Pick radius:\n")) else: if len(self.tangents) == 1: @@ -1304,17 +1231,13 @@ class Polygon(Creator): self.center = point self.node = [point] self.arctrack.setCenter(self.center) - self.linetrack.p1(self.center) - self.linetrack.p2(self.view.getPoint(arg["Position"][0],arg["Position"][1])) self.arctrack.on() self.ui.radiusUi() self.step = 1 - self.linetrack.on() msg(translate("draft", "Pick radius:\n")) if self.planetrack: self.planetrack.set(point) elif (self.step == 1): # choose radius - self.ui.cross(False) self.drawPolygon() def drawPolygon(self): @@ -1416,7 +1339,6 @@ class Text(Creator): self.node.append(point) self.ui.textUi() self.ui.textValue.setFocus() - self.ui.cross(False) def numericInput(self,numx,numy,numz): '''this function gets called by the toolbar when valid @@ -1425,9 +1347,8 @@ class Text(Creator): self.node.append(point) self.ui.textUi() self.ui.textValue.setFocus() - self.ui.cross(False) - + class Dimension(Creator): "The Draft_Dimension FreeCAD command definition" @@ -1450,7 +1371,6 @@ class Dimension(Creator): Creator.Activated(self,name) self.dimtrack = dimTracker() self.arctrack = arcTracker() - self.constraintrack = lineTracker(dotted=True) self.createOnMeasures() self.finish() else: @@ -1471,7 +1391,6 @@ class Dimension(Creator): self.arcmode = False self.point2 = None self.force = None - self.constraintrack = lineTracker(dotted=True) msg(translate("draft", "Pick first point:\n")) FreeCADGui.draftToolBar.show() @@ -1493,7 +1412,6 @@ class Dimension(Creator): if self.ui: self.dimtrack.finalize() self.arctrack.finalize() - self.constraintrack.finalize() def createOnMeasures(self): for o in FreeCADGui.Selection.getSelection(): @@ -1546,9 +1464,7 @@ class Dimension(Creator): if self.arcmode or self.point2: setMod(arg,MODCONSTRAIN,False) point,ctrlPoint,info = getPoint(self,arg) - self.ui.cross(True) if hasMod(arg,MODALT) and (len(self.node)<3): - self.ui.cross(False) self.dimtrack.off() if not self.altdown: self.altdown = True @@ -1563,7 +1479,6 @@ class Dimension(Creator): v2 = ed.Vertexes[-1].Point self.dimtrack.update([v1,v2,self.cont]) else: - self.ui.cross(True) if self.node and (len(self.edges) < 2): self.dimtrack.on() if len(self.edges) == 2: @@ -1615,15 +1530,11 @@ class Dimension(Creator): self.node[1] = Vector(self.node[0].x,self.node[1].y,self.node[0].z) elif self.force == 2: self.node[1] = Vector(self.node[1].x,self.node[0].y,self.node[0].z) - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() else: self.force = None if self.point2: self.node[1] = self.point2 self.point2 = None - self.constraintrack.off() # update the dimline if self.node and (not self.arcmode): self.dimtrack.update(self.node+[point]+[self.cont]) @@ -1746,8 +1657,6 @@ class Move(Modifier): if self.ui: if not Draft.getSelection(): self.ghost = None - self.linetrack = None - self.constraintrack = None self.ui.selectUi() msg(translate("draft", "Select an object to move\n")) self.call = self.view.addEventCallback("SoEvent",selectObject) @@ -1762,20 +1671,13 @@ class Move(Modifier): self.ui.modUi() self.ui.xValue.setFocus() self.ui.xValue.selectAll() - self.linetrack = lineTracker() - self.constraintrack = lineTracker(dotted=True) self.ghost = ghostTracker(self.sel) self.call = self.view.addEventCallback("SoEvent",self.action) msg(translate("draft", "Pick start point:\n")) - self.ui.cross(True) def finish(self,closed=False,cont=False): if self.ghost: self.ghost.finalize() - if self.linetrack: - self.linetrack.finalize() - if self.constraintrack: - self.constraintrack.finalize() Modifier.finish(self) if cont and self.ui: if self.ui.continueMode: @@ -1806,53 +1708,41 @@ class Move(Modifier): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection - point,ctrlPoint,info = getPoint(self,arg) - self.linetrack.p2(point) - self.ui.cross(True) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: self.constraintrack.off() + self.point,ctrlPoint,info = getPoint(self,arg) if (len(self.node) > 0): last = self.node[len(self.node)-1] - delta = point.sub(last) + delta = self.point.sub(last) self.ghost.trans.translation.setValue([delta.x,delta.y,delta.z]) if self.extendedCopy: if not hasMod(arg,MODALT): self.finish() elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): - point,ctrlPoint,info = getPoint(self,arg) - if (self.node == []): - self.node.append(point) - self.ui.isRelative.show() - self.linetrack.on() - self.ghost.on() - self.linetrack.p1(point) - msg(translate("draft", "Pick end point:\n")) - if self.planetrack: - self.planetrack.set(point) - else: - last = self.node[0] - if self.ui.isCopy.isChecked() or hasMod(arg,MODALT): - self.move(point.sub(last),True) + if self.point: + if (self.node == []): + self.node.append(self.point) + self.ui.isRelative.show() + self.ghost.on() + msg(translate("draft", "Pick end point:\n")) + if self.planetrack: + self.planetrack.set(self.point) else: - self.move(point.sub(last)) - if hasMod(arg,MODALT): - self.extendedCopy = True - else: - self.finish(cont=True) + last = self.node[0] + if self.ui.isCopy.isChecked() or hasMod(arg,MODALT): + self.move(self.point.sub(last),True) + else: + self.move(self.point.sub(last)) + if hasMod(arg,MODALT): + self.extendedCopy = True + else: + self.finish(cont=True) def numericInput(self,numx,numy,numz): "this function gets called by the toolbar when valid x, y, and z have been entered there" - point = Vector(numx,numy,numz) + self.point = Vector(numx,numy,numz) if not self.node: - self.node.append(point) + self.node.append(self.point) self.ui.isRelative.show() self.ui.isCopy.show() - self.linetrack.p1(point) - self.linetrack.on() self.ghost.on() msg(translate("draft", "Pick end point:\n")) else: @@ -1913,9 +1803,7 @@ class Rotate(Modifier): if self.ui: if not Draft.getSelection(): self.ghost = None - self.linetrack = None self.arctrack = None - self.constraintrack = None self.ui.selectUi() msg(translate("draft", "Select an object to rotate\n")) self.call = self.view.addEventCallback("SoEvent",selectObject) @@ -1931,21 +1819,14 @@ class Rotate(Modifier): self.ui.arcUi() self.ui.isCopy.show() self.ui.setTitle("Rotate") - self.linetrack = lineTracker() - self.constraintrack = lineTracker(dotted=True) self.arctrack = arcTracker() self.ghost = ghostTracker(self.sel) self.call = self.view.addEventCallback("SoEvent",self.action) msg(translate("draft", "Pick rotation center:\n")) - self.ui.cross(True) def finish(self,closed=False,cont=False): "finishes the arc" Modifier.finish(self) - if self.linetrack: - self.linetrack.finalize() - if self.constraintrack: - self.constraintrack.finalize() if self.arctrack: self.arctrack.finalize() if self.ghost: @@ -1981,7 +1862,6 @@ class Rotate(Modifier): self.finish() elif arg["Type"] == "SoLocation2Event": point,ctrlPoint,info = getPoint(self,arg) - self.ui.cross(True) # this is to make sure radius is what you see on screen if self.center and DraftVecUtils.dist(point,self.center): viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) @@ -1998,14 +1878,6 @@ class Rotate(Modifier): if (currentrad != 0): angle = DraftVecUtils.angle(plane.u, point.sub(self.center), plane.axis) else: angle = 0 - self.linetrack.p2(point) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: - self.constraintrack.off() self.ui.radiusValue.setText("%.2f" % math.degrees(angle)) self.firstangle = angle self.ui.radiusValue.setFocus() @@ -2021,14 +1893,6 @@ class Rotate(Modifier): sweep = angle - self.firstangle self.arctrack.setApertureAngle(sweep) self.ghost.trans.rotation.setValue(coin.SbVec3f(DraftVecUtils.tup(plane.axis)),sweep) - self.linetrack.p2(point) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: - self.constraintrack.off() self.ui.radiusValue.setText("%.2f" % math.degrees(sweep)) self.ui.radiusValue.setFocus() self.ui.radiusValue.selectAll() @@ -2045,10 +1909,8 @@ class Rotate(Modifier): self.ui.radiusUi() self.ui.hasFill.hide() self.ui.labelRadius.setText("Base angle") - self.linetrack.p1(self.center) self.arctrack.setCenter(self.center) self.ghost.trans.center.setValue(self.center.x,self.center.y,self.center.z) - self.linetrack.on() self.step = 1 msg(translate("draft", "Pick base angle:\n")) if self.planetrack: @@ -2085,9 +1947,6 @@ class Rotate(Modifier): self.node = [self.center] self.arctrack.setCenter(self.center) self.ghost.trans.center.setValue(self.center.x,self.center.y,self.center.z) - self.linetrack.p1(self.center) - # self.arctrack.on() - self.linetrack.on() self.ui.radiusUi() self.ui.hasFill.hide() self.ui.labelRadius.setText("Base angle") @@ -2126,7 +1985,6 @@ class Offset(Modifier): self.ghost = None self.linetrack = None self.arctrack = None - self.constraintrack = None self.ui.selectUi() msg(translate("draft", "Select an object to offset\n")) self.call = self.view.addEventCallback("SoEvent",selectObject) @@ -2148,7 +2006,6 @@ class Offset(Modifier): self.constrainSeg = None self.ui.offsetUi() self.linetrack = lineTracker() - self.constraintrack = lineTracker(dotted=True) self.faces = False self.shape = self.sel.Shape self.mode = None @@ -2167,7 +2024,6 @@ class Offset(Modifier): self.mode = "Wire" self.call = self.view.addEventCallback("SoEvent",self.action) msg(translate("draft", "Pick distance:\n")) - self.ui.cross(True) if self.planetrack: self.planetrack.set(self.shape.Vertexes[0].Point) self.running = True @@ -2178,17 +2034,11 @@ class Offset(Modifier): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": - self.ui.cross(True) point,ctrlPoint,info = getPoint(self,arg) if hasMod(arg,MODCONSTRAIN) and self.constrainSeg: dist = DraftGeomUtils.findPerpendicular(point,self.shape,self.constrainSeg[1]) - e = self.shape.Edges[self.constrainSeg[1]] - self.constraintrack.p1(e.Vertexes[0].Point) - self.constraintrack.p2(point.add(dist[0])) - self.constraintrack.on() else: dist = DraftGeomUtils.findPerpendicular(point,self.shape.Edges) - self.constraintrack.off() if dist: self.ghost.on() if self.mode == "Wire": @@ -2256,8 +2106,6 @@ class Offset(Modifier): if self.running: if self.linetrack: self.linetrack.finalize() - if self.constraintrack: - self.constraintrack.finalize() if self.ghost: self.ghost.finalize() Modifier.finish(self) @@ -2666,7 +2514,6 @@ class Trimex(Modifier): self.placement = None self.ghost = None self.linetrack = None - self.constraintrack = None if self.ui: if not Draft.getSelection(): self.ui.selectUi() @@ -2680,7 +2527,7 @@ class Trimex(Modifier): self.obj = Draft.getSelection()[0] self.ui.trimUi() self.linetrack = lineTracker() - self.constraintrack = lineTracker(dotted=True) + if not "Shape" in self.obj.PropertiesList: return if "Placement" in self.obj.PropertiesList: self.placement = self.obj.Placement @@ -2731,15 +2578,13 @@ class Trimex(Modifier): self.cv = None self.call = self.view.addEventCallback("SoEvent",self.action) msg(translate("draft", "Pick distance:\n")) - self.ui.cross(True) - + def action(self,arg): "scene event handler" if arg["Type"] == "SoKeyboardEvent": if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection - self.ui.cross(True) self.shift = hasMod(arg,MODCONSTRAIN) self.alt = hasMod(arg,MODALT) if self.extrudeMode: @@ -2752,9 +2597,6 @@ class Trimex(Modifier): dist = self.extrude(self.shift) else: dist = self.redraw(self.point,self.snapped,self.shift,self.alt) - self.constraintrack.p1(self.point) - self.constraintrack.p2(self.newpoint) - self.constraintrack.on() self.ui.radiusValue.setText("%.2f" % dist) self.ui.radiusValue.setFocus() self.ui.radiusValue.selectAll() @@ -2934,8 +2776,6 @@ class Trimex(Modifier): if self.ui: if self.linetrack: self.linetrack.finalize() - if self.constraintrack: - self.constraintrack.finalize() if self.ghost: for g in self.ghost: g.finalize() @@ -2965,8 +2805,6 @@ class Scale(Modifier): if self.ui: if not Draft.getSelection(): self.ghost = None - self.linetrack = None - self.constraintrack = None self.ui.selectUi() msg(translate("draft", "Select an object to scale\n")) self.call = self.view.addEventCallback("SoEvent",selectObject) @@ -2981,21 +2819,14 @@ class Scale(Modifier): self.ui.modUi() self.ui.xValue.setFocus() self.ui.xValue.selectAll() - self.linetrack = lineTracker() - self.constraintrack = lineTracker(dotted=True) self.ghost = ghostTracker(self.sel) self.call = self.view.addEventCallback("SoEvent",self.action) msg(translate("draft", "Pick base point:\n")) - self.ui.cross(True) def finish(self,closed=False,cont=False): Modifier.finish(self) if self.ghost: self.ghost.finalize() - if self.linetrack: - self.linetrack.finalize() - if self.constraintrack: - self.constraintrack.finalize() if cont and self.ui: if self.ui.continueMode: FreeCADGui.Selection.clearSelection() @@ -3025,14 +2856,6 @@ class Scale(Modifier): self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection point,ctrlPoint,info = getPoint(self,arg,sym=True) - self.linetrack.p2(point) - self.ui.cross(True) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: self.constraintrack.off() if (len(self.node) > 0): last = self.node[len(self.node)-1] delta = point.sub(last) @@ -3050,9 +2873,7 @@ class Scale(Modifier): self.node.append(point) self.ui.isRelative.show() self.ui.isCopy.show() - self.linetrack.on() self.ghost.on() - self.linetrack.p1(point) msg(translate("draft", "Pick scale factor:\n")) else: last = self.node[0] @@ -3072,8 +2893,6 @@ class Scale(Modifier): self.node.append(point) self.ui.isRelative.show() self.ui.isCopy.show() - self.linetrack.p1(point) - self.linetrack.on() self.ghost.on() msg(translate("draft", "Pick scale factor:\n")) else: @@ -3257,12 +3076,10 @@ class Edit(Modifier): self.editpoints.append(self.obj.Dimline) self.editpoints.append(Vector(p[0],p[1],p[2])) self.trackers = [] - self.constraintrack = None if self.editpoints: for ep in range(len(self.editpoints)): self.trackers.append(editTracker(self.editpoints[ep],self.obj.Name, ep,self.obj.ViewObject.LineColor)) - self.constraintrack = lineTracker(dotted=True) self.call = self.view.addEventCallback("SoEvent",self.action) self.running = True plane.save() @@ -3286,8 +3103,6 @@ class Edit(Modifier): if self.trackers: for t in self.trackers: t.finalize() - if self.constraintrack: - self.constraintrack.finalize() if hasattr(self.obj.ViewObject,"Selectable"): self.obj.ViewObject.Selectable = self.selectstate Modifier.finish(self) @@ -3302,13 +3117,7 @@ class Edit(Modifier): elif arg["Type"] == "SoLocation2Event": #mouse movement detection if self.editing != None: point,ctrlPoint,info = getPoint(self,arg) - # Draw constraint tracker line. - if hasMod(arg,MODCONSTRAIN): - self.constraintrack.p1(point) - self.constraintrack.p2(ctrlPoint) - self.constraintrack.on() - else: - self.constraintrack.off() + self.trackers[self.editing].set(point) self.update(self.trackers[self.editing].get()) elif arg["Type"] == "SoMouseButtonEvent": diff --git a/src/Mod/Draft/DraftTrackers.py b/src/Mod/Draft/DraftTrackers.py index c655c62bd3..5ce092b5d2 100644 --- a/src/Mod/Draft/DraftTrackers.py +++ b/src/Mod/Draft/DraftTrackers.py @@ -401,32 +401,54 @@ class ghostTracker(Tracker): self.trans = coin.SoTransform() self.trans.translation.setValue([0,0,0]) self.children = [self.trans] - self.ivsep = coin.SoSeparator() - try: - if isinstance(sel,Part.Shape): - ivin = coin.SoInput() - ivin.setBuffer(sel.writeInventor()) - ivob = coin.SoDB.readAll(ivin) - self.ivsep.addChild(ivob.getChildren()[1]) - else: - if not isinstance(sel,list): - sel = [sel] - for obj in sel: - self.ivsep.addChild(obj.ViewObject.RootNode.copy()) - except: - print "draft: Couldn't create ghost" - self.children.append(self.ivsep) + rootsep = coin.SoSeparator() + if not isinstance(sel,list): + sel = [sel] + for obj in sel: + rootsep.addChild(self.getNode(obj)) + self.children.append(rootsep) Tracker.__init__(self,children=self.children) def update(self,obj): obj.ViewObject.show() self.finalize() - self.ivsep = coin.SoSeparator() - self.ivsep.addChild(obj.ViewObject.RootNode.copy()) - Tracker.__init__(self,children=[self.ivsep]) + sep = getNode(obj) + Tracker.__init__(self,children=[self.sep]) self.on() obj.ViewObject.hide() + def getNode(self,obj): + "returns a coin node representing the given object" + if isinstance(obj,Part.Shape): + return self.getNodeLight(obj) + elif obj.isDerivedFrom("Part::Feature"): + return self.getNodeLight(obj.Shape) + else: + return self.getNodeFull(obj) + + def getNodeFull(self,obj): + "gets a coin node which is a full copy of the current representation" + sep = coin.SoSeparator() + try: + sep.addChild(obj.ViewObject.RootNode.copy()) + except: + pass + return sep + + def getNodeLight(self,shape): + "extract a lighter version directly from a shape" + sep = coin.SoSeparator() + try: + inputstr = coin.SoInput() + inputstr.setBuffer(shape.writeInventor()) + coinobj = coin.SoDB.readAll(inputstr) + # only add wireframe or full node? + sep.addChild(coinobj.getChildren()[1]) + # sep.addChild(coinobj) + except: + pass + return sep + class editTracker(Tracker): "A node edit tracker" def __init__(self,pos=Vector(0,0,0),name="None",idx=0,objcol=None): From 8a40df6c22a03b33d3a2b8b4446470df4d333727 Mon Sep 17 00:00:00 2001 From: jriegel Date: Thu, 15 Nov 2012 19:55:23 +0100 Subject: [PATCH 05/16] [#874] remove x,y,z from linear patter, cause makes no sense --- .../Gui/TaskLinearPatternParameters.cpp | 70 +++++++++---------- .../Gui/TaskLinearPatternParameters.h | 6 +- .../Gui/TaskLinearPatternParameters.ui | 31 +------- 3 files changed, 38 insertions(+), 69 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index bea2229bb5..30e72df60e 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -93,12 +93,6 @@ TaskLinearPatternParameters::TaskLinearPatternParameters(TaskMultiTransformParam void TaskLinearPatternParameters::setupUI() { - connect(ui->buttonX, SIGNAL(pressed()), - this, SLOT(onButtonX())); - connect(ui->buttonY, SIGNAL(pressed()), - this, SLOT(onButtonY())); - connect(ui->buttonZ, SIGNAL(pressed()), - this, SLOT(onButtonZ())); connect(ui->checkReverse, SIGNAL(toggled(bool)), this, SLOT(onCheckReverse(bool))); connect(ui->spinLength, SIGNAL(valueChanged(double)), @@ -125,9 +119,9 @@ void TaskLinearPatternParameters::setupUI() } // --------------------- - ui->buttonX->setEnabled(true); - ui->buttonY->setEnabled(true); - ui->buttonZ->setEnabled(true); + //ui->buttonX->setEnabled(true); + //ui->buttonY->setEnabled(true); + //ui->buttonZ->setEnabled(true); ui->checkReverse->setEnabled(true); ui->spinLength->setEnabled(true); ui->spinOccurrences->setEnabled(true); @@ -154,20 +148,20 @@ void TaskLinearPatternParameters::updateUI() ui->buttonReference->setChecked(referenceSelectionMode); if (!stdDirection.empty()) { - ui->buttonX->setAutoExclusive(true); - ui->buttonY->setAutoExclusive(true); - ui->buttonZ->setAutoExclusive(true); - ui->buttonX->setChecked(stdDirection == "X"); - ui->buttonY->setChecked(stdDirection == "Y"); - ui->buttonZ->setChecked(stdDirection == "Z"); + //ui->buttonX->setAutoExclusive(true); + //ui->buttonY->setAutoExclusive(true); + //ui->buttonZ->setAutoExclusive(true); + //ui->buttonX->setChecked(stdDirection == "X"); + //ui->buttonY->setChecked(stdDirection == "Y"); + //ui->buttonZ->setChecked(stdDirection == "Z"); ui->lineReference->setText(tr("")); } else if (directionFeature != NULL && !directions.empty()) { - ui->buttonX->setAutoExclusive(false); - ui->buttonY->setAutoExclusive(false); - ui->buttonZ->setAutoExclusive(false); - ui->buttonX->setChecked(false); - ui->buttonY->setChecked(false); - ui->buttonZ->setChecked(false); + //ui->buttonX->setAutoExclusive(false); + //ui->buttonY->setAutoExclusive(false); + //ui->buttonZ->setAutoExclusive(false); + //ui->buttonX->setChecked(false); + //ui->buttonY->setChecked(false); + //ui->buttonZ->setChecked(false); ui->lineReference->setText(QString::fromAscii(directions.front().c_str())); } else { // Error message? @@ -220,17 +214,17 @@ void TaskLinearPatternParameters::onSelectionChanged(const Gui::SelectionChanges } } -void TaskLinearPatternParameters::onButtonX() { - onStdDirection("X"); -} - -void TaskLinearPatternParameters::onButtonY() { - onStdDirection("Y"); -} - -void TaskLinearPatternParameters::onButtonZ() { - onStdDirection("Z"); -} +//void TaskLinearPatternParameters::onButtonX() { +// onStdDirection("X"); +//} +// +//void TaskLinearPatternParameters::onButtonY() { +// onStdDirection("Y"); +//} +// +//void TaskLinearPatternParameters::onButtonZ() { +// onStdDirection("Z"); +//} void TaskLinearPatternParameters::onCheckReverse(const bool on) { if (blockUpdate) @@ -321,12 +315,12 @@ void TaskLinearPatternParameters::onUpdateView(bool on) const std::string TaskLinearPatternParameters::getStdDirection(void) const { - if (ui->buttonX->isChecked()) - return std::string("X"); - else if (ui->buttonY->isChecked()) - return std::string("Y"); - else if (ui->buttonZ->isChecked()) - return std::string("Z"); + //if (ui->buttonX->isChecked()) + // return std::string("X"); + //else if (ui->buttonY->isChecked()) + // return std::string("Y"); + //else if (ui->buttonZ->isChecked()) + // return std::string("Z"); return std::string(""); } diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h index b351f59b0e..e3a88a779a 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h @@ -64,9 +64,9 @@ public: private Q_SLOTS: void onStdDirection(const std::string& dir); - void onButtonX(); - void onButtonY(); - void onButtonZ(); + //void onButtonX(); + //void onButtonY(); + //void onButtonZ(); void onCheckReverse(const bool on); void onLength(const double l); void onOccurrences(const int n); diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.ui b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.ui index 4ed390924d..c6421af4cf 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.ui +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.ui @@ -28,34 +28,6 @@ - - - - - - X - - - true - - - - - - - Y - - - - - - - Z - - - - - @@ -97,6 +69,9 @@ 999999.000000000000000 + + 5.000000000000000 + 100.000000000000000 From 4bb4553ed72e1f2ac442dde04f442ecd44816882 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 15 Nov 2012 23:00:58 -0200 Subject: [PATCH 06/16] Further optimizations in Draft --- src/Mod/Draft/DraftTools.py | 696 +++++++++++++++++---------------- src/Mod/Draft/DraftTrackers.py | 22 +- 2 files changed, 370 insertions(+), 348 deletions(-) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index a51d04c6a9..0866139b21 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -480,7 +480,7 @@ class Line(Creator): self.finish() elif arg["Type"] == "SoLocation2Event": # mouse movement detection - point,ctrlPoint,info = getPoint(self,arg) + self.point,ctrlPoint,info = getPoint(self,arg) elif arg["Type"] == "SoMouseButtonEvent": # mouse button detection if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): @@ -489,17 +489,17 @@ class Line(Creator): else: if (not self.node) and (not self.support): self.support = getSupport(arg) - point,ctrlPoint,info = getPoint(self,arg) - self.pos = arg["Position"] - self.node.append(point) - self.drawSegment(point) - if (not self.isWire and len(self.node) == 2): - self.finish(False,cont=True) - if (len(self.node) > 2): - if ((point-self.node[0]).Length < Draft.tolerance()): - self.undolast() - self.finish(True,cont=True) - msg(translate("draft", "DWire has been closed\n")) + if self.point: + self.pos = arg["Position"] + self.node.append(self.point) + self.drawSegment(self.point) + if (not self.isWire and len(self.node) == 2): + self.finish(False,cont=True) + if (len(self.node) > 2): + if ((self.point-self.node[0]).Length < Draft.tolerance()): + self.undolast() + self.finish(True,cont=True) + msg(translate("draft", "DWire has been closed\n")) def undolast(self): "undoes last line segment" @@ -550,9 +550,9 @@ class Line(Creator): def numericInput(self,numx,numy,numz): "this function gets called by the toolbar when valid x, y, and z have been entered there" - point = Vector(numx,numy,numz) - self.node.append(point) - self.drawSegment(point) + self.point = Vector(numx,numy,numz) + self.node.append(self.point) + self.drawSegment(self.point) if (not self.isWire and len(self.node) == 2): self.finish(False,cont=True) self.ui.setNextFocus() @@ -593,8 +593,8 @@ class BSpline(Line): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection - point,ctrlPoint,info = getPoint(self,arg) - self.bsplinetrack.update(self.node + [point]) + self.point,ctrlPoint,info = getPoint(self,arg) + self.bsplinetrack.update(self.node + [self.point]) elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): if (arg["Position"] == self.pos): @@ -602,21 +602,21 @@ class BSpline(Line): else: if (not self.node) and (not self.support): self.support = getSupport(arg) - point,ctrlPoint,info = getPoint(self,arg) - self.pos = arg["Position"] - self.node.append(point) - self.drawUpdate(point) - if (not self.isWire and len(self.node) == 2): - self.finish(False,cont=True) - if (len(self.node) > 2): - # DNC: allows to close the curve - # by placing ends close to each other - # with tol = Draft tolerance - # old code has been to insensitive - if ((point-self.node[0]).Length < Draft.tolerance()): - self.undolast() - self.finish(True,cont=True) - msg(translate("draft", "Spline has been closed\n")) + if self.point: + self.pos = arg["Position"] + self.node.append(self.point) + self.drawUpdate(self.point) + if (not self.isWire and len(self.node) == 2): + self.finish(False,cont=True) + if (len(self.node) > 2): + # DNC: allows to close the curve + # by placing ends close to each other + # with tol = Draft tolerance + # old code has been to insensitive + if ((self.point-self.node[0]).Length < Draft.tolerance()): + self.undolast() + self.finish(True,cont=True) + msg(translate("draft", "Spline has been closed\n")) def undolast(self): "undoes last line segment" @@ -782,8 +782,8 @@ class Rectangle(Creator): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection - point,ctrlPoint,info = getPoint(self,arg,mobile=True) - self.rect.update(point) + self.point,ctrlPoint,info = getPoint(self,arg,mobile=True) + self.rect.update(self.point) elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): if (arg["Position"] == self.pos): @@ -791,13 +791,13 @@ class Rectangle(Creator): else: if (not self.node) and (not self.support): self.support = getSupport(arg) - point,ctrlPoint,info = getPoint(self,arg) - self.appendPoint(point) + if self.point: + self.appendPoint(self.point) def numericInput(self,numx,numy,numz): "this function gets called by the toolbar when valid x, y, and z have been entered there" - point = Vector(numx,numy,numz) - self.appendPoint(point) + self.point = Vector(numx,numy,numz) + self.appendPoint(self.point) def appendPoint(self,point): self.node.append(point) @@ -882,12 +882,12 @@ class Arc(Creator): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": - point,ctrlPoint,info = getPoint(self,arg) + self.point,ctrlPoint,info = getPoint(self,arg) # this is to make sure radius is what you see on screen - if self.center and DraftVecUtils.dist(point,self.center) > 0: - viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) + if self.center and DraftVecUtils.dist(self.point,self.center) > 0: + viewdelta = DraftVecUtils.project(self.point.sub(self.center), plane.axis) if not DraftVecUtils.isNull(viewdelta): - point = point.add(DraftVecUtils.neg(viewdelta)) + self.point = self.point.add(DraftVecUtils.neg(viewdelta)) if (self.step == 0): # choose center if hasMod(arg,MODALT): if not self.altdown: @@ -899,12 +899,12 @@ class Arc(Creator): self.ui.switchUi(False) elif (self.step == 1): # choose radius if len(self.tangents) == 2: - cir = DraftGeomUtils.circleFrom2tan1pt(self.tangents[0], self.tangents[1], point) - self.center = DraftGeomUtils.findClosestCircle(point,cir).Center + cir = DraftGeomUtils.circleFrom2tan1pt(self.tangents[0], self.tangents[1], self.point) + self.center = DraftGeomUtils.findClosestCircle(self.point,cir).Center self.arctrack.setCenter(self.center) elif self.tangents and self.tanpoints: - cir = DraftGeomUtils.circleFrom1tan2pt(self.tangents[0], self.tanpoints[0], point) - self.center = DraftGeomUtils.findClosestCircle(point,cir).Center + cir = DraftGeomUtils.circleFrom1tan2pt(self.tangents[0], self.tanpoints[0], self.point) + self.center = DraftGeomUtils.findClosestCircle(self.point,cir).Center self.arctrack.setCenter(self.center) if hasMod(arg,MODALT): if not self.altdown: @@ -915,100 +915,95 @@ class Arc(Creator): ed = ob.Shape.Edges[num] if len(self.tangents) == 2: cir = DraftGeomUtils.circleFrom3tan(self.tangents[0], self.tangents[1], ed) - cl = DraftGeomUtils.findClosestCircle(point,cir) + cl = DraftGeomUtils.findClosestCircle(self.point,cir) self.center = cl.Center self.rad = cl.Radius self.arctrack.setCenter(self.center) else: self.rad = self.center.add(DraftGeomUtils.findDistance(self.center,ed).sub(self.center)).Length else: - self.rad = DraftVecUtils.dist(point,self.center) + self.rad = DraftVecUtils.dist(self.point,self.center) else: if self.altdown: self.altdown = False - self.rad = DraftVecUtils.dist(point,self.center) + self.rad = DraftVecUtils.dist(self.point,self.center) self.ui.setRadiusValue(self.rad) self.arctrack.setRadius(self.rad) self.linetrack.p1(self.center) - self.linetrack.p2(point) + self.linetrack.p2(self.point) self.linetrack.on() elif (self.step == 2): # choose first angle - currentrad = DraftVecUtils.dist(point,self.center) + currentrad = DraftVecUtils.dist(self.point,self.center) if currentrad != 0: - angle = DraftVecUtils.angle(plane.u, point.sub(self.center), plane.axis) + angle = DraftVecUtils.angle(plane.u, self.point.sub(self.center), plane.axis) else: angle = 0 - self.linetrack.p2(DraftVecUtils.scaleTo(point.sub(self.center),self.rad).add(self.center)) + self.linetrack.p2(DraftVecUtils.scaleTo(self.point.sub(self.center),self.rad).add(self.center)) self.ui.setRadiusValue(math.degrees(angle)) self.firstangle = angle else: # choose second angle - currentrad = DraftVecUtils.dist(point,self.center) + currentrad = DraftVecUtils.dist(self.point,self.center) if currentrad != 0: - angle = DraftVecUtils.angle(plane.u, point.sub(self.center), plane.axis) + angle = DraftVecUtils.angle(plane.u, self.point.sub(self.center), plane.axis) else: angle = 0 - self.linetrack.p2(DraftVecUtils.scaleTo(point.sub(self.center),self.rad).add(self.center)) + self.linetrack.p2(DraftVecUtils.scaleTo(self.point.sub(self.center),self.rad).add(self.center)) self.ui.setRadiusValue(math.degrees(angle)) self.updateAngle(angle) self.arctrack.setApertureAngle(self.angle) elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): - point,ctrlPoint,info = getPoint(self,arg) - # this is to make sure radius is what you see on screen - if self.center and DraftVecUtils.dist(point,self.center) > 0: - viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) - if not DraftVecUtils.isNull(viewdelta): - point = point.add(DraftVecUtils.neg(viewdelta)) - if (self.step == 0): # choose center - if not self.support: - self.support = getSupport(arg) - if hasMod(arg,MODALT): - snapped=self.view.getObjectInfo((arg["Position"][0],arg["Position"][1])) - if snapped: - ob = self.doc.getObject(snapped['Object']) - num = int(snapped['Component'].lstrip('Edge'))-1 - ed = ob.Shape.Edges[num] - self.tangents.append(ed) - if len(self.tangents) == 2: - self.arctrack.on() - self.ui.radiusUi() - self.step = 1 - self.linetrack.on() - msg(translate("draft", "Pick radius:\n")) - else: - if len(self.tangents) == 1: - self.tanpoints.append(point) + if self.point: + if (self.step == 0): # choose center + if not self.support: + self.support = getSupport(arg) + if hasMod(arg,MODALT): + snapped=self.view.getObjectInfo((arg["Position"][0],arg["Position"][1])) + if snapped: + ob = self.doc.getObject(snapped['Object']) + num = int(snapped['Component'].lstrip('Edge'))-1 + ed = ob.Shape.Edges[num] + self.tangents.append(ed) + if len(self.tangents) == 2: + self.arctrack.on() + self.ui.radiusUi() + self.step = 1 + self.linetrack.on() + msg(translate("draft", "Pick radius:\n")) else: - self.center = point - self.node = [point] - self.arctrack.setCenter(self.center) + if len(self.tangents) == 1: + self.tanpoints.append(self.point) + else: + self.center = self.point + self.node = [self.point] + self.arctrack.setCenter(self.center) + self.linetrack.p1(self.center) + self.linetrack.p2(self.view.getPoint(arg["Position"][0],arg["Position"][1])) + self.arctrack.on() + self.ui.radiusUi() + self.step = 1 + self.linetrack.on() + msg(translate("draft", "Pick radius:\n")) + if self.planetrack: + self.planetrack.set(self.point) + elif (self.step == 1): # choose radius + if self.closedCircle: + self.drawArc() + else: + self.ui.labelRadius.setText("Start angle") self.linetrack.p1(self.center) - self.linetrack.p2(self.view.getPoint(arg["Position"][0],arg["Position"][1])) - self.arctrack.on() - self.ui.radiusUi() - self.step = 1 - self.linetrack.on() - msg(translate("draft", "Pick radius:\n")) - if self.planetrack: - self.planetrack.set(point) - elif (self.step == 1): # choose radius - if self.closedCircle: + self.linetrack.on() + self.step = 2 + msg(translate("draft", "Pick start angle:\n")) + elif (self.step == 2): # choose first angle + self.ui.labelRadius.setText("Aperture") + self.step = 3 + # scale center->point vector for proper display + # u = DraftVecUtils.scaleTo(self.point.sub(self.center), self.rad) obsolete? + self.arctrack.setStartAngle(self.firstangle) + msg(translate("draft", "Pick aperture:\n")) + else: # choose second angle + self.step = 4 self.drawArc() - else: - self.ui.labelRadius.setText("Start angle") - self.linetrack.p1(self.center) - self.linetrack.on() - self.step = 2 - msg(translate("draft", "Pick start angle:\n")) - elif (self.step == 2): # choose first angle - self.ui.labelRadius.setText("Aperture") - self.step = 3 - # scale center->point vector for proper display - u = DraftVecUtils.scaleTo(point.sub(self.center), self.rad) - self.arctrack.setStartAngle(self.firstangle) - msg(translate("draft", "Pick aperture:\n")) - else: # choose second angle - self.step = 4 - self.drawArc() def drawArc(self): "actually draws the FreeCAD object" @@ -1152,12 +1147,12 @@ class Polygon(Creator): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": - point,ctrlPoint,info = getPoint(self,arg) + self.point,ctrlPoint,info = getPoint(self,arg) # this is to make sure radius is what you see on screen - if self.center and DraftVecUtils.dist(point,self.center) > 0: - viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) + if self.center and DraftVecUtils.dist(self.point,self.center) > 0: + viewdelta = DraftVecUtils.project(self.point.sub(self.center), plane.axis) if not DraftVecUtils.isNull(viewdelta): - point = point.add(DraftVecUtils.neg(viewdelta)) + self.point = self.point.add(DraftVecUtils.neg(viewdelta)) if (self.step == 0): # choose center if hasMod(arg,MODALT): if not self.altdown: @@ -1169,12 +1164,12 @@ class Polygon(Creator): self.ui.switchUi(False) else: # choose radius if len(self.tangents) == 2: - cir = DraftGeomUtils.circleFrom2tan1pt(self.tangents[0], self.tangents[1], point) - self.center = DraftGeomUtils.findClosestCircle(point,cir).Center + cir = DraftGeomUtils.circleFrom2tan1pt(self.tangents[0], self.tangents[1], self.point) + self.center = DraftGeomUtils.findClosestCircle(self.point,cir).Center self.arctrack.setCenter(self.center) elif self.tangents and self.tanpoints: - cir = DraftGeomUtils.circleFrom1tan2pt(self.tangents[0], self.tanpoints[0], point) - self.center = DraftGeomUtils.findClosestCircle(point,cir).Center + cir = DraftGeomUtils.circleFrom1tan2pt(self.tangents[0], self.tanpoints[0], self.point) + self.center = DraftGeomUtils.findClosestCircle(self.point,cir).Center self.arctrack.setCenter(self.center) if hasMod(arg,MODALT): if not self.altdown: @@ -1186,59 +1181,54 @@ class Polygon(Creator): ed = ob.Shape.Edges[num] if len(self.tangents) == 2: cir = DraftGeomUtils.circleFrom3tan(self.tangents[0], self.tangents[1], ed) - cl = DraftGeomUtils.findClosestCircle(point,cir) + cl = DraftGeomUtils.findClosestCircle(self.point,cir) self.center = cl.Center self.rad = cl.Radius self.arctrack.setCenter(self.center) else: self.rad = self.center.add(DraftGeomUtils.findDistance(self.center,ed).sub(self.center)).Length else: - self.rad = DraftVecUtils.dist(point,self.center) + self.rad = DraftVecUtils.dist(self.point,self.center) else: if self.altdown: self.altdown = False - self.rad = DraftVecUtils.dist(point,self.center) + self.rad = DraftVecUtils.dist(self.point,self.center) self.ui.setRadiusValue(self.rad) self.arctrack.setRadius(self.rad) elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): - point,ctrlPoint,info = getPoint(self,arg) - # this is to make sure radius is what you see on screen - if self.center and DraftVecUtils.dist(point,self.center) > 0: - viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) - if not DraftVecUtils.isNull(viewdelta): - point = point.add(DraftVecUtils.neg(viewdelta)) - if (self.step == 0): # choose center - if (not self.node) and (not self.support): - self.support = getSupport(arg) - if hasMod(arg,MODALT): - snapped=self.view.getObjectInfo((arg["Position"][0],arg["Position"][1])) - if snapped: - ob = self.doc.getObject(snapped['Object']) - num = int(snapped['Component'].lstrip('Edge'))-1 - ed = ob.Shape.Edges[num] - self.tangents.append(ed) - if len(self.tangents) == 2: - self.arctrack.on() - self.ui.radiusUi() - self.step = 1 - msg(translate("draft", "Pick radius:\n")) - else: - if len(self.tangents) == 1: - self.tanpoints.append(point) + if self.point: + if (self.step == 0): # choose center + if (not self.node) and (not self.support): + self.support = getSupport(arg) + if hasMod(arg,MODALT): + snapped=self.view.getObjectInfo((arg["Position"][0],arg["Position"][1])) + if snapped: + ob = self.doc.getObject(snapped['Object']) + num = int(snapped['Component'].lstrip('Edge'))-1 + ed = ob.Shape.Edges[num] + self.tangents.append(ed) + if len(self.tangents) == 2: + self.arctrack.on() + self.ui.radiusUi() + self.step = 1 + msg(translate("draft", "Pick radius:\n")) else: - self.center = point - self.node = [point] - self.arctrack.setCenter(self.center) - self.arctrack.on() - self.ui.radiusUi() - self.step = 1 - msg(translate("draft", "Pick radius:\n")) - if self.planetrack: - self.planetrack.set(point) - elif (self.step == 1): # choose radius - self.drawPolygon() + if len(self.tangents) == 1: + self.tanpoints.append(self.point) + else: + self.center = self.point + self.node = [self.point] + self.arctrack.setCenter(self.center) + self.arctrack.on() + self.ui.radiusUi() + self.step = 1 + msg(translate("draft", "Pick radius:\n")) + if self.planetrack: + self.planetrack.set(self.point) + elif (self.step == 1): # choose radius + self.drawPolygon() def drawPolygon(self): "actually draws the FreeCAD object" @@ -1332,19 +1322,19 @@ class Text(Creator): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection - point,ctrlPoint,info = getPoint(self,arg) + self.point,ctrlPoint,info = getPoint(self,arg) elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): - point,ctrlPoint,info = getPoint(self,arg) - self.node.append(point) - self.ui.textUi() - self.ui.textValue.setFocus() + if self.point: + self.node.append(self.point) + self.ui.textUi() + self.ui.textValue.setFocus() def numericInput(self,numx,numy,numz): '''this function gets called by the toolbar when valid x, y, and z have been entered there''' - point = Vector(numx,numy,numz) - self.node.append(point) + self.point = Vector(numx,numy,numz) + self.node.append(self.point) self.ui.textUi() self.ui.textValue.setFocus() @@ -1463,7 +1453,7 @@ class Dimension(Creator): shift = hasMod(arg,MODCONSTRAIN) if self.arcmode or self.point2: setMod(arg,MODCONSTRAIN,False) - point,ctrlPoint,info = getPoint(self,arg) + self.point,ctrlPoint,info = getPoint(self,arg) if hasMod(arg,MODALT) and (len(self.node)<3): self.dimtrack.off() if not self.altdown: @@ -1484,9 +1474,9 @@ class Dimension(Creator): if len(self.edges) == 2: # angular dimension self.dimtrack.off() - r = point.sub(self.center) + r = self.point.sub(self.center) self.arctrack.setRadius(r.Length) - a = self.arctrack.getAngle(point) + a = self.arctrack.getAngle(self.point) pair = DraftGeomUtils.getBoundaryAngles(a,self.pts) if not (pair[0] < a < pair[1]): self.angledata = [4*math.pi-pair[0],2*math.pi-pair[1]] @@ -1498,12 +1488,12 @@ class Dimension(Creator): self.altdown = False self.ui.switchUi(False) if self.dir: - point = self.node[0].add(DraftVecUtils.project(point.sub(self.node[0]),self.dir)) + self.point = self.node[0].add(DraftVecUtils.project(self.point.sub(self.node[0]),self.dir)) if len(self.node) == 2: if self.arcmode and self.edges: cen = self.edges[0].Curve.Center rad = self.edges[0].Curve.Radius - baseray = point.sub(cen) + baseray = self.point.sub(cen) v2 = DraftVecUtils.scaleTo(baseray,rad) v1 = DraftVecUtils.neg(v2) if shift: @@ -1521,7 +1511,7 @@ class Dimension(Creator): else: self.node[1] = self.point2 if not self.force: - a=abs(point.sub(self.node[0]).getAngle(plane.u)) + a=abs(self.point.sub(self.node[0]).getAngle(plane.u)) if (a > math.pi/4) and (a <= 0.75*math.pi): self.force = 1 else: @@ -1537,93 +1527,91 @@ class Dimension(Creator): self.point2 = None # update the dimline if self.node and (not self.arcmode): - self.dimtrack.update(self.node+[point]+[self.cont]) + self.dimtrack.update(self.node+[self.point]+[self.cont]) elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): - point,ctrlPoint,info = getPoint(self,arg) - if (not self.node) and (not self.support): - self.support = getSupport(arg) - if hasMod(arg,MODALT) and (len(self.node)<3): - print "snapped: ",info - if info: - ob = self.doc.getObject(info['Object']) - if 'Edge' in info['Component']: - num = int(info['Component'].lstrip('Edge'))-1 - ed = ob.Shape.Edges[num] - v1 = ed.Vertexes[0].Point - v2 = ed.Vertexes[-1].Point - i1 = i2 = None - for i in range(len(ob.Shape.Vertexes)): - if v1 == ob.Shape.Vertexes[i].Point: - i1 = i - if v2 == ob.Shape.Vertexes[i].Point: - i2 = i - if (i1 != None) and (i2 != None): - self.indices.append(num) - if not self.edges: - # nothing snapped yet, we treat it as normal edge-snapped dimension - self.node = [v1,v2] - self.link = [ob,i1,i2] - self.edges.append(ed) - if isinstance(ed.Curve,Part.Circle): - # snapped edge is an arc - self.arcmode = "diameter" - self.link = [ob,num] - else: - # there is already a snapped edge, so we start angular dimension - self.edges.append(ed) - self.node.extend([v1,v2]) # self.node now has the 4 endpoints - c = DraftGeomUtils.findIntersection(self.node[0], - self.node[1], - self.node[2], - self.node[3], - True,True) - if c: - self.center = c[0] - self.arctrack.setCenter(self.center) - self.arctrack.on() - for e in self.edges: - for v in e.Vertexes: - self.pts.append(self.arctrack.getAngle(v.Point)) - self.link = [self.link[0],ob] + if self.point: + if (not self.node) and (not self.support): + self.support = getSupport(arg) + if hasMod(arg,MODALT) and (len(self.node)<3): + print "snapped: ",info + if info: + ob = self.doc.getObject(info['Object']) + if 'Edge' in info['Component']: + num = int(info['Component'].lstrip('Edge'))-1 + ed = ob.Shape.Edges[num] + v1 = ed.Vertexes[0].Point + v2 = ed.Vertexes[-1].Point + i1 = i2 = None + for i in range(len(ob.Shape.Vertexes)): + if v1 == ob.Shape.Vertexes[i].Point: + i1 = i + if v2 == ob.Shape.Vertexes[i].Point: + i2 = i + if (i1 != None) and (i2 != None): + self.indices.append(num) + if not self.edges: + # nothing snapped yet, we treat it as normal edge-snapped dimension + self.node = [v1,v2] + self.link = [ob,i1,i2] + self.edges.append(ed) + if isinstance(ed.Curve,Part.Circle): + # snapped edge is an arc + self.arcmode = "diameter" + self.link = [ob,num] else: - msg(translate("draft", "Edges don't intersect!\n")) - self.finish() - self.dimtrack.on() - else: - if self.dir: - point = self.node[0].add(DraftVecUtils.project(point.sub(self.node[0]),self.dir)) - self.node.append(point) - #print "node",self.node - self.dimtrack.update(self.node) - if (len(self.node) == 2): - self.point2 = self.node[1] - if (len(self.node) == 1): - self.dimtrack.on() - if self.planetrack: - self.planetrack.set(self.node[0]) - elif (len(self.node) == 2) and self.cont: - self.node.append(self.cont) - self.createObject() - if not self.cont: self.finish() - elif (len(self.node) == 3): - # for unlinked arc mode: - # if self.arcmode: - # v = self.node[1].sub(self.node[0]) - # v = DraftVecUtils.scale(v,0.5) - # cen = self.node[0].add(v) - # self.node = [self.node[0],self.node[1],cen] - self.createObject() - if not self.cont: self.finish() - elif self.angledata: - self.node.append(point) - self.createObject() - self.finish() + # there is already a snapped edge, so we start angular dimension + self.edges.append(ed) + self.node.extend([v1,v2]) # self.node now has the 4 endpoints + c = DraftGeomUtils.findIntersection(self.node[0], + self.node[1], + self.node[2], + self.node[3], + True,True) + if c: + self.center = c[0] + self.arctrack.setCenter(self.center) + self.arctrack.on() + for e in self.edges: + for v in e.Vertexes: + self.pts.append(self.arctrack.getAngle(v.Point)) + self.link = [self.link[0],ob] + else: + msg(translate("draft", "Edges don't intersect!\n")) + self.finish() + self.dimtrack.on() + else: + self.node.append(self.point) + #print "node",self.node + self.dimtrack.update(self.node) + if (len(self.node) == 2): + self.point2 = self.node[1] + if (len(self.node) == 1): + self.dimtrack.on() + if self.planetrack: + self.planetrack.set(self.node[0]) + elif (len(self.node) == 2) and self.cont: + self.node.append(self.cont) + self.createObject() + if not self.cont: self.finish() + elif (len(self.node) == 3): + # for unlinked arc mode: + # if self.arcmode: + # v = self.node[1].sub(self.node[0]) + # v = DraftVecUtils.scale(v,0.5) + # cen = self.node[0].add(v) + # self.node = [self.node[0],self.node[1],cen] + self.createObject() + if not self.cont: self.finish() + elif self.angledata: + self.node.append(self.point) + self.createObject() + self.finish() def numericInput(self,numx,numy,numz): "this function gets called by the toolbar when valid x, y, and z have been entered there" - point = Vector(numx,numy,numz) - self.node.append(point) + self.point = Vector(numx,numy,numz) + self.node.append(self.point) self.dimtrack.update(self.node) if (len(self.node) == 1): self.dimtrack.on() @@ -1708,11 +1696,15 @@ class Move(Modifier): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection + if self.ghost: + self.ghost.off() self.point,ctrlPoint,info = getPoint(self,arg) if (len(self.node) > 0): last = self.node[len(self.node)-1] delta = self.point.sub(last) - self.ghost.trans.translation.setValue([delta.x,delta.y,delta.z]) + if self.ghost: + self.ghost.move(delta) + self.ghost.on() if self.extendedCopy: if not hasMod(arg,MODALT): self.finish() elif arg["Type"] == "SoMouseButtonEvent": @@ -1721,7 +1713,8 @@ class Move(Modifier): if (self.node == []): self.node.append(self.point) self.ui.isRelative.show() - self.ghost.on() + if self.ghost: + self.ghost.on() msg(translate("draft", "Pick end point:\n")) if self.planetrack: self.planetrack.set(self.point) @@ -1861,12 +1854,14 @@ class Rotate(Modifier): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": - point,ctrlPoint,info = getPoint(self,arg) + if self.ghost: + self.ghost.off() + self.point,ctrlPoint,info = getPoint(self,arg) # this is to make sure radius is what you see on screen - if self.center and DraftVecUtils.dist(point,self.center): - viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) + if self.center and DraftVecUtils.dist(self.point,self.center): + viewdelta = DraftVecUtils.project(self.point.sub(self.center), plane.axis) if not DraftVecUtils.isNull(viewdelta): - point = point.add(DraftVecUtils.neg(viewdelta)) + self.point = self.point.add(DraftVecUtils.neg(viewdelta)) if self.extendedCopy: if not hasMod(arg,MODALT): self.step = 3 @@ -1874,79 +1869,81 @@ class Rotate(Modifier): if (self.step == 0): pass elif (self.step == 1): - currentrad = DraftVecUtils.dist(point,self.center) + currentrad = DraftVecUtils.dist(self.point,self.center) if (currentrad != 0): - angle = DraftVecUtils.angle(plane.u, point.sub(self.center), plane.axis) + angle = DraftVecUtils.angle(plane.u, self.point.sub(self.center), plane.axis) else: angle = 0 self.ui.radiusValue.setText("%.2f" % math.degrees(angle)) self.firstangle = angle self.ui.radiusValue.setFocus() self.ui.radiusValue.selectAll() elif (self.step == 2): - currentrad = DraftVecUtils.dist(point,self.center) + currentrad = DraftVecUtils.dist(self.point,self.center) if (currentrad != 0): - angle = DraftVecUtils.angle(plane.u, point.sub(self.center), plane.axis) + angle = DraftVecUtils.angle(plane.u, self.point.sub(self.center), plane.axis) else: angle = 0 if (angle < self.firstangle): sweep = (2*math.pi-self.firstangle)+angle else: sweep = angle - self.firstangle self.arctrack.setApertureAngle(sweep) - self.ghost.trans.rotation.setValue(coin.SbVec3f(DraftVecUtils.tup(plane.axis)),sweep) + if self.ghost: + self.ghost.rotate(plane.axis,sweep) + self.ghost.on() self.ui.radiusValue.setText("%.2f" % math.degrees(sweep)) self.ui.radiusValue.setFocus() self.ui.radiusValue.selectAll() elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): - point,ctrlPoint,info = getPoint(self,arg) - if self.center and DraftVecUtils.dist(point,self.center): - viewdelta = DraftVecUtils.project(point.sub(self.center), plane.axis) - if not DraftVecUtils.isNull(viewdelta): point = point.add(DraftVecUtils.neg(viewdelta)) - if (self.step == 0): - self.center = point - self.node = [point] - self.ui.radiusUi() - self.ui.hasFill.hide() - self.ui.labelRadius.setText("Base angle") - self.arctrack.setCenter(self.center) - self.ghost.trans.center.setValue(self.center.x,self.center.y,self.center.z) - self.step = 1 - msg(translate("draft", "Pick base angle:\n")) - if self.planetrack: - self.planetrack.set(point) - elif (self.step == 1): - self.ui.labelRadius.setText("Rotation") - self.rad = DraftVecUtils.dist(point,self.center) - self.arctrack.on() - self.arctrack.setStartPoint(point) - self.ghost.on() - self.step = 2 - msg(translate("draft", "Pick rotation angle:\n")) - else: - currentrad = DraftVecUtils.dist(point,self.center) - angle = point.sub(self.center).getAngle(plane.u) - if DraftVecUtils.project(point.sub(self.center), plane.v).getAngle(plane.v) > 1: - angle = -angle - if (angle < self.firstangle): - sweep = (2*math.pi-self.firstangle)+angle + if self.point: + if (self.step == 0): + self.center = self.point + self.node = [self.point] + self.ui.radiusUi() + self.ui.hasFill.hide() + self.ui.labelRadius.setText("Base angle") + self.arctrack.setCenter(self.center) + if self.ghost: + self.ghost.center(self.center) + self.step = 1 + msg(translate("draft", "Pick base angle:\n")) + if self.planetrack: + self.planetrack.set(self.point) + elif (self.step == 1): + self.ui.labelRadius.setText("Rotation") + self.rad = DraftVecUtils.dist(self.point,self.center) + self.arctrack.on() + self.arctrack.setStartPoint(self.point) + if self.ghost: + self.ghost.on() + self.step = 2 + msg(translate("draft", "Pick rotation angle:\n")) else: - sweep = angle - self.firstangle - if self.ui.isCopy.isChecked() or hasMod(arg,MODALT): - self.rot(sweep,True) - else: - self.rot(sweep) - if hasMod(arg,MODALT): - self.extendedCopy = True - else: - self.finish(cont=True) + currentrad = DraftVecUtils.dist(self.point,self.center) + angle = self.point.sub(self.center).getAngle(plane.u) + if DraftVecUtils.project(self.point.sub(self.center), plane.v).getAngle(plane.v) > 1: + angle = -angle + if (angle < self.firstangle): + sweep = (2*math.pi-self.firstangle)+angle + else: + sweep = angle - self.firstangle + if self.ui.isCopy.isChecked() or hasMod(arg,MODALT): + self.rot(sweep,True) + else: + self.rot(sweep) + if hasMod(arg,MODALT): + self.extendedCopy = True + else: + self.finish(cont=True) def numericInput(self,numx,numy,numz): "this function gets called by the toolbar when valid x, y, and z have been entered there" self.center = Vector(numx,numy,numz) self.node = [self.center] self.arctrack.setCenter(self.center) - self.ghost.trans.center.setValue(self.center.x,self.center.y,self.center.z) + if self.ghost: + self.ghost.center(self.center) self.ui.radiusUi() self.ui.hasFill.hide() self.ui.labelRadius.setText("Base angle") @@ -1960,7 +1957,8 @@ class Rotate(Modifier): self.firstangle = math.radians(rad) self.arctrack.setStartAngle(self.firstangle) self.arctrack.on() - self.ghost.on() + if self.ghost: + self.ghost.on() self.step = 2 msg(translate("draft", "Pick rotation angle:\n")) else: @@ -2034,17 +2032,17 @@ class Offset(Modifier): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": - point,ctrlPoint,info = getPoint(self,arg) + self.point,ctrlPoint,info = getPoint(self,arg) if hasMod(arg,MODCONSTRAIN) and self.constrainSeg: - dist = DraftGeomUtils.findPerpendicular(point,self.shape,self.constrainSeg[1]) + dist = DraftGeomUtils.findPerpendicular(self.point,self.shape,self.constrainSeg[1]) else: - dist = DraftGeomUtils.findPerpendicular(point,self.shape.Edges) + dist = DraftGeomUtils.findPerpendicular(self.point,self.shape.Edges) if dist: self.ghost.on() if self.mode == "Wire": d = DraftVecUtils.neg(dist[0]) - v1 = DraftGeomUtils.getTangent(self.shape.Edges[0],point) - v2 = DraftGeomUtils.getTangent(self.shape.Edges[dist[1]],point) + v1 = DraftGeomUtils.getTangent(self.shape.Edges[0],self.point) + v2 = DraftGeomUtils.getTangent(self.shape.Edges[dist[1]],self.point) a = -DraftVecUtils.angle(v1,v2) self.dvec = DraftVecUtils.rotate(d,a,plane.axis) occmode = self.ui.occOffset.isChecked() @@ -2052,7 +2050,7 @@ class Offset(Modifier): elif self.mode == "BSpline": d = DraftVecUtils.neg(dist[0]) e = self.shape.Edges[0] - basetan = DraftGeomUtils.getTangent(e,point) + basetan = DraftGeomUtils.getTangent(e,self.point) self.npts = [] for p in self.sel.Points: currtan = DraftGeomUtils.getTangent(e,p) @@ -2061,12 +2059,12 @@ class Offset(Modifier): self.npts.append(p.add(self.dvec)) self.ghost.update(self.npts) elif self.mode == "Circle": - self.dvec = point.sub(self.center).Length + self.dvec = self.point.sub(self.center).Length self.ghost.setRadius(self.dvec) self.constrainSeg = dist self.linetrack.on() - self.linetrack.p1(point) - self.linetrack.p2(point.add(dist[0])) + self.linetrack.p1(self.point) + self.linetrack.p2(self.point.add(dist[0])) self.ui.radiusValue.setText("%.2f" % dist[0].Length) else: self.dvec = None @@ -2855,52 +2853,59 @@ class Scale(Modifier): if arg["Key"] == "ESCAPE": self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection - point,ctrlPoint,info = getPoint(self,arg,sym=True) + if self.ghost: + self.ghost.off() + self.point,ctrlPoint,info = getPoint(self,arg,sym=True) if (len(self.node) > 0): last = self.node[len(self.node)-1] - delta = point.sub(last) - self.ghost.trans.scaleFactor.setValue([delta.x,delta.y,delta.z]) - corr = Vector(self.node[0].x,self.node[0].y,self.node[0].z) - corr.scale(delta.x,delta.y,delta.z) - corr = DraftVecUtils.neg(corr.sub(self.node[0])) - self.ghost.trans.translation.setValue([corr.x,corr.y,corr.z]) + delta = self.point.sub(last) + if self.ghost: + self.ghost.scale(delta) + # calculate a correction factor depending on the scaling center + corr = Vector(self.node[0].x,self.node[0].y,self.node[0].z) + corr.scale(delta.x,delta.y,delta.z) + corr = DraftVecUtils.neg(corr.sub(self.node[0])) + self.ghost.move(corr) + self.ghost.on() if self.extendedCopy: if not hasMod(arg,MODALT): self.finish() elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): - point,ctrlPoint,info = getPoint(self,arg,sym=True) - if (self.node == []): - self.node.append(point) - self.ui.isRelative.show() - self.ui.isCopy.show() - self.ghost.on() - msg(translate("draft", "Pick scale factor:\n")) - else: - last = self.node[0] - if self.ui.isCopy.isChecked() or hasMod(arg,MODALT): - self.scale(point.sub(last),True) + if self.point: + if (self.node == []): + self.node.append(self.point) + self.ui.isRelative.show() + self.ui.isCopy.show() + if self.ghost: + self.ghost.on() + msg(translate("draft", "Pick scale factor:\n")) else: - self.scale(point.sub(last)) - if hasMod(arg,MODALT): - self.extendedCopy = True - else: - self.finish(cont=True) + last = self.node[0] + if self.ui.isCopy.isChecked() or hasMod(arg,MODALT): + self.scale(self.point.sub(last),True) + else: + self.scale(self.point.sub(last)) + if hasMod(arg,MODALT): + self.extendedCopy = True + else: + self.finish(cont=True) def numericInput(self,numx,numy,numz): "this function gets called by the toolbar when valid x, y, and z have been entered there" - point = Vector(numx,numy,numz) + self.point = Vector(numx,numy,numz) if not self.node: - self.node.append(point) + self.node.append(self.point) self.ui.isRelative.show() self.ui.isCopy.show() - self.ghost.on() + if self.ghost: + self.ghost.on() msg(translate("draft", "Pick scale factor:\n")) else: last = self.node[-1] if self.ui.isCopy.isChecked(): - self.scale(point.sub(last),True) + self.scale(self.point.sub(last),True) else: - self.scale(point.sub(last)) + self.scale(self.point.sub(last)) self.finish(cont=True) @@ -3116,9 +3121,8 @@ class Edit(Modifier): self.finish() elif arg["Type"] == "SoLocation2Event": #mouse movement detection if self.editing != None: - point,ctrlPoint,info = getPoint(self,arg) - - self.trackers[self.editing].set(point) + self.point,ctrlPoint,info = getPoint(self,arg) + self.trackers[self.editing].set(self.point) self.update(self.trackers[self.editing].get()) elif arg["Type"] == "SoMouseButtonEvent": if (arg["State"] == "DOWN") and (arg["Button"] == "BUTTON1"): @@ -3128,9 +3132,9 @@ class Edit(Modifier): sel = sel[0] if sel.ObjectName == self.obj.Name: if self.ui.addButton.isChecked(): - point,ctrlPoint,info = getPoint(self,arg) - self.pos = arg["Position"] - self.addPoint(point) + if self.point: + self.pos = arg["Position"] + self.addPoint(self.point) elif self.ui.delButton.isChecked(): if 'EditNode' in sel.SubElementNames[0]: self.delPoint(int(sel.SubElementNames[0][8:])) diff --git a/src/Mod/Draft/DraftTrackers.py b/src/Mod/Draft/DraftTrackers.py index 5ce092b5d2..be15757b6e 100644 --- a/src/Mod/Draft/DraftTrackers.py +++ b/src/Mod/Draft/DraftTrackers.py @@ -410,6 +410,7 @@ class ghostTracker(Tracker): Tracker.__init__(self,children=self.children) def update(self,obj): + "recreates the ghost from a new object" obj.ViewObject.show() self.finalize() sep = getNode(obj) @@ -417,16 +418,32 @@ class ghostTracker(Tracker): self.on() obj.ViewObject.hide() + def move(self,delta): + "moves the ghost to a given position, relative from its start position" + self.trans.translation.setValue([delta.x,delta.y,delta.z]) + + def rotate(self,axis,angle): + "rotates the ghost of a given angle" + self.trans.rotation.setValue(coin.SbVec3f(DraftVecUtils.tup(axis)),angle) + + def center(self,point): + "sets the rotation/scale center of the ghost" + self.trans.center.setValue(point.x,point.y,point.z) + + def scale(self,delta): + "scales the ghost by the given factor" + self.trans.scaleFactor.setValue([delta.x,delta.y,delta.z]) + def getNode(self,obj): "returns a coin node representing the given object" if isinstance(obj,Part.Shape): return self.getNodeLight(obj) elif obj.isDerivedFrom("Part::Feature"): - return self.getNodeLight(obj.Shape) + return self.getNodeFull(obj) else: return self.getNodeFull(obj) - def getNodeFull(self,obj): + def getNode(self,obj): "gets a coin node which is a full copy of the current representation" sep = coin.SoSeparator() try: @@ -437,6 +454,7 @@ class ghostTracker(Tracker): def getNodeLight(self,shape): "extract a lighter version directly from a shape" + # very error-prone, will be obsoleted ASAP sep = coin.SoSeparator() try: inputstr = coin.SoInput() From c01b3762586d20408493f3ae6d82ab46af3884e5 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 16 Nov 2012 16:26:07 +0100 Subject: [PATCH 07/16] 0000880: DLL load failed: The specified module could not be found --- src/WindowsInstaller/FreeCAD.wxs | 1 - src/WindowsInstaller/LibPack.wxs | 1 + src/WindowsInstaller/ModPlot.wxi | 72 +++++++++++--------------------- 3 files changed, 26 insertions(+), 48 deletions(-) diff --git a/src/WindowsInstaller/FreeCAD.wxs b/src/WindowsInstaller/FreeCAD.wxs index 5dcf7ac418..3194e5c57e 100644 --- a/src/WindowsInstaller/FreeCAD.wxs +++ b/src/WindowsInstaller/FreeCAD.wxs @@ -183,7 +183,6 @@ - diff --git a/src/WindowsInstaller/LibPack.wxs b/src/WindowsInstaller/LibPack.wxs index 6121468927..d49cc4ca69 100644 --- a/src/WindowsInstaller/LibPack.wxs +++ b/src/WindowsInstaller/LibPack.wxs @@ -150,6 +150,7 @@ + diff --git a/src/WindowsInstaller/ModPlot.wxi b/src/WindowsInstaller/ModPlot.wxi index c12fe57106..d83cb7832e 100644 --- a/src/WindowsInstaller/ModPlot.wxi +++ b/src/WindowsInstaller/ModPlot.wxi @@ -30,11 +30,9 @@ - - - + + From cef12a784c189215a83bb2f84b040beda50f9377 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Fri, 16 Nov 2012 19:13:50 +0100 Subject: [PATCH 08/16] Regenerated branch --- src/Mod/Ship/CMakeLists.txt | 59 +- src/Mod/Ship/Icons/DataIco.png | Bin 11365 -> 0 bytes src/Mod/Ship/Icons/DataIco.xcf | Bin 85943 -> 0 bytes src/Mod/Ship/Icons/DataIco.xpm | 1021 -- src/Mod/Ship/Icons/DiscretizeIco.png | Bin 14038 -> 0 bytes src/Mod/Ship/Icons/DiscretizeIco.xcf | Bin 54067 -> 0 bytes src/Mod/Ship/Icons/DiscretizeIco.xpm | 2028 ---- src/Mod/Ship/Icons/ReparametrizeIco.png | Bin 12178 -> 0 bytes src/Mod/Ship/Icons/ReparametrizeIco.xcf | Bin 53229 -> 0 bytes src/Mod/Ship/Icons/ReparametrizeIco.xpm | 1737 ---- src/Mod/Ship/InitGui.py | 119 +- src/Mod/Ship/Instance.py | 1114 +-- src/Mod/Ship/Makefile.am | 61 +- src/Mod/Ship/ShipGui.py | 101 +- src/Mod/Ship/Ship_rc.py | 8700 +++++++++++++++++ src/Mod/Ship/SimInstance.py | 1285 +-- src/Mod/Ship/TankInstance.py | 2642 ++--- src/Mod/Ship/makeResources.sh | 56 + src/Mod/Ship/resources/Ship.qrc | 38 + .../examples}/s60.fcstd | Bin .../examples}/s60_katamaran.fcstd | Bin .../examples}/wigley.fcstd | Bin .../examples}/wigley_katamaran.fcstd | Bin .../icons}/AreaCurveIco.png | Bin .../icons}/AreaCurveIco.xcf | Bin .../icons}/AreaCurveIco.xpm | 0 .../icons}/HydrostaticsIco.png | Bin .../icons}/HydrostaticsIco.xcf | Bin .../icons}/HydrostaticsIco.xpm | 0 .../Ship/{Icons => resources/icons}/Ico.png | Bin .../Ship/{Icons => resources/icons}/Ico.xcf | Bin .../Ship/{Icons => resources/icons}/Ico.xpm | 0 .../{Icons => resources/icons}/LoadIco.png | Bin .../{Icons => resources/icons}/LoadIco.xcf | Bin .../{Icons => resources/icons}/LoadIco.xpm | 0 .../icons}/OutlineDrawIco.png | Bin .../icons}/OutlineDrawIco.xcf | Bin .../icons}/OutlineDrawIco.xpm | 0 .../Ship/{Icons => resources/icons}/Ship.xcf | Bin .../Ship/{Icons => resources/icons}/Ship.xpm | 0 .../Ship/{Icons => resources/icons}/Sim.xpm | 0 .../icons}/SimCreateIco.png | Bin .../icons}/SimCreateIco.xcf | Bin .../icons}/SimCreateIco.xpm | 0 .../{Icons => resources/icons}/SimIco.xcf | Bin .../{Icons => resources/icons}/SimPostIco.png | Bin .../{Icons => resources/icons}/SimPostIco.xpm | 0 .../{Icons => resources/icons}/SimRunIco.png | Bin .../{Icons => resources/icons}/SimRunIco.xpm | 0 .../{Icons => resources/icons}/SimStopIco.png | Bin .../{Icons => resources/icons}/SimStopIco.xpm | 0 .../Ship/{Icons => resources/icons}/Tank.png | Bin .../Ship/{Icons => resources/icons}/Tank.xcf | Bin .../Ship/{Icons => resources/icons}/Tank.xpm | 0 .../{Icons => resources/icons}/Weight.png | Bin .../{Icons => resources/icons}/Weight.xcf | Bin .../{Icons => resources/icons}/Weight.xpm | 0 src/Mod/Ship/resources/translations/Ship.qm | 1 + src/Mod/Ship/resources/translations/Ship.ts | 863 ++ .../Ship/resources/translations/Ship_af.qm | 1 + .../Ship/resources/translations/Ship_af.ts | 863 ++ .../Ship/resources/translations/Ship_cs.qm | 1 + .../Ship/resources/translations/Ship_cs.ts | 863 ++ .../Ship/resources/translations/Ship_de.qm | 1 + .../Ship/resources/translations/Ship_de.ts | 863 ++ .../Ship/resources/translations/Ship_es-ES.qm | Bin 0 -> 20755 bytes .../Ship/resources/translations/Ship_es-ES.ts | 863 ++ .../Ship/resources/translations/Ship_fi.qm | 1 + .../Ship/resources/translations/Ship_fi.ts | 863 ++ .../Ship/resources/translations/Ship_fr.qm | 1 + .../Ship/resources/translations/Ship_fr.ts | 863 ++ .../Ship/resources/translations/Ship_hr.qm | 1 + .../Ship/resources/translations/Ship_hr.ts | 863 ++ .../Ship/resources/translations/Ship_hu.qm | 1 + .../Ship/resources/translations/Ship_hu.ts | 863 ++ .../Ship/resources/translations/Ship_it.qm | 1 + .../Ship/resources/translations/Ship_it.ts | 863 ++ .../Ship/resources/translations/Ship_ja.qm | 1 + .../Ship/resources/translations/Ship_ja.ts | 863 ++ .../Ship/resources/translations/Ship_nl.qm | 1 + .../Ship/resources/translations/Ship_nl.ts | 863 ++ .../Ship/resources/translations/Ship_no.qm | 1 + .../Ship/resources/translations/Ship_no.ts | 863 ++ .../Ship/resources/translations/Ship_pl.qm | 1 + .../Ship/resources/translations/Ship_pl.ts | 863 ++ .../Ship/resources/translations/Ship_pt-BR.qm | 1 + .../Ship/resources/translations/Ship_pt-BR.ts | 863 ++ .../Ship/resources/translations/Ship_ro.qm | 1 + .../Ship/resources/translations/Ship_ro.ts | 863 ++ .../Ship/resources/translations/Ship_ru.qm | 1 + .../Ship/resources/translations/Ship_ru.ts | 863 ++ .../Ship/resources/translations/Ship_sk.qm | 1 + .../Ship/resources/translations/Ship_sk.ts | 863 ++ .../Ship/resources/translations/Ship_sv-SE.qm | 1 + .../Ship/resources/translations/Ship_sv-SE.ts | 863 ++ .../Ship/resources/translations/Ship_tr.qm | 1 + .../Ship/resources/translations/Ship_tr.ts | 863 ++ .../Ship/resources/translations/Ship_uk.qm | 1 + .../Ship/resources/translations/Ship_uk.ts | 863 ++ .../Ship/resources/translations/Ship_zh-CN.qm | 1 + .../Ship/resources/translations/Ship_zh-CN.ts | 863 ++ .../Ship/resources/translations/Ship_zh-TW.qm | 1 + .../Ship/resources/translations/Ship_zh-TW.ts | 863 ++ src/Mod/Ship/shipAreasCurve/Plot.py | 211 - src/Mod/Ship/shipAreasCurve/PlotAux.py | 185 + src/Mod/Ship/shipAreasCurve/Preview.py | 124 +- src/Mod/Ship/shipAreasCurve/TaskPanel.py | 409 +- src/Mod/Ship/shipAreasCurve/TaskPanel.ui | 84 +- src/Mod/Ship/shipAreasCurve/__init__.py | 38 +- src/Mod/Ship/shipCreateShip/Preview.py | 238 +- src/Mod/Ship/shipCreateShip/TaskPanel.py | 384 +- src/Mod/Ship/shipCreateShip/TaskPanel.ui | 234 +- src/Mod/Ship/shipCreateShip/__init__.py | 38 +- src/Mod/Ship/shipHydrostatics/Plot.py | 345 - src/Mod/Ship/shipHydrostatics/PlotAux.py | 478 + src/Mod/Ship/shipHydrostatics/TaskPanel.py | 405 +- src/Mod/Ship/shipHydrostatics/TaskPanel.ui | 256 +- src/Mod/Ship/shipHydrostatics/Tools.py | 786 +- src/Mod/Ship/shipHydrostatics/__init__.py | 38 +- src/Mod/Ship/shipLoadExample/TaskPanel.py | 157 +- src/Mod/Ship/shipLoadExample/TaskPanel.ui | 92 +- src/Mod/Ship/shipLoadExample/__init__.py | 38 +- src/Mod/Ship/shipOutlineDraw/Plot.py | 221 +- src/Mod/Ship/shipOutlineDraw/Preview.py | 267 +- src/Mod/Ship/shipOutlineDraw/TaskPanel.py | 649 +- src/Mod/Ship/shipOutlineDraw/TaskPanel.ui | 258 +- src/Mod/Ship/shipOutlineDraw/__init__.py | 38 +- src/Mod/Ship/shipUtils/Math.py | 92 +- src/Mod/Ship/shipUtils/Paths.py | 84 +- src/Mod/Ship/shipUtils/Translator.py | 30 - src/Mod/Ship/simCreate/TaskPanel.py | 298 +- src/Mod/Ship/simCreate/__init__.py | 38 +- src/Mod/Ship/simPost/TaskPanel.py | 234 +- src/Mod/Ship/simPost/__init__.py | 42 +- src/Mod/Ship/simRun/Simulation.py | 216 +- src/Mod/Ship/simRun/TaskPanel.py | 348 +- src/Mod/Ship/simRun/__init__.py | 42 +- src/Mod/Ship/tankCreateTank/TaskPanel.py | 278 +- src/Mod/Ship/tankCreateTank/TaskPanel.ui | 216 +- src/Mod/Ship/tankCreateTank/__init__.py | 38 +- src/Mod/Ship/tankGZ/Plot.py | 186 - src/Mod/Ship/tankGZ/PlotAux.py | 154 + src/Mod/Ship/tankGZ/TaskPanel.py | 701 +- src/Mod/Ship/tankGZ/TaskPanel.ui | 310 +- src/Mod/Ship/tankGZ/__init__.py | 38 +- src/Mod/Ship/tankWeights/Preview.py | 178 +- src/Mod/Ship/tankWeights/TaskPanel.py | 434 +- src/Mod/Ship/tankWeights/TaskPanel.ui | 2 +- src/Mod/Ship/tankWeights/__init__.py | 38 +- src/WindowsInstaller/FreeCAD.wxs | 2 + src/WindowsInstaller/ModShip.wxi | 112 +- 151 files changed, 35919 insertions(+), 12997 deletions(-) delete mode 100644 src/Mod/Ship/Icons/DataIco.png delete mode 100644 src/Mod/Ship/Icons/DataIco.xcf delete mode 100644 src/Mod/Ship/Icons/DataIco.xpm delete mode 100644 src/Mod/Ship/Icons/DiscretizeIco.png delete mode 100644 src/Mod/Ship/Icons/DiscretizeIco.xcf delete mode 100644 src/Mod/Ship/Icons/DiscretizeIco.xpm delete mode 100644 src/Mod/Ship/Icons/ReparametrizeIco.png delete mode 100644 src/Mod/Ship/Icons/ReparametrizeIco.xcf delete mode 100644 src/Mod/Ship/Icons/ReparametrizeIco.xpm create mode 100644 src/Mod/Ship/Ship_rc.py create mode 100755 src/Mod/Ship/makeResources.sh create mode 100644 src/Mod/Ship/resources/Ship.qrc rename src/Mod/Ship/{Examples => resources/examples}/s60.fcstd (100%) rename src/Mod/Ship/{Examples => resources/examples}/s60_katamaran.fcstd (100%) rename src/Mod/Ship/{Examples => resources/examples}/wigley.fcstd (100%) rename src/Mod/Ship/{Examples => resources/examples}/wigley_katamaran.fcstd (100%) rename src/Mod/Ship/{Icons => resources/icons}/AreaCurveIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/AreaCurveIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/AreaCurveIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/HydrostaticsIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/HydrostaticsIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/HydrostaticsIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ico.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ico.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ico.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/LoadIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/LoadIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/LoadIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/OutlineDrawIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/OutlineDrawIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/OutlineDrawIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ship.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ship.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Sim.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimCreateIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimCreateIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimCreateIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimPostIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimPostIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimRunIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimRunIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimStopIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimStopIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Tank.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/Tank.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/Tank.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Weight.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/Weight.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/Weight.xpm (100%) create mode 100644 src/Mod/Ship/resources/translations/Ship.qm create mode 100644 src/Mod/Ship/resources/translations/Ship.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_af.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_af.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_cs.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_cs.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_de.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_de.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_es-ES.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_es-ES.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_fi.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_fi.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_fr.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_fr.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_hr.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_hr.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_hu.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_hu.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_it.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_it.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_ja.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_ja.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_nl.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_nl.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_no.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_no.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_pl.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_pl.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_pt-BR.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_pt-BR.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_ro.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_ro.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_ru.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_ru.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_sk.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_sk.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_sv-SE.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_sv-SE.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_tr.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_tr.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_uk.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_uk.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_zh-CN.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_zh-CN.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_zh-TW.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_zh-TW.ts delete mode 100644 src/Mod/Ship/shipAreasCurve/Plot.py create mode 100644 src/Mod/Ship/shipAreasCurve/PlotAux.py delete mode 100644 src/Mod/Ship/shipHydrostatics/Plot.py create mode 100644 src/Mod/Ship/shipHydrostatics/PlotAux.py delete mode 100644 src/Mod/Ship/shipUtils/Translator.py delete mode 100644 src/Mod/Ship/tankGZ/Plot.py create mode 100644 src/Mod/Ship/tankGZ/PlotAux.py diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index cb2a119ba9..9ca8c21bbc 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -4,60 +4,20 @@ SET(ShipMain_SRCS Instance.py SimInstance.py TankInstance.py + Ship_rc.py ) SOURCE_GROUP("" FILES ${ShipMain_SRCS}) SET(ShipIcons_SRCS - Icons/AreaCurveIco.png - Icons/AreaCurveIco.xcf - Icons/AreaCurveIco.xpm - Icons/DataIco.png - Icons/DataIco.xcf - Icons/DataIco.xpm - Icons/DiscretizeIco.png - Icons/DiscretizeIco.xcf - Icons/DiscretizeIco.xpm - Icons/HydrostaticsIco.png - Icons/HydrostaticsIco.xcf - Icons/HydrostaticsIco.xpm - Icons/Ico.png - Icons/Ico.xcf - Icons/Ico.xpm - Icons/LoadIco.png - Icons/LoadIco.xcf - Icons/LoadIco.xpm - Icons/OutlineDrawIco.png - Icons/OutlineDrawIco.xcf - Icons/OutlineDrawIco.xpm - Icons/ReparametrizeIco.png - Icons/ReparametrizeIco.xcf - Icons/ReparametrizeIco.xpm - Icons/Ship.xcf - Icons/Ship.xpm - Icons/Weight.png - Icons/Weight.xcf - Icons/Weight.xpm - Icons/SimIco.xcf - Icons/Sim.xpm - Icons/SimCreateIco.png - Icons/SimCreateIco.xpm - Icons/SimRunIco.png - Icons/SimRunIco.xpm - Icons/SimStopIco.png - Icons/SimStopIco.xpm - Icons/SimPostIco.png - Icons/SimPostIco.xpm - Icons/Tank.png - Icons/Tank.xcf - Icons/Tank.xpm + resources/icons/Ico.xpm ) SOURCE_GROUP("shipicons" FILES ${ShipIcons_SRCS}) SET(ShipExamples_SRCS - Examples/s60.fcstd - Examples/s60_katamaran.fcstd - Examples/wigley.fcstd - Examples/wigley_katamaran.fcstd + resources/examples/s60.fcstd + resources/examples/s60_katamaran.fcstd + resources/examples/wigley.fcstd + resources/examples/wigley_katamaran.fcstd ) SOURCE_GROUP("shipexamples" FILES ${ShipExamples_SRCS}) @@ -87,7 +47,7 @@ SOURCE_GROUP("shipoutlinedraw" FILES ${ShipOutlineDraw_SRCS}) SET(ShipAreasCurve_SRCS shipAreasCurve/__init__.py - shipAreasCurve/Plot.py + shipAreasCurve/PlotAux.py shipAreasCurve/Preview.py shipAreasCurve/TaskPanel.py shipAreasCurve/TaskPanel.ui @@ -96,7 +56,7 @@ SOURCE_GROUP("shipareascurve" FILES ${ShipAreasCurve_SRCS}) SET(ShipHydrostatics_SRCS shipHydrostatics/__init__.py - shipHydrostatics/Plot.py + shipHydrostatics/PlotAux.py shipHydrostatics/TaskPanel.py shipHydrostatics/TaskPanel.ui shipHydrostatics/Tools.py @@ -107,7 +67,6 @@ SET(ShipUtils_SRCS shipUtils/__init__.py shipUtils/Math.py shipUtils/Paths.py - shipUtils/Translator.py ) SOURCE_GROUP("shiputils" FILES ${ShipUtils_SRCS}) @@ -128,7 +87,7 @@ SOURCE_GROUP("shipcreatetank" FILES ${ShipCreateTank_SRCS}) SET(ShipGZ_SRCS tankGZ/__init__.py - tankGZ/Plot.py + tankGZ/PlotAux.py tankGZ/TaskPanel.py tankGZ/TaskPanel.ui ) diff --git a/src/Mod/Ship/Icons/DataIco.png b/src/Mod/Ship/Icons/DataIco.png deleted file mode 100644 index 223338ceae17dcf8c11298f9d79b76cdaeb8f68d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11365 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 Y)4}H8-f2<+9ry*vNhwR#ikpP|2Nop=iU0rr diff --git a/src/Mod/Ship/Icons/DataIco.xcf b/src/Mod/Ship/Icons/DataIco.xcf deleted file mode 100644 index 81e05ac42dbb609ebfb16f223a591fcbdc7753fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85943 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 h0~b`s#Lczj0mLT~s7GeMZ diff --git a/src/Mod/Ship/Icons/DataIco.xpm b/src/Mod/Ship/Icons/DataIco.xpm deleted file mode 100644 index 19aed7ffa0..0000000000 --- a/src/Mod/Ship/Icons/DataIco.xpm +++ /dev/null @@ -1,1021 +0,0 @@ -/* XPM */ -static char * DataIco_xpm[] = { -"128 128 890 2", -" c None", -". c #A7A7A7", -"+ c #A7A7A6", -"@ c #A6A5A6", -"# c #A5A6A5", -"$ c #A5A5A5", -"% c #A5A5A4", -"& c #A4A4A4", -"* c #A7A7A8", -"= c #A6A6A6", -"- c #A5A4A5", -"; c #A5A4A4", -"> c #A8A8A7", -", c #A8A7A7", -"' c #979797", -") c #989898", -"! c #999899", -"~ c #A5A6A6", -"{ c #A8A8A8", -"] c #A7A8A8", -"^ c #979898", -"/ c #999999", -"( c #999A9A", -"_ c #A9A9A8", -": c #99999A", -"< c #9A9A9B", -"[ c #B2B2B2", -"} c #A9A9AA", -"| c #A9A9A9", -"1 c #9B9A9A", -"2 c #9C9B9B", -"3 c #A7A6A6", -"4 c #B3B4B3", -"5 c #B3B3B3", -"6 c #AAAAAA", -"7 c #9A9A9A", -"8 c #9B9B9B", -"9 c #9C9C9C", -"0 c #A7A6A7", -"a c #9E9E9E", -"b c #9D9D9D", -"c c #B5B5B5", -"d c #B5B4B5", -"e c #B4B4B4", -"f c #B4B3B4", -"g c #B2B3B3", -"h c #9D9C9C", -"i c #9F9E9E", -"j c #9E9E9F", -"k c #B7B6B7", -"l c #B6B6B6", -"m c #B6B5B5", -"n c #B4B4B5", -"o c #828181", -"p c #B3B3B4", -"q c #ABAAAB", -"r c #9C9C9B", -"s c #9C9C9D", -"t c #9F9FA0", -"u c #9E9F9E", -"v c #9E9F9F", -"w c #9E9D9E", -"x c #9E9D9D", -"y c #9C9D9C", -"z c #807F7F", -"A c #818080", -"B c #828281", -"C c #B4B5B4", -"D c #ABABAB", -"E c #A9A8A8", -"F c #A0A0A0", -"G c #A09FA0", -"H c #9F9F9F", -"I c #ADADAD", -"J c #ADAEAE", -"K c #9D9D9E", -"L c #B7B7B7", -"M c #B6B6B5", -"N c #818081", -"O c #828282", -"P c #838383", -"Q c #ADADAC", -"R c #ABACAC", -"S c #ABACAB", -"T c #A8A9A8", -"U c #A6A7A7", -"V c #A0A1A0", -"W c #AFAFAF", -"X c #B7B6B6", -"Y c #818181", -"Z c #828383", -"` c #848383", -" . c #B4B3B3", -".. c #AFB0AF", -"+. c #AEAEAF", -"@. c #AFAEAE", -"#. c #AEAEAE", -"$. c #ACADAD", -"%. c #ACACAC", -"&. c #A0A1A1", -"*. c #A5A5A6", -"=. c #A1A2A2", -"-. c #A1A1A1", -";. c #A1A1A0", -">. c #B0B0B0", -",. c #B1B1B0", -"'. c #838382", -"). c #848484", -"!. c #858585", -"~. c #B5B5B4", -"{. c #B4B4B3", -"]. c #B2B1B2", -"^. c #B1B1B1", -"/. c #B0B1B0", -"(. c #AEAFAF", -"_. c #9C9D9D", -":. c #9E9E9D", -"<. c #A2A2A2", -"[. c #A3A3A4", -"}. c #A6A6A5", -"|. c #A4A4A5", -"1. c #A1A2A1", -"2. c #B2B1B1", -"3. c #A09F9F", -"4. c #B7B7B8", -"5. c #B6B6B7", -"6. c #868585", -"7. c #868786", -"8. c #B3B2B3", -"9. c #B2B2B3", -"0. c #B1B2B1", -"a. c #B0B1B1", -"b. c #949494", -"c. c #959595", -"d. c #969696", -"e. c #979798", -"f. c #989899", -"g. c #A0A09F", -"h. c #A3A3A3", -"i. c #A4A4A3", -"j. c #A6A5A5", -"k. c #A4A3A3", -"l. c #A3A2A2", -"m. c #A1A0A0", -"n. c #B8B8B8", -"o. c #848584", -"p. c #858686", -"q. c #868787", -"r. c #888888", -"s. c #919090", -"t. c #919192", -"u. c #929392", -"v. c #969697", -"w. c #979897", -"x. c #999898", -"y. c #9D9C9D", -"z. c #A8A7A8", -"A. c #A8A9A9", -"B. c #A9AAAA", -"C. c #AAABAB", -"D. c #ACACAD", -"E. c #A4A5A4", -"F. c #A3A2A3", -"G. c #B3B4B4", -"H. c #898888", -"I. c #898989", -"J. c #8B8A8A", -"K. c #8C8C8B", -"L. c #8D8D8D", -"M. c #8E8E8E", -"N. c #8F8F8F", -"O. c #909090", -"P. c #929291", -"Q. c #939393", -"R. c #959495", -"S. c #969695", -"T. c #979796", -"U. c #9B9B9C", -"V. c #A0A0A1", -"W. c #AAAAA9", -"X. c #ACABAB", -"Y. c #ACADAC", -"Z. c #AEADAE", -"`. c #AFB0B0", -" + c #B1B0B1", -".+ c #B3B2B2", -"++ c #A2A1A2", -"@+ c #B7B8B7", -"#+ c #878787", -"$+ c #888988", -"%+ c #8A8A8A", -"&+ c #8A8B8B", -"*+ c #8C8C8C", -"=+ c #8E8D8D", -"-+ c #8F8E8F", -";+ c #919091", -">+ c #929292", -",+ c #949495", -"'+ c #969596", -")+ c #9B9C9C", -"!+ c #A2A3A3", -"~+ c #A7A8A7", -"{+ c #AEAFAE", -"]+ c #A2A1A1", -"^+ c #B9B8B8", -"/+ c #868686", -"(+ c #888787", -"_+ c #898889", -":+ c #8B8B8B", -"<+ c #8D8E8D", -"[+ c #8F8E8E", -"}+ c #919191", -"|+ c #939392", -"1+ c #949393", -"2+ c #959494", -"3+ c #989798", -"4+ c #989998", -"5+ c #9A9999", -"6+ c #9A9B9B", -"7+ c #A1A0A1", -"8+ c #ACABAC", -"9+ c #B0AFB0", -"0+ c #B8B8B7", -"a+ c #A2A3A2", -"b+ c #B9B9B9", -"c+ c #868687", -"d+ c #878887", -"e+ c #8D8C8C", -"f+ c #8F8F8E", -"g+ c #909091", -"h+ c #929192", -"i+ c #939493", -"j+ c #9A9A99", -"k+ c #9D9D9C", -"l+ c #A2A2A3", -"m+ c #A4A5A5", -"n+ c #AAA9A9", -"o+ c #B2B2B1", -"p+ c #BABABA", -"q+ c #BAB9BA", -"r+ c #B9B9BA", -"s+ c #878687", -"t+ c #888887", -"u+ c #8C8C8D", -"v+ c #929393", -"w+ c #949493", -"x+ c #969796", -"y+ c #A1A1A2", -"z+ c #A6A6A7", -"A+ c #A9A8A9", -"B+ c #AFAEAF", -"C+ c #B0AFAF", -"D+ c #B5B6B6", -"E+ c #B8B7B8", -"F+ c #BABAB9", -"G+ c #BBBBBA", -"H+ c #BABABB", -"I+ c #8C8D8C", -"J+ c #8E8D8E", -"K+ c #919190", -"L+ c #929191", -"M+ c #939293", -"N+ c #979697", -"O+ c #999998", -"P+ c #9C9B9C", -"Q+ c #A6A7A6", -"R+ c #ABABAC", -"S+ c #ADACAC", -"T+ c #BCBBBB", -"U+ c #A3A3A2", -"V+ c #BCBCBC", -"W+ c #BBBBBC", -"X+ c #BBBBBB", -"Y+ c #979696", -"Z+ c #989797", -"`+ c #9FA09F", -" @ c #ABAAAA", -".@ c #ACACAB", -"+@ c #B0B0AF", -"@@ c #B3B3B2", -"#@ c #B6B7B7", -"$@ c #B9B9B8", -"%@ c #BBBCBB", -"&@ c #BCBDBC", -"*@ c #BDBCBD", -"=@ c #BDBDBD", -"-@ c #818182", -";@ c #858586", -">@ c #8B8B8C", -",@ c #8C8D8D", -"'@ c #8F9090", -")@ c #909190", -"!@ c #919292", -"~@ c #959695", -"{@ c #9D9E9D", -"]@ c #AAAAAB", -"^@ c #BBBABA", -"/@ c #BBBCBC", -"(@ c #BEBDBD", -"_@ c #BEBDBE", -":@ c #BBBABB", -"<@ c #C3C3C4", -"[@ c #BDBDBE", -"}@ c #808181", -"|@ c #828283", -"1@ c #848485", -"2@ c #868685", -"3@ c #8B8C8B", -"4@ c #908F8F", -"5@ c #B1B0B0", -"6@ c #AFAFAE", -"7@ c #ADAEAD", -"8@ c #BEBFBE", -"9@ c #BEBEBE", -"0@ c #B9BAB9", -"a@ c #C4C4C4", -"b@ c #C3C3C3", -"c@ c #C3C2C3", -"d@ c #BFBFBE", -"e@ c #7F7F80", -"f@ c #878686", -"g@ c #8A8B8A", -"h@ c #8D8E8E", -"i@ c #929293", -"j@ c #AFAFB0", -"k@ c #AEAEAD", -"l@ c #AEADAD", -"m@ c #B5B5B6", -"n@ c #BABBBA", -"o@ c #BCBBBC", -"p@ c #BDBEBD", -"q@ c #C5C5C5", -"r@ c #C3C4C3", -"s@ c #BFC0C0", -"t@ c #BFBFBF", -"u@ c #7E7E7E", -"v@ c #7F7F7F", -"w@ c #808081", -"x@ c #818281", -"y@ c #838282", -"z@ c #8F8F90", -"A@ c #B9BABA", -"B@ c #BABBBB", -"C@ c #9FA0A0", -"D@ c #C4C5C4", -"E@ c #6F6F6F", -"F@ c #C4C3C4", -"G@ c #C2C3C3", -"H@ c #C3C3C2", -"I@ c #C0C0C0", -"J@ c #7C7D7C", -"K@ c #808080", -"L@ c #838283", -"M@ c #858685", -"N@ c #B8B9B8", -"O@ c #B8B9B9", -"P@ c #B8B7B7", -"Q@ c #A2A2A1", -"R@ c #C6C6C6", -"S@ c #6D6E6D", -"T@ c #6F6E6F", -"U@ c #707071", -"V@ c #C3C4C4", -"W@ c #C4C3C3", -"X@ c #C2C2C2", -"Y@ c #C2C1C1", -"Z@ c #C1C1C1", -"`@ c #C1C0C1", -" # c #7D7D7D", -".# c #7E7D7E", -"+# c #888989", -"@# c #8C8B8B", -"## c #B9B8B9", -"$# c #C7C7C7", -"%# c #6E6D6E", -"&# c #707070", -"*# c #717172", -"=# c #727372", -"-# c #C3C2C2", -";# c #7B7B7B", -"># c #7D7D7E", -",# c #828382", -"'# c #848483", -")# c #858584", -"!# c #888788", -"~# c #888889", -"{# c #B7B8B8", -"]# c #ADACAD", -"^# c #C7C8C8", -"/# c #C6C7C7", -"(# c #C6C7C6", -"_# c #C5C6C5", -":# c #717271", -"<# c #727272", -"[# c #747374", -"}# c #757575", -"|# c #767676", -"1# c #777878", -"2# c #797978", -"3# c #797A7A", -"4# c #7D7E7D", -"5# c #878788", -"6# c #959596", -"7# c #AAABAA", -"8# c #B1B2B2", -"9# c #C6C6C5", -"0# c #717171", -"a# c #737372", -"b# c #777777", -"c# c #797879", -"d# c #7A7A7A", -"e# c #7C7C7D", -"f# c #7E7D7D", -"g# c #7E7F7F", -"h# c #B6B7B6", -"i# c #C7C6C7", -"j# c #737474", -"k# c #747574", -"l# c #767675", -"m# c #797878", -"n# c #7B7C7C", -"o# c #7F7E7F", -"p# c #939494", -"q# c #C5C6C6", -"r# c #757474", -"s# c #787878", -"t# c #797A79", -"u# c #7A7A7B", -"v# c #767777", -"w# c #797979", -"x# c #7B7B7A", -"y# c #7C7C7B", -"z# c #7D7D7C", -"A# c #808180", -"B# c #BEBFBF", -"C# c #B2B3B2", -"D# c #ABABAA", -"E# c #747474", -"F# c #767677", -"G# c #787777", -"H# c #7C7B7B", -"I# c #7D7C7C", -"J# c #B1B1B2", -"K# c #A4A3A4", -"L# c #C7C7C6", -"M# c #747473", -"N# c #7A7A79", -"O# c #C1C0C0", -"P# c #C7C8C7", -"Q# c #737373", -"R# c #787879", -"S# c #7C7B7C", -"T# c #B7B7B6", -"U# c #C1C1C0", -"V# c #AAA9AA", -"W# c #C8C8C8", -"X# c #C8C8C7", -"Y# c #737374", -"Z# c #7A7979", -"`# c #7A7B7A", -" $ c #C8C9C8", -".$ c #C8C8C9", -"+$ c #727171", -"@$ c #757576", -"#$ c #777677", -"$$ c #C2C2C1", -"%$ c #CAC9C9", -"&$ c #C8C9C9", -"*$ c #737273", -"=$ c #7C7C7C", -"-$ c #A9AAA9", -";$ c #CACBCA", -">$ c #C9C9CA", -",$ c #757676", -"'$ c #777877", -")$ c #C4C4C3", -"!$ c #CBCBCB", -"~$ c #CBCACB", -"{$ c #6F7070", -"]$ c #757475", -"^$ c #787877", -"/$ c #7B7A7A", -"($ c #8E8E8F", -"_$ c #C5C5C4", -":$ c #CBCACA", -"<$ c #717071", -"[$ c #727271", -"}$ c #767575", -"|$ c #767776", -"1$ c #787978", -"2$ c #A3A4A3", -"3$ c #6F6F6E", -"4$ c #737473", -"5$ c #79797A", -"6$ c #C5C5C6", -"7$ c #CDCCCD", -"8$ c #CCCCCC", -"9$ c #CBCCCC", -"0$ c #70706F", -"a$ c #707171", -"b$ c #C6C6C7", -"c$ c #ADADAE", -"d$ c #9F9F9E", -"e$ c #CDCDCC", -"f$ c #CCCDCD", -"g$ c #6D6D6D", -"h$ c #6E6E6E", -"i$ c #706F6F", -"j$ c #727172", -"k$ c #737272", -"l$ c #747373", -"m$ c #777676", -"n$ c #9D9E9E", -"o$ c #CDCECE", -"p$ c #CDCDCD", -"q$ c #6D6D6C", -"r$ c #757675", -"s$ c #C8C7C7", -"t$ c #CECECE", -"u$ c #CECDCE", -"v$ c #6C6C6C", -"w$ c #9F9E9F", -"x$ c #D3D3D3", -"y$ c #D2D3D2", -"z$ c #D2D2D2", -"A$ c #D2D2D1", -"B$ c #D1D1D1", -"C$ c #D0D0D1", -"D$ c #D0D0D0", -"E$ c #D0D0CF", -"F$ c #D0CFCF", -"G$ c #CFCFCF", -"H$ c #CFCECF", -"I$ c #727273", -"J$ c #C9C8C9", -"K$ c #9B9A9B", -"L$ c #D3D4D3", -"M$ c #D3D2D2", -"N$ c #D2D1D1", -"O$ c #D1D1D0", -"P$ c #CECFCE", -"Q$ c #6A6A6A", -"R$ c #6B6C6C", -"S$ c #6C6D6D", -"T$ c #757574", -"U$ c #C9C9C9", -"V$ c #9B9B9A", -"W$ c #9A9B9A", -"X$ c #D4D4D4", -"Y$ c #D3D4D4", -"Z$ c #5F5F5F", -"`$ c #606061", -" % c #616161", -".% c #636263", -"+% c #646464", -"@% c #656465", -"#% c #666666", -"$% c #676767", -"%% c #686969", -"&% c #696A69", -"*% c #6B6B6B", -"=% c #706F70", -"-% c #CAC9CA", -";% c #9A999A", -">% c #969797", -",% c #D4D5D4", -"'% c #5F5F5E", -")% c #606060", -"!% c #626263", -"~% c #636463", -"{% c #656566", -"]% c #686868", -"^% c #696969", -"/% c #6E6F6F", -"(% c #717170", -"_% c #C9CAC9", -":% c #CACACA", -"<% c #B0B0B1", -"[% c #D4D5D5", -"}% c #D4D4D5", -"|% c #606161", -"1% c #626261", -"2% c #636363", -"3% c #656565", -"4% c #696869", -"5% c #6C6B6C", -"6% c #707170", -"7% c #717272", -"8% c #CBCBCA", -"9% c #989999", -"0% c #D5D5D5", -"a% c #D5D4D4", -"b% c #D2D3D3", -"c% c #D0D1D1", -"d% c #6A6B6B", -"e% c #6B6B6C", -"f% c #6D6C6D", -"g% c #6E6E6D", -"h% c #949595", -"i% c #949594", -"j% c #D6D5D6", -"k% c #D5D4D5", -"l% c #D3D3D4", -"m% c #D3D2D3", -"n% c #D1D2D2", -"o% c #69696A", -"p% c #6F6E6E", -"q% c #959696", -"r% c #939394", -"s% c #D1D2D1", -"t% c #6D6E6E", -"u% c #6E6F6E", -"v% c #CBCCCB", -"w% c #676768", -"x% c #696868", -"y% c #6A696A", -"z% c #6B6C6B", -"A% c #CCCCCD", -"B% c #666766", -"C% c #6F706F", -"D% c #807F80", -"E% c #919291", -"F% c #909191", -"G% c #90908F", -"H% c #676766", -"I% c #676867", -"J% c #6D6D6E", -"K% c #C1C1C2", -"L% c #B5B4B4", -"M% c #908F90", -"N% c #676666", -"O% c #6B6A6A", -"P% c #6C6B6B", -"Q% c #6D6C6C", -"R% c #8E8F8E", -"S% c #666767", -"T% c #686968", -"U% c #6A6969", -"V% c #CECECD", -"W% c #8F908F", -"X% c #8D8C8D", -"Y% c #8D8D8C", -"Z% c #656666", -"`% c #676667", -" & c #8C8B8C", -".& c #CECFCF", -"+& c #8B8B8A", -"@& c #D5D5D4", -"#& c #666565", -"$& c #676868", -"%& c #B8B8B9", -"&& c #D6D6D5", -"*& c #646364", -"=& c #CFD0CF", -"-& c #CFCECE", -";& c #8A8A8B", -">& c #898A8A", -",& c #8A8989", -"'& c #D6D6D6", -")& c #646564", -"!& c #89898A", -"~& c #898A89", -"{& c #8A8A89", -"]& c #878888", -"^& c #626262", -"/& c #646465", -"(& c #D6D6D7", -"_& c #D7D6D6", -":& c #636362", -"<& c #636464", -"[& c #656665", -"}& c #686867", -"|& c #D0CFD0", -"1& c #D7D7D7", -"2& c #D6D7D7", -"3& c #6E6D6D", -"4& c #CFD0D0", -"5& c #BCBCBB", -"6& c #838483", -"7& c #D8D9D8", -"8& c #D8D8D7", -"9& c #656564", -"0& c #6A6B6A", -"a& c #BCBDBD", -"b& c #858485", -"c& c #848384", -"d& c #838484", -"e& c #DAD9DA", -"f& c #D9D9D9", -"g& c #D8D8D8", -"h& c #5E5E5E", -"i& c #5F5F60", -"j& c #606160", -"k& c #636364", -"l& c #838384", -"m& c #818282", -"n& c #DBDBDB", -"o& c #DADADA", -"p& c #DAD9D9", -"q& c #5D5D5D", -"r& c #5E5D5E", -"s& c #5E5F5E", -"t& c #605F5F", -"u& c #686768", -"v& c #BFBEBF", -"w& c #828182", -"x& c #7F8080", -"y& c #B4B5B5", -"z& c #DCDCDC", -"A& c #DCDCDB", -"B& c #DBDADB", -"C& c #5A5A5A", -"D& c #5A5B5B", -"E& c #5C5C5C", -"F& c #605F60", -"G& c #616160", -"H& c #696A6A", -"I& c #6B6A6B", -"J& c #6C6C6D", -"K& c #818180", -"L& c #7F7F7E", -"M& c #DDDCDD", -"N& c #DCDDDD", -"O& c #585858", -"P& c #595859", -"Q& c #595A59", -"R& c #5B5A5A", -"S& c #5B5B5C", -"T& c #D8D9D9", -"U& c #D8D7D8", -"V& c #626162", -"W& c #636262", -"X& c #646463", -"Y& c #666667", -"Z& c #80807F", -"`& c #7F807F", -" * c #7F7E7E", -".* c #DDDDDD", -"+* c #DDDDDC", -"@* c #575657", -"#* c #585857", -"$* c #595959", -"%* c #D9DADA", -"&* c #D8D8D9", -"** c #696968", -"=* c #6C6C6B", -"-* c #C1C2C1", -";* c #C2C1C2", -">* c #7E7F7E", -",* c #7E7E7D", -"'* c #BAB9B9", -")* c #7B7B7C", -"!* c #DCDCDD", -"~* c #575757", -"{* c #DBDCDC", -"]* c #DBDADA", -"^* c #D9DAD9", -"/* c #D7D6D7", -"(* c #616162", -"_* c #6A6A69", -":* c #6C6D6C", -"<* c #C0BFBF", -"[* c #CECECF", -"}* c #C2C2C3", -"|* c #7D7E7E", -"1* c #7C7D7D", -"2* c #DCDBDC", -"3* c #DCDBDB", -"4* c #616262", -"5* c #626362", -"6* c #C8C7C8", -"7* c #C5C4C5", -"8* c #DEDEDE", -"9* c #D7D8D7", -"0* c #626363", -"a* c #686767", -"b* c #CECDCD", -"c* c #7A7B7B", -"d* c #7B7A7B", -"e* c #A4A2A2", -"f* c #DEDDDD", -"g* c #D9D8D8", -"h* c #616061", -"i* c #626161", -"j* c #646565", -"k* c #CCCBCB", -"l* c #CACBCB", -"m* c #7A797A", -"n* c #BCBCBD", -"o* c #AEB0B0", -"p* c #A9A7A7", -"q* c #D7D8D8", -"r* c #616060", -"s* c #6A6A6B", -"t* c #C4C5C5", -"u* c #CACAC9", -"v* c #787778", -"w* c #787979", -"x* c #A8A8A9", -"y* c #656464", -"z* c #686869", -"A* c #727373", -"B* c #777778", -"C* c #A6A6A4", -"D* c #A3A3A5", -"E* c #6E6E6F", -"F* c #D8D7D7", -"G* c #747475", -"H* c #747575", -"I* c #C0C1C0", -"J* c #D9D8D9", -"K* c #C0C1C1", -"L* c #646363", -"M* c #949394", -"N* c #5F6060", -"O* c #666566", -"P* c #AAAAA8", -"Q* c #5F5E5F", -"R* c #5D5D5E", -"S* c #5F605F", -"T* c #6B6B6A", -"U* c #5D5D5C", -"V* c #DBDBDA", -"W* c #5A5A5B", -"X* c #5B5B5B", -"Y* c #5B5C5C", -"Z* c #D6D7D6", -"`* c #D6D5D5", -" = c #666665", -".= c #C9CACA", -"+= c #C4C4C5", -"@= c #5A595A", -"#= c #5B5B5A", -"$= c #D9D9D8", -"%= c #D5D6D6", -"&= c #D4D3D4", -"*= c #CCCBCC", -"== c #CACACB", -"-= c #B9B7B9", -";= c #DBDBDC", -">= c #585757", -",= c #D9D9DA", -"'= c #D4D4D3", -")= c #D3D3D2", -"!= c #CDCDCE", -"~= c #CDCCCC", -"{= c #CBCBCC", -"]= c #C7C7C8", -"^= c #C5C4C4", -"/= c #B5B7B7", -"(= c #A9A9A7", -"_= c #565555", -":= c #565656", -"<= c #DADBDB", -"[= c #DEDEDD", -"}= c #555454", -"|= c #555555", -"1= c #767576", -"2= c #DFDEDF", -"3= c #DDDEDD", -"4= c #545554", -"5= c #D1D0D1", -"6= c #DDDEDE", -"7= c #DDDDDE", -"8= c #D0D1D0", -"9= c #C7C6C6", -"0= c #777776", -"a= c #5E5F5F", -"b= c #5E5E5F", -"c= c #5C5C5D", -"d= c #5C5D5C", -"e= c #BBB9B9", -"f= c #5B5C5B", -"g= c #D4D3D3", -"h= c #959594", -"i= c #5B5A5B", -"j= c #A7A5A5", -"k= c #AAAAAC", -"l= c #D5D6D5", -"m= c #8E8F8F", -"n= c #6A6A6C", -"o= c #828482", -"p= c #CBCDCB", -"q= c #ABAAA9", -"r= c #A3A4A4", -"s= c #6F6F70", -"t= c #757577", -"u= c #C7C7C5", -"v= c #C0C2C2", -"w= c #D5D5D7", -" ", -" ", -" . + @ # $ % & ", -" * . = # $ - ; ", -" > , ' ) ! ~ $ ", -" { ] ^ / ( @ # ", -" _ { ) : < = ~ ", -" [ [ } | / 1 2 3 + ", -" 4 5 [ 6 | 7 8 9 ] 0 a b ", -" c d e f 4 g 6 6 < 9 h { . i j b b b ", -" k l m c n o p 5 q 6 r s b { ] t u v w x b y ", -" l l z A B C f 5 D 6 9 b a E { F G H I J a K b ", -" L l M N O P e e I I Q R S D b w H | | T * . U . V F W W W j a K ", -" L X Y Z ` d e . ..W +.@.#.I I $.%.9 b i t &.| E { > , U 0 = *.$ =.-.;.>.,.>.H v ", -" L k l '.).!.~.e {. ].^./.>.>.W (.#.) / 7 8 _.:.H F -.<.[.& }.+ * U 0 = ~ *.; |. <.1.^.^.2.3.t i ", -" 4.L 5.).6.7.e n e 5 8.9.[ 0.a.,.b.c.d.e.f.: 8 9 b a g.F <.h.i.$ = . { | 6 D = j.# |.& & k.h.l.<.g g 8.m.g. ", -" n.L o.p.q.r.n e {.5 5 [ s.t.u.b.c.v.w.x.7 8 y.b H F V <.h.; $ + z.A.B.C.%.D.J W $ & E.& h.F. .G.e -.F F ", -" n.4.L p.q.H.I.J.K.L.M.N.O.P.Q.R.S.T.) / 7 U.h a H V.-.h.i.% = . { W.6 X.Y.Z.W `. +2..+5 4 e e c c ++-. ", -" n.@+p.#+$+%+&+*+=+-+O.;+>+Q.,+'+' f./ 8 )+y.a H -.<.!+& j.U ~+T 6 D %.I {+W >.].[ 5 {.n c M l X <.]+ ", -" ^+L /+(+_+%+:+*+<+[+O.}+|+1+2+d.3+4+5+6+9 b i F 7+<.h.E.*.U { | C.8+Y.#.(.9+^.[ 8.e c l k L 0+n.a+<. ", -" b+n.c+d+I.%+:+e+=+f+g+h+Q.i+c.d.) 4+j+8 k+w j F 1.l+& m+j.. T n+D %.I #.W >.o+5 {.c l k L n.b+b+!+l. ", -" p+q+r+^+s+t+$+%+:+u+L.N.O.t.v+w+c.x+w./ 7 8 y.a H V y+l+k.$ z+* A+6 D %.I B+C+,.[ p C D+k E+^+b+F+p+[.h.F.<. ", -" G+H+p+r+!.s+t+_+%+K.I+J+N.K+L+M+b.c.N+) O+7 P+_.a H ;.-.h.& $ Q+~+_ 6 R+S+#.W >.0.8.e c l L n.b+p+G+T+T+k.U+a+<. ", -" V+W+X+Z ).6.#+#+I.J.:+L.M.N.O.h+Q.b.d.Y+Z+/ 8 r y a `+&.1.h.& j.3 > | @.@Q #.+@>.[ @@e m #@L $@p+X+%@&@*@V+X+!+!+<. ", -" =@V+V+-@P ).;@7.r.I.%+>@,@M.'@)@!@Q.b.~@N+) {@h.> R+#.{+W B+#.J S+S ]@6 D .@Q {+W /.o+5 C c #@n.r+^@/@*@(@_@=@V+:@h.l+<. ", -" <@ [@=@=@}@-@|@1@2@c+r.I.&+3@L.M.4@;+>+Q.b.{@> `. .5 9.[ 2.^.5@>.W W 6@#.#.7@I R+%.I W ,.[ 5 C m L n.b+:@T+=@8@9@_@V+X+0@h.l.<. ", -" a@a@b@c@ d@9@9@e@A O P ).6.f@t+I.g@K.e+h@N.)@i@<.j@c c e {.G.5 #.k@l@I I Y.S I ^.5 n m@#@0+b+n@o@*@p@=@=@o@X+0@b+h.U+<. H a a ", -" q@a@a@r@b@ s@t@9@u@v@w@x@y@).!.q.r.I.J.3@L.M.z@<.e 5.l M c I %.%.R D W e c #@4.b+A@B@V+V+*@V+X+X+b+n.L h.!+a+ C@`+H v ", -" q@q@D@E@F@r@G@H@ I@s@J@u@v@K@Y L@).M@/+#+I.%+:+L.8 0.n.4.L 5. S+%..@D %.^.D+L N@r+^@X+o@T+X+p+p+O@P@5.c h.U+<.Q@y+&.V G G v i ", -" R@q@S@T@U@V@W@b@X@X@Y@Z@`@I@ #.#u@A Y P ).!.7.r.+#%+@#. r+b+n.n. %.8+D D {+l n.O@b+q+p+p+r+b+##E+L l c 5 h.F.<.<.y+-.S @F v ", -" $#$#R@%#E@&#*#=#b@b@-#X@X@Z@;# #>#v@K@Y ,#'#)#/+!#~#>+^.p+p+b+ .@D q %.e {#n.$@b+##O@n.@+L l c e 5 [ /.>.(.l@]#D 6 F H H ", -" ^#/#(#R@_#&#:#<#[#}#|#1#2#3#;#J@4#v@K@Y |@'#o./+5#6#n.X+X+ R+7#7#8.L {#@+0+L L X l m e 5 .+8#/.W #.]#%.D ;.7+F g. ", -" $#/#R@9#0#a#[#}#|#b#c#d#;#e#f#g#K@Y O ` o.p.' T+V+V+ %.D ]@2.h#5.5.h#m@M c C p 5 ].,.>.W J %..@=.-.-.V ", -" i#R@_#q@j#k#l#b#m#3#;#n#>#o#K@Y O P 1@p#*@=@*@ X.D 6 [ c m c e e f 5 g 0.^...W #.I %.U+l+<. ", -" (#R@q#q@r#}#b#s#t#u#n# #u@K@N B P L.b+9@[@ D D @].e p p 4 .+8.o+^.>.W #.I %.X.h.h. ", -" R@_#r#}#v#s#w#x#y#z#u@v@A#-@'.[ B#9@ .@D S g C#C#[ [ ^.5@W W #.l@S+.@D#k.h. ", -" /#R@E#l#F#G#2#d#H#I#.#v@K@o = I@t@ X.D ]#J#^.a./.>.j@W #.l@S+%.]@} & K# ", -" i#L#M#}#|#b#2#N#;#I#>#u@K@~@O#I@ D D #.>.>.W W #.Z.I %.8+ @} A+|.& ", -" P#$#Q#k#|#b#R#t#x#S#f#u@K@T#Z@U# %.D q B+(.#.7@I ]#%.D 6 V#A.{ $ ; ", -" W#X#P#Y#E#|#b#R#Z#`#y#z#u@a X@Y@ 8+R %.I I S+%.X.q C.V#| z.. ~ $ $ ", -" $.$+$Q#E#@$#$s#w#d#H#z#o#=@c@$$ D.8+R+D %.8+D 6 V#| A.~+. = @ @ $ ", -" %$&$0#*$M#}#F#G#c#N#;#=$b b@b@ $.8+D C.7#-$| _ T . U = # m+= $ ", -" ;$>$%$0#*$j#}#,$'$2#t#`#=$N@)$r@ I %.7#B.| | { z.. z+= $ & & z+= @ ", -" !$~${$0#<#Q#]$l#v#^$w#/$($_$a@ ]#%.| { , . + ~ $ m+& h.l.=.Q+~ ", -" !$:$E@<$[$Q#E#}$|$^$1$d#. q@q@ I Q -$0 0 *.$ - & 2$h.l.1.V . . ", -" !$!$3$�#<#4$k#|#b#m#5$V+6$ I %.# $ % & K#k.a+<.]+&.F , . ", -" 7$8$9$T@0$a$<#Q#E#l#b#s#!.R@b$ #.c$$ & [.h.a+<.]+-.;.g.d$> ~+. ", -" e$f$g$h$i$0#j$k$l$}#m$b#v.$#i# #.c$= !+a+<.<.-.V.C@H H n$b ] z. ", -" o$p$q$h$E@�#<#Y#k#r$#$$ X#s$ W +.{ ++-.&.m.F 3.H a :.b 9 _ { ", -" t$u$v$g$h$i$a$0#*$r#,$F#2.W# B+]@V.F F H w$d$K x h 8 8 | { ", -" x$y$z$A$B$C$D$E$F$G$H$t$v$g$h$E@�#I$Q#}#|#V+J$ W R+t d$j a :.b 9 9 2 K$7 | A._ z., + U = j. ", -" L$x$M$z$z$N$C$O$F$G$P$Q$R$S$%#E@0$0#<#Q#T$r$X@U$ C+c$:.n$K b y 9 U.V$W$j+/ x.| T T { . + 0 = ", -" X$Y$Z$`$ %.%+%@%#%$%%%&%*%v$g$h$=%&#<#I$[#}#W#-% >.W y.b h 9 r 8 K$;%/ 4+) 3+>%d.6#2+b.Q.. z+ ", -" ,%X$'%)% %!%~%@%{%$%]%^%Q$*%q$%#/%&#(%<#Q#E#_%:% <%W 9 8 8 < 7 7 / 4+f.' ' Y+d.c.b.w+Q.>+] . ", -" [%}%Z$Z$|%1%2%+%3%#%$%4%Q$*%5%g$h$=%6%7%I$j#W#8% a.+@6+7 7 : 9%f.) w.' Y+d.c.,+p#Q.u.P.}+z.~+ ", -" 0%a%,%X$x$x$b%z$A$B$c%]%^%d%e%f%g%3$&#U@j$Q#a@!$ J#B+/ / ! ) ) ^ ' ' d.6#h%i%D D 6 B.-$_ A+{ ", -" j%0%k%X$L$l%x$m%z$n%B$O$%%o%*%v$g$p%E@�#Q#(@!$ 8#I ) w.) >%x+d.q%c.c.,+r%%.R+D C.]@6 n+| E ", -" z$s%]%^%Q$e%S$t%u%{$<$<#5 v% 9.6 N+N+d.d.q%6#h%b.r%Q.|+%.%. ", -" z$n%w%x%y%d%v$g$h$E@�#j.8$v% p C#$ d.S.c.2+,+b.i+Q.u.>+t.Q %. ", -" m%z$$%]%^%Q$z%q$%#p%E@6%b.A%8$ {. .g.h%b.b.i+Q.Q.u.!@}+K+O.7@]# ", -" x$y$B%w%4%y%*%v$S$h$E@C%D%p$p$ e f f.Q.M+v+>+P.E%}+F%O.G%N.#.7@ ", -" X$x$x$H%I%^%Q$*%v$J%h$=%&#K%p$ L%..>+P.P.!@}+}+)@O.M%N.f+(.(.#. ", -" x$x$N%$%]%&%O%P%Q%g$/%C%. u$p$ D+c j.}+g+;+O.G%4@N.f+R%J+<+C+6@ ", -" X$l%{%S%$%T%U%Q$R$f%h$E@+#t$V% l l 5+M%W%z@N.($[+M.M.J+X%Y%9+j@ ", -" }%X$3%Z%`%]%^%Q$*%v$g$h$E@t@t$o$ L l C+R%($M.M.<+h@L.L.Y%e+ &:+>.>. ", -" 0%[%X$3%H%$%]%y%Q$z%v$J%h$7 .&t$ n.L g.L.L.L.I+,@*+*+*+3@+&J.2.5@5@ ", -" @&X$+%#&$%$&^%y%Q$e%q$g$a$$#P$t$ %&n. .L.*+*+:+@#>@:+:+J.%+%+I.[ ^. ", -" &&@&*&+%#%N%]%x%Q$*%R$g$h$9 =&-& ##%&F :+:+J.;&;&;&>&%+,&I.H.$+[ ]. ", -" '&0%2%)&3%#%$%]%^%Q$*%v$g$J%s@G$t$ p+r+^.%+>&%+!&~&{&I.I.~#r.]&#+5 @@[ ", -" '&&&^&2%/&Z%#%w%x%^%Q$z%v$g$L.F$G$ n@p+^ I.H.r.r.r.r.]&t+#+s+q.c+p 5 ", -" (&_&1%:&<&3%[&`%}&]%&%Q$z%Q%S@. |&G$ T+X+# (+5#d+#+#+#+q.#+/+/+6.p.!.e f ", -" 1&2& %1%2%+%3%Z%`%]%^%U%*%P%Q%3&X+4&G$ V+5&..7./+/+p.2@2@/+;@6.!.!.).).6&L%{. ", -" 7&8&8&)% %^&2%+%9&#%$%}&T%Q$0&*%Q% #W#=&G$ =@a&L M.b&b&b&)#b&b&).b&).c&d&P P '.~.~. ", -" e&f&7&g&h&i&j& %^&k&/&3%#%$%]%^%Q$d%*%q$#+G$|&F$ 9@_@V+M+c&'#6&'#` l&P P P Z Z '.y@m&o c c e f ", -" n&n&o&p&f&q&r&s&t& %1%.%2%9&3%#%$%u&%%&%0&*%v$%+G$D$G$ t@v&=@i+P L@'.'.|@O y@,#O w&-@o -@Y }@A#x&c C y&e e ", -" z&A&n&B&C&D&E&q&h&Z$F&G&1%2%~%)&{%#%$%]%T%H&I&z%J&#+W#|&G$ I@t@A@}+Y Y Y o Y Y Y Y Y Y K&A w@D%x&v@v@u@L&u@y&e e f ", -" M&N&z&O&P&Q&R&S&E&T&g&g&U&1&V&W&X&+%{%Y&$%]%^%^%Q$e%v$ #X+4&G$G$ Z@I@I@o+{&K@K@K@Z&K@K@K@x&Z&D%`&v@v@v@o# *g# #>#f# #z#c e e ", -" .*+*z&@*#*O&$*o&p&%*f&&*8&1&1&^&2%2%9&#&#%$%]%**^%Q$*%=*J&. E$G$-&t$ b@X@-*;*E.g#L&>*v@L&v@g#v@v@g#>* *u@u@,*'*b+%&n.E+L =$y#)*m@y& ", -" .*.*!*~*{*n&]*o&^* g&U&/*(*2%<&/&3%#%$%$&**_*Q$*%5%:**+<*=&P$[*o$ a@b@b@}*L !@ #f# #4#|*,*u@4#4# #4#4# # #1*p+p+q+b+$@n.{#@+T#l D+m h.<.h. ", -" .*+*!*2*3*n& 8&8&`$4*5*2%+%#&#%$%]%]%^%Q$O%*%v$g$8 6*G$t$t$t$ q#7*D@a@_@h )*y#S#=$=$=$=$=$J@J@J@I#=$=$y#n#S#:@H+ n.@+L L l $ a U.<. ", -" 8*.*.*M& g&g&9* %1%0*2%+%3%#%H%a*]%^%H&Q$=*v$f%E@/ d@t$b*t$p$8$8$ X#$#L#R@_#q@##8 =$d#`#c*d*;#x#;#;#;#;#;#;#;#;#/$u#/$V+T+:@ @+L L . a 8 e* ", -" f* g*U&9*h*i*!%k&9&j*#%B%a*]%4%y%Q$*%z%Q%g$%##+3 $$p$7$f$8$k*!$l*8%:%U$U$U$W#P#$#V+$ &m#s#2#w#w#5$t#5$t#d#m*Z#5$m*N#d#5$m*w#a&n*5& ^.D o* p*H 9 & 9 ", -" g&q*8&r*^&5*2%+%@%#%#%$%u&x%^%Q$s*=*=*v$g$h$h$u@Q.; 5 =@t*W#u*$#G@o@^.& b.|@|#|##$b#'$b#v*v*s#s#R#R#s#w#m#m#m#c#m#w*m#_@=@=@ m E Q.x* | F b $ a [.F 8 ", -" g&g&9*h*i*:&2%~%y*3%#%S%I%z*T%Q$Q$d%=*v$g$t%J%p%E@&#�#0#+$<#*$A*j#E#E#}#}#}#}$|#|#F#v#b#b#b#b#b#B*'$b#b#v*b#B*b#v&9@p@ %.M.O+^. %.6 = & H K & $ C*|.D* E.D y+ ", -" g&9*1& % %^&2%*&+%3%#%`%$%]%T%U%Q$I&*%R$v$g$3&g%E*E@i$&#<$a$0#7%I$=#Q#Q#M#E#E#E#}#}#}#}$l#|#,$}$|#|#|#|#|#|#m$t@t@9@ - *+H >.>.%.E.a 9 / 7 b H -.h.= . . = & h.-.6 6 H ", -" g&F*U&1& %V&5*k&+%3%3%N%$%$%x%4%y%Q$0&z%v$g$g$g$h$u%E@C%C%&#a$0#0#j$<#k$=#Q#Q#j#E#E#G*E#}#T$T$}#T$H*}#}#Z@I*<*I@ 5 h%%+Q.c.d.}+Q.d.) 8 a F <.% . W.6 $.]#l@#.5 { ", -" J*g&F*1& %4*^&2%<&+%3%#&`%$%]%T%^%Q$Q$*%P%P%v$q$S@%#h$/%E@&#=%&#a$(%0#0#<#<#<#A*=#Q#Q#Y#[#M#Q#j#[#[#Z@Z@K*I* c 7 #+%+*+N.P.b.T./ 9 a -.h.$ { D I W ^. .c c | ", -" g&g&)%j& %^&:&L*+%3%3%#%$%$%u&x%^%^%Q$Q$P%e%v$g$g$g%h$u%h$E@{$=%=%&#&#(%0#+$[$<#*#<#<#=#<#I$A*}*X@Y@ X+W M*#+%+*+N.>+b.T./ 9 H -.K#= | X.#.>.g c L L #.i. ", -" 7&g&Z$N*)% %V&.%2%*&+%3%O*Y&$%I%u&z*^%^%Q$O%*%z%v$v$f%S@h$h$h$p%E@E@E@&#&#&#U@6%U@<$0#a$0#:#0#b@X@ p+*.M.!.(+%+,@z@>+S.j+H h.& $ . . P*6 I ,.5 l n.p+p+5 Q+ ", -" J*7&h&Q*Z$)% % %1%:&~%<&+%3%#%H%$%a*I%]%^%^%&%Q$d%*%*%R$v$g$g$t%%#g%h$T@/%E@/%C%E@{$=%0$=%&#&#V@b@ Z@ V+*.~#L@!.r.%+,@>+9 = I W W W I .@6 6 D#%.W [ l b+X+V+X+].$ ", -" f&&*q&R*h&Z$S*`$ %4*^&2%2%+%3%3%#&N%Y&w%u&]%%%^%o%Q$Q$T**%e%v$v$q$q$g$g$g$h$%#h$h$h$p%/%u%/%3$a@)$ Z@D b+ D #+v@y@!.#++&/ | [ | R {+e L q+p+b+l W = F H F H ", -" B&o&f&E&U*q&1&1&_&_&'&0%^&W&2%k&+%)&3%{%#%B%$%$&]%4%4%^%_*Q$s*I&*%=*5%R$v$v$Q%S$W#X#$#(#(#g$%#t%7*a@b@ C /+:+. ^.B+u.=$v@O !.>@H >. | %.e l n.L l e #.{ . . <.b ", -" V*o&W*X*Y*g*g&1&9*Z*'&&&`*k%X$W&.%~%+%+%3% =#%N%$%$%w%]%T%^%^%^%U%Q$Q$O%d%u*.=U$ $W#X#$#$#R@v$v$v$+=a@a@ R@e O. #;#f#d#1*v@O I.& L 6 $.[ e c e [ >.#.%.$ F ", -" 3*n&n&$*@=#=f&$= Z*'&%=[%X$X$&=x$L*k&/&@%#&3%#%H%B%a*}&]%4%**8$*=v%!$==:%%$U$ P#i#b$O%*%*%7*a@ 9@a b#b#d#=$v@).=.-= 6 %.^.g [ >.6@I | <. ", -" M&z&;=>=O&$*o&,=J* 0%[%,%X$'=x$)=z$n%+%/&)&#% =G$P$t$t$!=~=8$*={=8% ]=$#Q$H&H&q@^=a@ %.|#b#w#S# #) /= (=%.`.W #.S+D | l. ", -" .*.*_=:=~*<=o&e& X$x$x$M$)=N$2%+%+%D$|&G$.&t$V%p$ W#$#$#**]%T%q@a@ | }#|#2#;#I.C+ 6 D D X.6 | . h. ", -" 8*[=.*}=|=:=3*<= b%z$^&^&2%C$E$ 6*]=$%$%$%q@q@_$ b@c.Q#1=s#/$H t@ 6 n+| { . E.& ", -" 2=8*3=.*4=z&z&n& x$b% %(*^&5=B$ W#P#$#b$L#9#q#q@ V+Y Q#}#b#).[ | ~+. = m+h.h.<. ", -" 2=6=7=.*M&z& &=x$)%j&h*N$8= W#W#6*$#9= ^.Q#<#E#0=Q.=@ D { & & U+-.-.m+ ", -" 8*6=.*.* X$l%a=Z$Z$N$B$ U$W#W# :%H 0#0#Q#^$y+Z@ { <.-.m.H b h. ", -" 8* X$X$q&h&b=z$n% U$*+g$&#<#w#R+ 6 y+H a h 8 -.= ", -" 0%X$c=d=q&z$z$ $#e=b+$@#.=$:*E@0#w#5 %.F 9 r 7 O+b h.h.<.$ ", -" 0%0%f=X*E&g=x$ -.v$g$h$0#^%*%h$&#w#l %.H 7 / ) ' c.d.h=/ h. ", -" &&%=C&i=X*g=g= t@| | { b E#Q$g$E@w#e I b ) ' d.c.) C@g.F j= ", -" Z*j%&&0%[%X$X$ p$r.^%R$h$}#>. I 7 c.h%p#v+a k= ", -" 2&_&&&l=0%,%X$ p$m=]%Q$v$&#& } d.>+>+}+O.H ", -" . *%^%*%g$b.W# $ }+O.N.R%L+# ", -" l n=$%U%z%u@/@ [ 9 M.L.L.*+h+| ", -" ~$v@#%]%Q$E@& p$ 6 O.:+:++&%+/ #. ", -" V%` j*#%x%0&P V+ e 9 I.I.I.r.%+h. ", -" t$o=2%3%$%**v$2 W# l = %+/+/+/+!.~&D ", -" 8$ # %2%3%$%^%}#| p= Y.O.).).c&P P r.D ", -" 1&X@c.^& %2%X&3%$%^% #W p$ 9+b.o B Y Y Y K@x@8 %.[ ", -" f&%.*$E#7 q ) **+%{%$%^%=$. W# =@6 }+u@v@v@v@L&).:+%+!.O.#. ", -" n&e y+q@1& x$'+2%+%O*$%^%<#) $@W# I@^+-.#+=$z# #1*=$u@=.[ [ q=& 5 ", -" z&g& I@L@ %~%3%H%]%O%=$V$c b@R@ q@t@c <.:+;#w#N#d#d#d#w#c.c l ", -" V+O 1%2%y*#%u&^%v$}##+c.<.{ { r=7 M.D%b#|#b#b#b#b#b#b#Q.e ", -" *@O.]%!%+%O*$%4%Q$*%g$h$�#0#7%:#=#Q#E#E#T$T$}#v@8 c ", -" D$I.|%^&L*3%#%]%^%Q$*%v$g$h$T@E@�#0#7%<#<#w#}.V+ ", -" x$}+b=)%V&2%+%O*H%w%^%Q$*%z%v$g$g%h$E@E@s=&#K@p+ ", -" 0%%+E#>%7 *+E#+%~%3%#%$%]%^%Q$Q$O%&#u@Q./ #+u@L ", -" b+E@$ '& B$I@A+) v@t=#%3%Q#w##+9 6 p+W#u=l ).>+9@ ", -" t$O :+t$ z$q@t@O <#.+v=Z@!$ <.b#>. ", -" 1&F X+ t$}+s#a@ 9@& p+ ", -" w=z& t$'@|#q@ R@ ", -" D$N.E#R@ ", -" z$= b.:% ", -" z$G$ "}; diff --git a/src/Mod/Ship/Icons/DiscretizeIco.png b/src/Mod/Ship/Icons/DiscretizeIco.png deleted file mode 100644 index bdba9aca0e679ae6c405ae94059960257e3e8eeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14038 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�#F{R9|;jQ34YOODR6KP(J2VWUspe9<+`Y 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 Wr}8<967wsQzd^f%e?N}@oc{&dx->cf diff --git a/src/Mod/Ship/Icons/DiscretizeIco.xpm b/src/Mod/Ship/Icons/DiscretizeIco.xpm deleted file mode 100644 index 9bff402e33..0000000000 --- a/src/Mod/Ship/Icons/DiscretizeIco.xpm +++ /dev/null @@ -1,2028 +0,0 @@ -/* XPM */ -static char * DiscretizeIco_xpm[] = { -"128 128 1897 2", -" c None", -". c #9F6602", -"+ c #9F6601", -"@ c #A06602", -"# c #9F6502", -"$ c #A16702", -"% c #A06701", -"& c #A06700", -"* c #A16703", -"= c #9F6501", -"- c #A26803", -"; c #A16802", -"> c #A16601", -", c #A26905", -"' c #A66E0E", -") c #A76F0F", -"! c #A36902", -"~ c #A36802", -"{ c #A26802", -"] c #A26804", -"^ c #A56D0B", -"/ c #A77011", -"( c #A77012", -"_ c #A87212", -": c #A26A07", -"< c #A06601", -"[ c #A56903", -"} c #A46A04", -"| c #A36803", -"1 c #A56D0A", -"2 c #A67010", -"3 c #A77111", -"4 c #A77010", -"5 c #AA751A", -"6 c #B38432", -"7 c #A66F0F", -"8 c #A06702", -"9 c #A56902", -"0 c #A36904", -"a c #A46B08", -"b c #A56E0F", -"c c #A67011", -"d c #AF7E28", -"e c #BF9854", -"f c #B1802B", -"g c #A36B09", -"h c #A66B03", -"i c #A56A03", -"j c #A46B06", -"k c #A46E0D", -"l c #A56E10", -"m c #B1822E", -"n c #CBAC74", -"o c #C6A366", -"p c #A16803", -"q c #A66B04", -"r c #A66B06", -"s c #A56C0C", -"t c #A46D10", -"u c #A46D0F", -"v c #A46E0F", -"w c #A56F10", -"x c #B78A3D", -"y c #D3B889", -"z c #D6BD91", -"A c #BB9249", -"B c #A46D0B", -"C c #A16602", -"D c #A86C04", -"E c #A76C04", -"F c #A76C03", -"G c #A76C05", -"H c #A46C0B", -"I c #A36D0F", -"J c #A36D10", -"K c #A46E10", -"L c #A56F0F", -"M c #A77317", -"N c #CCAC76", -"O c #E1CFAF", -"P c #DEC9A5", -"Q c #D8C096", -"R c #A97418", -"S c #A16804", -"T c #A96D05", -"U c #A86D05", -"V c #AA6D03", -"W c #A56C09", -"X c #A26D0F", -"Y c #A26D10", -"Z c #B07F2B", -"` c #E9DCC5", -" . c #E7D9C0", -".. c #E6D7BC", -"+. c #C9A86E", -"@. c #A56E0D", -"#. c #AA6D05", -"$. c #A96D04", -"%. c #A66C08", -"&. c #A26B0E", -"*. c #A16B10", -"=. c #A16C0F", -"-. c #A26C0F", -";. c #C19D5D", -">. c #EBDFCB", -",. c #F3ECDF", -"'. c #F0E7D7", -"). c #E9DBC3", -"!. c #B88D40", -"~. c #A36A06", -"{. c #AB6F06", -"]. c #AB6E05", -"^. c #AB6E04", -"/. c #A86D07", -"(. c #A26B0C", -"_. c #A06B10", -":. c #A16B0F", -"<. c #B5893C", -"[. c #E5D6BC", -"}. c #F3EDE1", -"|. c #FCFAF7", -"1. c #F9F5EF", -"2. c #ECE1CE", -"3. c #B48636", -"4. c #A76F10", -"5. c #A36D0E", -"6. c #AC7006", -"7. c #AC6F05", -"8. c #A96D07", -"9. c #A36B0C", -"0. c #9F6A0F", -"a. c #A06A0F", -"b. c #A16A0F", -"c. c #A16A0E", -"d. c #C6A56B", -"e. c #E6D7BE", -"f. c #EFE6D6", -"g. c #F4EEE3", -"h. c #A36E10", -"i. c #BE8013", -"j. c #B9790A", -"k. c #9D6401", -"l. c #AD7006", -"m. c #AC6F06", -"n. c #AD7005", -"o. c #A46C0A", -"p. c #9F6A0D", -"q. c #9E6A0F", -"r. c #9F6A0E", -"s. c #A06B0E", -"t. c #A16B0E", -"u. c #B48639", -"v. c #D4BA8F", -"w. c #E0CEAF", -"x. c #EDE3D1", -"y. c #DAC59F", -"z. c #A47217", -"A. c #B77B12", -"B. c #DF9616", -"C. c #E69B17", -"D. c #DB9315", -"E. c #AE7107", -"F. c #AE7106", -"G. c #AD7007", -"H. c #A66D09", -"I. c #9F690E", -"J. c #9D6A0F", -"K. c #A06A0E", -"L. c #A8761E", -"M. c #C29E5F", -"N. c #D3B88B", -"O. c #DBC6A1", -"P. c #D4BB8F", -"Q. c #B1853A", -"R. c #AD7310", -"S. c #CC8913", -"T. c #E09616", -"U. c #4D3408", -"V. c #A26E14", -"W. c #EDA323", -"X. c #C2800D", -"Y. c #AE7206", -"Z. c #AF7206", -"`. c #B07106", -" + c #A96E08", -".+ c #9F6A0C", -"++ c #9C690D", -"@+ c #9E690D", -"#+ c #9E6A0E", -"$+ c #A7751D", -"%+ c #B88E46", -"&+ c #C4A165", -"*+ c #C5A46A", -"=+ c #B2863D", -"-+ c #C58313", -";+ c #DC9416", -">+ c #DF9515", -",+ c #EA9D17", -"'+ c #875D10", -")+ c #4E483D", -"!+ c #F2C983", -"~+ c #DE9516", -"{+ c #A86C05", -"]+ c #B07207", -"^+ c #B07306", -"/+ c #AC7007", -"(+ c #A06A0B", -"_+ c #9B670D", -":+ c #9C680D", -"<+ c #9D690D", -"[+ c #9E680D", -"}+ c #A7741D", -"|+ c #B18435", -"1+ c #AB7E2F", -"2+ c #BC7E12", -"3+ c #D89115", -"4+ c #DE9415", -"5+ c #DA9215", -"6+ c #DC9316", -"7+ c #E8A125", -"8+ c #827C72", -"9+ c #C8B694", -"0+ c #EFA019", -"a+ c #CC8710", -"b+ c #9D6501", -"c+ c #B17408", -"d+ c #B17207", -"e+ c #B27307", -"f+ c #A26B0B", -"g+ c #9A660D", -"h+ c #9E6A0D", -"i+ c #A27018", -"j+ c #AB7F33", -"k+ c #AC8035", -"l+ c #A87927", -"m+ c #A26D13", -"n+ c #A06C12", -"o+ c #9F6C10", -"p+ c #B47911", -"q+ c #D38E14", -"r+ c #DD9416", -"s+ c #DB9215", -"t+ c #E29816", -"u+ c #EAA32A", -"v+ c #CFB07B", -"w+ c #898988", -"x+ c #E09717", -"y+ c #D68E13", -"z+ c #A26702", -"A+ c #B27408", -"B+ c #B37508", -"C+ c #B17308", -"D+ c #A66D0A", -"E+ c #9B670C", -"F+ c #9D670C", -"G+ c #9D680D", -"H+ c #9E690E", -"I+ c #9E6B0E", -"J+ c #A3721B", -"K+ c #B6965C", -"L+ c #C0A779", -"M+ c #CDBDA4", -"N+ c #AE843D", -"O+ c #A77724", -"P+ c #A26C11", -"Q+ c #AC7410", -"R+ c #DC9314", -"S+ c #D99214", -"T+ c #D99115", -"U+ c #DC9315", -"V+ c #D79015", -"W+ c #432D06", -"X+ c #CA8713", -"Y+ c #F4AC2B", -"Z+ c #422C05", -"`+ c #8C5A05", -" @ c #A86F0A", -".@ c #9C670C", -"+@ c #99660C", -"@@ c #9C670D", -"#@ c #9C680C", -"$@ c #A57626", -"%@ c #B79760", -"&@ c #D2C9BB", -"*@ c #CFC7B7", -"=@ c #C2AC83", -"-@ c #B38D4C", -";@ c #A06B11", -">@ c #9D680E", -",@ c #C58312", -"'@ c #DA9114", -")@ c #D79014", -"!@ c #D89014", -"~@ c #D99114", -"{@ c #D18C14", -"]@ c #C28313", -"^@ c #F3A317", -"/@ c #4A3208", -"(@ c #442E06", -"_@ c #C9840D", -":@ c #A36903", -"<@ c #AD6F03", -"[@ c #B47609", -"}@ c #B57508", -"|@ c #AD7009", -"1@ c #9D670B", -"2@ c #98640C", -"3@ c #9A660C", -"4@ c #A06D16", -"5@ c #B69358", -"6@ c #C7B89D", -"7@ c #D8D7D5", -"8@ c #D1CBC0", -"9@ c #B39359", -"0@ c #A16F16", -"a@ c #9C680E", -"b@ c #C38211", -"c@ c #D69013", -"d@ c #D68F13", -"e@ c #D79013", -"f@ c #E39815", -"g@ c #E39816", -"h@ c #79510C", -"i@ c #140E03", -"j@ c #EB9E17", -"k@ c #C3810E", -"l@ c #996303", -"m@ c #B47608", -"n@ c #B57608", -"o@ c #B67709", -"p@ c #B07309", -"q@ c #97640C", -"r@ c #99650C", -"s@ c #A16F1C", -"t@ c #C0A982", -"u@ c #D2CCC1", -"v@ c #D6D6D6", -"w@ c #D4D3D2", -"x@ c #AC8540", -"y@ c #9B680E", -"z@ c #9D690E", -"A@ c #B47810", -"B@ c #D38C13", -"C@ c #895C0C", -"D@ c #D08C13", -"E@ c #D89114", -"F@ c #D68F14", -"G@ c #DA9214", -"H@ c #D58E13", -"I@ c #2A1C04", -"J@ c #E19716", -"K@ c #E29817", -"L@ c #382402", -"M@ c #A26A05", -"N@ c #A16704", -"O@ c #A76C06", -"P@ c #B87709", -"Q@ c #B47509", -"R@ c #A36B0B", -"S@ c #96630C", -"T@ c #98650C", -"U@ c #9B660C", -"V@ c #A07220", -"W@ c #BDA47A", -"X@ c #D8D8D8", -"Y@ c #D5D5D5", -"Z@ c #D0CCC5", -"`@ c #BCA37A", -" # c #9E680E", -".# c #9B680D", -"+# c #AD730F", -"@# c #CB8811", -"## c #E29714", -"$# c #372505", -"%# c #513607", -"&# c #E59914", -"*# c #AE7510", -"=# c #D38D13", -"-# c #E89C15", -";# c #181003", -"># c #7C520A", -",# c #BD7B09", -"'# c #A86B03", -")# c #AC6F04", -"!# c #AC7618", -"~# c #CDB58A", -"{# c #B6780A", -"]# c #B97809", -"^# c #B67609", -"/# c #A76E0A", -"(# c #98640B", -"_# c #95630C", -":# c #9A670C", -"<# c #BEAB8A", -"[# c #D0CDC9", -"}# c #C4B292", -"|# c #A77B30", -"1# c #99660D", -"2# c #C58311", -"3# c #D48E13", -"4# c #D89013", -"5# c #C38212", -"6# c #000000", -"7# c #BD7F11", -"8# c #E59915", -"9# c #3C2805", -"0# c #483007", -"a# c #EA9C15", -"b# c #AB7009", -"c# c #EAEAEA", -"d# c #B8780A", -"e# c #B87809", -"f# c #B97909", -"g# c #AC710A", -"h# c #99660B", -"i# c #94620B", -"j# c #96630B", -"k# c #97640B", -"l# c #9E6C15", -"m# c #B1925B", -"n# c #D4D4D4", -"o# c #D3D3D4", -"p# c #D7D7D7", -"q# c #B99D6E", -"r# c #A16E14", -"s# c #BC7E10", -"t# c #D38C12", -"u# c #D58E12", -"v# c #D28C12", -"w# c #D38D12", -"x# c #E39714", -"y# c #604009", -"z# c #362405", -"A# c #EC9D16", -"B# c #C68412", -"C# c #4D3202", -"D# c #A46A03", -"E# c #A76B04", -"F# c #E9EAEA", -"G# c #BA790A", -"H# c #BA7A0A", -"I# c #B0740A", -"J# c #9C670B", -"K# c #93620B", -"L# c #94620A", -"M# c #96640B", -"N# c #B2935C", -"O# c #D1CEC6", -"P# c #D3D2D2", -"Q# c #D1D1D0", -"R# c #D2D3D3", -"S# c #CCC4B5", -"T# c #BC8B35", -"U# c #CF8A11", -"V# c #D48D12", -"W# c #D18B12", -"X# c #D08B12", -"Y# c #8F5F0C", -"Z# c #DE9414", -"`# c #D58E14", -" $ c #000001", -".$ c #A66D0B", -"+$ c #B17307", -"@$ c #AF7105", -"#$ c #AA6E05", -"$$ c #EBEBEB", -"%$ c #ECECEC", -"&$ c #BA790B", -"*$ c #BC7B0A", -"=$ c #B5770A", -"-$ c #A06A0A", -";$ c #93600B", -">$ c #93610A", -",$ c #95630A", -"'$ c #95630B", -")$ c #AC8643", -"!$ c #CEC7B8", -"~$ c #D4D3D4", -"{$ c #C8C8C9", -"]$ c #CCCCCC", -"^$ c #D3B683", -"/$ c #D48F18", -"($ c #DE9413", -"_$ c #070501", -":$ c #80550C", -"<$ c #E09412", -"[$ c #A26907", -"}$ c #B47405", -"|$ c #E7E7E8", -"1$ c #BB7B0B", -"2$ c #BA7B0A", -"3$ c #BD7C0A", -"4$ c #B97A0A", -"5$ c #A56C0A", -"6$ c #94610A", -"7$ c #92600A", -"8$ c #95620A", -"9$ c #95620B", -"0$ c #96640C", -"a$ c #9C6C16", -"b$ c #BDA67D", -"c$ c #D0D0CB", -"d$ c #CDCDCD", -"e$ c #C2C1C3", -"f$ c #D2D2D1", -"g$ c #D6D6D5", -"h$ c #D4A95E", -"i$ c #CE8C19", -"j$ c #D18C12", -"k$ c #D28D12", -"l$ c #5E3F08", -"m$ c #F0A115", -"n$ c #764C04", -"o$ c #AA6E04", -"p$ c #A96E05", -"q$ c #E7E7E7", -"r$ c #E8E8E8", -"s$ c #BB7C0B", -"t$ c #BD7C0B", -"u$ c #BC7B0B", -"v$ c #AA700A", -"w$ c #956209", -"x$ c #905F0A", -"y$ c #946109", -"z$ c #A57C36", -"A$ c #C1B298", -"B$ c #D0D0D0", -"C$ c #C8C8C8", -"D$ c #C1C1C1", -"E$ c #CFCFCF", -"F$ c #D6D0C9", -"G$ c #D3A24E", -"H$ c #CD8911", -"I$ c #C88611", -"J$ c #7F550B", -"K$ c #E69A13", -"L$ c #B27710", -"M$ c #050300", -"N$ c #B8790C", -"O$ c #AD6F06", -"P$ c #B37406", -"Q$ c #AC7005", -"R$ c #BC7C0B", -"S$ c #BE7C0B", -"T$ c #BF7D0B", -"U$ c #B0730A", -"V$ c #986409", -"W$ c #8F5F09", -"X$ c #91610A", -"Y$ c #95640B", -"Z$ c #98650B", -"`$ c #94620C", -" % c #BCA580", -".% c #D2CEC8", -"+% c #CECECE", -"@% c #C0C0C0", -"#% c #C0C1C1", -"$% c #D0D0CF", -"%% c #D7CAB6", -"&% c #D6A54F", -"*% c #D08B11", -"=% c #D68F12", -"-% c #C78411", -";% c #AE750F", -">% c #D08A0F", -",% c #A86D06", -"'% c #B47506", -")% c #AC7106", -"!% c #E8E8E7", -"~% c #E9E9E9", -"{% c #C07E0C", -"]% c #B5770B", -"^% c #9C670A", -"/% c #8F5E09", -"(% c #915F09", -"_% c #926009", -":% c #936109", -"<% c #92610A", -"[% c #96630A", -"}% c #97630B", -"|% c #AE7714", -"1% c #D2C2A8", -"2% c #C8C7C7", -"3% c #BDBDBD", -"4% c #BEBDBE", -"5% c #D0CFCF", -"6% c #D5D2CC", -"7% c #D19C3F", -"8% c #221703", -"9% c #8E5F0C", -"0% c #EB9D14", -"a% c #7C5208", -"b% c #9B6407", -"c% c #AD7106", -"d% c #BF7E0C", -"e% c #C2800C", -"f% c #BB7A0B", -"g% c #A26A0A", -"h% c #8E5D09", -"i% c #925F09", -"j% c #926109", -"k% c #A66E0C", -"l% c #CF9A3C", -"m% c #D1C7B6", -"n% c #D0CFD0", -"o% c #C6C5C5", -"p% c #BCBBBB", -"q% c #BDBCBB", -"r% c #CECECD", -"s% c #D4D5D5", -"t% c #E4AB48", -"u% c #81560B", -"v% c #2D1E03", -"w% c #B47507", -"x% c #AF7207", -"y% c #ECEBEB", -"z% c #C07E0D", -"A% c #BF7D0C", -"B% c #A86F0B", -"C% c #905E09", -"D% c #8C5C09", -"E% c #905F09", -"F% c #94610B", -"G% c #91610B", -"H% c #9E6A0C", -"I% c #BC7D0E", -"J% c #CC870F", -"K% c #CB870F", -"L% c #CFAA69", -"M% c #D2CFC9", -"N% c #CBCBCB", -"O% c #C0BFC0", -"P% c #BAB9B9", -"Q% c #BEBEBE", -"R% c #CDCECD", -"S% c #C9C9C9", -"T% c #D0AA69", -"U% c #C17F0C", -"V% c #B37407", -"W% c #E8E9E8", -"X% c #E7E8E7", -"Y% c #EBEAEB", -"Z% c #C3800D", -"`% c #C3800C", -" & c #AF730B", -".& c #8B5C09", -"+& c #8E5E09", -"@& c #916009", -"#& c #91600A", -"$& c #99660A", -"%& c #B5770E", -"&& c #C9850F", -"*& c #CA860F", -"=& c #D2B88A", -"-& c #D1CFCB", -";& c #CACACB", -">& c #BEBEBD", -",& c #B9BABA", -"'& c #CACBCB", -")& c #D3D3D3", -"!& c #C5A672", -"~& c #B07307", -"{& c #E6E6E6", -"]& c #DDDEDD", -"^& c #DEDDDE", -"/& c #C27F0D", -"(& c #C5810D", -"_& c #B6780C", -":& c #98640A", -"<& c #8A5B09", -"[& c #8D5C08", -"}& c #915F0A", -"|& c #95610A", -"1& c #AE730C", -"2& c #C7830E", -"3& c #CA850F", -"4& c #C7840F", -"5& c #C8850F", -"6& c #C9891C", -"7& c #D0B586", -"8& c #D1D1D1", -"9& c #C7C7C7", -"0& c #BCBCBB", -"a& c #BABBBA", -"b& c #B8B8B8", -"c& c #C4C4C4", -"d& c #D6CEC1", -"e& c #BB8B34", -"f& c #DDDCDD", -"g& c #C3810D", -"h& c #C3800E", -"i& c #C6830D", -"j& c #BC7B0C", -"k& c #9D6709", -"l& c #8A5B08", -"m& c #8B5B08", -"n& c #8D5D09", -"o& c #8E5E08", -"p& c #8F5E08", -"q& c #AD720C", -"r& c #C6820E", -"s& c #CE880F", -"t& c #C6830E", -"u& c #C7840E", -"v& c #D28C10", -"w& c #B98323", -"x& c #D6BB8B", -"y& c #B9BAB9", -"z& c #B9B9B9", -"A& c #BFBFBF", -"B& c #D5D4D1", -"C& c #E2E3E1", -"D& c #B3B3B3", -"E& c #E8E8E9", -"F& c #C4810E", -"G& c #C3820D", -"H& c #C7830D", -"I& c #C17F0D", -"J& c #895A07", -"K& c #8D5D08", -"L& c #8E5D08", -"M& c #906009", -"N& c #9E690A", -"O& c #BB7B0D", -"P& c #C1800E", -"Q& c #2A1B03", -"R& c #BE7E0D", -"S& c #C9850E", -"T& c #CD880F", -"U& c #CB860F", -"V& c #080808", -"W& c #D1C0A2", -"X& c #CFCFCE", -"Y& c #C4C3C4", -"Z& c #BABABA", -"`& c #B9B9B8", -" * c #B8B7B7", -".* c #C9CAC9", -"+* c #D7D8D7", -"@* c #DCDCDC", -"#* c #E9EAE9", -"$* c #E4E5E5", -"%* c #CBCBCA", -"&* c #ADADAD", -"** c #D2D1D2", -"=* c #EBEBEC", -"-* c #C4820E", -";* c #C5820E", -">* c #AB710B", -",* c #8E5D07", -"'* c #885907", -")* c #8C5C07", -"!* c #8C5C08", -"~* c #B5780C", -"{* c #D38C0E", -"]* c #3B2704", -"^* c #4A3105", -"/* c #D38B0F", -"(* c #503406", -"_* c #C07F0E", -":* c #D99010", -"<* c #35270E", -"[* c #C1B39B", -"}* c #CFD0D0", -"|* c #B8B9B9", -"1* c #B7B7B7", -"2* c #B5B6B6", -"3* c #BEBFBF", -"4* c #D7D8D8", -"5* c #E7E7E6", -"6* c #DFE0E0", -"7* c #B1B1B1", -"8* c #A6A5A5", -"9* c #C5830F", -"0* c #B4760C", -"a* c #936008", -"b* c #875806", -"c* c #8A5A07", -"d* c #8C5B07", -"e* c #8C5B08", -"f* c #8F5D09", -"g* c #936009", -"h* c #AE720B", -"i* c #C7850E", -"j* c #B8790D", -"k* c #010000", -"l* c #AB720C", -"m* c #D9900F", -"n* c #312004", -"o* c #472F06", -"p* c #CC870E", -"q* c #B9801B", -"r* c #CDB487", -"s* c #C5C4C4", -"t* c #B6B5B6", -"u* c #C6C7C6", -"v* c #E4E4E3", -"w* c #C1C2C2", -"x* c #969797", -"y* c #A3A3A3", -"z* c #DDDDDE", -"A* c #BC7B0D", -"B* c #865706", -"C* c #8B5B07", -"D* c #8A5B07", -"E* c #8D5C09", -"F* c #C07F0D", -"G* c #C5820D", -"H* c #C1800D", -"I* c #CC860E", -"J* c #D58C0F", -"K* c #5D3D06", -"L* c #291C03", -"M* c #D78E0F", -"N* c #B9790C", -"O* c #9F6808", -"P* c #B87909", -"Q* c #B6770A", -"R* c #C9B38E", -"S* c #D1D2D1", -"T* c #C6C7C7", -"U* c #B6B7B7", -"V* c #B5B5B5", -"W* c #B3B3B2", -"X* c #B6B5B5", -"Y* c #C8C6C8", -"Z* c #D7D7D8", -"`* c #E5E5E5", -" = c #D0D1D0", -".= c #9A9B9B", -"+= c #949494", -"@= c #AEAEAE", -"#= c #E5E6E6", -"$= c #C9840F", -"%= c #C2800E", -"&= c #A06909", -"*= c #865806", -"== c #895A06", -"-= c #895B07", -";= c #9F680A", -">= c #BB7C0D", -",= c #C4810D", -"'= c #C4820D", -")= c #B3760C", -"!= c #3A2604", -"~= c #CF880E", -"{= c #281A02", -"]= c #BB7B0A", -"^= c #B8790A", -"/= c #CECECF", -"(= c #BBBBBB", -"_= c #B6B6B6", -":= c #B4B3B3", -"<= c #B2B1B2", -"[= c #B6B6B7", -"}= c #CAC9CA", -"|= c #D8D7D7", -"1= c #E3E3E3", -"2= c #A4A4A4", -"3= c #939393", -"4= c #979797", -"5= c #E6E5E5", -"6= c #CC8810", -"7= c #C8840F", -"8= c #A86E0B", -"9= c #895906", -"0= c #855605", -"a= c #895907", -"b= c #8B5A07", -"c= c #B4760B", -"d= c #C27F0C", -"e= c #C07F0C", -"f= c #CE870E", -"g= c #060401", -"h= c #C6830C", -"i= c #C17E0A", -"j= c #BBBCBB", -"k= c #B4B4B5", -"l= c #B3B2B2", -"m= c #AFAFAF", -"n= c #D9D8D8", -"o= c #D9D9D9", -"p= c #DEDDDD", -"q= c #E7E6E7", -"r= c #E5E5E4", -"s= c #E2E2E2", -"t= c #D3D4D4", -"u= c #9F9F9F", -"v= c #999898", -"w= c #969696", -"x= c #9B9B9C", -"y= c #D2D2D2", -"z= c #EBEAEA", -"A= c #CA8610", -"B= c #CD8710", -"C= c #CC880F", -"D= c #B0750C", -"E= c #835505", -"F= c #885906", -"G= c #8A5A06", -"H= c #8C5D08", -"I= c #8B5B09", -"J= c #946108", -"K= c #B0740B", -"L= c #BE7D0C", -"M= c #CD870D", -"N= c #CA850E", -"O= c #4D3205", -"P= c #D88E0F", -"Q= c #B9790B", -"R= c #CFCECF", -"S= c #B4B4B4", -"T= c #B2B2B2", -"U= c #ADADAE", -"V= c #BFBFC0", -"W= c #DDDEDE", -"X= c #DEDEDE", -"Y= c #E4E4E5", -"Z= c #DADADB", -"`= c #C7C7C6", -" - c #A9A7A8", -".- c #949394", -"+- c #9A9999", -"@- c #979798", -"#- c #A4A4A5", -"$- c #D6D7D7", -"%- c #EAEAE9", -"&- c #CB8710", -"*- c #CE8911", -"=- c #B97A0D", -"-- c #825505", -";- c #855706", -">- c #885806", -",- c #8A5B06", -"'- c #8D5C07", -")- c #895A08", -"!- c #744C07", -"~- c #C9850C", -"{- c #432C05", -"]- c #D68D0E", -"^- c #462E04", -"/- c #B97A0B", -"(- c #BC7C0A", -"_- c #BFBFBE", -":- c #B7B7B6", -"<- c #B5B4B4", -"[- c #B2B3B2", -"}- c #B0B0B0", -"|- c #CACACA", -"1- c #DBDBDB", -"2- c #DEDFDF", -"3- c #DFDFDF", -"4- c #DEDEDF", -"5- c #E0E1E1", -"6- c #E1E2E2", -"7- c #E0DFDF", -"8- c #E4E3E3", -"9- c #DEDEDD", -"0- c #CBCDCC", -"a- c #B7B8B7", -"b- c #A2A2A2", -"c- c #989898", -"d- c #999999", -"e- c #CD8810", -"f- c #D08A11", -"g- c #C2800F", -"h- c #9A6508", -"i- c #825506", -"j- c #835606", -"k- c #895806", -"l- c #8A5A08", -"m- c #9E6809", -"n- c #BF7E0B", -"o- c #C17F0B", -"p- c #010100", -"q- c #845608", -"r- c #C7830C", -"s- c #C3810C", -"t- c #CB860D", -"u- c #C5810C", -"v- c #C2C1C1", -"w- c #B4B5B4", -"x- c #B3B3B4", -"y- c #B1B2B1", -"z- c #B1B1B0", -"A- c #ABABAB", -"B- c #AAAAAA", -"C- c #B6B6B5", -"D- c #D3D4D3", -"E- c #D5D6D5", -"F- c #CECFCE", -"G- c #C4C4C3", -"H- c #A0A0A0", -"I- c #9E9E9D", -"J- c #9A999A", -"K- c #9A9A9A", -"L- c #999899", -"M- c #949495", -"N- c #A8A8A8", -"O- c #CD8811", -"P- c #D18B11", -"Q- c #C98610", -"R- c #A36B0A", -"S- c #825305", -"T- c #986308", -"U- c #B3750A", -"V- c #BE7D0A", -"W- c #7E5308", -"X- c #110B01", -"Y- c #C4800B", -"Z- c #7F5308", -"`- c #D38B0D", -" ; c #C6820C", -".; c #BD7C0C", -"+; c #C3C3C3", -"@; c #B6B7B6", -"#; c #B5B5B6", -"$; c #ACACAD", -"%; c #AAABAB", -"&; c #A9A9A9", -"*; c #A9A9A8", -"=; c #ABAAAA", -"-; c #B0AFAF", -";; c #ACABAB", -">; c #A0A09F", -",; c #A2A2A1", -"'; c #9D9D9D", -"); c #9C9C9C", -"!; c #9B9B9B", -"~; c #9A9A99", -"{; c #989897", -"]; c #E1E1E0", -"^; c #AC720C", -"/; c #875705", -"(; c #805204", -"_; c #865605", -":; c #926007", -"<; c #AC7109", -"[; c #BB7A0A", -"}; c #BD7B0B", -"|; c #C7820D", -"1; c #201502", -"2; c #684506", -"3; c #D78D0D", -"4; c #835608", -"5; c #754D07", -"6; c #BD7D0C", -"7; c #C2C3C2", -"8; c #B8B9B8", -"9; c #B0AFB0", -"0; c #AFAEAF", -"a; c #ADAEAE", -"b; c #ACADAD", -"c; c #A9A8A9", -"d; c #A6A6A6", -"e; c #A5A5A5", -"f; c #A0A0A1", -"g; c #A3A3A2", -"h; c #9E9D9D", -"i; c #9E9E9E", -"j; c #9D9E9D", -"k; c #9D9C9B", -"l; c #989998", -"m; c #969697", -"n; c #D3D3D2", -"o; c #EDEDEC", -"p; c #CF8911", -"q; c #B7790D", -"r; c #8C5B06", -"s; c #7E5103", -"t; c #825405", -"u; c #845505", -"v; c #855606", -"w; c #845708", -"x; c #D1890C", -"y; c #CA850D", -"z; c #C6C6C6", -"A; c #B0B1B0", -"B; c #ADADAC", -"C; c #ABACAC", -"D; c #A6A7A7", -"E; c #A6A7A6", -"F; c #A2A2A3", -"G; c #A1A1A1", -"H; c #9E9E9F", -"I; c #9D9D9E", -"J; c #9C9D9C", -"K; c #9B9C9B", -"L; c #9A9B9A", -"M; c #959695", -"N; c #9F9FA0", -"O; c #CDCCCD", -"P; c #EAEBEA", -"Q; c #D28B12", -"R; c #D58D12", -"S; c #C07F0F", -"T; c #946107", -"U; c #7E5203", -"V; c #815304", -"W; c #835504", -"X; c #845506", -"Y; c #9E6808", -"Z; c #BE7D0B", -"`; c #C07E0B", -" > c #AC7209", -".> c #CA850C", -"+> c #B1750C", -"@> c #CBCCCB", -"#> c #CDCDCC", -"$> c #B8B7B8", -"%> c #B4B3B5", -"&> c #B2B3B3", -"*> c #B1B0B1", -"=> c #AEAEAD", -"-> c #ACACAC", -";> c #ACACAB", -">> c #AAA9A9", -",> c #A9A8A8", -"'> c #A5A4A5", -")> c #A2A1A1", -"!> c #A1A0A0", -"~> c #9A9B9C", -"{> c #9F9F9E", -"]> c #E5E5E6", -"^> c #E6E7E6", -"/> c #9D6708", -"(> c #7F5203", -"_> c #7E5204", -":> c #845605", -"<> c #986307", -"[> c #B27409", -"}> c #BA7A09", -"|> c #B7780A", -"1> c #BD7B0A", -"2> c #261902", -"3> c #D1890B", -"4> c #674406", -"5> c #A16A0B", -"6> c #C1800C", -"7> c #CCCDCD", -"8> c #B7B7B8", -"9> c #AFB0AF", -"0> c #AEAEAF", -"a> c #ACADAC", -"b> c #AAA9AA", -"c> c #A8A7A7", -"d> c #A7A7A7", -"e> c #A3A4A4", -"f> c #A2A3A2", -"g> c #A2A0A0", -"h> c #A09F9F", -"i> c #9C9D9D", -"j> c #AEADAD", -"k> c #D18C13", -"l> c #A66E0A", -"m> c #815404", -"n> c #7C5003", -"o> c #825404", -"p> c #845606", -"q> c #915E06", -"r> c #B77709", -"s> c #A86D08", -"t> c #B7770A", -"u> c #B77809", -"v> c #A26A09", -"w> c #624005", -"x> c #2B1C03", -"y> c #CA860E", -"z> c #C8C9C8", -"A> c #BCBCBC", -"B> c #ADACAC", -"C> c #ACACAA", -"D> c #A9A9AA", -"E> c #A7A6A6", -"F> c #A5A5A4", -"G> c #A4A4A3", -"H> c #9D9D9C", -"I> c #9B9C9C", -"J> c #9FA0A0", -"K> c #BBBCBC", -"L> c #D28C13", -"M> c #D78F13", -"N> c #B2750C", -"O> c #855604", -"P> c #7A4F03", -"Q> c #805304", -"R> c #815303", -"S> c #855506", -"T> c #865606", -"U> c #835506", -"V> c #A56C07", -"W> c #B77708", -"X> c #A56C08", -"Y> c #AD7109", -"Z> c #C07E09", -"`> c #B37509", -" , c #C4800A", -"., c #845607", -"+, c #C8840E", -"@, c #B7B8B8", -"#, c #B1B0B0", -"$, c #AEAFAF", -"%, c #ACABAC", -"&, c #A9AAAA", -"*, c #A7A7A6", -"=, c #A4A5A5", -"-, c #A4A3A3", -";, c #A1A1A0", -">, c #A0A1A1", -",, c #9E9F9F", -"', c #9D9C9C", -"), c #CDCECE", -"!, c #E4E4E4", -"~, c #E7E8E8", -"{, c #D48D13", -"], c #BD7D0E", -"^, c #8D5C05", -"/, c #7A4E02", -"(, c #7E5104", -"_, c #805303", -":, c #805403", -"<, c #875805", -"[, c #9F6707", -"}, c #B47508", -"|, c #C27F0A", -"1, c #3E2803", -"2, c #412A03", -"3, c #C2800A", -"4, c #AA6F08", -"5, c #080500", -"6, c #C6820A", -"7, c #654307", -"8, c #BEBEBF", -"9, c #B4B4B3", -"0, c #AFB0B0", -"a, c #ABABAC", -"b, c #A9AAA9", -"c, c #A2A3A3", -"d, c #E1E1E2", -"e, c #E6E5E6", -"f, c #D58F13", -"g, c #DB9214", -"h, c #966207", -"i, c #7A4F02", -"j, c #7C5002", -"k, c #805203", -"l, c #815203", -"m, c #815405", -"n, c #835405", -"o, c #976306", -"p, c #B07208", -"q, c #B67608", -"r, c #B37408", -"s, c #B37409", -"t, c #B67708", -"u, c #AC6F08", -"v, c #9B6508", -"w, c #CA840A", -"x, c #362202", -"y, c #634206", -"z, c #B2B2B1", -"A, c #B0B0B1", -"B, c #A7A6A7", -"C, c #C9C9CA", -"D, c #C2C2C2", -"E, c #C7C7C8", -"F, c #E2E2E1", -"G, c #E4E5E4", -"H, c #A16A09", -"I, c #7B4F03", -"J, c #794E02", -"K, c #835404", -"L, c #815305", -"M, c #915D06", -"N, c #AA7007", -"O, c #B27508", -"P, c #BF7D09", -"Q, c #C88209", -"R, c #563804", -"S, c #1C1201", -"T, c #D28C0F", -"U, c #C7C8C7", -"V, c #BABAB9", -"W, c #B9B8B9", -"X, c #B5B5B4", -"Y, c #AFAEAE", -"Z, c #AAAAA9", -"`, c #A3A3A4", -" ' c #E0E0E0", -".' c #DADADA", -"+' c #D78F14", -"@' c #AC710C", -"#' c #774C02", -"$' c #7D5003", -"%' c #7F5103", -"&' c #805305", -"*' c #8B5A05", -"=' c #B27308", -"-' c #B77808", -";' c #0C0800", -">' c #BB7A09", -",' c #7C5209", -"'' c #C9860F", -")' c #C6830F", -"!' c #ADACAD", -"~' c #D9D9D8", -"{' c #DDDCDC", -"]' c #E1E1E1", -"^' c #B6780E", -"/' c #754B01", -"(' c #7D5103", -"_' c #865704", -":' c #9E6606", -"<' c #593904", -"[' c #BD7A08", -"}' c #191001", -"|' c #CD8910", -"1' c #C5C5C5", -"2' c #C2C3C3", -"3' c #B7B6B6", -"4' c #A8A9A9", -"5' c #C48310", -"6' c #8E5C06", -"7' c #754A01", -"8' c #7C4F03", -"9' c #815403", -"0' c #7F5104", -"a' c #A16906", -"b' c #AB6F07", -"c' c #C07D08", -"d' c #1E1301", -"e' c #482F02", -"f' c #C8830B", -"g' c #C3820E", -"h' c #D78F10", -"i' c #C5C5C6", -"j' c #BDBEBD", -"k' c #BBBABB", -"l' c #B1B2B2", -"m' c #A4A5A4", -"n' c #DADAD9", -"o' c #724800", -"p' c #764C01", -"q' c #915D05", -"r' c #966105", -"s' c #2E1E02", -"t' c #B87806", -"u' c #B57507", -"v' c #583904", -"w' c #281A01", -"x' c #C17E07", -"y' c #A76D09", -"z' c #A16B0D", -"A' c #C98510", -"B' c #C4C5C4", -"C' c #C3C3C2", -"D' c #BABBBB", -"E' c #BAB9BA", -"F' c #B3B4B3", -"G' c #A7A8A7", -"H' c #DA9314", -"I' c #DE9515", -"J' c #C38210", -"K' c #754C01", -"L' c #7B4F02", -"M' c #7C4F02", -"N' c #7C5103", -"O' c #7D5104", -"P' c #8A5A04", -"Q' c #A36A05", -"R' c #AF7106", -"S' c #B27306", -"T' c #0A0700", -"U' c #764D04", -"V' c #B77607", -"W' c #472E03", -"X' c #BC7907", -"Y' c #A96D06", -"Z' c #191002", -"`' c #B87A0D", -" ) c #CB8610", -".) c #BBBBBC", -"+) c #BBBABA", -"@) c #B3B4B4", -"#) c #B2B1B1", -"$) c #D5D5D4", -"%) c #986408", -"&) c #845503", -"*) c #9D6605", -"=) c #B57606", -"-) c #774D04", -";) c #0E0900", -">) c #B27406", -",) c #794E05", -"') c #C9840C", -")) c #D68E11", -"!) c #C3C4C3", -"~) c #C3C2C3", -"{) c #C0BFBF", -"]) c #B7B6B7", -"^) c #B0B0AF", -"/) c #AEAFAE", -"() c #ABACAB", -"_) c #CF8A13", -":) c #784D02", -"<) c #7E5003", -"[) c #976104", -"}) c #B67606", -"|) c #B77706", -"1) c #201501", -"2) c #563803", -"3) c #C37E07", -"4) c #9C6609", -"5) c #C48210", -"6) c #C2C2C1", -"7) c #BCBCBD", -"8) c #B8B9B7", -"9) c #B4B3B4", -"0) c #B0B1B1", -"a) c #734900", -"b) c #905D04", -"c) c #AB6F05", -"d) c #845604", -"e) c #4E3303", -"f) c #BF7C06", -"g) c #8A5903", -"h) c #CE8810", -"i) c #C0C0BF", -"j) c #B8B8B7", -"k) c #B4B5B5", -"l) c #B3B2B3", -"m) c #7E5102", -"n) c #784E01", -"o) c #7B4E02", -"p) c #A26904", -"q) c #AF7205", -"r) c #8F5D04", -"s) c #B67605", -"t) c #9C6505", -"u) c #A16807", -"v) c #D99112", -"w) c #CE8A12", -"x) c #D6D7D6", -"y) c #B40202", -"z) c #A50303", -"A) c #970303", -"B) c #B2760D", -"C) c #724900", -"D) c #794F02", -"E) c #794D03", -"F) c #875703", -"G) c #9C6404", -"H) c #A86B05", -"I) c #B47305", -"J) c #A96E04", -"K) c #C07C07", -"L) c #BFC0C0", -"M) c #B2B2B3", -"N) c #CCCBCC", -"O) c #BE0B0B", -"P) c #B30101", -"Q) c #A30303", -"R) c #940101", -"S) c #830202", -"T) c #750101", -"U) c #DA9315", -"V) c #956003", -"W) c #9F6603", -"X) c #734903", -"Y) c #B27204", -"Z) c #593903", -"`) c #684403", -" ! c #BD7B04", -".! c #654202", -"+! c #724C09", -"@! c #C0C1C0", -"#! c #C0BFC1", -"$! c #BBBBBA", -"%! c #B8B8B9", -"&! c #ADAEAD", -"*! c #ABABAA", -"=! c #D1D1D2", -"-! c #AF4E51", -";! c #A43637", -">! c #9A1616", -",! c #8C0E0F", -"'! c #7F0202", -")! c #6E0000", -"!! c #630102", -"~! c #BF7F0F", -"{! c #905C03", -"]! c #A46903", -"^! c #8E5C03", -"/! c #9D6404", -"(! c #AA6D04", -"_! c #835403", -":! c #B97805", -"~ c #CF8B13", -",~ c #DD9415", -"'~ c #D58F14", -")~ c #C1C0C0", -"!~ c #B9B8B8", -"~~ c #BDBCBC", -"{~ c #CCCBCB", -"]~ c #CFCECE", -"^~ c #C38229", -"/~ c #B87D28", -"(~ c #AB7425", -"_~ c #9E6B22", -":~ c #92621F", -"<~ c #85591C", -"[~ c #78521A", -"}~ c #6F4B17", -"|~ c #9C6401", -"1~ c #956002", -"2~ c #120C00", -"3~ c #9E6501", -"4~ c #533707", -"5~ c #C88612", -"6~ c #D99215", -"7~ c #BCBDBD", -"8~ c #B9B9BA", -"9~ c #CECDCD", -"0~ c #C08028", -"a~ c #B57A27", -"b~ c #A87124", -"c~ c #9B6921", -"d~ c #90601E", -"e~ c #82591C", -"f~ c #76501A", -"g~ c #A56B04", -"h~ c #AA6E01", -"i~ c #1E1300", -"j~ c #603F04", -"k~ c #C2C2C3", -"l~ c #C9C9C8", -"m~ c #CCCDCC", -"n~ c #BE8029", -"o~ c #B07827", -"p~ c #A46F23", -"q~ c #976620", -"r~ c #8C5E1C", -"s~ c #7F561B", -"t~ c #744E19", -"u~ c #DB9316", -"v~ c #DF9517", -"w~ c #C1C1C2", -"x~ c #BA7D29", -"y~ c #AE7626", -"z~ c #A06D22", -"A~ c #946420", -"B~ c #885C1D", -"C~ c #7C531B", -"D~ c #734C18", -"E~ c #DD9516", -"F~ c #BEBDBD", -"G~ c #BDBDBE", -"H~ c #B5B4B5", -"I~ c #CBCACB", -"J~ c #C28129", -"K~ c #B87C28", -"L~ c #AB7325", -"M~ c #9D6A22", -"N~ c #916220", -"O~ c #855A1C", -"P~ c #795119", -"Q~ c #704B17", -"R~ c #C3C3C4", -"S~ c #B5B6B5", -"T~ c #CCCCCD", -"U~ c #C08129", -"V~ c #A77124", -"W~ c #9A6821", -"X~ c #8E601F", -"Y~ c #81571C", -"Z~ c #765018", -"`~ c #BCBDBC", -" { c #CBCBC9", -".{ c #BC7F28", -"+{ c #B07826", -"@{ c #A46F22", -"#{ c #976621", -"${ c #8B5E1E", -"%{ c #7E551B", -"&{ c #734D18", -"*{ c #C38428", -"={ c #BA7D27", -"-{ c #AE7524", -";{ c #A16D22", -">{ c #724C18", -",{ c #C9C8C9", -"'{ c #C08128", -"){ c #B77B27", -"!{ c #AA7325", -"~{ c #91621F", -"{{ c #845A1C", -"]{ c #714B17", -"^{ c #C1C3C2", -"/{ c #BCBBBC", -"({ c #BF8128", -"_{ c #B47A27", -":{ c #A67124", -"<{ c #8D5F1E", -"[{ c #81571B", -"}{ c #754F18", -"|{ c #C4C3C3", -"1{ c #B9BAB8", -"2{ c #C7C6C6", -"3{ c #B17726", -"4{ c #A36E24", -"5{ c #8A5D1D", -"6{ c #7E541B", -"7{ c #744D18", -"8{ c #C1BFC0", -"9{ c #C7C6C7", -"0{ c #C28329", -"a{ c #B97D28", -"b{ c #AD7526", -"c{ c #A06C23", -"d{ c #875B1D", -"e{ c #7A531A", -"f{ c #724D17", -"g{ c #C5C6C6", -"h{ c #C5C5C4", -"i{ c #B1AFB0", -"j{ c #C6C6C5", -"k{ c #C18229", -"l{ c #B77C27", -"m{ c #A97425", -"n{ c #9D6922", -"o{ c #91611F", -"p{ c #84581C", -"q{ c #775019", -"r{ c #6F4B16", -"s{ c #C4C5C5", -"t{ c #A57123", -"u{ c #9A6721", -"v{ c #8D5F1D", -"w{ c #764F19", -"x{ c #C0C1BF", -"y{ c #B07726", -"z{ c #A26E23", -"A{ c #966520", -"B{ c #7D541A", -"C{ c #744D17", -"D{ c #C8C7C8", -"E{ c #C5C4C5", -"F{ c #BABABB", -"G{ c #BFBEBE", -"H{ c #C3C4C4", -"I{ c #C38329", -"J{ c #AD7625", -"K{ c #9F6C23", -"L{ c #936320", -"M{ c #875B1C", -"N{ c #724C17", -"O{ c #BF8028", -"P{ c #B67B27", -"Q{ c #AA7224", -"R{ c #9C6A21", -"S{ c #8F611E", -"T{ c #83591C", -"U{ c #785119", -"V{ c #6F4A15", -"W{ c #B6B8B8", -"X{ c #C5C7C7", -"Y{ c #BE8128", -"Z{ c #B37926", -"`{ c #A57023", -" ] c #996720", -".] c #80571C", -"+] c #C6C6C7", -"@] c #C3C4C2", -"#] c #C2C3C1", -"$] c #B3B5B3", -"%] c #BB7E27", -"&] c #AF7725", -"*] c #A26D23", -"=] c #96641F", -"-] c #8A5C1D", -";] c #7C541B", -">] c #C1C2C1", -",] c #C1C0C1", -"'] c #C2832A", -")] c #AC7425", -"!] c #9F6B22", -"~] c #92631F", -"{] c #865A1C", -"]] c #7A5219", -"^] c #714B16", -"/] c #BF8029", -"(] c #A97224", -"_] c #9C6922", -":] c #8F601F", -"<] c #83581C", -"[] c #785019", -"}] c #6F4916", -"|] c #C3C2C2", -"1] c #BE8028", -"2] c #B27826", -"3] c #A47023", -"4] c #986821", -"5] c #8B5F1E", -"6] c #80561C", -"7] c #744F17", -"8] c #BB7F27", -"9] c #AE7625", -"0] c #956520", -"a] c #885C1E", -"b] c #C28227", -"c] c #B97D27", -"d] c #865A1D", -"e] c #7A5119", -"f] c #C7C9C7", -"g] c #B67B26", -"h] c #A87223", -"i] c #8E611E", -"j] c #6E4A16", -"k] c #CACBCA", -"l] c #C9CBC9", -"m] c #986721", -"n] c #8B5F1D", -"o] c #80561B", -"p] c #C38327", -"q] c #BB7E28", -"r] c #A16E23", -"s] c #895C1D", -"t] c #714C18", -"u] c #A8A8A7", -"v] c #C2C1C2", -"w] c #C28229", -"x] c #B87C27", -"y] c #9E6B23", -"z] c #85591D", -"A] c #78511A", -"B] c #714C17", -"C] c #C4C3C2", -"D] c #A77224", -"E] c #9B6821", -"F] c #8F601E", -"G] c #82581C", -"H] c #BD7F28", -"I] c #986620", -"J] c #7F561C", -"K] c #734E18", -"L] c #B7B6B8", -"M] c #C38328", -"N] c #BB7D28", -"O] c #AF7625", -"P] c #C08228", -"Q] c #90621F", -"R] c #785219", -"S] c #704B16", -"T] c #9A6822", -"U] c #8D601F", -"V] c #81581C", -"W] c #765019", -"X] c #BDBFBD", -"Y] c #BC7F27", -"Z] c #A36F24", -"`] c #7F561A", -" ^ c #C48328", -".^ c #A06C22", -"+^ c #875C1D", -"@^ c #714D17", -"#^ c #AFAFB0", -"$^ c #CAC9C9", -"%^ c #C18227", -"&^ c #9D6A21", -"*^ c #91611E", -"=^ c #785118", -"-^ c #9A6720", -";^ c #8E5F1D", -">^ c #81571A", -",^ c #C78C35", -"'^ c #7C541A", -")^ c #A7A8A8", -"!^ c #F6C06D", -"~^ c #D9A34F", -"{^ c #C18935", -"]^ c #BD8731", -"^^ c #A47126", -"/^ c #8D601D", -"(^ c #845B1A", -"_^ c #775017", -":^ c #F1BB65", -"<^ c #E7B05A", -"[^ c #DEA74C", -"}^ c #D9A240", -"|^ c #C18C30", -"1^ c #AA7720", -"2^ c #AA771B", -"3^ c #916415", -"4^ c #E8B259", -"5^ c #E3AC4E", -"6^ c #DCA540", -"7^ c #D39B32", -"8^ c #D09625", -"9^ c #D0941C", -"0^ c #E6B056", -"a^ c #E0AA49", -"b^ c #D9A23B", -"c^ c #D49B2F", -"d^ c #D09623", -"e^ c #E5AF51", -"f^ c #DFA847", -"g^ c #D9A139", -"h^ c #D3992C", -"i^ c #CD9321", -"j^ c #B0AEAE", -"k^ c #E2AB4B", -"l^ c #DEA743", -"m^ c #D89F36", -"n^ c #D49A2A", -"o^ c #DBA344", -"p^ c #DAA23E", -"q^ c #D79E33", -"r^ c #826122", -" ", -" ", -" ", -" . ", -" + + @ # ", -" $ % & * = # ", -" - ; > , ' ) + . ", -" ! ~ { ] ^ / ( _ : = < ", -" [ } ! | 1 2 3 4 5 6 7 8 @ ", -" } 9 0 a b c 2 2 c d e f g + . ", -" h h i j k l b l 7 4 2 m n o 4 p < ", -" q q h r s t u v b b l 7 w x y z A B % C ", -" D E F G H I J I u u K L l w M N O P Q R S < ", -" T U V D W X Y X I u I v v u K l Z O ` ...+.@.8 $ ", -" T #.$.%.&.*.=.-.X I u u u v u K v ;.>.,.'.).!.3 ~.% $ ", -" {.].^./.(._.:.=.=.-.X X I I I v u I <.[.}.|.1.2.3.4.5.$ $ ", -" 6.7.7.8.9.0.a.b.c.:.:.-.-.-.X X I I I v d.e.f.g.f.L h.K i.j.k.8 ", -" l.m.n.{.o.p.q.r.r.s.t.t.:.:.=.=.X X X I I u.v.w.` x.y.z.A.B.C.D.| 8 ", -" E.F.G.H.I.J.p.r.K.r.r.s.a.:.:.=.=.=.=.-.X L.M.N.O.P.Q.R.S.T.U.V.W.X.k.$ ", -" Y.Z.`. +.+++@+#+#+#+#+r.K.K.a.b.c.t.=.-.=.X $+%+&+*+=+) -+;+>+,+'+)+!+~+{+8 ", -" ]+]+^+/+(+_+:+<+[+@+@+@+#+r.p.r.r.K.c.t.=.=.=.=.}+|+1+X 2+3+4+5+D.6+7+8+9+0+a+b+$ ", -" c+d+e+E.f+g+_+:+:+<+[+@+@+h+#+#+p.r.i+j+k+l+m+t.=.=.n+o+p+q+r+s+5+5+>+t+u+v+w+x+y+i - z+ ", -" A+A+B+C+D+E+g+_+_+:+:+F+G+<+@+@+H+I+J+K+L+M+N+O+P+t.K.J.Q+S.R+S+T+S+U+3+V+W+X+Y+Z+`+. @ - ", -" B+B+B+ @.@+@E+E+E+E+.@@@:+#@<+<+@+$@%@&@*@=@-@r.;@K.>@7 ,@'@S+)@!@!@~@{@]@^@/@(@_@:@<@| { ", -" [@}@}@|@1@2@3@3@3@E+E+E+E+E+.@.@@@4@5@6@7@8@9@0@r.r.a@:.b@c@~@d@e@)@f@~@g@h@i@j@k@l@:@:@:@ ", -" m@n@o@p@(+q@q@r@+@+@3@E+E+E+E+E+.@_+s@t@u@v@w@x@H+#+y@z@A@B@C@D@E@F@G@H@b@I@J@K@L@M@N@O@i ", -" o@o@P@Q@R@q@S@T@T@+@+@+@3@3@U@E+E+_+E+V@W@X@Y@Z@`@ #:+.#+#@#e@##$#%#&#!@*#=#-#;#>#,#'#)#!#~# ", -" o@{#]#^#/#(#_#(#(#2@T@T@r@+@+@3@3@:#E+E+E+<#[#Y@Y@}#|#1#' 2#y+3#=#4#5#6#7#8#9#0#a#b#7.i E c# ", -" d#e#f#g#h#i#j#k#k#(#2@T@T@T@T@r@+@3@3@E+l#m#n#o#n#p#q#r#s#t#u#v#v#w#d@x#y#z#A#B#C#$.D#D E# F# ", -" j.G#H#I#J#K#L#j#M#k#k#k#k#2@2@2@T@r@+@+@+@:#N#O#P#Q#R#S#T#U#V#W#W#v#X#y+Y#Z#`# $.$+$@$#$U $$%$ ", -" G#&$*$=$-$;$>$,$,$'$j#M#M#k#q@q@2@(#T@T@r@T@r@)$!$~${$]$Y@^$/$X#W#W#t#($v#'@_$:$<$[$}$T #$ c#|$ ", -" 1$2$3$4$5$6$7$6$8$9$,$8$j#'$M#k#0$k#2@2@2@T@T@T@a$b$c$d$e$f$g$h$i$U#t#j$k$l$l$m$#@n$o$p$]. q$r$ ", -" s$t$u$v$w$x$>$y$6$6$8$8$8$,$,$j#j#M#k#k#2@2@2@T@T@z$A$B$C$D$E$F$G$U#H$I$J$K$L$M$N$O$P$Q$Q$ q$r$$$ ", -" R$S$T$U$V$W$X$>$>$>$6$6$L#8$8$8$'$Y$j#j#k#k#2@2@2@Z$`$ %.%+%@%#%$%%%&%*%=%-%6#;%>%,%'%)%/+ r$!%~% ", -" S$S${%]%^%/%(%_%_%_%:%<%>$6$L#L#8$8$9$,$[%j#M#M#k#k#9$}%|%1%E$2%3%4%5%6%7%8%9%0%a%b%{.c%l. q$q$~% ", -" d%d%e%f%g%/%h%(%i%i%<%j%j%>$:%:%>$6$L#L#8$9$,$,$'$Y$'$K#k%k@l%m%n%o%p%q%r%s%t%u%v%G#l.w%x% !%r$~%y% ", -" z%{%X.A%B%C%D%C%E%(%(%_%_%_%<%<%:%>$>$>$6$6$i#F%'$8$i#G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%}@V%]+ W%X%q$Y% ", -" U%Z%`% &y$.&+&/%W$E%(%(%(%@&_%<%_%j%<%j%>$>$6$L#8$9$#&$&%&&&*&&&&&=&-&;&>&,&,&'&)&!&E.C+~& {&]&^&Y% ", -" /&Z%(&_&:&<&[&/%/%/%/%/%C%E%E%(%i%_%_%j%j%>$<%>$6$y$}&|&1&2&3&4&4&5&6&7&8&9&0&a&b&c&n#d&e& X%c#+%f&W% ", -" g&h&i&j&k&l&m&n&o&/%p&/%/%/%C%/%E%E%(%_%_%7$_%_%j%>$(%#&q&r&s&t&t&u&4&v&w&x&5%o%y&y&z&A&Q#B& ~%C&D&p#E& ", -" F&G&H&I&o.m&J&K&L&h%L&p&p&p&/%/%C%E%E%E%E%(%@&_%j%<%M&W$N&O&P&Q&R&S&&&T&U&J#V&W&X&Y&Z&`& *z&.*+*@* #*$*%*&***=* ", -" -*2&;*>*,*'*)*!*[&[&!*L&h%L&p&/%/%/%/%/%E%E%E%(%_%(%/%:&~*H&;*{*]*^*/*k@(*_*:*<*[*}*Y&P%|*1*2*3*$%4* 5*6*7*8*)&%$ ", -" 9*u&5&0*a*b*c*m&d*e*)*!*K&h%K&K&h%f*/%p&/%C%W$W$E%(%h%g*h*h&;*h&k@i*j*k*l*m*n*o*p*q*r*E$s* *b&1*t*b&u*Y@X@ v*~%w*x*y*z*$$ ", -" u&u&*&A*V$B*J&C*D*m&C*d*)*)*!*[&[&K&n&o&p&f*/%/%/%/%E*E%.$F*G*H*X.h&I*t&J*K*L*M*N*O*P*Q*R*S*T*z&1*U*V*W*X*Y*v@Z* {&`* =.=+=@=#=c# ", -" 5&$=J%%=&=b**===-=C*D*C*C*e*e*)*d*!*[&L&h%L&o&L&/%/%n&D%;=>=,=/&I&X.'=I&)=!=~=t&{=U$Q*]=^= f$/=(=1*_=V*:=<=[=}=|=X@ 1=c#]$2=3=4=1*5=y% ", -" &&5&6=7=8=9=0=a=9=J&J&c*c*b=C*C*m&)*)*e*!*!*n&L&+&h%n&.&:&c=d=U%e=F*F*G*q&Z%f=g=a%h=*$i=j. P#+%j=_=V*k=D&l=m=l=2%n=o=p= q=r=s=t=u=v=w=x=y=!%z= ", -" A=B=C=D=)*E=b*F=F=9===J&G=D*D*D*C*m&d*!*d*!*!*H=[&L&I=J=K=U%{%L=d%d%M={%N=v%O=P=/#Q=4$G#G# R=8&%*j=V*V*S=:=T=7*U=U=V=8&X@W=X= {&Y=r=s=Z=`= -.-+-@-#-$-%- ", -" &-6=*-=-a*--;-b*>->-9=9=9=9=9=c*,-D*C*C*C*m&d*d*!*'-)-K&1 R$!-~-L=L=e=L=n&{-]-8=^-s$/-(-1$ B$B$_-:-V*<-D&[-7*}-m=&*@=3%|-R#1-Z=2-3-z*4-5-6-7-8-9-0-a-b-c-d-w=d-b&c#%- ", -" a+e-f-g-h-i-j-*=b*b*b*b*k-k-9=9=a===G=c*c*D*C*C*C*e*l-b=m-/-n-o-p-q-r-s-@&t-N*6#D+U%u-T$u$ +%E$v-V*_=w-x-D&y-z-m=m=@=A-B-m=C-c&/=Y@D-v@X@E-)&F-G-1*H-I-J-K-L-M-N-y=X% ", -" e-O-P-Q-R-j-S-B*B*B*B**=b*b*b*>-9=9=9=J&a=J&c*D*D*C*J&'*T-U-V-R$1$r-W-X-Y-d=6#Z-`-o. ;R$.; +%d$+;@;V*#;k=x-T=7*}-m=@=&*$;%;&;*;B-=;-;D&T=&*m=;;>;,;';K-);!;~;{;!;z&];c# ", -" H$v#*-^;/;(;0=0=_;B*B*B**=b*b*b*>->->-9===9=J&J&G=J&'*:;<;(-u$[;1$};u$|;1;2;3;4;5;A%L=6; ]$/=7;8;_=X*S=x-W*T=7*9;0;a;b;;;%;&;c;d;d;e;f;b-g;u=h;u=i;j;k;!;K-l;m;N-n;o;y% ", -" p;P-v#q;r;s;t;u;v;v;;-B*B*B*B*B**=b*b*>->-F=k-9=====b*'-H.G#*$4$/-[;H#f%w;x;w$p-R${%y;d%A% N%d$z; *1*_=V*S=D&T=A;}-m=@=B;C;A-B-&;N-D;E;e;#-F;b-G;>;H;I;J;K;L;L-M;N;O;X%P; ", -" f-Q;R;S;T;U;V;W;E=u;X;u;0=v;_;B*B*B**=*=b*b*b*F=>-k-B*a=Y;{#]=^=^=4$Z;n-`; >6#D+.>+>_@d%d% @>#>z;(=[=$>2*V*%>&><=*>}-0;=>->;>B->>,>D;d;8*'>y*b-)>!>>;u=';);~>d-K-{>|-]>^> ", -" X#W#=%Q-/>(>_>E=W;W;E=E=E=u;:>v;0=;-B**=*=*=*=b*b*b*B**=<>[>}>|>|>|>1>|>j.2>[&3>4>5>F*6>F* |-7>z;(=8>1*:-_=S=[-T=7*A;9>0>&*a>;;b>N-c>d>d;#-e>f>,;g>h>i;i;i>!;c-!;j>z;q$`* ", -" v#k>d@*%l>m>n>m>o>E=W;E=W;E=E=u;u;p>0=v;;-B*B*B**=*=B*p>q>r>s>i=o@o@t>u>v>l-3>w>x>,=Z%y>X. |-|-z>A>b&b&1*_=V*D&T=7*}-m=0>a;B>C>=;D>,>c>E>8*F>G>b-G;H-u=i;H>d-I>J>K>)&1=r$ ", -" L>M>H@N>O>P>Q>R>m>o>o>o>W;W;E=E=E=u;u;0=S>0=T>B*B*;-U>r;V>W>X>6#Y>f#Z>`> ,.,6#]=e%;*+,X.X. {$;&9&_-@,8; *_=V*S=D&T=#,}-$,=>&*%,=;&,c;,>*,e;=,-,,;;,>,,,J;!;',b-_=),3-!,~, ", -" {,d@4#],^,/,(,(;_,:,Q>V;m>o>--W;E=W;E=E=E=:>p>v;0=B*E=<,[,},r>},|,1,2,3,4,5,<;6,7,R&-*'=F& S%|-{$8,z&b&b&1*2*k=9,D&T=#,0,m=&*->a,B-b,N-d>y*&;c>d;g;;,,,c,*,}-D$N%X=d,`*e, ", -" f,d@g,-%h,i,j,(;(;(;k,Q>l,Q>m>m>m,o>n,W;E=E=E=u;:>:>t;X;o,p,q,r,s,B+t,u,p-v,w,x,y,2&S&S&-* z>S%V=z&z&b&8>_=V*S=D&z,A,A,m=j>b;->A-B-&;B,8*}-2%E$C,@%D,9&E,E$3-z*];F,G, ", -" F@F@D.X#H,I,J,U;(>(>(>(>k,k,l,V;V;V;m,o>K,----E=W;E=t;L,M,N,m@A+A+O,[>P,4,Q,R,S, ,F*T,7=;* C$U,w*V,P%W,b&1*_=X,D&[-y-#,}-Y,&*->A-B-Z,N-`,x-B$ '.'1-@*1-@*X=3-s=d,1= ", -" +'+'U+)@@'U;#'$'s;s;%'(>(>(>(;k,(;_,V;V;V;o>o>t;--E=t;&'*'j V%e++$='},-'}@9=;'>'P@,'''4&)' 9&E,w*K>V,y&b&1*_=V*S=D&T=7*}-m=@=!'a,=;>>&;2=@=B$~'o= {']'s=3- ", -" )@s+D.^'O>/'I,n>('('('s;U;(>(>k,k,k,k,k,Q>m>m>m>o>o>Q>_':']+e+~&~&~&x%+$<'C+['}'[%&&|'5&+, 1'T*2'K>a&z&|*@,3'X*<-D&l=7*#,0,0>j>B>a,%;4'D;B-]$o=p# ", -" T+~@B.5'6'7' 8'$'n>$'('('s;(>(>(>(>k,k,Q>Q>:,9'R>0'o>a'E.w%x%x%]++$t,b'c'd'e'f'g'h'&&5& i'i'+;j'k'k'z&b&1*3'X*S=&>l'7*}-$,U=b;->A-Z,m'b;c&n'p# ", -" G@S+.$o'p' n>8'$'('('s;U;(>(>(>k,k,k,(;(;(>(>q',%r's't'F.'%+$u'v'w'x'y'z'H$A=A' B'1'C'>&K>D'E'z&a-1*X*S=F'T=7*A;-;@=&*->A-B-G'G'9&E-X@ ", -" H'I'J'K'L' 8'M'n>N'$'('('s;s;(>(>(>k,%'O'P'Q'R'l.S'T'U'V'[$W'X'Y'Z'`'a+f- ) +;c&+;3%K>.)+)z&8;U*C-X,@)&>#)*>}-m=j>B>->A-c;N-A&X@$) ", -" 5+T.%)7'L' 8'j,8'8'n>n>('s;s;U;(>U;n>&)*)n.l.m.m.=)-);)>)w%6#,)')*-))a+&- !)!)~){)A>K>(=Z&`& *])t*<-@)T=y-#,^)/)&*;>()G'&;(=n#v@ ", -" U+_):)i,i,i,L'L'I,M'8'8'$'('('<)s;n>R>[)#$Q$#$].].})m.|)1)2)3)4)5)U#O-e- 6)+;+;A&7)j=j=Z&y&8)1*_=#;9)D&y-0)}-0;@=b;C;B-e;7)8&Y@ ", -" 5+T.5$a)/,i,I,8'M'M'8'8'n>$'n>I,$'b)E 7.T #$p$c)#$d)e)f)g)9#Q-X#P-h) D,D,i)3%3%(=a&z&b&j)@;V*k)x-l)z,}-m=m=@=a>B-c;S=o#~$ ", -" D.F@m)n)i,o)L'L'M'L'8'n>P>P>g)p)#$T T T U q)r)s)t)6#u)K%v)w#w) D$D$@%8,3%A>(=V,P%j)])_=V*9,D&<=#,-;@=&*b;%;N-X*]$x)y= y)z)A) ", -" D.J@B)C)D)i,i,i,L'L'/,E)F)G)$.D H)G {+I)#$J)6#P>K).+M>k>X# L)D$@%Q%Q%3%p%a&z&|*b&])#;k=F'l)7*}--;0>&*->d>M)N)P# O)P)Q)R)S)T) ", -" U)6+<,p'/,/,i,i,:)s;V)W)X)Y)q E#E#D Z)`) !.!+!j$=#X#W# A&@!#!O%Q%Q%A>$!V,%!8>])_=w-@)W*T=7*}-m=&!->*!=>N%y==! -!;!>!,!'!)!!! ", -" D.T.~!a)J,/,#'P>{!]!$.^!6#/!D (!_!:!Z&z&%!1*_=2*S=D&T=7*}-m=@=->&;7*G-o#8& 2!3!4!5!6!7!8!9! ", -" D.J@0!a!:)b!c!h ]!} d!e!f!g!h!6#i!['j!k!=#L> l!|!@%@%}!m!3%0&j=Z&W,$>:-C-k)@)&>n!*>9;@==>A-$;i'E$8& o!p!q!r!s!t!u! ", -" v!w!x!y!i :@:@:@h h z!A!B!C!D!E!F@+'=# Q%m!|!D$@%l!3%A>(=Z&z&b&])#;V*S=F!T=7*A;}-@=->C;G!S*E$ H!I!J!K!L!M!N! ", -" O!T.d#= $ { P!| i!Q!R!S!{=T!U!V!H@ Q%3%Q%W!W!A&Q%X!A>(=Z&`&b&_=t*V*x-#)*>A,m=$,A-Y!7)E$Z! `! ~.~+~@~#~$~ ", -" %~F@$ &~*~- =~-~6#;~(->~,~'~`# A>0&>&)~D${)Q%m!3%.)Z&P%!~1*@;V*S=D&T=*>}-m=&*B-~~{~]~ ^~/~(~_~:~<~[~}~ ", -" D.B.L=|~1~2~3~*~4~5~6~~@)@ (=0&D$D$@%|!m!7~A>(=8~b&$>_=_=k=x-D&<=*>-;Y!->[=9~]$ 0~a~b~c~d~e~f~ ", -" %~D.g~h~i~j~*%v!I')@ D'K>L)k~#%A&Q%3%7)(=$!z&8;1*2*V*S=l)T=0)9;@=$;U*l~+%m~ n~o~p~q~r~s~t~ ", -" u~v~-*i _*g@%~T+ z&D'A&w*w~@%_-Q%7~K>(=Z&z&b&@;2*k)S=l)#)A,m=A-])9&]$ ^~x~y~z~A~B~C~D~ ", -" U+,~U)E~5+6~ Z&V,A&~)w~G!A&F~G~A>(=Z&z&b&1*@;X*H~:=T=7*}-0>0)9&N%I~ J~K~L~M~N~O~P~Q~ ", -" 4+U+u~U) W,E'j'R~k~D$L)A&3%1!0&(=Z&!~8>2*S~w-D&D&#)}-a;D&D,T~|- U~a~V~W~X~Y~Z~ ", -" D. b& *Q%7;+;D$G!}!3*j'`~(=Z&8~b&a-2*w-S=D&T=z-@=n!D,|- { .{+{@{#{${%{&{ ", -" *1*$!!)+;D,D$@%l!j'`~(=+)E'%!b&1*2*S=:=T=y-9;-;@%S%C, *{={-{;{A~B~#~>{ ", -" _=1*(=+;c&~)6)@%A&Q%>&A>k'E'z&b&1*_=V*S=l)M)0,n!.)z>,{ '{){!{M~~{{{P~]{ ", -" _=V*Z&^{1'+;D,@!@%A&m!7)/{(=V,b&@,1*S~k)x-l'A,m=3%z;C$ ({_{:{W~<{[{}{ ", -" #;V*_=+;1'|{D,D$@%A&Q%3%~~(=Z&1{b&1*@;S~S=l)T=-;`&2{9& .{3{4{#{5{6{7{ ", -" S=b&8{2{G-D,w*D$@%3*>&7).)D'8~%!8>_=V*k):=z,7* *c&9{ 0{a{b{c{A~d{e{f{ ", -" w-[-S~@!g{h{+;7;#%{)A&3*j'A>$!E'8~b&1*C-V*S=l=i{b&+;j{ k{l{m{n{o{p{q{r{ ", -" D&[-}!9&s{c&+;D,@!A&Q%j'7~/{$!z&8;b&1*C-w-@)7*H~+;h{j{ ({_{t{u{v{[{w{ ", -" z,:=j=U,z;c&!)7;D$x{_-Q%1!/{+)P%z&a-_=_=X,x-l'X,{)1'G- .{y{z{A{5{B{C{ ", -" 7*#)3%j{D{E{G-+;D,D$O%|!G~A>.)F{z&z&1*_=V*9,z,V*G{H{s{ I{a{J{K{L{M{e{N{ ", -" z-}-8~E,`=1'c&+;D,D$@%A&4%3%.)$!Z&z&b&1*_=V*F'T=j'+;~) O{P{Q{R{S{T{U{V{ ", -" 0,A;W{X{C$z;h{c&D,D,D$L)Q%3%7)j=Z&z&b&8>3'S~F'<-$!7;2' Y{Z{`{ ]<{.]}{ ", -" 9>&!b&c&S%+]i'h{@]#]W!i)A&Q%3%A>(=Z&z&@,])S~$]F'k'L)w* %]&]*]=]-];]f{ ", -" -;/)D&u*l~`=i'1'c&7;>]D${)3*Q%A>(=Z&y&8;1*3'V*9)z&,]D$ ']a{)]!]~]{]]]^] ", -" Y!:=7;N%2%z;1'c&+;D,#%@%|!m!1!0&a&,&`&j)1*C-V*8;i)@% /]P{(]_]:]<][]}] ", -" 0;->n!6)|-C$2{z;s{+;|]v-@%i)8,3%`~p%k'8~`&1*_=w-8;Q%@% 1]2]3]4]5]6]7] ", -" !'&*w~S%z>T*o%h{c&+;|]W!}!3*Q%F~0&+)E'!~b&_=#;2*3%G{ 8]9]z{0]a]C~f{ ", -" A-0>.)]$S%C$9{j{h{+;2'D$@!A&Q%F~A>(=Z&z&b&8>2*1*K>4%G{ b]c])]!]:~d]e]]{ ", -" *!;;7)S%N%f]U,2{1'c&+;D,D$@%A&Q%7).)(=Z&|*1*2*U*(=3%>& ({g]h]c~i]<]w{j] ", -" a,b,V,k]l]C$T*T*z;s{+;7;D$W!A&m!3%A>(=+)W,b&1*_=8~A>3% n~2]p~m]n]o]7{ ", -" 4'%;w-{~@>l~,{9&z;1'c&C'6)@%}!Q%3%A>(=+)Z&W,1* *z&(=1! p]q] ~r]A~s]#~t] ", -" ;>u]_=9&d$|-S%C$E,z;s*G-D,v])~A&4%3%A>(=V,!~j)1*z&D'(= w]x](~y]~{z]A]B] ", -" @=c>^)l~]$'&N%N% z;h{C]6),]V=8,m!3%/{D'V,b&$>b&P%D' '{){D]E]F]G]w{ ", -" -;B>v-+%N% !)#]@!|!Q%3%~~(=Z&z&$>$>,&Z& H]2]p~I]${J]K] ", -" m=a,L],{]$ C'i)_-Q%A>(=a&E'W,$>W,z& M]N]O];{+~B~#~N{ ", -" ->,>D$]$ G!A&G~A>(=E'z&b&$>b& P]){!{M~Q]{{R]S] ", -" ;>j>S%d$ A&3%p%k'P%b&@,1*b& Y{_{:{T]U]V]W] ", -" T=&;9,C$+% X]1!(=F{b&1*1*1* Y]+{Z]#{${`]K] ", -" _=d>1*'&d$ 4%7)(=8;2*t*_= ^c]y~.^A~+^e{@^ ", -" N-#^$^|- X!/{Z&_=V*]) %^l{!{&^*^<~=^^] ", -" b>Y!|{N% X!+)2*S=S= '{Z{`{-^;^>^}{ ", -" 0;N-z&S% (=_=D&S= ,^O]:{q~B~'^t] ", -" 0,)^m=D$z; Z&1*&>D& !^~^{^]^^^/^(^_^ ", -" x-->1*i'9& F{_=D&D& :^<^[^}^|^1^2^3^ ", -" A-&;S=l!C'1'c& A&b&_=#)W* 4^5^6^7^8^9^ ", -" B-A-m=@;K>3%Q%3%8~_=y-<=3'9, 0^a^b^c^d^ ", -" S=}-=;->-;7*}-m=7*z-V, e^f^g^h^i^ ", -" b&#,D&j^}-A;T=b& k^l^m^n^ ", -" o^p^q^ ", -" r^ ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" "}; diff --git a/src/Mod/Ship/Icons/ReparametrizeIco.png b/src/Mod/Ship/Icons/ReparametrizeIco.png deleted file mode 100644 index 0e75e41cca14b4175ae520ee07bdf812b3d665dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12178 zcmV;DFKy6?P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipf7 z3oIWT5}c#}000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}001BWNkl;19!)xAnd>?Tk-yUj*fKi z*1h|j^;^F+?6voS{cV5S-}blt?G@UB{kH&s1A*TI&A^?nqzgB5^}^1FQ?G^GN8!3U zx?cbs1spdEz&rwcW?#Qg;amm4V))qWA^8*>QAhXF{rQ$UKfVH(b^96Mzn`k>(!4|9 z6o9p`rjE}&&7be6a~v}QW|j=Jzt!3P2cW>uX6pD5loj*>c*6``7x>TY1EkJzZ1Mkd z*mNEK41TJhm&4}$46x_4yDq9e2aY)wf(@XfaP17=d$d14;)O~bfLRRm15fTD2HNif z)M;1iqUu(-5a-Sht^qs4_f~v_$LkztU4S_Y76I&ppYLaY`fTD%+Fh6C0nCS!0G_Uo zerF4S8T-$YfnFH^sCeberuWKc((bycdNCXdumc{eV`wY=`KdhxfLSuoD+2&C*u;9Y zyKYTg0UZE?aDN>`TjtN}>%5d10W(VmdS&w7YHq91a^mEi9 zpa?6s##qy4iG_*@l`ymrfQCXCbnweXBYeeNM}j-J^vFe&PljSfDWxGwfHgkaQ_K72 zh1@3)8xDETC5HB4=qxC45&8q6PlO(Y-m;-T2OEl6uIf;R^VS1K!F&|VBVh0FbU#Z5 zn)?8lY!g38EO>~&NM>1-EYg;Fny;Q_Q8Jt$Op1%3=%rVyl9-VR5$zyS@yLE&-y;*zgWeD4*kD*TdFj|p3Uo#*8IKJ5dX z!B=CWG%wgn(`nmiyr|59Cn@tgl!h3T2-qYs?jc~kh39h6Gib?fvgFn)xeb@I{tHJ@ zl$(kFMGwt)Lw*EI4$4KP_b|^y8>SIHzybceWu~#Vc>oO8(HB^_8)5IR|8{?lMtQay zp6#x5I2bNH6}XlvZAeIxH1o)b}kWk(>eG=@nikM}B1+^6(ipN2a^%H2wKxRH2n z12@?`@FRZ!B;a%dJOqU`&Qp6K+C5qGcGocjkb|dZ0f6p0@7IignI!}5D*)K^h~tG2tQh&hAkTW z-vuADs&`f+&ny`ah;XVr@q_S9;O~Jy01xAePOk&<`ziqHX@S?^2Cto+X;=a9j1%^^ z981#bH9S+3i#Wue3trnsfFVz_udWHhdi-kxUh9T@-_cjODdnrSIDswnpKWTiI`m@< zfz=)W>wph>EiU+@H0d6-;0i`>@J#h#|GIc!#DG=<3s=CG%MN+lJUg8LoB_Pm;et(b z5de+AvHm6<=X3ijflQn4u+`bmzzcALcciuhpYZ?xMx5i;?*UL4&ow#o(GPrKhCy_B z`mJc~?%FXm4&Bb(^eg-C&(=7rH%`$nb|S2b!6*Cjx=MzXQMWH*>)EDFT1(ZSwV#G_S_5+O3~C-s0Y&?AuM| zXW|qE%t9y?EcZ?GeyPnlhHS20M=x-bKlWWGaFQSJLEvKClxK(k4C`&(1K!>}hMO<% zJ=i-wUGSa9-Fp)=$qr2Y(+I!PXLmQg)(7bD9(X+fXr3hiW&}*a1E9OgUUMS~m?CaJ z%K@G5dUW48m4==HVZ|#iOE%C@$6`#H+g z2_6DCDDDitu9@2Vtw+1-rs{<6J2ojcpFThV??_H(?kXlv>jA(l8EBscz>~le^>j@7 z9Kh!3>AfE9u2)k{+6y&XjoBN0MAGO(%f_07(5e3aRs$cO6b0mcxS01x892Nq8+d_# zE$dpt$VH2m)?$8UU(H}?Dn4V8~zoXqBtzMHGfrgxClqcYP zFO=z%o7M31&A8ddipB?2Domzse~c?|8Jm<0GW|a1vDuk|%W>Jj4K4^G@B0pVCwNZg z0cNs^F|YOQKqqjvfBgvHO79cQ^L;8BOidQ>jk^P8vlrT!yV1inDczBpBkP56u21J) z>&;muhY|DVls_u39qh;bl#g&?KKIn<$J&+gS-)O4{!1r~ufN7YzTO{m5&%+@QCr~w zAiyX6-%C7=Rx*N>nEaTUxVu8FJG_Q>0QUfQd55vrn~ed_9>c)MB4?iFErl=L4}Uk= zMARgKVqO4Cd>Z&J&kCiQV{-c~j#<78+~>g&^Pg*h@`3Oh;GmSt`u*Bp?{d#xDIYGc z_G6fn07(0E?@7RMBQ8h4HYdQZ`95RLDzL>1dZpLGpZeGPytY&_d_Mu+j+=}4*$j!G z5XZ9v)6jlJ$T_dscx|qSk~1}lqm9!zD>3i;JnT)tkVq%pkc_{>eJ?`0>!#{dWyME*v_4w^%-DaH47AS! zAYz7PS{0j^pS~ER9__B1s?#q&0A|BLb3YGIhfSe&T_zm`EH(x>u$#J9x$_HpjQq6 zc4HH#)$XNSBT7Oxaef?xIIC&khv_oOpiDA|h=&nj=+_9wmEO!VyiPWf;66TeW|C$C zqI4t0My1#ar8b3TkS0YM13s5f5_Gfd*I)w02w)WxK~to3mEo8&1d-(C*;S3VqSUbWUx`dvfl`{q^PLR7AnLQ4RMPD4M@zg z<75a_S$eM^3ZV&zg%C>$iIk8?9#45;o+i3!QV5MD9#ev5%fjXY?MsWyLtUa%VOJq! zLr*8a`eZj({9;Zrz#3BJfaSqk`O|+N;HFjDgUv>@9ddaD7j=4*@)E815B@dkiDnVRXANyaRUa%#rJEgOSwFz9C7pz^WQRrIj2nfA)cxV*0Y5mYw0dda+1>ZMgUqhH?sl0vgi6Y!1GIyy7@^NelodW z=Jpe~eie!&v@IfnFK<|*AD zVmFo8I9T)D28fhheY*ScmFgPG%Lss&pIpk-`I!&!?Y$xzc+mieC`QUt4=4GX*Fta6 zvh^Cv(A9^~b<1fyk`IC7;0J4EDEhhyJxGZ^|ta$5Cy$50pRkuclH5&L;P+=n>b71)(rsh z$)rSmLoQXBdyfI;rDULeFAq?MP28i}UGlpzrRs}p>Jg~${KcZR6+m;My<`BW!zR`P zfZ0%Wz9zTa>VHjBt?jFJs$14S*ME6DtLmm9p^!ZXstou5h%Y=J$C(>l$dbRRGLpI`%K7 z$ME=BYOd+)Q}net@67tR^~M_Z7{o0U-GZx?*p8b%AHhwMZN-(@m**q^bY|_2<7)I5 znNIOOll+uX+uYjU^W07Kx^7hP>Sa;}3p3`*tRRwzD#UB-24%2mxrtH16gxPs6Muv`4Kt-$RldhyG_0xuN< zB(^!bTd|3s!`1#D>~BP35(q2BqFcRI?C?VF1@86ZyoebJEk;4xK|+_V-Bkx+RLo61 zMIi+bfaD|qR8|j-Gth|;t*J&DmAwoe<@tG#rT%_wf4LmXmjVEX0&jZO+3X76ecEg6 zCQpw~;fhCp>;Z5g)dd@qwV>$7Iiq%rczYdIE0cHEDvnsD&g;t8X#6zc@c8wnnYo6s zQb7AOFJs%&0Js|ejGoA+0Q}whTkq(s_cm{rr`iAT8o0aV;nQi}^V*R6Oe0mZQ4avp zbza+yfSDx&&B-X>G29Lzzq4?ig`XsWGvG_pJUF4`0T9~_0A|#@N*i`85sTF~!#6fd z2AB~rvt*#XqV4GiM*Jgi5b$o`%KSt}X*%tmNw{@Wb=I4Spc+2T;4%Oc*B`zpz<36t zP6nEj0GL4KHGG|Z5!zihRgZXQE?(VtU_wYMy`%uB!z-UoyDOVDWNPC7ll{4N zK45$<0BCvAZ%8o;=TQF!&?ow1s#ZG>P-$=W$7E-=xYYxB&}H@B=Kp_}PjGGW$2Onf z8g*US#LM_}v6mD8b=btw8sWC#(xeNi=F#WZXx^nWeczz>Ioe&wxvNIorkV@r@Y=r) z_)d-U8u0wNfEeznrf2*9w@`gnO=Uxj^q6}9(Y!Y2i&WCs9sb&mn#39wcm|gRy&Cw} zIR}7>O;nc)KLj@^vJ^KLu$<~fO`oc{@s;`ZqQ8liW#e0L8!Plsod>9$3m9y7%hCU8 zrF*S&hT*OD02l+lU8Cu>8%x)=3q1ff;10lOEb`(S+dq@Zc?96lI3oQrO3!W>uCjqbsH)mh*u1AL5O-(L#!u~97C-<#X_X|kX zoJVG%c~iC$JU;5w%A5f$Yo^}>vZB4)JvA@#V|!76$vN{-F9XfFM9?U1mahj_X7x_L zTNVd6wEq&Pp?$Ly?u?pOX=|Xo7Rr83{@6OkywRVR*U`5E7@_)Y$GW;TX-qy?kwxB_gDC z^#U$?+-)OPK(VUiBg+=GJXtpUwy@KE??%rU%co+DSu)U^1Az6~KO37kt#&WtYJos3 zN!iGGJ3tN$Ib?YgzuHvYBOvDY2uOrVE~S(bxAFSHrAW&l9Tz0|+|xp~QOLC&LZJ=H zEuhVcG%1=ke0doRVQKlx?KEDbhy|uZLV4;h9_ z0mEa$NH!oh_$a0BtND3!D%l`l`5TVlUH6VMtfTDA@8YT<*fhdkRyqEXt`2?^y!Th| zgI~kgo2Rym224%}VjWz%IKlCuA!x8jb3`;h!ggAuGsit2u_P85j(g0~A(nKL-y=6J;85!RWxQI+B{>ASF5TYbe8a(+__m7tGsCUFfbZ0*c+1D5yNf|$o5!v>@2f>?I=H5!^`{#nU^{dG^I^EgwMD3kvyhE z`iMLa7nIKUAgA1D>1?pHHb*q4pfLsw-beYPN_c+c)XxsCv7Kz?kfiL7ldvRwl@gb zo&bH&Fxm~HJA|hrVPjt0hT175_mrS_Dx;e$qnjhLTa|(Bu(2Dr8RfOk(dW#W z#_huc;mG$$FRG0CGZa1gP^`!$7OEuxrxJ>V%z+;!~gs_eC0;X0-!Jm~zK4CaoyFV2#oTsg3xBvQ#>4jsJ4T>nK~?D0 zm0YKP&X@H--a8oMwYM9N`W_tg2{`br!opWU;wxYjrC@o7N0fNJ^pjG+BGY*Nq< zxb10YYX8H3_LX&B@|C{-ho*Y-95_ZnH-bH5nlO6_7t7InE;y1e8TR$|C5Xki=58Tt zg&i8_YEALiGv^)I$=lmj@_}HoO;pey?tTO1dbE31RQ*F3xD1{+&rLw> z>2@1#3b}m`Fwop?_1MIj?CJ}o>X)s(4$iK*<~>#*`qVet+n)KCjtic>V*aPce$*N4 z^rup{9LLS9fx zc-=qGYZuH}h@J~_bQnmBDy^!trxNCy?15$G;eW>sxfQk@3roCByrvGjI-PLOWFKko zo__vg+V<=f^Sg>=JzwCB3a^R<(tt=PNSKIWb`87gxO5_5V^8@6uMm4b0M^0Xz>-6& z4}soiwfn`k$1iUSqe#NBqJ}LQSqPk~${T?*3MEa1MqJL(!ZSM}b`2G2PL}xM|0{C# zVal0@$60kiGgjroeFgyDE5G<{aKJUw&yt-v7X|+C*V@uRTV!cYgmkHLaw5ig@lakB zMFf!rBg$}I=^e6!Qs&2Z6gl?@%T13)Jn$S`{>O%cJE0f}`J$z4m6&h=u9R-?2f&`P ziTgr(N?din z=gNRy3t#dEY3po?(ls#YUFz+*;xzXBlpOtjujsmif$u0e7y8IAyuvm?Z*g zFvif)0=>g<_#!xMl`xjC&Si)w*?gHyDqzDE^G{gz(cTC42>{HM_Rv>bTBAtMEL%A% zG#o8LOJmBkj}>)Z7!WT7B}Hs|>cN#6rJqiG@O0*xFZO!MqevS>J%$Z(%)vH49B9~`s6XddoZS77xr_~cLXoOPJt`#%C04Ig z5IrCF=)L^_crk6w|7tWM1c?|%kgl@jwF++%?%eQYV@wIow3B|H@D;%;gz&rpe_o$=tg zZ_YpRpg-?@Y(D^YmyP^FL!*Hu0*j5I%LqqV<&?&xtS(!^u_EM)N?W6F-!oz3X zjOR=C9I6v)`vCxO!{;*1F~iZ3a+DES8i+1Q#pTek0;_;nvFvX4T~C)eu-&kI!1A-Z zi(K*kB)6|Cl8g)QI3>pBT>(Q`<^5+mVFNTIg{}R{!CgWza-mtiA?SaMFZgX zUraaWOT1cD&M*Oo#Y5)jOLS%ubjAYWgIRcFW5iKQ1J>`feCOr@|MuY&cRy36XUK5s zs(|LSFf^vT{#&KU!pEy8fli7aOP6M%{^T5vR;FG8v8s64V0 zOMs1$s(fqqA(e`}{Vx?9)c$V;1^|J;z^K)+LL|n>k{5ID_DKNT{P|2T>kD9U-(6yOftce`G$?VEKwvZXc4ybDGf=( zCoV`(EI~_JK@8S9trJhXD$ZNK=!B4Br0f`Q*}Gi9X?<0D73+m+WYT`KS{12IQ2FZX z;~y4jH zEiPF-S47^VaAp)~vsFimVW6lQ)@`?J>sKy5HO{-P7~$uCnPEY*VeM9nRpIR?$7x6j zp@H9grh#lp>1sBt-&v+mvV?(5&`RUCbBNSY_fS?D%HdM6QB_#tE5$2Wm8&7hc{rzxQ*tFG<~{PF-@q*}3Kj}w=xjE8cyEFMY%5uVv$X>Blc zHi!K5t|EVSc8WDm=1Imae|vF~Me_o73@GOx6Qg&?(mNdS<#(hJfuXELfQ`Koi|4u6 zJ03bMRHGD2O3sIBxq|cD^ChKNu4LeJJSk(O>T*>Ct6CGEiPQ*gqKc1Wpz@ERh{{AE zYmI=7@2oQJ=&3>}av`D-NW=^+nP5pv+I+h)70{dsXlo2;Oa(;FS6TS%74y56f3$b! zUIT#t`gp7jrhj< zQf%rg^5~X`_neVrXw1?(Y`OG;6mcVj0dzJQ@+I{Sn372e7aSj>qe)PNLfMinD5E(Y z7j!97qNwVf8&9!eSe1>fh{g+~l7bPh*b_YS$zFSnAs49v#!m9(Wx}H}oYPn?D`o4R zV4O+_^P6L|H-)q|1T>}$sdzvlCd5L)2m`>KR=E?^r>wHAF=Yl{RtEUxrD1ca#5sz* z9^oWwX^sbEM)J0yA!%Z%SU~TvaL;v_oR!o_0F!gl!c{k@E-elO)-Kvb@7EoKqg&SfU)M&#}9#TdfRCFv%#Z zda4ynMf1H!Kd#9WZ2S1!95N+=R~-QC1hS>NG2)70zrJ( zC_uCiJG^}zgYowlap(q$ukwTN733}>oJTEq!07K82qIBrFf@84GB z)rX}x@!&XzUD`{}zjg3m_vX3!{yhKs!6qKvQf5(WKo}~mX`y#S#~r20lOjR`n|dSG zZjE@&VQ!zsY(W{yDMMMu5M?h+V=CsmCTFfyx*oUYT1~G`IM>KqYcYCJ;q?s^ai$+)4dLFj0X(bg1@NeCiRj3UijOHtA7g4~ATH;YivL}{ z*^CVE;B%TvgxqBlE3v>K{@oO#eqES7*(55I*r!yx(B`nBA-02hDLX8+^E!A7fgU$kx-w4mdYB5fcnDtin2L_32XCZYjZfBl3q#LLOgr z=|G9Sq}8=L_&+~lE-#erM^9YU7HeK~6b}b~%z?RUu|0PY8cQlJq~b!ZXvb;LS}-Wa z2$8~5+sm}31!IJfTtu$mJoRG9X}z`1oZz)-vS!;_bE^}RE|u?8rABKf=G=AC6r0wV ziOIG=5v(6mS)GYW#DsJL8j^-gLP#YHiBO1#5C%eE7y`LR(R)zVsY(yR=0Ifg@&9w6 z$X?p&asrLvHUl5*9>~YK4sK#-!{gkyX)SL#$}l|UG$U73KfC2_Vi_1Kz|dI4@R(98 zDx1fYa-?ofTy

;(=0eoT}Nh8e1+*bi`_>&ZLI!r4qtTWQTEPz$f*o?)PDRAL}P@ z01_cIqzz3ep)n;SW3Cv(7&l@u3<%sRA~!@u6pX7_$tHI=fwre7;0yKSTl<_v>5!&p%W60IZ} z<`EbnKhi^PxEobFftD*7wF!=uf4@>2r!_G&lf3$>7q8EA^Qsm=C&d3c{)x_p8*%yk zOdJ|hhK8imcrj8|OVL6Zm7OAbtB72aipj03KR-Mt7psJ`K+4^b>e6*v3lz!$*}O#) zt*m<0ds)=6f_O4Rezc#F-e(!uwwBz`HWzqPdQt-yaHPN01&PX4Da08 zUnCY!(%8O?BT)50x-*RXVW%#0Ul*5|Iai`>o2e@<3nahHENEhT8U@c$PR2F*)X4xUC*)Zwr{ax-EE-JBo}SsM2W~`hpi^NqO~(C zE{kr*XVRR&lYtTsm3ZKiNP*Fcu))ZXf!jp5S%n9qh(RL^goggJzmhHP7x#;w3%DKC z3-j4NMtYvbm>9*e0X9DHb9Sz~b$km&5q(~5Ta^iPLQdUOra&vaFh1+%>gSVz5(|~M zi3kJ6=hXdaml19h;Tloy9L{NfV@jd`O6PxNEZQ&LJq!Rb`YUVY!a}x>k)EfBB^w#- z+rZYfH`GX4Cu%+ug7I-Lu3GI{EqWG#m{?*#M9f$MxAA9$5(!d5=|$ug5q^zw>l?n7 z&+ZrDeeQ!Ho&Vi>aAGkifha~I0Ora^(TW^8p_+MH7Uv=FXKQo4V-V`Y_lss#@cb*M|3% z;NH3=PHHh?5f1 z47Uh!wV=QIlW*IB{kL@v13;A_;8P&$t=j9~|J}K}qu2hnzwK}P+y1t{&EfX{0g})+ UjA>5j!2kdN07*qoM6N<$f)8U!VgLXD diff --git a/src/Mod/Ship/Icons/ReparametrizeIco.xcf b/src/Mod/Ship/Icons/ReparametrizeIco.xcf deleted file mode 100644 index b370b06b0024d464ab3e0f6fa99ac62b467b4b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53229 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%0AN73Rty3 z*%iwj7(3y3cVls@gN^H>A@Jw|$T=zuQK77U5Bx zV&y8-xH?+1R@Po$_Y|Gj`t=(&>c;4qO|t1a-H-P_x~-l52O#iWXsSMWEhz#9?~3SH zyJqcL?*yau8)QRnBj9(NHp}K~ECNLEZCkf(-yu5`UXaPtbokMz61XiHqC?vOs`ac| z84-;H_BI$jYV;T#BV+A2!G4!^Vl-*8og7U8J5Q#{G(4?PIanboLv@%upu=^99Vw%9 zw2slS0PBvQpc8bWPLjzwC90Zgr$*DDbwlM~fW01h#4KHEYHQ8n#b(h$vv7e~u)xfp zZ|2Q4b00PjJ!Iz0F|%fwSu@Ry8Ro$UP0e&uU2Uo%4_zN^jOCZqnk7rj;zefR!bEF0)-RP;AAQU`0*hH%Tf3wdT(bZKrv9o1X z9zZ?=o}bo4)2pQ#c3GKw>{0V59Y9pOM3>0o5Ve!L ztp%s5mQXeaxAV2zx%yDRy2T^@bcQ|{0Ney(AM1`r#Vltf``Hfd09_iK<-vds+iWoC z{z3O!kBm;;Bj2-kQzRG_qn7P(bpU9X$>3C_W)<}6h`4B;D`a`IV=?x?GN*8^0^=-0 z?BH}|eo%H0OV<0sd+xnQ?+LyKZn&`YtiveFh_ov^Jv15uJ4}0+c7ctJ!YvyPYt)fM zE?ekfhgyKBsfP@*_ghENrW(naghOXMemd=u*l94d73Vrcx7=&*QFr=P6wD@)S4}Fm zr(D~cA=(y=48C{w-E1OsW)nSmnq87X`H3niG*VsJ5l^PpI!Z?7V;pw$z%U)AP(4O& z$9*XGrqPF9Vo-LJC0p8eVt_rgF-{JLJ-AXaN`!{%eF@b&Rw)_{A$8p@!_qOMn?uB| z@%ZyX>8Yf2r;KNFr_eXn(a3{)F+`T5Z^A*@N?X|p688{n=Pko9q{FTE3NqR{mk^Dg zU?&6l4NJhv=nh~DTvt#H--kSh4H>4;ilk-!ms-|LL z`VHrb0us8g+i}XKQmN83AWM<~?+Mr=Ee##aSIVO@0G9z80zxX|>KM%~= zKwz46fb^FEovaiwL}V2Q;EsXG6rg$_YqSS09q5fE!~?PUe`-JnXj4uu z4XJi0i=D{vpY*;?>@tN&UKS^ohpq!}NxA9*K&pVN%79NDLP6VyNaxTH|77FS?ZEJs zfq-D82iX3(eo&3@>!=@gEw>;jr+W#hP(XY`A={@MjP8iEWb07Pr9ILyz1mT=LFvL- zYz%ZO>7D7->9(!z*`p*zM_*6S(dA_p=K`tY8WDLoG}+Y_m~gEK2n2~p1;X{TSR zB2^CJnrng^l#1SYltU&~Z?LpeprHxgJR#Gk!hxvC#V(B-M~rtm{#^Pd^?10nCukGi zP0BWc2~kqLa&8=5SEU_;+qcS==g}%|)B+>un?kR%6c6{taFEnhf}&EqOcITxFR16f z?Nph}YwQ?a+9Ok;uDX{O4!SAb3t3vpE5$3I)?Xu7Kd|tFI#S34w)ySJ-Rz>^8f0n&+M~c(i}p zR8H(8>&%)pX3c7|YNc7R!Yo^6>g$jN7UXwPe#Z{8 zeOs6OrcLIVM1I{mvv!SHy~?ayRggbNdAlb>?XvUgb31ly-?n|*wk=!CmS>R$Z;m!0 zCyq8EE{qJ)S?In2D?B1z6-=PxFVe3}2g+*-ML>=DVh(1^kG|p4&)~#K; z29#>FL05DxUshl5+JIr$6YYiy?K_|IC2ZBL9W3G5&4orFM}JzLiq;`&4%i4;m1oG0 zWFe?OcMd&4KyS2gfjUO7I+(G}QG|6mQ)fhstgHt#Bbu$!DKa^9mFr@=D8C>f4SPB3 zY0GwIG{c31GF_|fO;R?gtUCoc7L%FcaLWt>b=u9f$r1%2*r`ddvCdU6m#L=1H0Nd@ z0`(|qsYb{>wWDgvl*yBwo<4wFL@2TXq)b`znqyg;fT4A|OiNGgtb*99>=mS-i`DUv ziBWcVW1SvPOl<3afmDL9K%w%c6iC%gEXhs^i8MG$uVe zZmGf!x@vW!!iv4w*|~Ybq34J*Jn@F-69P6=s)8x5ow6(3y=SlNjrL(aL=I>}2mR0C z#%>Nwp3l*NaXwH^!=>~&I<;ytxoJP<0p(C2imis03Dr2{e((K!yjOh5e_v&WJm||FRy_!!@L2P zehM8ClIDqdGhzJraXPLYwCK@e&;q1y%z$**RWyI-kRgK;VGBcg*ZGA>tbD@62~PFg z*l}aWj2W$?P(}Ha*-%kBw^bg;XZ>7H(edCVgWLGSh!}47ZT}}gV8~{uVNV5Qk zobveR1Yr%d_SfAQIEhY2UG`w-JiyLgNWL9{Gp!IL%Ua2qPTwxK38r4sKrYK&nx8DZ#HN4;5iWb|uQUwmQfE%qKSf{@keB%z59Nd;Pft?fF!9#w~c#TTEx8HHQ-p-y=oX(;5 zeWz$%>drhk;G|-!>u3utG||FN%~$gRS9pb=&3F*ErI|CqiJmsX$s%1GEvdycsq3C9+)vt0=IBH6FeWeNMe}*DrgN~1 z1EJ$0vtK zp0syB+AYHFzKpCxh?Ic6n;uYdi!}{BOhpA><#?5wGQ3I+0_;-kMOk7>N=yb{^kE~E zv`MAnm$e3)Bw9tv2iJpC(94%ozPyaWD54a*E;lqFS`hh%{?tN;@m#MWt~w2`qEV7I`!Y89D{94C z&BQsYqckJ;R)`7SlNP}%0kXfW96|Q>V z>W~QW9B{j!fiG0S$E#pjDMx)K9U9PVMImm)%e1tUpk-H1%#ya~w{kF_^AfkdED!C< zfX&Vj_8kMM#e%erjcPSQbxC;{l&2+~j>(4!gv_-x2Z1lNfy8Ml2klsQsw^F&o69l* zCLJ*Oz`jY?*_xD@auDYnbR@=^gM{e`sF6ys#TgrM?n5=iY=keg1jOi$q+*MvfDMTL z$hc0%j0lRs9)rG40g1fBcQ9L%ii=5?1q44QBjUi-C2?!m9B8Rve1j$kdt|*x-CV)g zQ84CPdmcAA+i8^nxZ7dU1utadNTWM(NfH)~$pd$JmG-s3wWkLJU<=Z^D?*$LW5x9= zJp+)ch-ssM_D(wi%s$|Hlzw?md|*DJ1YGz+9P&R&6+d?)UuQmChuu=KCF~76|7$+{ ze!mya>8guv2mihjzxjJj{N^{T6@PoreZwlpj2u7We*E>m-?Q?x-|<3vGmDk`e;a>k z-$4WYHy$?T#pd{g8vMk2<3(e(-)YPtbjDHaNoeqpQ*j|Z7S$IQ()&k6vBti*kiNK( z-c95e7t&`7tCWii>6494iVNwv(MfS3J=R@tdzIos`r<-*x00>6kRIz;3u``$3+ams z>D{7RE^aL@q}TT1Li*xD`r<-*ZpBetNMBq?UtCCETu5JBNdHR<=|2hQ_!%sq|7^F# z^V3tyiwolm+Z1rig6>-t{FfHS|90J5Tzx+ diff --git a/src/Mod/Ship/Icons/ReparametrizeIco.xpm b/src/Mod/Ship/Icons/ReparametrizeIco.xpm deleted file mode 100644 index 690b938941..0000000000 --- a/src/Mod/Ship/Icons/ReparametrizeIco.xpm +++ /dev/null @@ -1,1737 +0,0 @@ -/* XPM */ -static char * ReparametrizeIco_xpm[] = { -"128 128 1606 2", -" c None", -". c #000000", -"+ c #B50000", -"@ c #6C0000", -"# c #640000", -"$ c #FF0000", -"% c #8E0000", -"& c #8C0000", -"* c #630000", -"= c #CE0000", -"- c #DD0000", -"; c #A20000", -"> c #6A0000", -", c #7C0000", -"' c #860000", -") c #AA0000", -"! c #D50000", -"~ c #000001", -"{ c #00000B", -"] c #00000A", -"^ c #C80033", -"/ c #B5003A", -"( c #09009C", -"_ c #090099", -": c #090097", -"< c #090098", -"[ c #070085", -"} c #04004F", -"| c #040054", -"1 c #03000E", -"2 c #020000", -"3 c #0B0028", -"4 c #090027", -"5 c #14005B", -"6 c #1900B0", -"7 c #1500B2", -"8 c #1000B7", -"9 c #0C00BE", -"0 c #0800AC", -"a c #0700B9", -"b c #0600D5", -"c c #0400E0", -"d c #0200E9", -"e c #0100F2", -"f c #0000FB", -"g c #0000FD", -"h c #0000FE", -"i c #0000FC", -"j c #0000F8", -"k c #0000F3", -"l c #0100EC", -"m c #0100E5", -"n c #0200DF", -"o c #0300D9", -"p c #0400D6", -"q c #0400D3", -"r c #0500D3", -"s c #0400D4", -"t c #0400D9", -"u c #0400E2", -"v c #0400E7", -"w c #0300EB", -"x c #0300ED", -"y c #0300E7", -"z c #0300E2", -"A c #0300DC", -"B c #0300D5", -"C c #0300CF", -"D c #0200C7", -"E c #0200B1", -"F c #0200AE", -"G c #0100C3", -"H c #0200BC", -"I c #0400AD", -"J c #07009B", -"K c #0C008D", -"L c #BA0018", -"M c #E50010", -"N c #450044", -"O c #9E004F", -"P c #3E0070", -"Q c #0800B3", -"R c #0500C3", -"S c #0300D0", -"T c #0100DD", -"U c #0000EA", -"V c #0000F6", -"W c #0000FF", -"X c #0000F7", -"Y c #0000F5", -"Z c #0000F2", -"` c #0000EE", -" . c #0000E6", -".. c #0000E1", -"+. c #0000DE", -"@. c #0000DA", -"#. c #0000D6", -"$. c #0800CE", -"%. c #3700C6", -"&. c #2300BC", -"*. c #0000BB", -"=. c #0100B6", -"-. c #0200AF", -";. c #0300AD", -">. c #0300AE", -",. c #0300AF", -"'. c #0300A9", -"). c #0300A4", -"!. c #0300AC", -"~. c #0300B2", -"{. c #0400B0", -"]. c #0400AA", -"^. c #0400A5", -"/. c #0400A8", -"(. c #0400B3", -"_. c #0400BC", -":. c #0400C5", -"<. c #0300D1", -"[. c #0200E5", -"}. c #0200FB", -"|. c #0100FD", -"1. c #0000F4", -"2. c #0100E7", -"3. c #0100E3", -"4. c #0200DD", -"5. c #3300C8", -"6. c #4D00A4", -"7. c #0A00A6", -"8. c #0C00D8", -"9. c #0600E0", -"0. c #0100E1", -"a. c #0000E5", -"b. c #0000EC", -"c. c #0600EF", -"d. c #0700F7", -"e. c #0000FA", -"f. c #0000E9", -"g. c #0200DC", -"h. c #0500CD", -"i. c #0700BA", -"j. c #0800A7", -"k. c #0A0094", -"l. c #0C0085", -"m. c #0E0076", -"n. c #0F0069", -"o. c #10005C", -"p. c #0F004C", -"q. c #0B002F", -"r. c #120035", -"s. c #600000", -"t. c #800000", -"u. c #06001F", -"v. c #040014", -"w. c #08001E", -"x. c #04004B", -"y. c #020042", -"z. c #01005D", -"A. c #000086", -"B. c #010088", -"C. c #03008E", -"D. c #040097", -"E. c #0500A5", -"F. c #0700B5", -"G. c #0A00C4", -"H. c #2800D0", -"I. c #1100E4", -"J. c #0200E4", -"K. c #070084", -"L. c #0700C3", -"M. c #0100E4", -"N. c #0100FE", -"O. c #0100E2", -"P. c #0400C1", -"Q. c #3600A0", -"R. c #6B0083", -"S. c #190072", -"T. c #070068", -"U. c #06005A", -"V. c #05004D", -"W. c #000003", -"X. c #740000", -"Y. c #700000", -"Z. c #3F0039", -"`. c #C50033", -" + c #59005A", -".+ c #070081", -"++ c #0700B3", -"@+ c #0300D2", -"#+ c #0200E7", -"$+ c #0100F3", -"%+ c #0100EE", -"&+ c #0400CF", -"*+ c #0600AC", -"=+ c #090088", -"-+ c #090067", -";+ c #090051", -">+ c #070046", -",+ c #05003D", -"'+ c #040034", -")+ c #C40010", -"!+ c #F2000A", -"~+ c #620000", -"{+ c #7D0006", -"]+ c #0100E8", -"^+ c #0400D5", -"/+ c #0800B2", -"(+ c #09008A", -"_+ c #070072", -":+ c #06005E", -"<+ c #06004F", -"[+ c #FD0000", -"}+ c #EF0000", -"|+ c #9B0000", -"1+ c #080098", -"2+ c #0700BB", -"3+ c #06008F", -"4+ c #050065", -"5+ c #BD0000", -"6+ c #570000", -"7+ c #9A0000", -"8+ c #D70000", -"9+ c #820000", -"0+ c #010000", -"a+ c #F90000", -"b+ c #FB0000", -"c+ c #B30000", -"d+ c #090000", -"e+ c #DC0000", -"f+ c #0C0000", -"g+ c #7E0000", -"h+ c #470000", -"i+ c #BF0000", -"j+ c #900000", -"k+ c #2B0000", -"l+ c #A80000", -"m+ c #B20000", -"n+ c #2C0000", -"o+ c #950000", -"p+ c #5F0000", -"q+ c #890000", -"r+ c #670000", -"s+ c #6E0000", -"t+ c #780000", -"u+ c #690000", -"v+ c #6F0000", -"w+ c #3F0000", -"x+ c #550000", -"y+ c #350000", -"z+ c #4B0000", -"A+ c #990000", -"B+ c #7F0000", -"C+ c #540000", -"D+ c #4A0000", -"E+ c #A60000", -"F+ c #5C0000", -"G+ c #C80000", -"H+ c #5D0000", -"I+ c #D10000", -"J+ c #DB0000", -"K+ c #E40000", -"L+ c #04000C", -"M+ c #03000F", -"N+ c #000002", -"O+ c #BF0030", -"P+ c #C40037", -"Q+ c #0B00AC", -"R+ c #0B00A7", -"S+ c #0A00A7", -"T+ c #0A00A8", -"U+ c #0900A9", -"V+ c #070086", -"W+ c #06008D", -"X+ c #0600AF", -"Y+ c #0600B1", -"Z+ c #0500B3", -"`+ c #0400B5", -" @ c #0400B6", -".@ c #0300B8", -"+@ c #0300BA", -"@@ c #0300BD", -"#@ c #0100C0", -"$@ c #000091", -"%@ c #000092", -"&@ c #0000C5", -"*@ c #0000C1", -"=@ c #0200B3", -"-@ c #0500A8", -";@ c #06009C", -">@ c #080091", -",@ c #0B008A", -"'@ c #980041", -")@ c #C10032", -"!@ c #0B005F", -"~@ c #0B0071", -"{@ c #0E00B0", -"]@ c #0900C8", -"^@ c #0700D3", -"/@ c #0500DE", -"(@ c #0200EA", -"_@ c #0100FC", -":@ c #0100F8", -"<@ c #0200F2", -"[@ c #0200EB", -"}@ c #0300E4", -"|@ c #0300DE", -"1@ c #0300DA", -"2@ c #0300D7", -"3@ c #0300D6", -"4@ c #0300D8", -"5@ c #0200DB", -"6@ c #0200E0", -"7@ c #0100E6", -"8@ c #1900DE", -"9@ c #1F00DC", -"0@ c #0100DC", -"a@ c #0200CC", -"b@ c #0400BD", -"c@ c #0B00AE", -"d@ c #0E00A5", -"e@ c #0E008C", -"f@ c #080040", -"g@ c #08005C", -"h@ c #0A00A2", -"i@ c #0800B7", -"j@ c #0500C8", -"k@ c #0200D9", -"l@ c #0000F1", -"m@ c #0000ED", -"n@ c #0000E8", -"o@ c #0000E4", -"p@ c #0000DB", -"q@ c #0100D2", -"r@ c #3400CA", -"s@ c #3A00C1", -"t@ c #0000BC", -"u@ c #0000B7", -"v@ c #0100B2", -"w@ c #0100AD", -"x@ c #0300A5", -"y@ c #04009C", -"z@ c #050096", -"A@ c #06008E", -"B@ c #070088", -"C@ c #060061", -"D@ c #06005F", -"E@ c #090081", -"F@ c #0A007F", -"G@ c #09007E", -"H@ c #08007E", -"I@ c #07007E", -"J@ c #06007D", -"K@ c #04007D", -"L@ c #04007E", -"M@ c #020065", -"N@ c #010068", -"O@ c #000088", -"P@ c #010089", -"Q@ c #01008D", -"R@ c #030092", -"S@ c #030097", -"T@ c #04009E", -"U@ c #4C00A1", -"V@ c #4400AF", -"W@ c #0800BD", -"X@ c #0800C1", -"Y@ c #0600C7", -"Z@ c #0500CA", -"`@ c #0000EB", -" # c #C10009", -".# c #C4002C", -"+# c #17008D", -"@# c #0800BF", -"## c #0200D8", -"$# c #0000DF", -"%# c #0400CD", -"&# c #0600B9", -"*# c #0700A5", -"=# c #090091", -"-# c #0A0076", -";# c #0C0060", -"># c #0F0060", -",# c #110052", -"'# c #120044", -")# c #140037", -"!# c #ED0000", -"~# c #DC0019", -"{# c #DC001E", -"]# c #070075", -"^# c #090079", -"/# c #0B007C", -"(# c #0C0084", -"_# c #09009E", -":# c #0400B4", -"<# c #0E00CB", -"[# c #0500DD", -"}# c #2C00C8", -"|# c #1A00E2", -"1# c #0000F0", -"2# c #060098", -"3# c #070079", -"4# c #080071", -"5# c #080060", -"6# c #070053", -"7# c #1000CF", -"8# c #0500D1", -"9# c #0700F4", -"0# c #3A00BA", -"a# c #09008C", -"b# c #05004A", -"c# c #01002F", -"d# c #000006", -"e# c #E20000", -"f# c #0C0081", -"g# c #0600B4", -"h# c #080053", -"i# c #BF002F", -"j# c #DD001D", -"k# c #E00000", -"l# c #080079", -"m# c #080064", -"n# c #060048", -"o# c #DF0000", -"p# c #E60000", -"q# c #F70000", -"r# c #E50000", -"s# c #040000", -"t# c #F50000", -"u# c #030000", -"v# c #EB0000", -"w# c #050000", -"x# c #D20000", -"y# c #C30000", -"z# c #9D0000", -"A# c #760000", -"B# c #8A0000", -"C# c #500000", -"D# c #4D0000", -"E# c #5E0000", -"F# c #400000", -"G# c #3D0000", -"H# c #720000", -"I# c #520000", -"J# c #4F0000", -"K# c #510000", -"L# c #980000", -"M# c #750000", -"N# c #8D0000", -"O# c #B00000", -"P# c #610000", -"Q# c #850000", -"R# c #6D0000", -"S# c #D90000", -"T# c #580000", -"U# c #5B0000", -"V# c #F30000", -"W# c #680000", -"X# c #050010", -"Y# c #03000D", -"Z# c #000004", -"`# c #620038", -" $ c #C20039", -".$ c #45004F", -"+$ c #0A00AE", -"@$ c #0A00AA", -"#$ c #0A00A9", -"$$ c #0900AA", -"%$ c #0800A9", -"&$ c #070095", -"*$ c #050086", -"=$ c #0600AD", -"-$ c #0500AE", -";$ c #0400B1", -">$ c #0300B3", -",$ c #0300B6", -"'$ c #0200BE", -")$ c #0100C4", -"!$ c #00009B", -"~$ c #000089", -"{$ c #0100A1", -"]$ c #0300B1", -"^$ c #0500A3", -"/$ c #080095", -"($ c #0C007F", -"_$ c #A50024", -":$ c #DF0019", -"<$ c #010005", -"[$ c #0D0071", -"}$ c #0B0078", -"|$ c #0D00AA", -"1$ c #0B00C0", -"2$ c #0900CA", -"3$ c #0700D5", -"4$ c #0500E0", -"5$ c #0100F5", -"6$ c #0200FC", -"7$ c #0200EF", -"8$ c #0200E1", -"9$ c #0100E9", -"0$ c #0100EA", -"a$ c #1800D5", -"b$ c #2A00D2", -"c$ c #0800D7", -"d$ c #0200D0", -"e$ c #0300BF", -"f$ c #0F00A4", -"g$ c #120099", -"h$ c #08005D", -"i$ c #070074", -"j$ c #0700AF", -"k$ c #0500C6", -"l$ c #0000EF", -"m$ c #0000D9", -"n$ c #0000D1", -"o$ c #0800CA", -"p$ c #3D00C1", -"q$ c #2700BC", -"r$ c #0000B3", -"s$ c #0100AC", -"t$ c #0200A5", -"u$ c #03009D", -"v$ c #050097", -"w$ c #060091", -"x$ c #060064", -"y$ c #070087", -"z$ c #060086", -"A$ c #050084", -"B$ c #040084", -"C$ c #040085", -"D$ c #030087", -"E$ c #020083", -"F$ c #010070", -"G$ c #010078", -"H$ c #030090", -"I$ c #04009D", -"J$ c #0600AE", -"K$ c #0600B8", -"L$ c #1A00C1", -"M$ c #2900CF", -"N$ c #0F00D3", -"O$ c #0500D2", -"P$ c #0100DF", -"Q$ c #0200D1", -"R$ c #B8002E", -"S$ c #970057", -"T$ c #0900BD", -"U$ c #0000F9", -"V$ c #0200D4", -"W$ c #0400C2", -"X$ c #08009C", -"Y$ c #0C0073", -"Z$ c #0D0059", -"`$ c #0E004E", -" % c #11004D", -".% c #130041", -"+% c #130035", -"@% c #50002F", -"#% c #D40028", -"$% c #64002F", -"%% c #07007D", -"&% c #07007F", -"*% c #090083", -"=% c #0B0085", -"-% c #0B0093", -";% c #0700B1", -">% c #080096", -",% c #0F00D4", -"'% c #0600DD", -")% c #0100E0", -"!% c #1700DE", -"~% c #0900F5", -"{% c #0400C4", -"]% c #0600A4", -"^% c #070080", -"/% c #07005E", -"(% c #060055", -"_% c #070054", -":% c #A30000", -"<% c #090065", -"[% c #0500D0", -"}% c #0100EB", -"|% c #2600B6", -"1% c #6B0085", -"2% c #1F005F", -"3% c #050047", -"4% c #02002E", -"5% c #000007", -"6% c #0600B2", -"7% c #09007C", -"8% c #090055", -"9% c #060043", -"0% c #650022", -"a% c #E90010", -"b% c #5A000A", -"c% c #08007A", -"d% c #090080", -"e% c #070062", -"f% c #D99214", -"g% c #D99215", -"h% c #DD9516", -"i% c #DC9416", -"j% c #DC9315", -"k% c #D89014", -"l% c #D79014", -"m% c #DD9415", -"n% c #DE9516", -"o% c #E59A16", -"p% c #D18C12", -"q% c #DB9315", -"r% c #D68F13", -"s% c #D68F14", -"t% c #DA9115", -"u% c #DC9314", -"v% c #D89114", -"w% c #B87B12", -"x% c #A46C0C", -"y% c #B37407", -"z% c #312001", -"A% c #744A00", -"B% c #B47506", -"C% c #DB9215", -"D% c #DD9416", -"E% c #D89013", -"F% c #D78F13", -"G% c #D48D13", -"H% c #D18B13", -"I% c #D38C12", -"J% c #C58411", -"K% c #B0750F", -"L% c #B4760B", -"M% c #593A05", -"N% c #9E6603", -"O% c #593800", -"P% c #251700", -"Q% c #B37202", -"R% c #563701", -"S% c #6E4701", -"T% c #AC6F04", -"U% c #D78F12", -"V% c #D58E13", -"W% c #D79013", -"X% c #D18B11", -"Y% c #BF7F0F", -"Z% c #B2760D", -"`% c #BB7B0B", -" & c #624107", -".& c #B67507", -"+& c #6C4602", -"@& c #1B1100", -"#& c #B17102", -"$& c #352100", -"%& c #7C5002", -"&& c #9B6403", -"*& c #714902", -"=& c #A86B03", -"-& c #A76C03", -";& c #A66A02", -">& c #9C6301", -",& c #D18B12", -"'& c #CF8910", -")& c #CF8911", -"!& c #D38D11", -"~& c #E19612", -"{& c #CE8A12", -"]& c #C18110", -"^& c #C0800E", -"/& c #BE7D0C", -"(& c #573B07", -"_& c #BF7D09", -":& c #7B5005", -"<& c #3B2701", -"[& c #B27304", -"}& c #271901", -"|& c #9C6403", -"1& c #6C4502", -"2& c #B37304", -"3& c #4B3102", -"4& c #674202", -"5& c #A76B03", -"6& c #AD7003", -"7& c #A36803", -"8& c #A26803", -"9& c #A26802", -"0& c #9D6400", -"a& c #C6830E", -"b& c #DC9415", -"c& c #C78410", -"d& c #CB8610", -"e& c #CE8910", -"f& c #D88F12", -"g& c #CE8911", -"h& c #D38C11", -"i& c #C1800E", -"j& c #5C3D07", -"k& c #C37F09", -"l& c #6D4706", -"m& c #6B4604", -"n& c #BB7906", -"o& c #A96D05", -"p& c #9C6504", -"q& c #704903", -"r& c #AE7105", -"s& c #9D6505", -"t& c #A76B05", -"u& c #A86C05", -"v& c #AB6E04", -"w& c #AF7004", -"x& c #5E3C02", -"y& c #412A01", -"z& c #A36904", -"A& c #A56A03", -"B& c #A86C03", -"C& c #A46A02", -"D& c #966001", -"E& c #AA7009", -"F& c #DF9617", -"G& c #DC9216", -"H& c #C8830F", -"I& c #C9850E", -"J& c #C9860F", -"K& c #C98610", -"L& c #DC9211", -"M& c #CC880F", -"N& c #C2810F", -"O& c #92610B", -"P& c #C7830B", -"Q& c #422B03", -"R& c #845505", -"S& c #BC7907", -"T& c #AE7107", -"U& c #734B04", -"V& c #4C3103", -"W& c #AE7106", -"X& c #A26906", -"Y& c #AB6F05", -"Z& c #AA6E05", -"`& c #A86D05", -" * c #A86B04", -".* c #AB6F04", -"+* c #9B6303", -"@* c #905C03", -"#* c #A46903", -"$* c #9D6503", -"%* c #905D03", -"&* c #835503", -"** c #764B01", -"=* c #815304", -"-* c #DF9616", -";* c #C5830E", -">* c #C6820E", -",* c #C6830F", -"'* c #CD890F", -")* c #C7840F", -"!* c #C4830F", -"~* c #BC7D0D", -"{* c #CD870D", -"]* c #412B05", -"^* c #996307", -"/* c #B17306", -"(* c #100A00", -"_* c #B27307", -":* c #5B3B04", -"<* c #6D4705", -"[* c #B97707", -"}* c #8E5C05", -"|* c #8A5A05", -"1* c #3D2802", -"2* c #A16905", -"3* c #AD7106", -"4* c #AC6F06", -"5* c #AB6E05", -"6* c #AA6F05", -"7* c #AA6E04", -"8* c #A66C05", -"9* c #9D6604", -"0* c #915D03", -"a* c #865703", -"b* c #7B4E03", -"c* c #774D03", -"d* c #784D02", -"e* c #794E02", -"f* c #7A4E02", -"g* c #724800", -"h* c #D58E14", -"i* c #C5820D", -"j* c #C3810D", -"k* c #C2800E", -"l* c #BA7C0D", -"m* c #CB860E", -"n* c #704A07", -"o* c #9D6709", -"p* c #986407", -"q* c #2F1E02", -"r* c #BA7808", -"s* c #452C03", -"t* c #6E4705", -"u* c #C17D09", -"v* c #774D05", -"w* c #A46A07", -"x* c #B87808", -"y* c #BA7908", -"z* c #B47507", -"A* c #A16906", -"B* c #382502", -"C* c #956005", -"D* c #AF7106", -"E* c #AB6F06", -"F* c #A96E05", -"G* c #A46A05", -"H* c #9B6505", -"I* c #905D04", -"J* c #855603", -"K* c #7C4F03", -"L* c #784D03", -"M* c #794E03", -"N* c #7A4F03", -"O* c #7B4F02", -"P* c #7B4F03", -"Q* c #7A4F02", -"R* c #6E4600", -"S* c #DF9615", -"T* c #C3800C", -"U* c #C17F0C", -"V* c #C9840D", -"W* c #BC7C0D", -"X* c #B4760C", -"Y* c #C6830D", -"Z* c #905E0A", -"`* c #A56D0A", -" = c #8C5C08", -".= c #412B03", -"+= c #C7830A", -"@= c #452D03", -"#= c #644105", -"$= c #B77809", -"%= c #3F2903", -"&= c #956107", -"*= c #B37508", -"== c #B27408", -"-= c #B17308", -";= c #BC7B08", -">= c #B67608", -",= c #B07307", -"'= c #B07207", -")= c #B17307", -"!= c #AF7206", -"~= c #8B5B05", -"{= c #A06705", -"]= c #996305", -"^= c #8E5C04", -"/= c #855604", -"(= c #7E5103", -"_= c #7C5103", -":= c #7D5003", -"<= c #7C5003", -"[= c #714900", -"}= c #A16A09", -"|= c #E39817", -"1= c #BD7C0C", -"2= c #C07E0B", -"3= c #C9840C", -"4= c #BF7D0C", -"5= c #BF7E0C", -"6= c #8F5E09", -"7= c #AE720B", -"8= c #946109", -"9= c #3D2803", -"0= c #D18A0B", -"a= c #533604", -"b= c #5B3C05", -"c= c #B3750A", -"d= c #6E4806", -"e= c #B87809", -"f= c #A76D08", -"g= c #A66C08", -"h= c #4B3104", -"i= c #794F06", -"j= c #B47609", -"k= c #B37408", -"l= c #B47608", -"m= c #B57608", -"n= c #B57607", -"o= c #B17407", -"p= c #AC6F07", -"q= c #A36A06", -"r= c #9B6406", -"s= c #936006", -"t= c #936005", -"u= c #895805", -"v= c #805204", -"w= c #7D5103", -"x= c #7E5104", -"y= c #805203", -"z= c #7F5203", -"A= c #7C4F02", -"B= c #774D02", -"C= c #B9780B", -"D= c #C17F0B", -"E= c #B97A0B", -"F= c #C4810B", -"G= c #B9790B", -"H= c #915E09", -"I= c #9D670A", -"J= c #362303", -"K= c #D28A0C", -"L= c #563905", -"M= c #794F07", -"N= c #B3760A", -"O= c #4C3204", -"P= c #C2800A", -"Q= c #AB700A", -"R= c #A76E09", -"S= c #BB7B0A", -"T= c #B97909", -"U= c #B7780A", -"V= c #B9780A", -"W= c #BB7A09", -"X= c #BD7C09", -"Y= c #624105", -"Z= c #6B4605", -"`= c #B97808", -" - c #AD7008", -".- c #A16907", -"+- c #966206", -"@- c #8E5C06", -"#- c #855605", -"$- c #825405", -"%- c #815405", -"&- c #815404", -"*- c #805304", -"=- c #754B01", -"-- c #D99114", -";- c #B77909", -">- c #B8790A", -",- c #B9790A", -"'- c #C07E0A", -")- c #C27F0A", -"!- c #A76D0A", -"~- c #C4820C", -"{- c #9E690A", -"]- c #452D04", -"^- c #D38A0D", -"/- c #362403", -"(- c #9C660A", -"_- c #BA7B0C", -":- c #160F01", -"<- c #CF870D", -"[- c #6F4906", -"}- c #5C3C06", -"|- c #BE7D0B", -"1- c #BC7B0B", -"2- c #BB7A0A", -"3- c #B8780A", -"4- c #BA7B09", -"5- c #BB7B09", -"6- c #B47509", -"7- c #AE7208", -"8- c #A16807", -"9- c #8A5906", -"0- c #865706", -"a- c #855606", -"b- c #855706", -"c- c #855705", -"d- c #835605", -"e- c #845605", -"f- c #835505", -"g- c #825505", -"h- c #835404", -"i- c #825404", -"j- c #714901", -"k- c #C38111", -"l- c #E09716", -"m- c #B67709", -"n- c #B57709", -"o- c #BC7B09", -"p- c #BB7A0B", -"q- c #986409", -"r- c #7D5208", -"s- c #D48C0E", -"t- c #130D01", -"u- c #B7780C", -"v- c #1A1102", -"w- c #D1890E", -"x- c #8B5C09", -"y- c #A86F0B", -"z- c #CA860D", -"A- c #875808", -"B- c #BC7C0B", -"C- c #AF7309", -"D- c #A06808", -"E- c #915F08", -"F- c #895906", -"G- c #875806", -"H- c #865806", -"I- c #865606", -"J- c #845506", -"K- c #835504", -"L- c #835405", -"M- c #805303", -"N- c #744B01", -"O- c #A66D0A", -"P- c #E49917", -"Q- c #B27308", -"R- c #B57609", -"S- c #B57708", -"T- c #B37509", -"U- c #986308", -"V- c #A46B0A", -"W- c #D28A0F", -"X- c #010100", -"Y- c #C5830F", -"Z- c #99650B", -"`- c #3B2704", -" ; c #D68C0E", -".; c #553806", -"+; c #AC710C", -"@; c #C8830D", -"#; c #BF7F0D", -"$; c #C17F0D", -"%; c #C4810C", -"&; c #BD7D0C", -"*; c #A26B0A", -"=; c #503405", -"-; c #AD720A", -";; c #BD7D0B", -">; c #B5770A", -",; c #AD7109", -"'; c #9F6808", -"); c #926007", -"!; c #895A07", -"~; c #855807", -"{; c #875906", -"]; c #885806", -"^; c #855506", -"/; c #774C02", -"(; c #895B05", -"_; c #DA9215", -":; c #B97907", -"<; c #AF7207", -"[; c #B07208", -"}; c #976307", -"|; c #A76E0A", -"1; c #C9850D", -"2; c #352303", -"3; c #704B09", -"4; c #5D3E07", -"5; c #DC9111", -"6; c #462E05", -"7; c #AD720D", -"8; c #D78E0F", -"9; c #CA840E", -"0; c #C4810D", -"a; c #C27F0D", -"b; c #C2800D", -"c; c #C2800C", -"d; c #BC7C0C", -"e; c #B97A0C", -"f; c #B8790C", -"g; c #AA700A", -"h; c #9E6809", -"i; c #926009", -"j; c #8A5A07", -"k; c #875807", -"l; c #895907", -"m; c #8B5B07", -"n; c #8A5A06", -"o; c #895A06", -"p; c #885906", -"q; c #825504", -"r; c #805404", -"s; c #815203", -"t; c #7B5003", -"u; c #845604", -"v; c #8E5D06", -"w; c #DA9314", -"x; c #AE7206", -"y; c #B27306", -"z; c #B67607", -"A; c #B67708", -"B; c #946006", -"C; c #A56C09", -"D; c #BC7B0C", -"E; c #644106", -"F; c #C8840F", -"G; c #583A07", -"H; c #604008", -"I; c #E39712", -"J; c #503606", -"K; c #A9700E", -"L; c #B87B0E", -"M; c #A36C0C", -"N; c #C7830E", -"O; c #CB860F", -"P; c #CC870F", -"Q; c #BD7C0D", -"R; c #422B05", -"S; c #8D5D0A", -"T; c #C4810E", -"U; c #B4770C", -"V; c #AC720B", -"W; c #A36B0A", -"X; c #9B660A", -"Y; c #936109", -"Z; c #8D5D09", -"`; c #8A5A09", -" > c #8A5B08", -".> c #8C5C07", -"+> c #8C5B08", -"@> c #8C5B07", -"#> c #8A5B07", -"$> c #845606", -"%> c #764C02", -"&> c #7F5204", -"*> c #8B5B06", -"=> c #9B6508", -"-> c #A86E0B", -";> c #B7790E", -">> c #C98611", -",> c #DA9214", -"'> c #AC6F05", -")> c #B17304", -"!> c #B67506", -"~> c #AA6E06", -"{> c #AC7109", -"]> c #AA710B", -"^> c #674406", -"/> c #D28B10", -"(> c #614007", -"_> c #4D3406", -":> c #DF9412", -"<> c #452E06", -"[> c #9A670C", -"}> c #B6790F", -"|> c #A76F0D", -"1> c #C1810F", -"2> c #C78310", -"3> c #C8850E", -"4> c #8D5E0A", -"5> c #A36C0B", -"6> c #C8850F", -"7> c #BD7D0D", -"8> c #B2760C", -"9> c #A66D0B", -"0> c #9E680A", -"a> c #98640A", -"b> c #905E09", -"c> c #8D5C09", -"d> c #8C5C09", -"e> c #8E5D09", -"f> c #8E5E09", -"g> c #8E5D08", -"h> c #8C5D08", -"i> c #815403", -"j> c #794D02", -"k> c #825403", -"l> c #936007", -"m> c #A76E0B", -"n> c #B87A0E", -"o> c #C58310", -"p> c #CE8913", -"q> c #B07105", -"r> c #A36903", -"s> c #AF7105", -"t> c #684406", -"u> c #E09512", -"v> c #734D09", -"w> c #4F3507", -"x> c #D58F12", -"y> c #3A2705", -"z> c #B67910", -"A> c #B2770F", -"B> c #93620D", -"C> c #D48D11", -"D> c #6B4709", -"E> c #704A09", -"F> c #D68F11", -"G> c #CD880F", -"H> c #CA8710", -"I> c #CB870F", -"J> c #CA860F", -"K> c #C9850F", -"L> c #BE7E0D", -"M> c #B0740C", -"N> c #A26B0B", -"O> c #98650A", -"P> c #946209", -"Q> c #926109", -"R> c #92600A", -"S> c #915F09", -"T> c #905F09", -"U> c #8F5F09", -"V> c #8F5D08", -"W> c #8E5E08", -"X> c #8D5C08", -"Y> c #8B5B08", -"Z> c #895806", -"`> c #865705", -" , c #7D5104", -"., c #7A4E03", -"+, c #986408", -"@, c #C38110", -"#, c #D48E13", -"$, c #A76A04", -"%, c #A76C04", -"&, c #A86C04", -"*, c #A66A03", -"=, c #AE7004", -"-, c #A56B06", -";, c #794E05", -">, c #D78F10", -",, c #724B0A", -"', c #704B0B", -"), c #110B02", -"!, c #B4770F", -"~, c #644208", -"{, c #DB9213", -"], c #D08B12", -"^, c #D08B11", -"/, c #CF8A11", -"(, c #D48D12", -"_, c #D28B11", -":, c #84580B", -"<, c #563A07", -"[, c #D08A10", -"}, c #CB8710", -"|, c #CD8810", -"1, c #CE890F", -"2, c #BF7F0E", -"3, c #AF750D", -"4, c #A06B0C", -"5, c #96630A", -"6, c #935F0A", -"7, c #93610A", -"8, c #8F5E08", -"9, c #8D5D08", -"0, c #8B5A07", -"a, c #895905", -"b, c #B5770C", -"c, c #C98510", -"d, c #D38E12", -"e, c #D28D12", -"f, c #D28C13", -"g, c #A46904", -"h, c #A96E04", -"i, c #925D04", -"j, c #634106", -"k, c #A16B0F", -"l, c #D79015", -"m, c #EB9D16", -"n, c #98660E", -"o, c #4A3106", -"p, c #E29614", -"q, c #B47910", -"r, c #CF8A13", -"s, c #E49813", -"t, c #CF8B12", -"u, c #D08A12", -"v, c #D08A11", -"w, c #CE8A11", -"x, c #D28C11", -"y, c #B3770E", -"z, c #885B0B", -"A, c #BE7E0F", -"B, c #AF750E", -"C, c #A06A0C", -"D, c #95630B", -"E, c #91610B", -"F, c #94630B", -"G, c #95620B", -"H, c #95620A", -"I, c #94620A", -"J, c #94610A", -"K, c #92610A", -"L, c #916009", -"M, c #8F5D09", -"N, c #8D5B08", -"O, c #855505", -"P, c #905E08", -"Q, c #A26A09", -"R, c #B8790E", -"S, c #CA8711", -"T, c #D58E12", -"U, c #D18A12", -"V, c #935E04", -"W, c #BE7D0A", -"X, c #5B3B03", -"Y, c #BE7F0F", -"Z, c #D59014", -"`, c #F2A319", -" ' c #81560D", -".' c #8F5F0D", -"+' c #E49814", -"@' c #7C530B", -"#' c #B27710", -"$' c #402B06", -"%' c #CB8812", -"&' c #DD9314", -"*' c #D28C12", -"=' c #D38D12", -"-' c #CE8811", -";' c #C28211", -">' c #BE7F10", -",' c #BB7C0F", -"'' c #A26C0D", -")' c #97640C", -"!' c #93600C", -"~' c #93610C", -"{' c #96630B", -"]' c #98640C", -"^' c #98640B", -"/' c #96640B", -"(' c #95630A", -"_' c #94620B", -":' c #885A07", -"<' c #865707", -"[' c #9A6508", -"}' c #A86F0A", -"|' c #BA7B0E", -"1' c #CD8911", -"2' c #A16703", -"3' c #9F6601", -"4' c #C7830F", -"5' c #BD8015", -"6' c #63543B", -"7' c #F5AD32", -"8' c #533809", -"9' c #A97211", -"0' c #714C0B", -"a' c #E79A15", -"b' c #C48312", -"c' c #462F06", -"d' c #B07610", -"e' c #CF8912", -"f' c #C68411", -"g' c #BC7E10", -"h' c #B4780E", -"i' c #AA720E", -"j' c #A06B0D", -"k' c #99660C", -"l' c #96640C", -"m' c #95630C", -"n' c #98650C", -"o' c #99650C", -"p' c #97640B", -"q' c #925F09", -"r' c #885907", -"s' c #875907", -"t' c #926008", -"u' c #9C6609", -"v' c #B1740B", -"w' c #D08911", -"x' c #CC8710", -"y' c #9B6400", -"z' c #E0A640", -"A' c #B0A99B", -"B' c #CFA050", -"C' c #CD8A16", -"D' c #D18C14", -"E' c #E39816", -"F' c #D99013", -"G' c #DB9214", -"H' c #B17710", -"I' c #C28111", -"J' c #B77A0F", -"K' c #AE7310", -"L' c #A76F0E", -"M' c #A16A0D", -"N' c #9C680D", -"O' c #9A660C", -"P' c #99650D", -"Q' c #9B670C", -"R' c #8A5A08", -"S' c #865907", -"T' c #A46C0A", -"U' c #AF730B", -"V' c #B87A0D", -"W' c #BF7E0E", -"X' c #C5820E", -"Y' c #BA7A0A", -"Z' c #E9B04E", -"`' c #A18E6F", -" ) c #996F25", -".) c #EA9D18", -"+) c #DE9515", -"@) c #DE9514", -"#) c #D08B13", -"$) c #C18111", -"%) c #B37710", -"&) c #AB710F", -"*) c #A46D0F", -"=) c #A06A0E", -"-) c #9D6A0E", -";) c #9D690E", -">) c #9D680D", -",) c #9D680E", -"') c #9C670D", -")) c #895A08", -"!) c #895A09", -"~) c #AA6F0B", -"{) c #C4820D", -"]) c #C6840E", -"^) c #C7840E", -"/) c #A16702", -"() c #E69D1E", -"_) c #865E1B", -":) c #64430A", -"<) c #E89B16", -"[) c #DF9516", -"}) c #E09615", -"|) c #D08B14", -"1) c #BF8112", -"2) c #AF7510", -"3) c #9E6A0F", -"4) c #9F6B0F", -"5) c #A16B0E", -"6) c #9F6A0E", -"7) c #9E6A0D", -"8) c #9E690E", -"9) c #8C5D09", -"0) c #936009", -"a) c #9F680A", -"b) c #AE730B", -"c) c #BB7B0C", -"d) c #C27F0C", -"e) c #C3800D", -"f) c #C4800D", -"g) c #C3810E", -"h) c #A06702", -"i) c #A16602", -"j) c #D28E15", -"k) c #C08216", -"l) c #B07918", -"m) c #A67319", -"n) c #A97A2A", -"o) c #B0863D", -"p) c #B3883E", -"q) c #AB7B28", -"r) c #A26D11", -"s) c #A16C0F", -"t) c #A06B0E", -"u) c #9F6A0F", -"v) c #9E6A0E", -"w) c #9E690D", -"x) c #9B670D", -"y) c #9C670C", -"z) c #9B660C", -"A) c #976409", -"B) c #C27F0B", -"C) c #C3810C", -"D) c #C07F0C", -"E) c #C07E0D", -"F) c #9E6501", -"G) c #B87B0F", -"H) c #B17712", -"I) c #A66F10", -"J) c #A57621", -"K) c #CCB180", -"L) c #DBC7A4", -"M) c #E1CFAF", -"N) c #D9C39D", -"O) c #CCAE7A", -"P) c #BB934F", -"Q) c #AA7923", -"R) c #A26C0F", -"S) c #9D670D", -"T) c #A56D09", -"U) c #B0730A", -"V) c #BF7D0B", -"W) c #C17E0B", -"X) c #C07E0C", -"Y) c #BE7C0B", -"Z) c #A16701", -"`) c #A06909", -" ! c #A56F11", -".! c #B28332", -"+! c #D5BB8F", -"@! c #F9F5EF", -"#! c #F2EBDF", -"$! c #E7D8BF", -"%! c #D8C098", -"&! c #BC934F", -"*! c #A67218", -"=! c #A26D0F", -"-! c #9D690D", -";! c #9D680C", -">! c #96630C", -",! c #9A660B", -"'! c #A96F0A", -")! c #B1740A", -"!! c #BC7B0A", -"~! c #BE7C0A", -"{! c #BD7C0A", -"]! c #BC7C0A", -"^! c #AF7D25", -"/! c #DAC39B", -"(! c #F5EFE5", -"_! c #F9F6F0", -":! c #F6F0E7", -"~ c #AA6D04", -",~ c #A06601", -"'~ c #A16704", -")~ c #A87316", -"!~ c #AA761B", -"~~ c #A77011", -"{~ c #A77111", -"]~ c #A67111", -"^~ c #A67011", -"/~ c #A46D0D", -"(~ c #A46D0A", -"_~ c #A56B08", -":~ c #A56C07", -"<~ c #A56B05", -"[~ c #A66B04", -"}~ c #A06703", -"|~ c #A66E0D", -"1~ c #A87213", -"2~ c #A66E0C", -"3~ c #A46C09", -"4~ c #A46B07", -"5~ c #A36A04", -"6~ c #A56903", -"7~ c #A66B03", -"8~ c #A26804", -"9~ c #A26904", -"0~ c #A26702", -"a~ c #A36902", -"b~ c #A46A03", -"c~ c #A26902", -" ", -" ", -" ", -" . ", -" + @ . . . ", -" # $ % . . . . ", -" . & $ * . . . . + @ ", -" . . = $ . . . . # $ % ", -" . . . $ - . . . . & $ * ", -" . . . . $ ; . . . . = $ ", -" + @ . . . . > $ , . . . . $ - ", -" # $ % . . . . ' $ * . . . . $ ; ", -" & $ * . . . . ) $ . . . . > $ , ", -" = $ . . . . ! $ ~ . . . ' $ * ", -" $ - . . { ] ^ / ( _ : < < [ } | 1 2 ) $ ", -" $ ; 3 4 5 6 7 8 9 0 a b c d e f g g g g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M ", -" N O P Q R S T U V g h W W W h g f X Y Z ` U ...+.@.#.$.%.&.*.=.E F -.;.>.,.'.).!.~.{.].^./.I (._.:.<.[.}.|.|.1.2.3.4.o 5.6.7. ", -" 8.9.0.a.b.c.d.i i e.1.f.g.h.i.j.k.l.m.n.o.p.q.3 r. s.$ t. u.v.w. x.y.z.A.B.C.D.E.F.G.H.I.J.K. ", -" L.<.M.1.N.W h O.P.Q.R.S.T.U.V. ] W. . . X.$ Y. . . . . Z.`. +.+ ", -" ++@+#+$+%+&+*+=+-+;+>+,+'+)+!+ . . . . ' $ ~+ . . . . # $ {+ ", -" a d ]+^+/+(+_+:+<+ [+}+ . . . . |+$ . . . . X.$ Y. ", -" 1+2+3+4+ $ 5+ . . . . + $ . . . . ' $ ~+ ", -" 6+$ 7+ . . . . 8+$ . . . . |+$ ", -" # $ 9+ . . . . . . . . . . . . 0+a+b+2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c+$ ", -" X.$ @ . . . . . . . . . . . . . . . . . . . . d+$ e+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! $ f+. . . ", -" g+$ h+. . . . . . . . . . . . . . . . . $ i+ . . . . a+b+2 . . . . ", -" . . . . j+$ k+. . . . . . . . . $ l+ . . . . $ - . ", -" . . . . . . . . m+$ n+ . . . . 6+$ o+ . . . . $ i+ ", -" . . . . . . . 8+$ . . . . p+$ q+ . . . . $ l+ ", -" . . . . a+b+ . . . . r+$ g+ . . . . 6+$ o+ ", -" $ - . . . . s+$ X. . . . . p+$ q+ ", -" $ i+ . . . . t+$ u+ . . . . . . r+$ g+ ", -" $ l+ . . . . . . . . . . . . v+$ w+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . x+$ s.. ", -" 6+$ o+ . . . . . . . . . . . . . . . . . . . . g+$ y+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . s.$ z+. . . . . . . ", -" 6+$ 9+ . . . . . . . . . . . . . . . . . A+$ . . . . B+$ C+ . . . . . . . ", -" . D+$ r+. . . . . . . . . . E+$ . . . . % $ F+ ", -" . . . . . C+$ s.. . . . . m+$ . . . . 7+$ ", -" . . . . . . . Y.$ > . . . . 5+$ . . . . E+$ ", -" . . . 9+$ * . . . . G+$ . . . . m+$ ", -" % $ H+ . . . . I+$ . . . . 5+$ ", -" 7+$ . . . . J+$ . . . . G+$ ", -" E+$ . . . . K+$ L+M+ 0+. I+$ ", -" m+$ . . N+W. O+P+ Q+R+S+T+U+V+W+X+Y+Z+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@ ", -" 5+$ . W. !@~@{@9 ]@^@/@(@V |.h h W W W W h h |._@}.:@<@[@}@|@1@2@3@4@5@6@2.k _@W h h |.j %+7@0.8@9@o 5@0@a@b@++c@d@e@ ", -" G+$ f@g@h@i@j@k@f.1.h W h f j Y l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@H@I@J@J@K@L@M@N@O@P@Q@R@S@T@E.U@V@W@X@Y@Z@2@`@N.e.Z +._. ", -" #.#+#@###` Y X f g V b.$#%#&#*#=#-#;#>#,#'#)# $ !# . . . . ~#{# ]#^#/#(#_#:.:# ", -" <#[#}#|#V W W h 1#:.2#3#4#5#6# . . $ K+ . . . . $ a+ ", -" 7#8#m e.W 9#0#a#T.b#c# d#W. . . $ e# . . . . $ !# ", -" f#j i g#G@h#i#j# . . . . $ k# . . . . $ K+ ", -" l#m#n# b+$ . . . . $ o# . . . . $ e# ", -" $ a+ . . . . $ o# . . . . $ k# ", -" $ !# . . . . $ p# . . . . $ o# ", -" $ K+ . . . . $ }+ . . . . $ o# ", -" $ e# . . . . $ q# . . . . . . . . . . . . . $ r# ", -" $ k# . . . . . . . . . . [+$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s#$ }+. . . . . . . . ", -" $ o# . . . . . . . . . . . . . . . . . t#$ 2 . . . . . . . . . . . . . . . . . . . . u#$ q#. . . . . . . . . . . . . ", -" $ o# . . . . . . . . . . . . . . . . v#$ . . . . [+$ . . . . . . ", -" $ r#. . . . . . . . . . . . . o#$ . . . . t#$ ", -" w#$ }+. . . . . . . . . x#$ . . . . v#$ ", -" . . . 2 $ q#. . . . . y#$ . . . . o#$ ", -" . . . [+$ . . . . + $ . . . . x#$ ", -" t#$ . . . . ) $ . . . . y#$ ", -" v#$ . . . . z#$ . . . . + $ ", -" o#$ . . . . j+$ F+ . . . . ) $ ", -" x#$ . . . . 9+$ * . . . . z#$ ", -" y#$ . . . . A#$ > . . . . . . . . . . . . B#$ C# ", -" + $ . . . . . . . . . . . D#$ E#. . . . . . . . . . . . . . . . . . . . . . . . . . . . . s+$ F#. . . . . . ", -" ) $ . . . . . . . . . . . . . . . . . . G#$ H#. . . . . . . . . . . . . . . . . . . . . . . # $ I#. . . . . . . . . . . ", -" z#$ J# . . . . . . . . . . . . . . . . . K#$ L# . . . . r+$ M# . . . . . . ", -" N#$ F#. . . . . . . . . . . . $ O# . . . . P#$ Q# ", -" . . R#$ w+. . . . . . . . $ S# . . . . T#$ L# ", -" . . . . p+$ U# . . . . V#[+ . . . . $ O# ", -" . . . W#$ t+ . . . . G+$ . . . . $ S# ", -" P#$ Q# . . . . ; $ X#Y# . . V#[+ ", -" T#$ L# . . W.Z# `# $.$ +$@$#$$$%$&$*$z@=$-$-$;$>$,$+@'$)$!$~${$]$^$/$=+($ _$:$ ", -" $ O# N+<$ [$}$|$1$2$3$4$[@5$_@h W W W W W W h |._@6$:@7$#+8$A 1@1@1@4.8$9$Y g h W h _@5$0$3.n 4.a$b$c$d$e$X+7.f$g$ ", -" $ S# h$i$j$k$2@ .k W W W g e.X k l$`@ ...m$n$o$p$q$*.r$s$t$u$v$w$A@V+4+x$V+V+y$z$*$A$B$C$D$E$F$G$H$S@I$E.J$K$L$M$N$O$s P$k j Y o@Q$( ", -" R$S$T$5@` Y X f i U$l@o@V$W$X+X$,@Y$Z$`$ %.%+% $ k# . . . . @%#%$% %%&%*%=%-%;%B >% ", -" ,%'%)%!%~%W W W l@{%]%^%/%(%_% . . = $ . . . . $ :% <% ", -" 7#[%2.f W }%|%1%2%3%4% 5%N+~ . . & $ * . . . . $ k# ", -" Z+5$2.6%7%8%9%0%a%b% . . . . # $ & . . . . = $ ", -" c%d%e%n# W#$ B+ . . . . $ k# . . . . & $ * ", -" $ :% . . . . :%9+ . . # $ & ", -" $ k# . . . . $ k# ", -" = $ . . . . :%9+ f%g%h%i%j% ", -" & $ * . . k%l%m%h%n%o%p%p%q% ", -" # $ & . . r%r%s%t%u%v%w%x%y%z%A%B%C%D% ", -" $ k# E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%l%j% ", -" :%9+ U%V%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&m% ", -" '&)&!&~&{&]&^&/&(&_&:&<&[&}&&&|&1&2&3&4&5&6&7&8&9&0&a&b& ", -" c&d&e&f&g&h&'&i&j&k&l&m&n&. o&p&q&r&s&t&u&v&w&x&y&z&A&B&-&C&D&E&F&G& ", -" H&I&J&K&L&M&N&O&P&Q&R&S&. T&U&V&W&X&r&o&Y&o&Z&`&u& *.*+*@*#*$*%*&*%&**=*-*j% ", -" ;*>*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*_*|*1*2*3*4*5*Z&Z&Z&6*7*8*9*0*a*b*c*d*e*f*e*g*h*q% ", -" i*j*>*i*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*T&z*/*A*B*C*D*4*E*F*G*H*I*J*K*L*M*N*K*O*P*Q*Q*f*R*Y%S* ", -" T*U*V*i*W*X*Y*Z*`* =.=+=@=#=$=%=&=*===-=;=>=,='=)=_*)=!=~=H*{=]=^=/=(=P*P*_=(=:=:=<=K*O*O*O*O*Q*[=}=|= ", -" 1=2=3=4=U*1=5=6=7=8=9=0=a=b=c=d=e=f=g=$=h=i=y*j=k=l=m=n=o=p=q=r=s=t=u=v=(=w=x=v=y=z=z=(=w=w=<=<=K*A=P*P*O*B=a*|=C% ", -" C=`%D=E=F=3=G=H=5=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=y*`=m= -.-+-@-u=#-$-%-%-%-$-&-&-*-*-y=y=z=z=(=w=:=<=K*A=K*O*O*f*=---q% ", -" ;->-,-'-)-,-!-~-{-]-^-/-(-_-:-<-[-}-5=|-1-2-`%,->-3->-4-5-6-7-8-s=9-0-a-b-c-d-e-R&f-f-g-h-i-i-*-y=v=y=z=z=z=(=w=_=<=%&K* O*j-k-l- ", -" m-n-V=m-$=o-p-q-r-s-t-1=u-v-w-x-y-/&z-~-A-h=>-B-p-2-p-S=2-3-C-D-E-F-a-a-0-G-H-H-0-I-a-J-e-f-f-K-L-i-=*=*M-y=y=y=z=z=(=w=:=K*K* N-O-P- ", -" Q-m=R-S-T-e=U-V-W-X-Y-Z-`- ;.;+;@;#;$;@;%;5=&;T**;=;-;;;`%>;,;';);!;~;0-{;F-F-];G-G-H-H-0-#-#-^;R&f-f-K-$-i-%-&-*-v=y=v=z=z=z=w=w=:=<=:= /;(;P-_; ", -" T&:;==<;[;T=};|;1;2;N&3;4;5;6;+;Z%]*7;8;9;$;0;a;b;b;c;5=d;e;f;g;h;i;j;k;k;l;m;j;n;!;o;F-p;];G-G-H-H-b-a-#-e-R&K-f-f-f-q;&-r;s;y=y=z=z=z=(=(=w=t;d* :=u;v;m%w; ", -" x;y;W&!=z;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;I&T;N;>*j*1=U;V;W;X;Y;Z;`; > >.>+>@>m;#>#>!;!;F-!;F-];G-G-H-0-0-0-#-$>e-R&f-K-K-i-i-&-r;M-v=v=z=(=e*%>d*&>*>=>->;>>>s%,>g% ", -" Y&'>7*)>!>~>q={>]>^>/>(>_>:><>[>}>|>e&1>2>d&'&)*)*a&3>4>5>6>7>8>9>0>a>Y;b>c>d>e>e>f>g>g>h> =+>+>@>m;m;#>o;!;F-F-];G-G-H-0-0-0-b-#-f-f-f-K-K-K-i-i>z=b*/;j>k>l>m>n>o>p>h*_;j%j% ", -" u&`&5*q>r>s>n=D-t>u>v>w>x>y>z>A>B>C>D>E>F>G>H>I>J>K>J>P;P;I&L>M>N>O>P>Q>R>S>S>S>T>U>U>6=6=V>W>Z;g>X> =.>m;Y>m;#>j;F-F-l;Z>];G-H-0-0-0-`>a-R&f-f-K-$- ,.,P*#-+,M>@,g&I%#,V%r%k% ", -" $,%,&,*,=,v&-,;,>,,,',h*),W%!,~,{,],^,/,(,_,:,<,[,d&},|,1,J>2,3,4,5,R>6,8=8=7,Q>Q>i;Q>S>S>T>T>6=8,6=W>Z;9,X>.>.>+>m;m;0,#>o;o;F-F-];G-G-0-0-0-I-#-$>=*x=*-a,o*b,c,(,x>d,e,f,G% ", -" 7&A&g,A&g,h,i,%;j,k,l,X-m,n,o,p,q,r,d,s,t,u,/,v,w,x,y,z,K>c,A,B,C,D,E,O&F,G,H,G,I,J,7,K,7,Q>i;L,S>T>b>6=6=6=M,g>9,9,N, =@>+>m;m;j;!;!;F-p;];G-0-H-0-b-O,];P,Q,R,S,T,r%I%U,v,U, ", -" 9&8&r>g,V,W,X,Y,Z,~ `, '.'+'@'l%#'$'%'&'*'*',&='*',&-'>>;'>',''')'!'~'{']'^'/'/'D,('G,_'J,7,Y;Q>Q>i;i;S>T>T>b>6=6=8,g>e>e>h>.>@>m;m;m;#>#>:'k;<'G-F-m;E-['}'|'c,,&(,*'[,1' ", -" 2'3'4'5'6'7'8'9'o%0'k%h*f,V%a'--b'c'd'u%U%G%e'f'g'h'i'j'k'l'm'n'o'k'n'n']']'p'/'{'('G,H,I,7,Y;Y;Q>i;R>q'T>T>6=6=6=6=8,g>g>9,9, = =j;r'G-s'm;t'u'O-v'~*)*e&w'/,|,x' ", -" 9&y',&z'A'B'C'D'_;E',>--f%l%F'G'v%H'I'b'J'K'L'M'N'O'P'k'Q'Q'[>[>O'n'o'n']']'p'p'{'/'D,H,H,I,I,7,7,K,R>i;i;S>T>U>6=6=6=8,f>d>R'S'k;g>+,T'U'V'W'X'K>P;x'I> ", -" 0&Y'Z'`' ).)j%_;_;j%+)@),>#)$)%)&)*)=)-);)>),)>)N'N'')Q'Q'Q'[>k'k'k'o'n'^')')'l'p'D,('G,H,I,J,7,Y;Q>K,q'S>S>S>6=f>d>))!)b>(-~)u-4=b;{)X'])^) ", -" /)h,()_):)<)[)})q%|)1)2)*)3)4)=)5)=)6)6)7)8)7)>)>)N'N'')Q'Q'Q'[>O'k'o'n']')'p'p'/'D,H,H,H,J,J,7,K,i;i;i;q'M,c>9)0)a)b)c)d)e)f)a;e)g) ", -" h)i)l-h%j)|)k)l)m)n)o)p)q)r)s)5)5)t)u)u)v)v)v)w)w)N'')x)y)x)Q'z)O'k'o'n'^']'p'p'p'/'D,('G,J,J,Y;7,K,L,Y;A)Q,U'`%B)C)d)D)E)U* ", -" /)F)G)H)I)J)K)L)M)N)O)P)Q)R)s)s)s)5)u)=)6)7)8)w)w)>)S)y)y)Q'Q'Q'O'O'k'o'n']'^'p'p'{'H,I,I,H,5,a>I=T)U)G=V)W)X)/&Y)/& ", -" Z)`) !.!+!@!#!$!%!&!*!=!=!s)R)k,5)=)6)6)6)v)w)w)-!;!N'y)Q'Q'Q'O'O'k'k'n')'>!>!D,p',!{-W;'!)!>-!!~!{!]!`% ", -" /)X&^!/!(!_!:!)N'x)Q'x)Q'O'n')'l'n'2!3!'!-;4!5!>-6!2-2- ", -" i)7!8!9!0!a!b!c!d!*)|!|!|!=!R)s)k,k,e!t)6)v)v)v)w)f!-!g!')h!i!k'Q'j!O-k!l!k=j=>=m!e= ", -" i)/)n!o!p!q!r!s!s!t!u!*)|!|!R)=!k,5)v!t)6)=)w!v)w)-!x!y!;!z!|;A!)=B!==k=*=m= ", -" C!D!E!F!G!H!I!s!u!u!|!*)|!=!R)s)k,5)J!=)6)v)v)w!3!K!L!M!N!M!O!O!== ", -" P!Q!R!S!T!I!U!s!V!*)|!*)|!=!R)s)W!5)X!Y!Z!f=~>`! ~.~!=T&T& ", -" C!X&+~@~#~$~U!s!s!%~%~&~|!*~M;=~-~;~`&>~v&5*'>'> ", -" ,~'~)~!~~~{~]~^~s!/~(~_~:~<~[~%,B&>~o& ", -" }~|~1~$~2~3~4~G*5~6~A&7~5& ", -" C!8~9~/)/)0~9&a~b~ ", -" i),~h)/)c~ ", -" ", -" ", -" ", -" "}; diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index e735befa19..5b556753dc 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -1,68 +1,73 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** class ShipWorkbench ( Workbench ): - """ @brief Workbench of Ship design module. Here toolbars & icons are append. """ - from shipUtils import Paths, Translator - import ShipGui + """ @brief Workbench of Ship design module. Here toolbars & icons are append. """ + from PyQt4 import QtCore, QtGui + from shipUtils import Paths + import ShipGui - Icon = Paths.iconsPath() + "/Ico.png" - MenuText = str(Translator.translate("Ship design")) - ToolTip = str(Translator.translate("Ship design")) + Icon = "Ico" + MenuText = str(QtCore.QT_TRANSLATE_NOOP("Ship", "Ship")) + ToolTip = str(QtCore.QT_TRANSLATE_NOOP("Ship", "Ship module provides some of the commonly used tool to design ship forms")) - def Initialize(self): - from shipUtils import Translator - # ToolBar - list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] - self.appendToolbar("Ship design",list) - list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendToolbar("Weights",list) - # Simulation stuff only if pyOpenCL & numpy are present - hasOpenCL = True - hasNumpy = True - try: - import pyopencl - except ImportError: - hasOpenCL = False - msg = Translator.translate("pyOpenCL not installed, ship simulations disabled\n") - App.Console.PrintWarning(msg) - try: - import numpy - except ImportError: - hasNumpy = False - msg = Translator.translate("numpy not installed, ship simulations disabled\n") - App.Console.PrintWarning(msg) - if hasOpenCL and hasNumpy: - list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim", "Ship_TrackSim"] - self.appendToolbar("Simulation",list) - - # Menu - list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] - self.appendMenu("Ship design",list) - list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendMenu("Weights",list) - if hasOpenCL and hasNumpy: - list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim", "Ship_TrackSim"] - self.appendMenu("Simulation",list) + def Initialize(self): + from PyQt4 import QtCore, QtGui + + # Print a warning if Plot module can't be used + try: + import matplotlib + except ImportError: + msg = QtGui.QApplication.translate("ship_console", "Plot module is disabled, tools can't graph output curves", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '\n') + # ToolBar + shiplist = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] + weightslist = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] + self.appendToolbar(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Ship design")),shiplist) + self.appendToolbar(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Weights")),weightslist) + self.appendMenu(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Ship design")),shiplist) + self.appendMenu(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Weights")),weightslist) + # Simulation stuff only if pyOpenCL & numpy are present + hasOpenCL = True + hasNumpy = True + try: + import pyopencl + except ImportError: + hasOpenCL = False + msg = QtGui.QApplication.translate("ship_console", "pyOpenCL not installed, simulations stuff will disabled therefore", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '\n') + try: + import numpy + except ImportError: + hasNumpy = False + msg = QtGui.QApplication.translate("ship_console", "numpy not installed, simulations stuff will disabled therefore", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '\n') + if hasOpenCL and hasNumpy: + simlist = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim", "Ship_TrackSim"] + self.appendToolbar(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Simulation")),simlist) + self.appendMenu(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Simulation")),simlist) Gui.addWorkbench(ShipWorkbench()) diff --git a/src/Mod/Ship/Instance.py b/src/Mod/Ship/Instance.py index 40fd10992a..da022b8b80 100644 --- a/src/Mod/Ship/Instance.py +++ b/src/Mod/Ship/Instance.py @@ -1,29 +1,32 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import time from math import * +# Qt library +from PyQt4 import QtGui,QtCore + # COIN from pivy.coin import * from pivy import coin @@ -34,554 +37,563 @@ from FreeCAD import Base, Vector import Part # Ship design module -from shipUtils import Paths, Translator, Math +from shipUtils import Paths, Math class Ship: - def __init__(self, obj, solids): - """ Creates a new ship on active document. - @param obj Part::FeaturePython created object. - @param faces Ship solids components. - """ - # Add uniqueness property to identify Ship instances - obj.addProperty("App::PropertyBool","IsShip","Ship", str(Translator.translate("True if is a valid ship instance"))).IsShip=True - # Add main dimensions - obj.addProperty("App::PropertyLength","Length","Ship", str(Translator.translate("Ship length (Lpp) [m]"))).Length=0.0 - obj.addProperty("App::PropertyLength","Beam","Ship", str(Translator.translate("Ship beam (B) [m]"))).Beam=0.0 - obj.addProperty("App::PropertyLength","Draft","Ship", str(Translator.translate("Ship draft (T) [m]"))).Draft=0.0 - # Add shapes - obj.Shape = Part.makeCompound(solids) - obj.addProperty("Part::PropertyPartShape","ExternalFaces","Ship", str(Translator.translate("Ship only external faces"))) - obj.Proxy = self + def __init__(self, obj, solids): + """ Creates a new ship on active document. + @param obj Part::FeaturePython created object. + @param faces Ship solids components. + """ + # Add uniqueness property to identify Ship instances + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyBool","IsShip","Ship", tooltip).IsShip=True + # Add main dimensions + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyLength","Length","Ship", tooltip).Length=0.0 + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyLength","Beam","Ship", tooltip).Beam=0.0 + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyLength","Draft","Ship", tooltip).Draft=0.0 + # Add shapes + obj.Shape = Part.makeCompound(solids) + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("Part::PropertyPartShape","ExternalFaces","Ship", tooltip) + obj.Proxy = self - def onChanged(self, fp, prop): - """ Called when a ship property is modified - @param fp Part::FeaturePython object. - @param prop Property changed. - """ - if prop == "Length" or prop == "Beam" or prop == "Draft": - pass + def onChanged(self, fp, prop): + """ Called when a ship property is modified + @param fp Part::FeaturePython object. + @param prop Property changed. + """ + if prop == "Length" or prop == "Beam" or prop == "Draft": + pass - def execute(self, fp): - """ Called when a recomputation is needed. - @param fp Part::FeaturePython object. - """ - fp.Shape = Part.makeCompound(fp.Shape.Solids) + def execute(self, fp): + """ Called when a recomputation is needed. + @param fp Part::FeaturePython object. + """ + fp.Shape = Part.makeCompound(fp.Shape.Solids) class ViewProviderShip: - def __init__(self, obj): - "Set this object to the proxy object of the actual view provider" - obj.Proxy = self + def __init__(self, obj): + "Set this object to the proxy object of the actual view provider" + obj.Proxy = self - def attach(self, obj): - ''' Setup the scene sub-graph of the view provider, this method is mandatory ''' - return + def attach(self, obj): + ''' Setup the scene sub-graph of the view provider, this method is mandatory ''' + return - def updateData(self, fp, prop): - ''' If a property of the handled feature has changed we have the chance to handle this here ''' - return + def updateData(self, fp, prop): + ''' If a property of the handled feature has changed we have the chance to handle this here ''' + return - def getDisplayModes(self,obj): - ''' Return a list of display modes. ''' - modes=[] - return modes + def getDisplayModes(self,obj): + ''' Return a list of display modes. ''' + modes=[] + return modes - def getDefaultDisplayMode(self): - ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' - return "Shaded" + def getDefaultDisplayMode(self): + ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' + return "Shaded" - def setDisplayMode(self,mode): - ''' Map the display mode defined in attach with those defined in getDisplayModes. - Since they have the same names nothing needs to be done. This method is optinal. - ''' - return mode + def setDisplayMode(self,mode): + ''' Map the display mode defined in attach with those defined in getDisplayModes. + Since they have the same names nothing needs to be done. This method is optinal. + ''' + return mode - def onChanged(self, vp, prop): - ''' Print the name of the property that has changed ''' - # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") + def onChanged(self, vp, prop): + ''' Print the name of the property that has changed ''' + # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") - def __getstate__(self): - ''' When saving the document this object gets stored using Python's cPickle module. - Since we have some un-pickable here -- the Coin stuff -- we must define this method - to return a tuple of all pickable objects or None. - ''' - return None + def __getstate__(self): + ''' When saving the document this object gets stored using Python's cPickle module. + Since we have some un-pickable here -- the Coin stuff -- we must define this method + to return a tuple of all pickable objects or None. + ''' + return None - def __setstate__(self,state): - ''' When restoring the pickled object from document we have the chance to set some - internals here. Since no data were pickled nothing needs to be done here. - ''' - return None + def __setstate__(self,state): + ''' When restoring the pickled object from document we have the chance to set some + internals here. Since no data were pickled nothing needs to be done here. + ''' + return None - def getIcon(self): - return """ - /* XPM */ - static char * Ship_xpm[] = { - "32 32 396 2", - " c None", - ". c #2C2C2C", - "+ c #3A3A3A", - "@ c #585857", - "# c #161616", - "$ c #000000", - "% c #363636", - "& c #333333", - "* c #B3B3B3", - "= c #B4B4B4", - "- c #949494", - "; c #565653", - "> c #141414", - ", c #080807", - "' c #585858", - ") c #878787", - "! c #9F9E9F", - "~ c #9F9F9E", - "{ c #8F8F90", - "] c #6B6B6B", - "^ c #101010", - "/ c #737373", - "( c #4C4C4C", - "_ c #B1B1B7", - ": c #9090C0", - "< c #A7A7B2", - "[ c #87878E", - "} c #4F4F52", - "| c #191919", - "1 c #656565", - "2 c #D1D1D2", - "3 c #D1D1D1", - "4 c #CECECE", - "5 c #CDCCCC", - "6 c #CCCCCC", - "7 c #CCCCCB", - "8 c #CDCECD", - "9 c #BDBDBD", - "0 c #424242", - "a c #373737", - "b c #0A0A0A", - "c c #241414", - "d c #0E0C0C", - "e c #929393", - "f c #383738", - "g c #9B9B9A", - "h c #A0A0AF", - "i c #2929E4", - "j c #2525E5", - "k c #3F3FD7", - "l c #5B5BC8", - "m c #535368", - "n c #686866", - "o c #C8C8C8", - "p c #C8C8C7", - "q c #C7C6C7", - "r c #C6C6C6", - "s c #C5C5C5", - "t c #C4C5C5", - "u c #C3C4C3", - "v c #C3C3C2", - "w c #BCBCBC", - "x c #595959", - "y c #A6A6A6", - "z c #969696", - "A c #0B0B0B", - "B c #0D0707", - "C c #894646", - "D c #1C1A1A", - "E c #525252", - "F c #6C6D6C", - "G c #A3A3A2", - "H c #A3A296", - "I c #8E8F98", - "J c #6F6EA5", - "K c #5354AF", - "L c #373753", - "M c #8D8D8B", - "N c #C5C5C4", - "O c #C2C2C2", - "P c #C1C1C1", - "Q c #C0C0C0", - "R c #C0BFBF", - "S c #BFBFBF", - "T c #BEBEBE", - "U c #B1B2B2", - "V c #404040", - "W c #ABAAAA", - "X c #797979", - "Y c #2A1212", - "Z c #662828", - "` c #3D403F", - " . c #B5B5B5", - ".. c #6B6A6B", - "+. c #4A4A4A", - "@. c #9A9A9A", - "#. c #909090", - "$. c #8B8B8A", - "%. c #898A86", - "&. c #84837F", - "*. c #3D3D3C", - "=. c #9E9E9E", - "-. c #BFBFBE", - ";. c #BDBEBD", - ">. c #BBBBBB", - ",. c #BABABA", - "'. c #B9B9B9", - "). c #B8B8B8", - "!. c #999999", - "~. c #BABAB9", - "{. c #ABABAB", - "]. c #292929", - "^. c #381212", - "/. c #4C1514", - "(. c #535656", - "_. c #717171", - ":. c #919090", - "<. c #818181", - "[. c #4E4E4E", - "}. c #4B4B4B", - "|. c #B1B1B1", - "1. c #B8B7B8", - "2. c #B6B6B6", - "3. c #B6B5B5", - "4. c #B4B5B4", - "5. c #B2B3B2", - "6. c #5C5D5C", - "7. c #AFAFAF", - "8. c #ADACAC", - "9. c #5B5B5B", - "0. c #410C0C", - "a. c #3E0707", - "b. c #525555", - "c. c #9C9C9C", - "d. c #2D2D2D", - "e. c #757575", - "f. c #474747", - "g. c #484848", - "h. c #9F9F9F", - "i. c #B3B3B4", - "j. c #B2B2B2", - "k. c #B0B0B0", - "l. c #ADAEAD", - "m. c #ADADAD", - "n. c #B0B1B0", - "o. c #1E1E1E", - "p. c #ACABAC", - "q. c #AAA9A9", - "r. c #A8A8A8", - "s. c #5D5D5D", - "t. c #290202", - "u. c #281010", - "v. c #272828", - "w. c #767777", - "x. c #505050", - "y. c #1F1F1F", - "z. c #5E5E5D", - "A. c #A4A5A5", - "B. c #B1B2B1", - "C. c #AEAEAE", - "D. c #AEADAD", - "E. c #ABACAC", - "F. c #AAAAAA", - "G. c #A9A8A8", - "H. c #ABABAC", - "I. c #7B7B7B", - "J. c #2B2B2B", - "K. c #A4A4A4", - "L. c #A6A5A6", - "M. c #888888", - "N. c #0E0E0E", - "O. c #101312", - "P. c #7E8080", - "Q. c #5E5E5E", - "R. c #242424", - "S. c #555555", - "T. c #7F7F7F", - "U. c #A4A3A4", - "V. c #B3B3B2", - "W. c #ACACAC", - "X. c #A9A9A9", - "Y. c #A8A7A7", - "Z. c #A7A6A7", - "`. c #A7A7A7", - " + c #A8A8A7", - ".+ c #A5A5A5", - "++ c #A2A2A2", - "@+ c #222122", - "#+ c #7E7E7E", - "$+ c #A3A3A3", - "%+ c #9B9B9B", - "&+ c #050505", - "*+ c #6E6E6E", - "=+ c #A7A7A6", - "-+ c #989898", - ";+ c #A5A4A4", - ">+ c #A7A7A8", - ",+ c #A5A6A7", - "'+ c #979A99", - ")+ c #818383", - "!+ c #757878", - "~+ c #757979", - "{+ c #878A8A", - "]+ c #A3A5A5", - "^+ c #828282", - "/+ c #A0A0A0", - "(+ c #232323", - "_+ c #939393", - ":+ c #A5A6A5", - "<+ c #A2A3A2", - "[+ c #A2A1A1", - "}+ c #A1A0A1", - "|+ c #939292", - "1+ c #636262", - "2+ c #554D4D", - "3+ c #634C4C", - "4+ c #755555", - "5+ c #936464", - "6+ c #9F6868", - "7+ c #9B6060", - "8+ c #804A4A", - "9+ c #5C3737", - "0+ c #1D1616", - "a+ c #A1A1A1", - "b+ c #010101", - "c+ c #151516", - "d+ c #707070", - "e+ c #9D9E9E", - "f+ c #8C8D8D", - "g+ c #8B8888", - "h+ c #726A6A", - "i+ c #6D5959", - "j+ c #866261", - "k+ c #C18B8B", - "l+ c #D79696", - "m+ c #D18C8C", - "n+ c #CB8180", - "o+ c #C57575", - "p+ c #BF6B6A", - "q+ c #BB6161", - "r+ c #B95958", - "s+ c #9C4544", - "t+ c #2E1212", - "u+ c #6F6C6C", - "v+ c #A0A1A1", - "w+ c #575757", - "x+ c #0C0C0C", - "y+ c #9C9D9D", - "z+ c #7A7272", - "A+ c #876F6F", - "B+ c #977070", - "C+ c #C28C8C", - "D+ c #D59595", - "E+ c #D08A8A", - "F+ c #C67D7D", - "G+ c #C07272", - "H+ c #BC6969", - "I+ c #B85F5F", - "J+ c #B35656", - "K+ c #B04C4C", - "L+ c #AB4243", - "M+ c #A63939", - "N+ c #591B1B", - "O+ c #6A2121", - "P+ c #542323", - "Q+ c #585A5A", - "R+ c #191515", - "S+ c #706262", - "T+ c #A58080", - "U+ c #B58383", - "V+ c #CE8F8F", - "W+ c #CD8989", - "X+ c #C17372", - "Y+ c #B45656", - "Z+ c #AF4C4C", - "`+ c #AB4242", - " @ c #A73A39", - ".@ c #A3302F", - "+@ c #9F2626", - "@@ c #8E1A1A", - "#@ c #2C0808", - "$@ c #91191A", - "%@ c #2F0200", - "&@ c #90C6FB", - "*@ c #8BBFFB", - "=@ c #94CBFC", - "-@ c #AFEFFB", - ";@ c #7DABA0", - ">@ c #3C2521", - ",@ c #C88484", - "'@ c #C57C7D", - ")@ c #C17273", - "!@ c #B86060", - "~@ c #AB4343", - "{@ c #A73939", - "]@ c #A32F2F", - "^@ c #9B1C1D", - "/@ c #961313", - "(@ c #96090A", - "_@ c #3C0202", - ":@ c #4E0202", - "<@ c #300000", - "[@ c #3E5378", - "}@ c #7EABF9", - "|@ c #84B5FC", - "1@ c #96CDFB", - "2@ c #B2F2FA", - "3@ c #C4FFFA", - "4@ c #2E3FFD", - "5@ c #3346FD", - "6@ c #2A3AFD", - "7@ c #161EFE", - "8@ c #1B25FD", - "9@ c #1F25B4", - "0@ c #7C6196", - "a@ c #AA6075", - "b@ c #AC5763", - "c@ c #AD5155", - "d@ c #AD4645", - "e@ c #A83938", - "f@ c #A3302E", - "g@ c #A02624", - "h@ c #9B1C1B", - "i@ c #971311", - "j@ c #930A09", - "k@ c #900300", - "l@ c #900505", - "m@ c #660007", - "n@ c #00000D", - "o@ c #200112", - "p@ c #597F88", - "q@ c #6E97FD", - "r@ c #384CFD", - "s@ c #394EFD", - "t@ c #2D3EFD", - "u@ c #151DFE", - "v@ c #1821FE", - "w@ c #3C52FD", - "x@ c #6388FC", - "y@ c #9CD6FB", - "z@ c #D0FFFA", - "A@ c #AEEEFB", - "B@ c #749FFF", - "C@ c #3F5DFF", - "D@ c #4165FF", - "E@ c #525AE3", - "F@ c #6153C4", - "G@ c #672D8D", - "H@ c #6C1B6A", - "I@ c #722164", - "J@ c #75225E", - "K@ c #731D57", - "L@ c #701653", - "M@ c #690E52", - "N@ c #5F0050", - "O@ c #562086", - "P@ c #11108D", - "Q@ c #2330BE", - "R@ c #344AE1", - "S@ c #4E6BFF", - "T@ c #4E6BFD", - "U@ c #597AFC", - "V@ c #6184FC", - "W@ c #7099FC", - "X@ c #8BBEFB", - "Y@ c #95CCFB", - "Z@ c #5B7CFC", - "`@ c #1C26FD", - " # c #121AFE", - ".# c #9ED7FB", - "+# c #81B4FF", - "@# c #6893FF", - "## c #6997FF", - "$# c #6695FF", - "%# c #6390FF", - "&# c #618DFF", - "*# c #608DFF", - "=# c #618EFF", - "-# c #6391FF", - ";# c #6898FF", - "># c #6B9AFF", - ",# c #5171ED", - "'# c #90C4FF", - ")# c #7EABFC", - "!# c #729CFC", - "~# c #6287FC", - "{# c #4761FD", - "]# c #070AFE", - "^# c #6084FC", - "/# c #9AD2FB", - "(# c #A2DDFB", - "_# c #8ABDFB", - ":# c #2B3AFD", - "<# c #A9E8FB", - "[# c #B9FCFA", - "}# c #BAFEFA", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " . + @ # $ $ $ $ $ ", - " % & * = - ; > $ $ , ' ) ! ~ { ] & $ $ $ ", - " ^ / ( = _ : < [ } | $ 1 2 3 4 5 6 7 6 8 9 0 a b ", - " c d e f g h i j k l m n 4 o p q r s t u v w x y z A ", - " B C D * E F G H I J K L M N O O P Q R S T 9 U V W O X $ ", - " Y Z ` ...+.@.#.$.%.&.*.=.-.;.w >.>.,.'.).).!.+ ~. .{.]. ", - " ^./.(.y _.f :.) <.[.^ }.|.).1.2.3. .4.* 5. .6.1 4.7.8.9. ", - " 0.a.b.c./ d.e.f.| g.h.9 i.* j.|.k.7.7.l.m.n.o.@.p.q.r.s. ", - " t.u.v.w.x.y.% z.A.).B.C.D.m.E.{.F.F.G.r.H.I.J.k.K.L.M.N. ", - " O.P.Q.R.S.T.U.V.W.q.X.r.Y.Z.`.Y. +`..+++{.@+#+$+++%+y. ", - " &+*+W.=+-+;+X.>+y .+K.K.y y ,+'+)+!+~+{+]+^+].$+/+$+J. ", - " (+_+:+U.$+<+[+}+/+h.=.|+1+2+3+4+5+6+7+8+9+0+_.a+/+0 b+ ", - " c+d+h.a+/+++e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+$ ", - " x+f.- y+w.z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+$ ", - " R+S+T+U+V+W+F+X+H+I+Y+Z+`+ @.@+@@@#@$@%@$ ", - "&@*@=@-@;@>@,@'@)@H+!@Y+K+~@{@]@+@^@/@(@_@:@<@[@}@|@1@2@3@ ", - "4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@", - " z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #", - " .#+#@###$#%#&#*#=#-#;#>#,#'# )#!#~#{#]#^#/#", - " (#_#:#<#", - " [#}#", - " ", - " ", - " ", - " "}; - """ + def getIcon(self): + return """ + /* XPM */ + static char * Ship_xpm[] = { + "32 32 396 2", + " c None", + ". c #2C2C2C", + "+ c #3A3A3A", + "@ c #585857", + "# c #161616", + "$ c #000000", + "% c #363636", + "& c #333333", + "* c #B3B3B3", + "= c #B4B4B4", + "- c #949494", + "; c #565653", + "> c #141414", + ", c #080807", + "' c #585858", + ") c #878787", + "! c #9F9E9F", + "~ c #9F9F9E", + "{ c #8F8F90", + "] c #6B6B6B", + "^ c #101010", + "/ c #737373", + "( c #4C4C4C", + "_ c #B1B1B7", + ": c #9090C0", + "< c #A7A7B2", + "[ c #87878E", + "} c #4F4F52", + "| c #191919", + "1 c #656565", + "2 c #D1D1D2", + "3 c #D1D1D1", + "4 c #CECECE", + "5 c #CDCCCC", + "6 c #CCCCCC", + "7 c #CCCCCB", + "8 c #CDCECD", + "9 c #BDBDBD", + "0 c #424242", + "a c #373737", + "b c #0A0A0A", + "c c #241414", + "d c #0E0C0C", + "e c #929393", + "f c #383738", + "g c #9B9B9A", + "h c #A0A0AF", + "i c #2929E4", + "j c #2525E5", + "k c #3F3FD7", + "l c #5B5BC8", + "m c #535368", + "n c #686866", + "o c #C8C8C8", + "p c #C8C8C7", + "q c #C7C6C7", + "r c #C6C6C6", + "s c #C5C5C5", + "t c #C4C5C5", + "u c #C3C4C3", + "v c #C3C3C2", + "w c #BCBCBC", + "x c #595959", + "y c #A6A6A6", + "z c #969696", + "A c #0B0B0B", + "B c #0D0707", + "C c #894646", + "D c #1C1A1A", + "E c #525252", + "F c #6C6D6C", + "G c #A3A3A2", + "H c #A3A296", + "I c #8E8F98", + "J c #6F6EA5", + "K c #5354AF", + "L c #373753", + "M c #8D8D8B", + "N c #C5C5C4", + "O c #C2C2C2", + "P c #C1C1C1", + "Q c #C0C0C0", + "R c #C0BFBF", + "S c #BFBFBF", + "T c #BEBEBE", + "U c #B1B2B2", + "V c #404040", + "W c #ABAAAA", + "X c #797979", + "Y c #2A1212", + "Z c #662828", + "` c #3D403F", + " . c #B5B5B5", + ".. c #6B6A6B", + "+. c #4A4A4A", + "@. c #9A9A9A", + "#. c #909090", + "$. c #8B8B8A", + "%. c #898A86", + "&. c #84837F", + "*. c #3D3D3C", + "=. c #9E9E9E", + "-. c #BFBFBE", + ";. c #BDBEBD", + ">. c #BBBBBB", + ",. c #BABABA", + "'. c #B9B9B9", + "). c #B8B8B8", + "!. c #999999", + "~. c #BABAB9", + "{. c #ABABAB", + "]. c #292929", + "^. c #381212", + "/. c #4C1514", + "(. c #535656", + "_. c #717171", + ":. c #919090", + "<. c #818181", + "[. c #4E4E4E", + "}. c #4B4B4B", + "|. c #B1B1B1", + "1. c #B8B7B8", + "2. c #B6B6B6", + "3. c #B6B5B5", + "4. c #B4B5B4", + "5. c #B2B3B2", + "6. c #5C5D5C", + "7. c #AFAFAF", + "8. c #ADACAC", + "9. c #5B5B5B", + "0. c #410C0C", + "a. c #3E0707", + "b. c #525555", + "c. c #9C9C9C", + "d. c #2D2D2D", + "e. c #757575", + "f. c #474747", + "g. c #484848", + "h. c #9F9F9F", + "i. c #B3B3B4", + "j. c #B2B2B2", + "k. c #B0B0B0", + "l. c #ADAEAD", + "m. c #ADADAD", + "n. c #B0B1B0", + "o. c #1E1E1E", + "p. c #ACABAC", + "q. c #AAA9A9", + "r. c #A8A8A8", + "s. c #5D5D5D", + "t. c #290202", + "u. c #281010", + "v. c #272828", + "w. c #767777", + "x. c #505050", + "y. c #1F1F1F", + "z. c #5E5E5D", + "A. c #A4A5A5", + "B. c #B1B2B1", + "C. c #AEAEAE", + "D. c #AEADAD", + "E. c #ABACAC", + "F. c #AAAAAA", + "G. c #A9A8A8", + "H. c #ABABAC", + "I. c #7B7B7B", + "J. c #2B2B2B", + "K. c #A4A4A4", + "L. c #A6A5A6", + "M. c #888888", + "N. c #0E0E0E", + "O. c #101312", + "P. c #7E8080", + "Q. c #5E5E5E", + "R. c #242424", + "S. c #555555", + "T. c #7F7F7F", + "U. c #A4A3A4", + "V. c #B3B3B2", + "W. c #ACACAC", + "X. c #A9A9A9", + "Y. c #A8A7A7", + "Z. c #A7A6A7", + "`. c #A7A7A7", + " + c #A8A8A7", + ".+ c #A5A5A5", + "++ c #A2A2A2", + "@+ c #222122", + "#+ c #7E7E7E", + "$+ c #A3A3A3", + "%+ c #9B9B9B", + "&+ c #050505", + "*+ c #6E6E6E", + "=+ c #A7A7A6", + "-+ c #989898", + ";+ c #A5A4A4", + ">+ c #A7A7A8", + ",+ c #A5A6A7", + "'+ c #979A99", + ")+ c #818383", + "!+ c #757878", + "~+ c #757979", + "{+ c #878A8A", + "]+ c #A3A5A5", + "^+ c #828282", + "/+ c #A0A0A0", + "(+ c #232323", + "_+ c #939393", + ":+ c #A5A6A5", + "<+ c #A2A3A2", + "[+ c #A2A1A1", + "}+ c #A1A0A1", + "|+ c #939292", + "1+ c #636262", + "2+ c #554D4D", + "3+ c #634C4C", + "4+ c #755555", + "5+ c #936464", + "6+ c #9F6868", + "7+ c #9B6060", + "8+ c #804A4A", + "9+ c #5C3737", + "0+ c #1D1616", + "a+ c #A1A1A1", + "b+ c #010101", + "c+ c #151516", + "d+ c #707070", + "e+ c #9D9E9E", + "f+ c #8C8D8D", + "g+ c #8B8888", + "h+ c #726A6A", + "i+ c #6D5959", + "j+ c #866261", + "k+ c #C18B8B", + "l+ c #D79696", + "m+ c #D18C8C", + "n+ c #CB8180", + "o+ c #C57575", + "p+ c #BF6B6A", + "q+ c #BB6161", + "r+ c #B95958", + "s+ c #9C4544", + "t+ c #2E1212", + "u+ c #6F6C6C", + "v+ c #A0A1A1", + "w+ c #575757", + "x+ c #0C0C0C", + "y+ c #9C9D9D", + "z+ c #7A7272", + "A+ c #876F6F", + "B+ c #977070", + "C+ c #C28C8C", + "D+ c #D59595", + "E+ c #D08A8A", + "F+ c #C67D7D", + "G+ c #C07272", + "H+ c #BC6969", + "I+ c #B85F5F", + "J+ c #B35656", + "K+ c #B04C4C", + "L+ c #AB4243", + "M+ c #A63939", + "N+ c #591B1B", + "O+ c #6A2121", + "P+ c #542323", + "Q+ c #585A5A", + "R+ c #191515", + "S+ c #706262", + "T+ c #A58080", + "U+ c #B58383", + "V+ c #CE8F8F", + "W+ c #CD8989", + "X+ c #C17372", + "Y+ c #B45656", + "Z+ c #AF4C4C", + "`+ c #AB4242", + " @ c #A73A39", + ".@ c #A3302F", + "+@ c #9F2626", + "@@ c #8E1A1A", + "#@ c #2C0808", + "$@ c #91191A", + "%@ c #2F0200", + "&@ c #90C6FB", + "*@ c #8BBFFB", + "=@ c #94CBFC", + "-@ c #AFEFFB", + ";@ c #7DABA0", + ">@ c #3C2521", + ",@ c #C88484", + "'@ c #C57C7D", + ")@ c #C17273", + "!@ c #B86060", + "~@ c #AB4343", + "{@ c #A73939", + "]@ c #A32F2F", + "^@ c #9B1C1D", + "/@ c #961313", + "(@ c #96090A", + "_@ c #3C0202", + ":@ c #4E0202", + "<@ c #300000", + "[@ c #3E5378", + "}@ c #7EABF9", + "|@ c #84B5FC", + "1@ c #96CDFB", + "2@ c #B2F2FA", + "3@ c #C4FFFA", + "4@ c #2E3FFD", + "5@ c #3346FD", + "6@ c #2A3AFD", + "7@ c #161EFE", + "8@ c #1B25FD", + "9@ c #1F25B4", + "0@ c #7C6196", + "a@ c #AA6075", + "b@ c #AC5763", + "c@ c #AD5155", + "d@ c #AD4645", + "e@ c #A83938", + "f@ c #A3302E", + "g@ c #A02624", + "h@ c #9B1C1B", + "i@ c #971311", + "j@ c #930A09", + "k@ c #900300", + "l@ c #900505", + "m@ c #660007", + "n@ c #00000D", + "o@ c #200112", + "p@ c #597F88", + "q@ c #6E97FD", + "r@ c #384CFD", + "s@ c #394EFD", + "t@ c #2D3EFD", + "u@ c #151DFE", + "v@ c #1821FE", + "w@ c #3C52FD", + "x@ c #6388FC", + "y@ c #9CD6FB", + "z@ c #D0FFFA", + "A@ c #AEEEFB", + "B@ c #749FFF", + "C@ c #3F5DFF", + "D@ c #4165FF", + "E@ c #525AE3", + "F@ c #6153C4", + "G@ c #672D8D", + "H@ c #6C1B6A", + "I@ c #722164", + "J@ c #75225E", + "K@ c #731D57", + "L@ c #701653", + "M@ c #690E52", + "N@ c #5F0050", + "O@ c #562086", + "P@ c #11108D", + "Q@ c #2330BE", + "R@ c #344AE1", + "S@ c #4E6BFF", + "T@ c #4E6BFD", + "U@ c #597AFC", + "V@ c #6184FC", + "W@ c #7099FC", + "X@ c #8BBEFB", + "Y@ c #95CCFB", + "Z@ c #5B7CFC", + "`@ c #1C26FD", + " # c #121AFE", + ".# c #9ED7FB", + "+# c #81B4FF", + "@# c #6893FF", + "## c #6997FF", + "$# c #6695FF", + "%# c #6390FF", + "&# c #618DFF", + "*# c #608DFF", + "=# c #618EFF", + "-# c #6391FF", + ";# c #6898FF", + "># c #6B9AFF", + ",# c #5171ED", + "'# c #90C4FF", + ")# c #7EABFC", + "!# c #729CFC", + "~# c #6287FC", + "{# c #4761FD", + "]# c #070AFE", + "^# c #6084FC", + "/# c #9AD2FB", + "(# c #A2DDFB", + "_# c #8ABDFB", + ":# c #2B3AFD", + "<# c #A9E8FB", + "[# c #B9FCFA", + "}# c #BAFEFA", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " . + @ # $ $ $ $ $ ", + " % & * = - ; > $ $ , ' ) ! ~ { ] & $ $ $ ", + " ^ / ( = _ : < [ } | $ 1 2 3 4 5 6 7 6 8 9 0 a b ", + " c d e f g h i j k l m n 4 o p q r s t u v w x y z A ", + " B C D * E F G H I J K L M N O O P Q R S T 9 U V W O X $ ", + " Y Z ` ...+.@.#.$.%.&.*.=.-.;.w >.>.,.'.).).!.+ ~. .{.]. ", + " ^./.(.y _.f :.) <.[.^ }.|.).1.2.3. .4.* 5. .6.1 4.7.8.9. ", + " 0.a.b.c./ d.e.f.| g.h.9 i.* j.|.k.7.7.l.m.n.o.@.p.q.r.s. ", + " t.u.v.w.x.y.% z.A.).B.C.D.m.E.{.F.F.G.r.H.I.J.k.K.L.M.N. ", + " O.P.Q.R.S.T.U.V.W.q.X.r.Y.Z.`.Y. +`..+++{.@+#+$+++%+y. ", + " &+*+W.=+-+;+X.>+y .+K.K.y y ,+'+)+!+~+{+]+^+].$+/+$+J. ", + " (+_+:+U.$+<+[+}+/+h.=.|+1+2+3+4+5+6+7+8+9+0+_.a+/+0 b+ ", + " c+d+h.a+/+++e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+$ ", + " x+f.- y+w.z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+$ ", + " R+S+T+U+V+W+F+X+H+I+Y+Z+`+ @.@+@@@#@$@%@$ ", + "&@*@=@-@;@>@,@'@)@H+!@Y+K+~@{@]@+@^@/@(@_@:@<@[@}@|@1@2@3@ ", + "4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@", + " z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #", + " .#+#@###$#%#&#*#=#-#;#>#,#'# )#!#~#{#]#^#/#", + " (#_#:#<#", + " [#}#", + " ", + " ", + " ", + " "}; + """ def weights(obj): - """ Returns Ship weights list. If weights has not been sets, - this tool creates it. - @param obj Ship object - @return Weights list. None if errors - """ - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - return None - if not obj.IsShip: - return None - # Test if properties already exist - try: - props.index("WeightNames") - except ValueError: - obj.addProperty("App::PropertyStringList","WeightNames","Ship", str(Translator.translate("Ship Weights names"))).WeightNames=[Translator.translate("Lightweight").__str__()] - try: - props.index("WeightMass") - except ValueError: - # Compute mass aproximation - from shipHydrostatics import Tools - disp = Tools.displacement(obj,obj.Draft) - obj.addProperty("App::PropertyFloatList","WeightMass","Ship", str(Translator.translate("Ship Weights masses"))).WeightMass=[1000.0 * disp[0]] - try: - props.index("WeightPos") - except ValueError: - # Compute mass aproximation - from shipHydrostatics import Tools - disp = Tools.displacement(obj,obj.Draft) - obj.addProperty("App::PropertyVectorList","WeightPos","Ship", str(Translator.translate("Ship Weights centers of gravity"))).WeightPos=[Vector(disp[1].x,0.0,obj.Draft)] - # Setup list - weights = [] - for i in range(0,len(obj.WeightNames)): - weights.append([obj.WeightNames[i], obj.WeightMass[i], obj.WeightPos[i]]) - return weights + """ Returns Ship weights list. If weights has not been sets, + this tool creates it. + @param obj Ship object + @return Weights list. None if errors + """ + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + return None + if not obj.IsShip: + return None + # Test if properties already exist + try: + props.index("WeightNames") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Ship Weights names",None,QtGui.QApplication.UnicodeUTF8)) + lighweight = str(QtGui.QApplication.translate("Ship","Lightweight",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyStringList","WeightNames","Ship", tooltip).WeightNames=[lighweight] + try: + props.index("WeightMass") + except ValueError: + # Compute mass aproximation + from shipHydrostatics import Tools + disp = Tools.displacement(obj,obj.Draft) + tooltip = str(QtGui.QApplication.translate("Ship","Ship Weights masses",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloatList","WeightMass","Ship", tooltip).WeightMass=[1000.0 * disp[0]] + try: + props.index("WeightPos") + except ValueError: + # Compute mass aproximation + from shipHydrostatics import Tools + disp = Tools.displacement(obj,obj.Draft) + tooltip = str(QtGui.QApplication.translate("Ship","Ship Weights centers of gravity",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyVectorList","WeightPos","Ship", tooltip).WeightPos=[Vector(disp[1].x,0.0,obj.Draft)] + # Setup list + weights = [] + for i in range(0,len(obj.WeightNames)): + weights.append([obj.WeightNames[i], obj.WeightMass[i], obj.WeightPos[i]]) + return weights diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index 87e1f22cbe..fd24beac68 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -6,55 +6,15 @@ data_DATA = \ ShipGui.py \ Instance.py \ SimInstance.py \ - TankInstance.py + TankInstance.py \ + Ship_rc.py nobase_data_DATA = \ - Icons/AreaCurveIco.png \ - Icons/AreaCurveIco.xcf \ - Icons/AreaCurveIco.xpm \ - Icons/DataIco.png \ - Icons/DataIco.xcf \ - Icons/DataIco.xpm \ - Icons/DiscretizeIco.png \ - Icons/DiscretizeIco.xcf \ - Icons/DiscretizeIco.xpm \ - Icons/HydrostaticsIco.png \ - Icons/HydrostaticsIco.xcf \ - Icons/HydrostaticsIco.xpm \ - Icons/Ico.png \ - Icons/Ico.xcf \ - Icons/Ico.xpm \ - Icons/LoadIco.png \ - Icons/LoadIco.xcf \ - Icons/LoadIco.xpm \ - Icons/OutlineDrawIco.png \ - Icons/OutlineDrawIco.xcf \ - Icons/OutlineDrawIco.xpm \ - Icons/ReparametrizeIco.png \ - Icons/ReparametrizeIco.xcf \ - Icons/ReparametrizeIco.xpm \ - Icons/Ship.xcf \ - Icons/Ship.xpm \ - Icons/Weight.png \ - Icons/Weight.xcf \ - Icons/Weight.xpm \ - Icons/SimIco.xcf \ - Icons/Sim.xpm \ - Icons/SimCreateIco.png \ - Icons/SimCreateIco.xpm \ - Icons/SimRunIco.png \ - Icons/SimRunIco.xpm \ - Icons/SimStopIco.png \ - Icons/SimStopIco.xpm \ - Icons/SimPostIco.png \ - Icons/SimPostIco.xpm \ - Icons/Tank.png \ - Icons/Tank.xcf \ - Icons/Tank.xpm \ - Examples/s60.fcstd \ - Examples/s60_katamaran.fcstd \ - Examples/wigley.fcstd \ - Examples/wigley_katamaran.fcstd \ + resources/examples/s60.fcstd \ + resources/examples/s60_katamaran.fcstd \ + resources/examples/wigley.fcstd \ + resources/examples/wigley_katamaran.fcstd \ + resources/icons/Ico.xpm \ shipLoadExample/__init__.py \ shipLoadExample/TaskPanel.py \ shipLoadExample/TaskPanel.ui \ @@ -68,19 +28,18 @@ nobase_data_DATA = \ shipOutlineDraw/TaskPanel.py \ shipOutlineDraw/TaskPanel.ui \ shipAreasCurve/__init__.py \ - shipAreasCurve/Plot.py \ + shipAreasCurve/PlotAux.py \ shipAreasCurve/Preview.py \ shipAreasCurve/TaskPanel.py \ shipAreasCurve/TaskPanel.ui \ shipHydrostatics/__init__.py \ - shipHydrostatics/Plot.py \ + shipHydrostatics/PlotAux.py \ shipHydrostatics/TaskPanel.py \ shipHydrostatics/TaskPanel.ui \ shipHydrostatics/Tools.py \ shipUtils/__init__.py \ shipUtils/Math.py \ shipUtils/Paths.py \ - shipUtils/Translator.py \ tankWeights/__init__.py \ tankWeights/Preview.py \ tankWeights/TaskPanel.py \ @@ -89,7 +48,7 @@ nobase_data_DATA = \ tankCreateTank/TaskPanel.py \ tankCreateTank/TaskPanel.ui \ tankGZ/__init__.py \ - tankGZ/Plot.py \ + tankGZ/PlotAux.py \ tankGZ/TaskPanel.py \ tankGZ/TaskPanel.ui \ simCreate/__init__.py \ diff --git a/src/Mod/Ship/ShipGui.py b/src/Mod/Ship/ShipGui.py index 4848a66098..f2796835f4 100644 --- a/src/Mod/Ship/ShipGui.py +++ b/src/Mod/Ship/ShipGui.py @@ -24,17 +24,20 @@ from PyQt4 import QtCore, QtGui import FreeCAD, FreeCADGui, os +# Load resources +import Ship_rc +FreeCADGui.addLanguagePath(":/Ship/translations") +FreeCADGui.addIconPath(":/Ship/icons") + class LoadExample: def Activated(self): import shipLoadExample shipLoadExample.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/LoadIco.png" - MenuText = str(Translator.translate('Load an example ship geometry')) - ToolTip = str(Translator.translate('Load an example ship geometry able to be converted into a ship.')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_LoadExample', 'Load an example ship geometry') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_LoadExample', 'Load an example ship geometry able to be converted into a ship.') + return {'Pixmap' : 'LoadIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class CreateShip: def Activated(self): @@ -42,11 +45,9 @@ class CreateShip: shipCreateShip.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Ico.png" - MenuText = str(Translator.translate('Create a new ship')) - ToolTip = str(Translator.translate('Create a new ship in order to work with them')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_CreateShip', 'Create a new ship') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_CreateShip', 'Create a new ship in order to work with them') + return {'Pixmap' : 'Ico', 'MenuText': MenuText, 'ToolTip': ToolTip} class OutlineDraw: def Activated(self): @@ -54,11 +55,9 @@ class OutlineDraw: shipOutlineDraw.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/OutlineDrawIco.png" - MenuText = str(Translator.translate('Outline draw')) - ToolTip = str(Translator.translate('Plot ship outline draw')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_OutlineDraw', 'Outline draw') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_OutlineDraw', 'Plot ship outline draw') + return {'Pixmap' : 'OutlineDrawIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class AreasCurve: def Activated(self): @@ -66,11 +65,9 @@ class AreasCurve: shipAreasCurve.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/AreaCurveIco.png" - MenuText = str(Translator.translate('Areas curve')) - ToolTip = str(Translator.translate('Plot transversal areas curve')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_AreasCurve', 'Areas curve') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_AreasCurve', 'Plot transversal areas curve') + return {'Pixmap' : 'AreaCurveIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class Hydrostatics: def Activated(self): @@ -78,11 +75,9 @@ class Hydrostatics: shipHydrostatics.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/HydrostaticsIco.png" - MenuText = str(Translator.translate('Hydrostatics')) - ToolTip = str(Translator.translate('Plot ship hydrostatics')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_Hydrostatics', 'Hydrostatics') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_Hydrostatics', 'Plot ship hydrostatics') + return {'Pixmap' : 'HydrostaticsIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class SetWeights: def Activated(self): @@ -90,11 +85,9 @@ class SetWeights: tankWeights.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Weight.png" - MenuText = str(Translator.translate('Set ship weights')) - ToolTip = str(Translator.translate('Set ship weights, tanks must be added later')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_Weights', 'Set ship weights') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_Weights', 'Set ship weights, tanks must be added later') + return {'Pixmap' : 'Weight', 'MenuText': MenuText, 'ToolTip': ToolTip} class CreateTank: def Activated(self): @@ -102,11 +95,9 @@ class CreateTank: tankCreateTank.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Tank.png" - MenuText = str(Translator.translate('Create a new tank')) - ToolTip = str(Translator.translate('Create a new ship tank')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_CreateTank', 'Create a new tank') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_CreateTank', 'Create a new ship tank') + return {'Pixmap' : 'Tank', 'MenuText': MenuText, 'ToolTip': ToolTip} class GZ: def Activated(self): @@ -114,11 +105,9 @@ class GZ: tankGZ.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/HydrostaticsIco.png" - MenuText = str(Translator.translate('GZ curve')) - ToolTip = str(Translator.translate('Transversal stability GZ curve computation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_GZ', 'GZ curve') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_GZ', 'Transversal stability GZ curve computation') + return {'Pixmap' : 'HydrostaticsIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class CreateSim: def Activated(self): @@ -126,11 +115,9 @@ class CreateSim: simCreate.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimCreateIco.png" - MenuText = str(Translator.translate('Create a new simulation')) - ToolTip = str(Translator.translate('Create a new simulation in order to process later')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_CreateSim', 'Create a new simulation') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_CreateSim', 'Create a new simulation in order to process later') + return {'Pixmap' : 'SimCreateIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class RunSim: def Activated(self): @@ -138,11 +125,9 @@ class RunSim: simRun.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimRunIco.png" - MenuText = str(Translator.translate('Run a simulation')) - ToolTip = str(Translator.translate('Run a simulation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_RunSim', 'Run a simulation') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_RunSim', 'Run a simulation') + return {'Pixmap' : 'SimRunIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class StopSim: def Activated(self): @@ -150,11 +135,9 @@ class StopSim: simRun.stop() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimStopIco.png" - MenuText = str(Translator.translate('Stop active simulation')) - ToolTip = str(Translator.translate('Stop active simulation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_StopSim', 'Stop active simulation') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_StopSim', 'Stop active simulation') + return {'Pixmap' : 'SimStopIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class TrackSim: def Activated(self): @@ -162,11 +145,9 @@ class TrackSim: simPost.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimPostIco.png" - MenuText = str(Translator.translate('Track simulation')) - ToolTip = str(Translator.translate('Track simulation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_TrackSim', 'Track simulation') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_TrackSim', 'Track simulation') + return {'Pixmap' : 'SimPostIco', 'MenuText': MenuText, 'ToolTip': ToolTip} FreeCADGui.addCommand('Ship_LoadExample', LoadExample()) diff --git a/src/Mod/Ship/Ship_rc.py b/src/Mod/Ship/Ship_rc.py new file mode 100644 index 0000000000..99736bc998 --- /dev/null +++ b/src/Mod/Ship/Ship_rc.py @@ -0,0 +1,8700 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created: Fri Nov 16 15:25:47 2012 +# by: The Resource Compiler for PyQt (Qt v4.8.1) +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore + +qt_resource_data = "\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x16\x2a\ +\x00\ +\x00\x51\x13\x78\x9c\xd5\x3c\x0b\x74\x1c\xd5\x75\xcf\x92\x56\xb2\ +\x56\xab\xb5\xfc\x41\x18\x47\x36\xe3\x0f\x20\x63\x21\x6c\x3e\xb6\ +\xe3\x18\xb0\x6c\x59\xf2\x47\xfe\xd4\x32\x10\x6c\x08\x8c\x76\x66\ +\xb5\x63\x66\x67\x36\x33\xb3\x92\x65\x9c\x84\x00\x0d\x25\xe1\x90\ +\x86\x84\xd6\xe4\x40\x08\xa4\xe1\x40\xa0\x29\xe7\x84\x16\x9a\x43\ +\x02\x29\xf9\x14\x4e\x68\x9b\x92\xf4\x93\xb4\x09\x24\x94\x40\x80\ +\xf4\x50\x9a\x53\xa0\x21\xed\x7d\xf7\xbd\x99\xf7\x66\xf6\x8d\xb4\ +\xb6\x6c\x4a\x0f\x07\x8f\x34\x9f\xfb\x7b\xf7\xff\xee\xd3\xfa\x47\ +\x8d\xf9\x4f\xff\xfb\x1d\xb7\x3d\xb3\xb8\xeb\xf1\xab\xee\xfe\xc6\ +\xbf\x6e\x24\xa4\xe9\x25\x42\x86\xfa\x09\xd9\xe2\x13\x72\xf1\x28\ +\x21\x03\x57\x91\xa6\xbf\xd8\x4c\x48\xd7\x2b\x24\xb3\xf6\x4b\x84\ +\x6c\xdf\x4f\x32\x5b\xce\x87\xeb\xcd\x24\x73\x17\x81\xf7\x37\x93\ +\xcc\xa3\xef\x10\xd2\xf9\x5d\x76\x5d\xff\x4b\x76\xdd\x76\x1f\xd1\ +\xfe\x79\x13\x21\x17\x0e\x92\xc5\x3f\xfc\x4b\x42\x1a\x3f\x4f\xb6\ +\xdf\xf8\x43\x78\xef\x0c\x76\x5d\xd3\xcd\xae\x5b\x36\x92\x4b\x5e\ +\xba\x8d\x90\xfe\xa7\xc9\x65\x47\x4e\x23\x64\xc3\xd7\xc9\xbe\xfb\ +\x3e\x07\xdf\x57\xc9\x15\x37\x3f\x09\xf7\xdf\x26\xa5\x27\x00\xdf\ +\xda\xd5\xe4\x86\x7f\x2c\x10\x92\x79\x83\x3c\xf1\x12\xbc\xb7\xf9\ +\x4c\xf2\x83\x9b\x5e\x26\xe4\xcc\x55\xe4\x57\xdf\xb8\x98\x90\x96\ +\xa5\x33\x16\xb4\xdd\x48\xc8\xec\xdf\x63\xd7\x8b\x5e\x9e\xb1\xf2\ +\xee\x1b\x00\xce\x8f\x67\xd8\x2f\x6c\x25\xe4\xb4\xa7\x66\x3c\xb2\ +\x2f\x47\xc8\x92\x37\x67\x3c\xb9\xe6\x9b\xf0\xfd\x9f\x35\x64\x5e\ +\x07\xba\x66\x3d\xd9\x70\xfe\x87\x2e\x23\xe4\xf4\x07\x1a\x2e\xd0\ +\x6f\x27\xa4\x75\x7e\xc3\x8e\x4f\xbc\x40\xc8\x59\x0f\x35\x7c\xe7\ +\x63\x80\x77\x60\x66\xc3\xab\x06\x7c\xbf\xe1\xbc\x86\xd7\xee\xfc\ +\x02\x21\x1d\x83\x0d\xff\x7d\xc7\x04\x21\xdd\xcf\x34\xfc\xf6\x6f\ +\x80\xee\x96\x87\x1b\x7e\xf7\x73\xa0\xe3\x8c\x7b\x1a\x7b\xee\x0c\ +\x08\x39\xe9\x39\x76\x1d\x7c\xbb\xf1\xfd\x4f\x95\x08\x59\xb8\xa0\ +\xb1\xcf\x05\x78\xeb\x5e\x6c\xdc\xba\x78\x0f\x21\xb9\xc3\x8d\xdb\ +\x7a\x9e\x02\xb9\xd9\x8d\x1f\x59\x36\x0f\xe4\x7a\x4f\xe3\xb7\xdf\ +\xd4\x40\x2e\xff\xd5\xf8\xf6\x1f\x38\x84\xcc\x79\x8e\x5d\x07\x3e\ +\xdd\xb4\xeb\x96\x46\x42\xfa\x9e\x6e\xfa\xf0\x6f\x1f\x03\x78\x7b\ +\x9a\x6e\x59\x73\x3f\xd0\x77\x53\xd3\xd7\xb7\x7f\x04\xee\xf7\x36\ +\x3d\xfd\x99\xaf\x12\xb2\xb5\xb9\xe9\x57\x5f\xed\x20\xe4\x82\x45\ +\x4d\xbf\xde\x06\xf4\x82\x84\x96\x6c\x84\xf5\xca\x5e\x92\xe9\xd9\ +\x79\x1f\xc8\xad\x89\x5d\xfb\xdb\x33\xe7\x8f\xcf\x05\xbc\x6f\x66\ +\x8a\xf7\x0f\x82\x9c\xbe\x98\xb1\xff\x70\x2f\xdc\xff\x6c\xc6\x7e\ +\xe4\xdb\x20\x8f\xc3\x99\xca\x9d\x8b\x08\x59\x70\x72\xe6\xc1\x85\ +\x20\x97\x55\x83\x99\x87\xff\xe8\x2d\x80\x7b\x4d\xe6\x7b\x5f\x06\ +\xbe\x67\x7c\x3c\xf3\xd7\xab\x81\x9e\xae\xc1\xcc\xcf\x06\x6e\x25\ +\x64\xfe\x55\x99\x57\x96\xfe\x3d\xac\xe3\x65\xcd\x0d\x57\x8c\x03\ +\x9f\x8f\x35\xaf\x3e\x83\xf2\x7f\x6e\xf3\x05\xe7\x7c\x14\xf8\x70\ +\x9b\x2f\x78\x62\x29\xc8\xbf\xbb\x79\xe7\x79\xb0\xce\xeb\x3a\x9b\ +\x1f\x58\xf0\x29\x42\xda\x8f\xb0\xeb\xc0\x5b\xcd\x0f\x2c\x7e\x82\ +\x90\xb6\xb9\xec\xba\xfa\x47\xcd\xcf\xf9\x7f\x0e\xfa\xd2\xd8\xfc\ +\x1b\xf7\x77\xc0\xc5\x93\x2d\xd9\xfd\x9f\x01\x76\xf4\x96\xf9\x2b\ +\xfe\x0d\xf8\x7c\xa0\x65\xe5\x1b\x70\xdd\xf8\xd9\x96\x03\x2f\xbf\ +\x01\xef\xdd\xde\xf2\x85\x31\x58\xaf\xc1\x2f\xb5\x3c\xd8\xd2\x0b\ +\x7a\xf4\xc5\x96\x87\x7a\x33\xc0\xf7\xdd\xec\xda\x79\xe9\x4c\xf3\ +\xba\x3c\x21\x9b\x1a\x67\x5e\xf3\x00\xc0\x5b\xb4\xa6\xf5\xec\xf2\ +\x8f\x08\x39\x9f\xb4\x96\xd7\xc3\xf7\xcb\x7e\xda\x3a\x5e\xfa\x0e\ +\xe0\x1d\x6d\xfd\xc8\x61\xb8\x9e\xfb\x3f\xad\x37\xf9\xed\x84\xbc\ +\x7f\x7b\xeb\x27\x9b\x7e\x41\xc8\x29\x1f\x6b\xfd\xd4\x35\x60\x0b\ +\xab\xff\x84\x5d\x37\xfe\x6d\xeb\x2d\x05\xb0\x8b\x93\x6f\x6c\x7d\ +\x66\xd5\x0e\x42\xe6\x5d\xdf\xfa\x0f\xde\x9f\x82\x9e\x6d\x6b\xfd\ +\xc5\xc0\xf7\x08\x39\xe7\x99\xec\xd2\x3e\xb0\x8f\xb9\xdb\xb2\x2b\ +\xbe\x76\x3d\xe8\x55\x5f\x76\xc3\xa9\xc0\x7f\xef\x3b\xd9\xc3\xef\ +\xfc\x9a\x90\xfc\x8a\xec\x1f\xcf\xee\x01\x3d\x7a\x35\x7b\xff\x96\ +\xf5\xa0\x87\x27\x67\xff\x69\x1c\xe8\x3f\xf5\x93\xd9\x9f\x34\xbe\ +\x06\x72\x38\x90\x7d\x25\x7f\x21\xd0\xd1\x93\x7d\xeb\xde\x9f\x12\ +\xa2\xdd\xd5\xe6\x5c\x7f\x1e\x21\x1f\x78\xa1\xed\xda\x93\x60\x1d\ +\xce\xfe\xcf\xb6\x9b\x48\x13\xac\x5f\x4b\xdb\xed\x01\xac\xe3\xfb\ +\x9e\x6b\xfb\xfc\xe3\x27\x11\x32\xd3\x69\xfb\xf2\xc3\x87\x41\x4e\ +\xaf\xb6\x3d\x71\xd7\x5f\x01\xfe\x47\xda\xfe\x6e\x26\xac\xeb\xfc\ +\xef\xb7\xbd\x3c\xe7\x3f\x80\xfe\x6c\x8e\x68\x40\xd7\xfa\xdf\xcf\ +\xcd\xfa\x31\xc8\x61\xf1\xd9\xb9\xb3\x3a\x60\x9d\x9b\x5f\xcd\xf5\ +\x1d\x59\x06\xbf\x3f\x9b\xdb\xd1\xb9\x1f\xd6\x65\x75\xae\xf0\x38\ +\xe8\x59\xcf\x47\x73\xe6\xa3\x80\x77\x19\xc9\x1d\x78\x06\xe4\xd8\ +\xfe\x7a\xce\xcf\x81\xbe\x2f\xba\x35\x77\x13\xf9\x25\xac\xf3\x3b\ +\xb9\x17\x90\xae\x23\xed\xcb\xa9\xbc\xd6\x5e\xdb\xbe\xf7\x9b\xc0\ +\x67\xe6\xf2\xf6\x4b\xae\xd3\x01\x6f\xbe\xfd\xf1\x9f\x81\xfc\xb2\ +\x3d\xed\x2f\x9e\x02\xf6\xbb\xfd\x5b\xf9\xe6\x4f\x9b\xa0\x57\x5f\ +\xc9\xb7\x7f\x02\xf4\x7e\x45\x77\x3e\xff\xf3\x3b\x41\x9e\x73\xf2\ +\x1d\x15\x58\xcf\x35\x8f\xb2\xeb\xa6\xeb\xf2\x0b\x1e\x04\xba\xe6\ +\x2c\xcc\x5f\xda\x09\xdf\xe5\x7f\x93\x1f\x79\x36\x0b\x7c\x76\xe5\ +\xaf\xbf\x05\xe4\x91\xeb\xcc\xdf\xfc\x34\xf0\x79\x51\x26\xff\xc8\ +\x43\x2d\xf0\xfe\x0f\xf2\xcf\x7e\x05\xe4\x71\xf6\x0d\xb3\x96\xce\ +\x80\xe7\xbd\x6b\x66\x7d\xae\x00\x76\xd3\xd0\x35\xeb\x36\xbc\xfe\ +\x64\xd6\x3d\x5d\x5f\x83\xef\xab\xb3\x1e\xfe\x3e\xe8\xed\xfa\x95\ +\xec\xda\xbf\x81\x5d\xb7\xee\xb7\xc0\xd1\xcd\x86\x9f\xc8\x99\x64\ +\x37\x71\x89\x47\x0a\xc4\x24\x0e\x09\x88\x4e\x46\xe1\x27\x8d\x18\ +\xf8\xaf\x0d\xff\xd1\xfb\x3a\xfc\xee\xce\xa4\x06\xd6\x0c\xff\x2f\ +\x1a\xb0\xab\x96\xa1\x15\x2d\xdb\xb6\x9c\x51\xcd\x36\xc7\x4c\x5b\ +\xab\x98\x5e\xc1\x74\x02\x7d\xd4\x6c\xa1\x9e\x71\xb8\x64\x55\x66\ +\x50\x04\x1f\x24\x7d\x00\xde\x04\x10\x02\xa8\x4b\x7c\xb8\x9a\x08\ +\xbc\xcc\x11\xb3\x7b\xe1\x1b\xf4\x6d\x9f\x54\x49\x05\x7e\xf7\x48\ +\x91\x58\x40\xa0\xc5\x9f\x59\x64\x84\x42\x8c\xc8\x59\x30\xe0\x99\ +\xa6\xe6\x57\xbd\xa2\x5e\x30\x35\xd3\x36\xcb\x40\x87\xaf\xe9\x9e\ +\xa9\xc7\x49\xb9\x8a\xec\x44\x5e\xcb\x00\x9e\xa2\xf6\x4f\x18\x49\ +\x5d\x6a\x92\x1c\xd7\x2b\xeb\x76\x9c\x28\x03\x17\xc0\xe7\xe0\x5c\ +\x40\x7c\x22\x09\x5b\xa4\x26\xac\xe2\xfa\x56\x60\xb9\x4e\x9c\xb4\ +\x83\x20\xaf\x2a\x22\xf5\x00\x65\x88\x50\x45\x0a\xfd\x39\x24\xc5\ +\x00\xa4\x74\xc1\x0b\x48\xc6\x1b\xf8\xe4\x60\xe2\x9d\x7a\xc9\xed\ +\x8d\x91\xeb\x54\xcb\x23\xa6\xa7\xb9\x45\x69\x91\x03\xed\xa0\x66\ +\x58\x9e\x59\x38\x91\xe4\x4f\x9c\x40\xf2\x27\xd2\xc8\xdf\x40\xfa\ +\x11\x29\x55\x0d\x03\x2d\x90\xb1\x60\xc3\xb5\x08\xff\x56\xf1\xbe\ +\x2b\xdd\xb5\x90\x25\x4a\x16\x55\x24\x2f\x22\x63\xde\x56\xc7\xb7\ +\x0c\x53\x2b\xa2\xd9\x1a\x26\xfc\x16\x4c\xc4\x91\x2d\x00\x2d\xa4\ +\x7a\xe7\x46\x9c\x7a\x28\x9b\x02\xd1\x23\x30\x6d\x43\xd6\x68\x29\ +\x18\x37\xe9\xbf\xf1\xaf\xb3\x64\x23\x90\xf3\x61\xf8\x5f\xf0\x8e\ +\x4f\xe3\xaf\xed\x25\x9b\xb8\xd8\xbd\x98\x0a\x8f\xc2\xef\x3a\x19\ +\x83\x9f\x65\x3e\x85\xf2\x57\x38\x69\xbe\xc4\xeb\x48\x0d\xc2\x53\ +\x29\x1e\xed\x52\x24\xcf\xd7\xa8\x2f\x32\x3d\x9f\x4a\x7b\xd4\xd3\ +\xc7\x6a\x18\x5e\x4b\x76\x00\x2e\x1f\xff\x3f\x36\x7c\x73\x63\xf8\ +\xca\xba\xef\x9b\x7e\x1c\xc7\x7a\xf4\x37\x65\xa6\x14\xc7\x8c\x67\ +\x4e\x0c\x8f\xa3\x97\x93\x68\x72\x42\xfa\xc4\x17\xab\x85\x9f\x19\ +\xa6\x6f\x8d\x26\x14\xeb\x08\xd9\x8c\xa8\xca\xa0\xdd\x06\x7c\x65\ +\x4b\xd6\x41\xb5\xdf\x87\x9f\x5e\x97\xee\x8d\x08\xe8\x48\x34\x5d\ +\x3c\xba\x58\xf4\x19\x75\xa4\xa3\xf0\xcc\x49\x08\x92\xfd\x56\x42\ +\x65\xa4\x8b\x5b\x46\x1b\x61\x01\xc6\x47\xdc\xcf\xe3\xb5\x80\x02\ +\xaa\x32\xaf\x17\xd1\xbe\x05\x69\x2f\xbb\x46\xd5\x36\xb5\x8a\xe7\ +\x8e\x81\xf6\xfa\x9a\xef\x96\x4d\xba\x9e\x41\xc9\xd4\x0a\x6e\xb9\ +\xec\x3a\xf6\x84\x56\xf5\x4d\x43\x0b\x5c\xd7\x86\x7f\x38\xb7\x9a\ +\x4f\xbf\x2e\x82\xaf\x4d\x08\x6a\x1e\x19\x06\x32\xca\xc8\xb2\x1e\ +\x9a\x77\x84\x34\x3b\x6c\x95\xab\xb6\x5e\x6b\x88\x1f\x04\xc5\xf5\ +\x90\x7f\x0d\x8d\x51\x43\x09\x69\xa8\xc6\x3a\x72\x14\xf2\xcd\xe4\ +\xa0\x71\x4e\x85\xd9\x0a\x09\x6a\x20\x39\x1d\x3d\x85\x21\x59\x96\ +\xb6\xd7\xab\x9a\x9a\x55\xd4\x2c\x70\x09\xda\x98\x6e\x83\x99\x22\ +\x13\x96\xe3\x07\xba\x53\x48\x84\xd4\xb1\x69\x13\xe4\x27\xe4\xe0\ +\xa2\xc9\xab\x96\x7b\x0c\x16\x2a\x49\xee\x8a\x34\x72\xfd\x48\x82\ +\x29\x94\xdb\xd3\xa6\x9c\xbe\xe3\x44\xc2\x4c\x52\xac\x16\xef\x69\ +\x69\xf4\x02\x85\x57\xa7\x50\xba\x8e\xec\x8a\xd4\xb8\x1b\x15\xb8\ +\x82\x70\x03\xc0\x63\x90\x1e\xee\xfe\xa9\xe4\xa8\x0f\xa6\xbf\x97\ +\xf0\x6d\x93\x2c\x17\xc1\xf6\x52\x7d\x0c\xf4\xb6\xbb\xaf\x5c\xb1\ +\xad\xa0\x6a\x98\x3d\x90\x24\x59\xae\xd1\x53\x29\xe9\xbe\xb9\x3c\ +\x99\x07\xf4\xc7\x22\x8f\xbc\x24\x21\x21\xae\x44\xd2\xca\xc8\x71\ +\x1a\x91\x3b\xd1\xf1\x77\xf9\x3d\xf6\x7d\x05\xee\xd0\xa7\x82\xb4\ +\xd3\x19\x69\x51\xe8\xd1\xba\x57\x82\xf5\x8c\x52\x23\xf2\xc1\x6f\ +\x3a\xda\x38\x7d\xbe\x3c\xe9\xe6\xc3\x20\x21\x4c\xb5\x85\x3b\xa6\ +\xf8\x9b\x5d\xe0\xe9\xab\x40\xcc\x98\xb4\xa2\xcf\xf3\x34\x50\x72\ +\x51\x7d\x90\xa2\x81\xab\xae\x7a\x63\x28\xfd\x59\xf4\xfb\x2b\xf1\ +\xe6\x26\x7a\x0f\x41\x9d\x43\x06\x91\x2b\x16\x69\xf5\x28\x06\x17\ +\xea\x40\xd0\xb5\xdb\x76\x03\x2d\xf0\x74\xc7\x1f\x83\x60\xa0\xdb\ +\x98\x14\x4e\x85\x71\x09\x10\xcf\x20\x79\x00\xd5\x41\xc5\x1a\x43\ +\x7f\x38\x82\xf7\x0a\x52\x2a\x3c\x7b\x13\x7c\x1b\x98\xa0\x56\x8e\ +\x39\x8e\x4a\x25\xc0\xb2\x47\x91\x4c\x2e\x8f\xc0\x32\xed\x4e\x01\ +\x1d\x5b\xc8\x0a\xea\x97\x89\x84\x30\x1b\xa1\xef\x1d\xe0\xa4\x15\ +\xb8\x92\xbc\x4c\xec\x88\xa0\x9e\x1a\x82\x40\xc1\x35\xd7\x33\x20\ +\xf3\x80\xc5\x1d\x77\xbd\xab\xb5\x71\x2b\x28\x51\x2f\x5a\x4e\xa5\ +\xb5\x47\x29\x02\x5d\xe1\x39\x64\x0f\x7a\x72\x1c\x77\xcc\x9d\xe6\ +\x65\x34\x56\x19\xb1\x14\x13\x12\xd1\xa7\xc6\x95\x90\x0e\x0d\x45\ +\x05\xd4\x49\x7a\x8f\x29\x46\x18\x5a\x02\xbc\x67\x48\x91\x74\x55\ +\x0a\x7d\x31\x09\x41\xb8\x29\x98\xbe\xaf\xc1\x23\xd3\x4b\xa3\xbc\ +\x7b\xd2\xb5\x94\x7c\x54\x84\xbb\xb3\x76\x5d\xa8\xf7\x49\xae\xc0\ +\x5e\xb8\x87\x18\x96\xa5\x2a\xa1\x0a\x7a\x5c\x0d\x27\x05\xdc\xa9\ +\x30\xcd\x41\xb2\x2f\x02\x35\x73\x70\x9f\xb0\x8f\x16\x84\x30\xb8\ +\x0f\xbf\xbc\x01\xbe\xa4\xce\xb5\xc0\x97\x24\xdd\x12\x47\x70\x81\ +\x0e\x71\xbf\x44\x3d\x14\x75\x95\x87\x90\xf0\x80\x07\x16\xc0\x89\ +\x7e\x8c\xfe\x16\xa0\x62\x5b\xa1\xe3\xe6\x8e\xde\xc3\xf7\x7d\xcc\ +\x35\x3c\x5c\x62\x5b\xf2\x60\x67\xee\x95\xcc\x1a\x3c\xf8\x88\x05\ +\x3e\x76\x42\x0b\xa9\xa7\x19\x42\xa5\x1a\x44\xfa\x17\xe3\x64\x01\ +\xd9\x82\x98\x58\x1a\x1a\x80\xc2\x04\xdc\xbb\x08\xdf\x91\xdb\x32\ +\x61\x78\xae\x4f\x21\x14\xd0\xbb\xcd\x46\x08\xf2\x5d\x84\x35\xa0\ +\xf4\x4f\x7e\x4c\x2e\xc2\x13\x97\xa6\xc4\xdb\x89\x3e\x0b\x15\xa4\ +\x54\x1f\x05\x1b\x71\x5d\x3c\x88\x06\x4c\x59\x8a\x51\x91\xeb\x13\ +\x55\x88\x0c\xeb\xa0\x03\x58\x07\xd1\xb0\x26\xfc\xd9\xc2\x21\x57\ +\x37\x34\xdd\xd1\xcc\x83\x3a\x44\x2d\x93\x11\x32\x6a\x42\xea\x15\ +\x78\x98\x42\x77\x20\x11\xf4\xb5\xcd\xec\x15\xa4\xe1\x5e\x89\x06\ +\x35\x05\x31\x7c\x29\xc9\x46\x48\x61\x05\xaf\x06\xaf\x44\x7c\xee\ +\x00\x45\x65\x16\x60\x40\x36\xb9\x36\x85\x8e\x90\xe9\x49\x98\x2c\ +\x88\xba\x4e\xc2\x11\xf1\x79\xd1\xa4\x7c\x6a\xfa\x08\xdc\x02\x67\ +\x30\x42\xf5\xc8\x01\x25\x0b\x20\xcb\xb4\x1c\xb8\xa3\xe3\x9b\xbd\ +\xe9\x92\x58\x04\x41\xd2\x46\xcd\x15\x5c\x4a\xf2\x10\xfa\xb5\xab\ +\x1a\xd8\x96\x63\x6a\x86\xa7\x8f\x0b\x70\xfc\x6e\x3f\xdc\xe4\x8b\ +\xbb\x97\x1b\x13\xcb\x86\x6c\x14\xcf\x24\x08\x6a\x45\xab\x52\x2d\ +\xb7\x2e\xe4\x4b\xc8\x10\x22\x3a\xc4\x35\x6b\x32\xe7\xdf\xb1\xa7\ +\xea\x50\xe9\xc4\xbc\x3e\x16\x21\x57\xc2\x93\xd0\x71\xae\xc3\xa2\ +\x96\x15\xa9\x0e\x5f\xd7\xb0\xa6\x56\x39\x7b\x1d\x57\xdb\xa2\x56\ +\x24\xd8\x18\x0e\xdc\x8a\xa6\x43\xde\x02\x66\x1e\xc7\x97\x43\x7c\ +\xf4\x79\x88\x70\x2d\xe4\xfc\x26\x96\x28\x96\x54\x84\x08\xc9\xa5\ +\x22\x17\x8c\x81\xa3\x29\x5c\x9d\x40\xd4\x8e\x88\xf0\x49\x88\x69\ +\x3d\x94\x55\xa1\x2b\xb3\x51\x4d\x43\xf6\x8e\xa6\xda\xeb\x18\x36\ +\xf9\x12\x8d\x8b\xc4\x8a\xb1\xc5\x33\x2d\x44\x76\x6d\x02\xd9\xa1\ +\xc8\xf7\xd4\x81\x8c\xf4\xc2\x6f\x43\xfc\x69\x3c\xa1\xf6\x79\x55\ +\xf7\x3a\x7a\x61\x6a\x6f\xcf\xe3\x3a\xa4\x07\xd5\x15\x49\x82\x7b\ +\x30\xfe\x40\x45\x5c\xf5\x03\x6a\x40\xba\x61\x80\xf1\x44\xe1\xb4\ +\x96\x17\x87\xc7\x15\x9d\xb7\x33\x7c\xde\xa3\x11\x79\x70\xf8\x44\ +\xee\xc1\xa8\x6b\xcb\x70\x59\x6b\x63\x92\x5e\x93\x1d\x2e\x95\xd2\ +\x4f\x56\x42\x82\x35\x14\x81\x19\xd3\x86\xa4\x18\x68\xde\x5f\xbe\ +\x82\x52\x9c\xa5\xdc\x5d\x89\x99\x23\xd2\x5b\x41\x93\xb4\xd0\xdc\ +\xde\x5d\x8a\x17\xd5\x50\x1c\x78\x56\x39\x22\x58\x45\x6c\x17\x1a\ +\x9c\xcf\x7d\xc6\xa1\x18\x72\xe1\xf6\x73\xfd\x96\x5f\xb1\xf5\x02\ +\xb6\xa5\x54\x60\x72\xf2\x1a\x45\x9f\x65\xfa\xa9\xc0\x54\xef\x9f\ +\x97\x88\x8a\xc2\xce\x8f\x4b\xde\x9e\x44\x97\x8f\x2f\x89\x68\x42\ +\xed\x05\xf9\xa8\x3e\xd8\x83\xad\x99\x50\xdf\xa9\x38\x0a\x68\x01\ +\x0e\xcf\x3b\x68\xca\x45\xdb\x69\x61\x6f\x23\xad\x64\x56\xf9\xa7\ +\x85\x7d\xce\x44\xad\x7b\x62\xa5\x95\x8b\xf5\x41\x0e\xa9\x81\xc8\ +\xe2\xbb\x3c\x6a\x6c\x53\xd0\xe3\x46\xad\x32\x15\x35\xf1\x3a\x51\ +\x55\xf6\x76\x51\x3a\xe4\xea\x9c\x97\x7a\x45\xb7\xea\x18\x6a\x32\ +\x68\xd6\xe9\x62\xd2\x15\x60\x9d\x3e\x81\xa4\x84\x5d\x46\x9d\x35\ +\x4c\x23\x04\xed\x1b\xab\x96\x6d\xd0\x2d\x00\x43\x0f\x74\x35\xc4\ +\xb5\x31\xc6\x44\x60\xa7\x8a\x20\xf2\xdb\x50\x35\xe8\x6f\x15\x0c\ +\x10\x82\x8d\xb9\x9b\x74\xe7\x8c\x40\x2b\xb0\x0c\xb7\xe8\xda\x06\ +\x77\x24\x35\xb8\x8a\x29\xb8\x1c\x14\xe9\x41\xbe\xb4\x22\xe8\xf8\ +\x11\xce\x30\x5d\x38\x28\xf7\x4f\x89\x39\x85\xaf\xee\x61\x94\x19\ +\x66\x00\x92\x85\x4c\x82\x16\xce\xa0\xab\xb4\xd9\xeb\x6b\x45\xcf\ +\x2d\xf3\x58\x3b\x72\x00\x9e\xab\x49\xfe\x50\xaa\x78\xe2\x3a\x10\ +\x96\x01\x42\x0b\xc2\x5e\x5d\x85\xef\x1e\x30\x2d\xa4\xb0\x76\xa1\ +\x08\xa9\x57\x1d\x8a\x48\x3d\x85\x91\x5a\xb4\x1c\x43\xdb\x55\x31\ +\x9d\x4d\x43\x40\xf6\x98\x55\x60\xbd\xc4\x5a\xba\x4e\xa4\x7d\x68\ +\x12\x2d\xba\xca\x54\xd4\x24\x5d\x38\x89\xa8\x7c\x2c\x39\x2c\x2c\ +\x22\xbc\x28\x4f\x62\x15\x75\x89\x09\x26\xa9\x4f\xe3\x9e\x15\x60\ +\x8e\x57\xb4\x6c\x53\x8d\xb1\x27\x51\xf0\x84\x96\x50\xeb\xc2\xe4\ +\x02\x2a\xb7\x09\x2b\x0f\x6a\x16\x83\xfb\xd4\x80\xcf\x49\x05\xac\ +\x52\x46\x27\xe6\x1b\xe7\x0b\xf0\x71\x8d\x53\xa3\x5a\x99\x82\x2a\ +\x5e\x88\xe8\xaa\x42\x44\x20\x4a\x16\x22\xb5\x68\xba\x53\xd0\xc4\ +\xfd\x94\x9c\x81\xcf\x11\xe0\xb9\x63\x4a\x01\xbd\x08\x22\x98\x1e\ +\x6d\xd5\x50\x85\x63\x29\x08\x6f\x7c\x89\xfe\x6d\x3f\x38\x21\xcd\ +\xd7\xc7\xcc\x14\xe7\x96\x85\xaa\xcf\x44\x85\x90\x02\x44\xbf\xeb\ +\xa4\xac\xfe\x08\xac\xaa\xc9\x93\x54\xc1\x50\x19\x69\x61\xe5\xac\ +\xf0\x0d\x3e\x9a\x62\x80\x05\x0e\x4b\xc3\x2c\xfc\x52\xe7\x85\x0b\ +\xd3\xd2\x02\xd2\xae\x12\xc6\xa9\x83\xa6\x63\x7a\x3a\x4a\x83\x66\ +\xe0\xba\xa7\xf9\x13\x7e\x60\x96\xb5\xb2\x0e\x21\xfe\xa0\x9a\xc2\ +\x39\x64\x2b\x9a\x21\x85\xc8\x29\x8c\x20\xe6\xb7\x3a\x56\x60\x81\ +\xf3\x3f\x84\x50\xd5\x00\x3a\x00\x40\x20\x33\x18\x7d\xde\xba\x35\ +\xe0\xf4\xa8\xbf\x3c\x5d\xaa\x0c\xc4\x5a\xd7\x78\x00\xb1\x05\x35\ +\xa4\x57\x9d\x42\x09\x57\x7b\x0a\x3b\xbf\x83\xef\xcc\xc8\x9d\xe0\ +\x78\x01\x5b\x8a\x1c\xce\x54\xe9\x57\x37\x26\xc1\xb6\xe4\x37\x0a\ +\x3c\xbe\x59\xbc\xaf\x16\xf6\x92\xc2\xca\x8a\x65\x11\xb5\x5b\x86\ +\x2c\xb1\x16\xed\x87\x0f\xec\x70\x3d\x70\x1f\x25\x28\x21\x41\x83\ +\xc2\x00\xcb\x13\xc7\x6e\xb0\x4c\x8f\x55\x8a\xbe\x36\x6e\xd9\x36\ +\xcd\x83\x1d\x73\x94\x3d\x5e\xae\xe6\xfb\x3e\x05\xdf\xe9\x8e\xb5\ +\x3e\x19\xe8\x47\x25\x03\x16\x85\x65\x19\xe8\x09\x19\xe8\x31\x19\ +\x0c\xa9\x64\x20\x12\x9e\x1a\x71\x44\x8f\xea\x17\xca\x6e\xbe\x57\ +\xe5\x82\x02\x1c\xc0\xc4\x80\x65\x43\x2e\x77\xfb\x53\x89\xa9\xa6\ +\xcb\x20\x4c\x6e\x17\x86\x65\xba\x27\xe0\x40\xb2\xa9\x27\xc9\x4f\ +\x8b\xd7\xc7\x99\x9e\x94\xdc\xed\xb4\x24\x75\xca\x5d\x16\x35\x8d\ +\xf3\x12\xb9\x77\xdc\xb2\x67\xed\x36\x3d\xba\x37\x46\x4d\xb1\x02\ +\x69\xb6\x1a\xc6\xcd\x7c\x2c\x84\xb6\x16\x74\xcc\x2b\x3c\x08\x87\ +\x61\xd2\x26\x0a\x67\x3a\x2c\xe2\xa2\xb2\x30\xa7\x18\x2a\x8c\x5d\ +\x53\x59\xca\xbd\xbf\x50\xc1\x7d\xee\x20\xc3\x1e\x60\x4a\x8d\x14\ +\xd1\x7e\xde\x6e\x1b\x12\x78\x33\xcc\x05\x75\xb6\x81\x13\x75\x6d\ +\x46\xcc\x22\x55\xc8\xaa\x4f\x79\x0b\x4a\x20\x3b\x5a\x23\xa9\x19\ +\xbc\x77\x4a\x06\x45\x40\x1e\xe5\x2c\x84\x4b\xab\x62\xba\x92\xf0\ +\x24\x18\x4b\x79\x3f\xff\x78\xb0\xde\x17\x67\xdd\xf5\x34\x1b\x3b\ +\x58\xbc\x53\x58\x05\x73\x3a\x26\x39\xdc\x3a\xc9\x66\xf0\x68\x4c\ +\x8d\x8c\x48\xc9\x69\xe3\x92\xbd\xe3\xcb\x09\x1e\xdf\x09\x0b\xcd\ +\x21\xcc\xd3\x5c\xcc\x33\x74\x54\xff\x20\xea\x65\xc9\x9d\x11\x19\ +\x8f\x1c\xd1\x57\x60\x19\xc8\xb7\x81\x2d\xba\x5b\xe5\xd3\xc6\x9c\ +\xd1\xa3\x15\x30\x85\xab\x30\x4d\x9e\x44\x8d\x05\x77\xee\x51\x70\ +\xa7\xbf\x2b\xdc\xad\x4d\xe5\x8e\xae\x96\xcf\x79\x1c\xf5\xf4\x4a\ +\x89\xb6\xeb\x20\x57\x62\xf5\x6f\x4a\x9a\x74\x0b\xb9\x38\x65\xcb\ +\x54\xdd\x01\x1e\x21\x61\xbf\xc7\x9b\x22\x7c\xec\x8c\x55\x1d\x71\ +\xcf\x97\x16\x7a\x45\x90\x38\x77\x58\xde\xc8\x8e\xba\x42\x22\x38\ +\x38\x2e\xaf\x90\xa2\x7b\x29\xb1\xe0\xbd\xca\xe1\x96\x3a\x38\x94\ +\xdc\x37\x96\xdf\x74\xf2\x27\x7a\x81\xb1\xef\xa7\xb0\xfd\x58\xd4\ +\xaa\x8b\x87\x8d\x64\x54\x4f\xab\xad\x85\x77\x0a\x78\x75\x24\x77\ +\x3e\x27\x73\xe0\xb2\x0f\x9b\xae\x90\x76\x0e\x8b\x52\x18\x75\x5b\ +\xc3\xf1\x8d\x91\xd0\xa3\x81\x14\x68\x8b\xa4\x42\x07\x3c\xe2\xde\ +\xac\x9b\xd6\x88\xf5\x69\xc8\x8b\xef\x19\x51\x31\x67\x72\x30\x2a\ +\x0b\x9c\x88\x0a\x2b\xda\xaf\x0f\x7b\x83\x2e\xdf\xdb\x17\x02\xf5\ +\x27\x11\xa9\x9c\x80\x5d\x71\xec\x42\x05\x9d\x04\xb1\xd1\x29\xce\ +\xa3\x54\xc7\x23\x53\x58\x61\x7a\xde\xf3\x6e\xd9\xe3\x85\xc3\x29\ +\xb3\x28\xd3\x71\x3e\xff\xf2\xae\xb0\x9d\x54\x9b\xa9\xd2\x49\x29\ +\x75\x3c\x2e\x0a\x75\xd9\xd1\x89\x8e\x7b\x35\xf1\xfa\xd1\x2a\xd3\ +\x77\x23\x83\x9d\x7c\xc3\x22\x8c\xba\x25\x5e\x21\x89\xba\x47\x6c\ +\x1f\x33\xde\x42\xf3\xa2\x5b\x1c\x3b\x89\xc9\xa7\x03\x2c\x1e\xd5\ +\x93\x6f\x9b\x38\x35\x10\x6e\x53\x4f\x3f\x4b\xdb\x3e\x2c\x6d\x84\ +\x68\x25\x9d\x65\xef\x23\xa6\x49\xab\xa1\xa0\x57\xbb\xcc\xad\x42\ +\xc9\x83\x13\x6b\xf4\x46\xf4\x66\x94\xb1\x99\x53\xe5\x6b\x43\x58\ +\x78\xa7\xe9\xc3\x04\x09\x9b\xc3\xea\xa6\x9d\x41\x4c\xee\x8e\xe2\ +\xe5\xc6\x02\x31\xfb\xa6\xe9\x36\xf8\x0e\x63\x02\x9b\xd5\x95\xb4\ +\x5e\x8a\x37\x29\x19\x7e\x14\x83\x19\x32\x83\xa3\xd7\x09\x1b\x5e\ +\xb5\x50\xf9\xec\x84\x7f\x65\xc9\x56\x95\x3f\xb1\xa2\xce\x44\xb2\ +\x97\x70\xae\x44\x2c\xd6\x91\x3e\xee\x07\x06\x38\x18\x68\x82\xfe\ +\x81\xb7\xd3\x0b\x41\x55\xb7\x35\x8b\x75\x31\xd2\x2a\xa5\xdd\x64\ +\x0f\x57\x3b\x1b\x4c\xc9\x22\xa2\xd9\x3d\xdd\x86\x4e\xe7\xb0\x6b\ +\x8f\xd5\x74\x73\x52\x52\xb7\xd5\x3c\x4b\x8d\x17\x4c\x42\xe3\x65\ +\x7d\x0f\xc3\x95\x5c\xd2\x9d\x42\x87\x3b\xe2\xda\xc6\xfd\xbf\x1a\ +\xdf\x73\xb8\x78\x61\x08\x12\xbe\xcc\x54\x6e\x08\xa6\x85\x4e\xe7\ +\xb8\x04\xcf\xf0\xb9\x19\xed\x39\x30\x25\xf0\x8e\x4b\x28\xd8\x83\ +\x92\xa9\x2f\x40\xfa\x81\x57\x05\xad\x01\x33\x8c\x45\xc9\xba\xc2\ +\xc3\x8c\xec\xff\x2b\x91\xbe\x3b\xd9\xc9\xfe\xe9\x0b\x1f\x53\x94\ +\xb0\x14\x1a\x09\x87\x7a\x52\x83\x74\x2f\x36\x44\x29\x47\xa3\xb1\ +\xa6\x6d\xb8\x05\xc4\x8c\xcc\x22\x6c\x0e\x45\x18\x50\xc7\x5e\xab\ +\x6c\xd2\xf9\x0e\x73\x74\xb2\xa6\xe7\xe1\xd8\xf9\x11\x79\x00\xa5\ +\xca\x05\x69\x44\x76\xcb\x96\xde\x8c\xba\x02\xac\x02\xb5\x62\x1b\ +\xa2\x22\xaa\xd0\xf1\x4c\xe1\x3e\xcb\x48\x7a\x35\x8e\x25\x22\x76\ +\xf5\xc5\xbe\x0f\xbe\x0d\x24\x39\x01\xd1\xc4\x70\x71\x33\x43\x77\ +\x02\x1a\x53\xa0\x9a\xb4\x8a\x13\x5a\x59\x77\xd8\x1b\x18\x4c\xdc\ +\x4a\xba\x07\xbc\x07\x11\x51\x69\x4c\x90\x78\x69\xab\x0a\x1f\x16\ +\xdf\x1a\x14\xbb\xf5\x3d\xa4\x9e\x69\x6f\xd1\x1c\x91\xe3\x45\x98\ +\x0e\x85\xe5\xb3\xaa\xe4\x96\x37\x24\x2e\x74\xaa\xe5\xca\x04\xfa\ +\x38\x4c\x4b\x6c\x2c\x96\xe5\xae\xa2\x1f\x54\x8b\x45\x16\x13\xc2\ +\x6a\x9a\x06\x05\x0f\xa3\x6b\x5a\xd7\x95\xb2\x2e\x6d\x99\xbd\xe7\ +\xc5\xd0\x57\x99\xe0\x3b\x78\xc7\x57\x12\x67\xe2\x74\xaf\xc7\x25\ +\x61\xa0\x9e\x0a\x0a\x63\x83\xc4\x62\x2f\xad\xaf\x08\x11\x96\x36\ +\x62\x80\x22\xc3\x2a\x00\x7e\xdc\x9b\x6d\x63\xd0\xd1\xcc\x79\x4f\ +\x72\x28\x8a\xa0\x6c\xd8\xd5\x97\x54\xba\x75\x23\x6d\x6d\xd1\x50\ +\xa9\xfc\x38\x8b\x9d\x71\x1a\x05\x04\xe6\x96\x8d\x34\x4b\x09\x4a\ +\xca\x0f\xa6\x3f\xc1\x5b\x03\x72\xaa\x01\x88\x9a\x0f\xea\x13\x27\ +\xdd\x66\x10\x4c\x9d\x34\xe0\x7a\xe3\xba\x67\xd4\x21\x50\x8d\x0c\ +\x93\xfa\x0e\x21\xe5\xe4\x43\x48\x29\xbc\xd1\x61\x22\x1b\x7d\x9b\ +\x20\xa6\x79\xc8\x74\x46\x53\x04\xac\xe1\x10\xa9\xce\xf7\x0f\x1c\ +\xee\xe1\xf4\x28\xe4\x08\x28\xd9\x1d\xba\x05\x75\x81\xa7\x97\xd5\ +\xb8\x0f\x25\x86\x7f\x28\x94\x83\x68\x1d\xc7\x6b\xb0\x66\xea\x9d\ +\xce\x1e\x79\xa4\x92\xcd\xd5\x94\xf5\x83\x60\x4d\xe5\x94\x89\xa0\ +\x0e\xe4\x42\xda\x15\x4d\x61\xc5\xc2\x44\xfb\xff\x9a\x15\xcb\x39\ +\x6a\x56\xae\x55\x1e\x9d\xab\x60\x16\x36\x55\x0a\x70\x7c\x19\x5a\ +\x51\xcb\x90\x38\x47\x57\x71\x2d\x7a\x8a\x4e\x9e\x7f\x52\xf3\xe3\ +\x9c\x90\x91\xad\xa9\xa9\x3f\xb5\x96\xfa\x9a\x89\x2d\x35\xc5\x0b\ +\x6a\x94\xe9\xf9\xd0\x2e\xc4\xfc\xcd\x0e\x59\x4b\x8f\x06\xd6\x6b\ +\xa1\x62\x4a\xb0\x64\x35\x49\x87\x45\xab\xea\xb7\x27\xd3\x0c\x91\ +\x54\xed\x4c\xac\x53\x3a\xd0\x1e\xc5\xb4\x58\x89\xe7\xa2\x5e\xaa\ +\x70\x67\x63\x03\x3d\x39\x9b\xa0\xc6\x30\xe5\x80\x98\xfa\xb3\xde\ +\xc4\x68\x75\xbd\x63\xd4\xb3\x71\xbc\x58\x9e\x2d\xa6\x38\x5a\x11\ +\x07\xdd\xb7\x41\xe0\x3b\xb1\xec\xb3\xf0\x38\x47\x3d\x3d\xc6\x7a\ +\x91\x77\x0d\xa3\x76\xb1\x6e\x73\x48\x83\x3c\xc2\x9d\xa0\x63\x3e\ +\xe9\x03\xa8\x74\xf1\xce\x42\xfc\xe1\xc8\x83\x38\x40\xda\xd6\x57\ +\x85\xe4\x92\x79\x6d\x91\x3c\xf0\x19\x62\x1e\x71\xe5\x61\x89\x30\ +\xa5\x51\x4f\x7e\xcc\xe2\x11\xb7\x76\xec\x43\x86\xb8\x96\x4b\xa7\ +\xcc\xbb\x05\xec\x08\x8c\x4b\xc2\xd9\xee\x30\xdd\x4a\xc7\x33\xb7\ +\x1f\xe4\x40\x23\x3b\x6d\x11\x4c\x8a\x6b\x3e\xb6\xa1\x68\x82\x11\ +\x1e\xf0\xe2\x1d\x0a\x11\x44\x87\x5c\x67\x94\x9e\xe1\xb2\x1c\xdd\ +\x56\x03\xb9\x7c\x8a\x83\xdc\x29\xe4\xf2\x22\x4b\x81\x9c\x3f\xdd\ +\x0f\x22\xb8\x22\x22\x64\x89\x4c\x48\xc4\x56\x74\x80\x3b\x74\xeb\ +\xb5\xe4\x1d\xf3\x5c\x7a\x2d\xa8\x6d\x98\x2f\x14\xb8\x4f\x11\x0a\ +\x1a\xdf\xe9\xa2\xa5\xa6\x40\xc0\x2a\xf6\x55\x64\x1d\x72\x15\x7e\ +\x2b\x8a\xc5\xf7\xb1\xd9\xf4\x82\x0e\xba\xda\xbd\x6a\x1d\xfb\x81\ +\xee\xee\xe9\xc1\x72\x35\x15\x39\x99\x0a\x91\x91\x0d\xd3\x2f\xd5\ +\x5f\x74\xf2\x59\xfa\xc4\xa1\x12\xa1\xe6\xd2\x91\x12\x35\x84\x7d\ +\xc7\xbc\xc6\xea\xe3\x2c\xaa\x15\x5e\x1c\x3b\xd8\x52\xff\x02\x77\ +\x49\x29\xb6\xa0\x49\x67\x13\x53\x82\xc7\x4b\xe9\x20\x36\xe6\xda\ +\x29\xc6\xb0\xa5\x2e\x1e\xed\x74\x5c\x35\x1c\xcd\x97\x70\xd6\xc1\ +\x48\x07\xf8\xa3\xd8\x71\x4b\x51\x27\x44\x27\x29\xf1\x60\x16\xce\ +\xd7\x58\xe5\x78\xa9\xd0\x87\x05\x9b\x3c\xe3\x25\x97\x0a\xaa\x6f\ +\x36\xd4\x7d\xd8\x6d\xaa\x99\x92\xae\xda\x43\x5e\x89\x53\x70\x0a\ +\xf4\xd3\xc8\xe4\x55\xe0\xe6\x24\xce\x91\xca\x47\x19\x5a\xb6\x80\ +\x20\x78\x7b\x43\x2d\xbd\x21\x1e\xee\x5c\x55\x19\xa0\xa6\x7e\x5a\ +\xf9\x80\x0a\x64\x9e\x57\x4e\xfc\x70\xad\xa0\x64\x37\x9e\x9e\x4d\ +\xfb\x6c\x26\x19\x48\x94\x95\x99\xdd\xf4\x9c\x6d\xfa\xfb\xfc\x84\ +\xaf\x78\x1f\x0f\xc5\xa6\xbd\xbf\x0c\x05\x5b\xef\xc0\x6d\x7b\x6c\ +\xca\x36\x52\x74\x0a\x93\xb6\xab\xb9\x07\x1b\x26\xb5\xa3\x3f\xcd\ +\xbb\x70\xb3\x5f\xfd\x89\x3c\x77\x57\xcf\xe1\x95\x39\xf4\x54\x0e\ +\xed\x8b\x2b\x86\x86\x62\x80\xbb\xc1\x37\x46\x8d\xb1\x68\x1d\x27\ +\x03\x3d\x4b\x6a\xc3\x07\x56\x39\x85\x47\x6a\x90\xa5\x44\x65\xd9\ +\xb8\xd3\xc5\xc8\xd2\x1e\xbe\x1d\xd0\x73\x34\x27\xf4\xb8\x4e\x2d\ +\xa6\xe3\x72\xc0\x92\x82\xa5\xbf\x24\x2d\xc2\x42\x2f\x2f\x6f\x70\ +\xa8\xfe\x8e\x4e\xfb\x80\xfc\x17\x74\x52\x01\x9e\x5e\xdf\x1f\x02\ +\x91\xc0\x26\xff\xce\x87\x12\xec\x31\x9e\x0c\x69\x8b\x60\x8d\x1e\ +\xaa\xbf\x33\x22\x7f\x90\x05\x43\x4d\xe6\x57\x8d\x9b\xd9\x91\x84\ +\x9a\x97\xe9\xa8\x34\xfd\x0b\x04\x85\xc4\xf4\x4e\xda\x61\x12\x79\ +\x12\x7b\x5e\xda\x61\xd0\x1a\x2c\xe1\xb9\x07\x83\xfb\xdf\x37\x24\ +\x47\x1f\xce\x80\x09\xfd\xc5\xec\x9e\xae\x5b\xc1\x75\x0c\x2b\x15\ +\xe8\x34\x5d\x63\x0d\xbc\x01\xf0\x8b\xec\x50\x42\x58\xb0\xc6\xf7\ +\xcc\xac\x68\xf4\x48\x34\x1a\x59\x7a\x24\x3a\x4f\x72\x9d\x70\xf2\ +\x6e\x8f\x1e\x74\xae\x56\x0c\x9d\x4d\xc2\xf3\xee\xba\x12\xf9\x12\ +\xf2\x2d\xbe\x0f\x13\x6e\x09\x88\xd9\xfb\x42\xc2\xbe\xdb\xf6\xb8\ +\x90\x72\xeb\xce\xa8\x6d\xaa\x39\xc9\xc7\x06\x97\x6d\x29\x79\x0b\ +\x74\x4f\xad\x34\x53\x16\x70\x35\x5f\xf4\x83\xe7\x51\x09\xc7\x48\ +\xd7\x7a\xc2\xfe\xd4\x4f\x41\xa1\xcf\x0b\x2f\x66\x62\x32\x24\x73\ +\x00\x16\x0d\x51\x2f\xd7\x10\x30\x33\xfc\x13\x33\x82\xd8\x1d\xba\ +\x2f\x8a\x54\x7c\x77\x5c\x3a\x08\x97\x93\xff\x5e\x8c\xf8\x68\x27\ +\xef\x9d\xa9\x3f\xd2\x52\x8e\x1d\x46\x1b\xea\x62\x59\x86\xc5\x8e\ +\xb3\x1a\xde\xff\x02\xb7\xa1\x0e\xab\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x28\xe4\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xdc\x00\x07\x00\x07\x2e\x6d\xaa\x01\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x06\x03\ +\x0b\x21\x39\xf6\x17\x6e\x08\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\x7d\x79\x94\x5d\x55\x99\xef\xef\x3b\ +\xe7\xdc\x7b\x6b\xae\x54\x8a\x84\x84\x40\x12\x22\x61\x4a\x40\xc3\ +\x68\x10\x14\x70\x68\x27\x94\x38\x34\xad\x32\xf8\x96\xba\x7c\xb6\ +\xdd\xfd\xc4\xd5\xbe\x7e\xaf\x9f\x6b\xbd\x7f\x7c\x2d\xb6\xb6\x0a\ +\xab\x97\xad\xaf\xd7\x7b\xad\x88\x8a\x08\xe8\x0b\x04\x19\x14\x50\ +\x22\x04\x85\x30\x0f\x01\x22\x21\x33\x19\x2a\x55\xa9\xe9\x0e\x67\ +\xef\xef\xfd\xb1\xa7\x6f\x9f\x5b\x36\x4d\xaa\x92\xaa\xc0\xdd\xac\ +\x0a\x77\x3a\xe7\xdc\x7b\xf6\xb7\xbf\xe1\xf7\xfd\xbe\x6f\x03\xad\ +\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\ +\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\ +\xad\xd1\x1a\xad\xd1\x1a\xad\xf1\xda\x1c\x34\xd3\xbe\xd0\xce\x27\ +\xbe\xc2\x4c\x00\x81\xcc\xd7\x23\x06\x11\x81\x61\x5f\xa3\xf0\x95\ +\xc9\x3f\x26\x84\xb7\x0a\xef\x13\xcc\xb1\xe4\x1f\x88\x53\x98\x07\ +\xfd\x4b\xae\xa4\x96\x00\x1c\xc2\x71\xfb\x95\xc7\x31\x40\x38\xf5\ +\x8a\xcb\x40\x72\x82\xec\x24\x1b\x01\x00\x18\x76\xb2\x88\xc2\x17\ +\xb5\x93\x6a\x3f\x09\xf6\xef\x39\x21\x70\x27\xb4\x9f\x75\x47\xfa\ +\x63\x0a\xc2\xe3\x3f\x27\x06\x17\xee\x0c\x87\xe3\xfb\x8f\xfd\x02\ +\xb5\x04\x60\x0a\x26\x1f\x00\xd2\x8c\xb0\xec\xd2\x4f\xf8\xaf\xe1\ +\x57\x70\x61\xb2\xe4\x0a\x67\xab\x19\xc2\xe2\x97\xc7\x8a\x9f\x94\ +\x18\x41\x20\x2f\x30\xf6\x9c\x64\x44\x0b\x91\x46\x20\x30\x71\x74\ +\xc5\xf8\x16\x71\xb3\x30\xb0\xbb\xa8\x79\xaf\xff\xd8\xc3\x53\x8b\ +\x24\x87\x76\xf2\x97\xfa\x3b\x99\xa6\x84\x2c\x01\x98\xe1\xfe\x01\ +\x33\xc0\xcc\x80\x16\xaf\xd9\xff\xdc\xfb\xee\xf5\x70\x8c\x06\xd8\ +\x1d\x0b\xfb\x59\xb8\x27\xe6\xb9\xfb\xb8\xff\xbc\xbd\x8e\xfd\x1c\ +\x33\x83\xdc\x6b\x2c\x26\xda\x9d\x67\xc2\x25\x63\x27\x9f\x63\xf9\ +\x38\xdc\x46\x36\x1d\x93\x9f\xa4\x84\x2c\x35\x1a\x40\xd5\x6a\x48\ +\xcb\xe5\x78\xed\x11\x83\x99\xc0\x6e\x05\x87\x69\x35\xab\x95\x8d\ +\x12\x21\x6d\x6d\x3c\x01\xe4\x27\xaa\x79\xc5\x46\x8b\x16\x66\xb5\ +\x83\x61\x57\x7d\x02\xb0\x06\x3b\xbb\x23\x0f\x67\x6a\xd6\x91\xde\ +\xbc\xb0\xbb\xf0\x61\xbb\xfa\x0f\x99\x06\x30\x93\xcf\x61\xe5\xa7\ +\xe6\xff\x49\x42\xd8\x7e\xfb\xcd\xe6\xae\xea\x58\x13\x90\x5b\xc1\ +\x76\x85\xc2\xad\x60\xed\x96\xba\xd5\x0c\xcc\x80\xb6\x9f\x41\xe1\ +\x75\x7b\x5e\xf6\xe7\xb4\xe7\xd3\xf0\x2b\x57\x9e\x1b\x00\x58\x73\ +\xa4\x49\x8a\x0a\x20\x12\x08\x3a\x34\xab\xff\xae\x72\x89\x0e\x5b\ +\x01\x08\x2b\x9f\x90\xa4\x84\xd4\xfe\x25\x29\x21\xcd\xac\x19\xd5\ +\x56\xd1\x0b\xf5\xef\x27\xd4\x4d\x2a\x73\xa4\xfe\xe5\xfb\x0c\x6b\ +\x06\xbc\x70\x08\xc1\x81\xb6\x02\xa2\x8d\xfa\x07\x40\xe6\x22\xe1\ +\x7d\x67\x42\xb4\x9b\x74\x6d\x56\xb7\xbf\x5e\x41\x10\xbc\xda\xe7\ +\x83\xe2\x45\x6d\x68\x2b\x13\x00\xdc\x5b\x2e\xb7\x01\xc0\x30\xa1\ +\xfd\xa6\x72\xe9\x43\xd7\x95\x4a\xa5\xc3\xca\x09\x0c\x93\xcf\x48\ +\x92\x30\xf9\x59\x46\x48\x53\x20\xcb\x08\x47\xbe\x63\x15\x92\x52\ +\x16\x7b\xef\x3e\x84\xa3\x82\x43\x2e\x3c\x7d\xbf\x02\x49\xf8\x8d\ +\x52\x65\x27\xcd\x8e\x22\x0a\x1e\xbf\x8d\x20\x42\xd8\x19\xa2\x02\ +\xb2\xea\xdd\x79\x9f\xd1\xb1\x24\xcd\xc1\xc1\x89\x0c\x7e\x5f\x29\ +\xaf\x1a\x67\x7c\xbe\x0e\x3e\x7f\x0c\x78\xae\xc6\x38\x69\x1c\xd0\ +\xe3\x8c\x3b\xab\xc0\xf7\xab\xe0\x5b\xfe\x5b\x9e\x8f\xcd\x58\x0d\ +\x60\xbc\x7d\xb6\x0e\x79\x82\x34\x31\xaa\x3f\xcb\x80\x34\x01\x32\ +\x2b\x0c\xce\x91\x66\xad\x83\x63\x66\x57\x27\x6b\x1d\xab\x7b\xb0\ +\x09\xfd\x38\xa8\xfe\xa0\xf6\x85\x3a\x77\xce\xa2\x5d\xf1\xde\x51\ +\x44\xd0\x0c\x7b\x06\x46\xf0\xc0\xef\x37\x82\x21\x1d\x40\x73\x3c\ +\x59\xcd\xc0\xde\x89\x10\xe7\x87\x30\x49\x34\x91\x8d\x98\x9a\xc1\ +\xc0\xcd\x00\xde\x9e\x83\x52\xcd\x38\x29\x07\xa0\x80\x44\x01\xef\ +\x56\xe0\xeb\x15\x30\xfa\xe5\x2c\x5b\xff\xdf\xb3\xec\x94\x19\x27\ +\x00\x66\xe5\x87\xf0\x2c\x4d\x81\x24\x23\x24\x69\xe2\xcd\x40\x92\ +\x1a\x41\xa0\xc4\x38\x61\xde\xfe\x6b\xe1\xa5\x8b\xc9\x27\x3b\xa9\ +\xec\x4d\x44\xec\xe4\x41\x4c\x8e\x53\xed\x6c\x05\x2b\x12\x08\x7b\ +\xce\xb1\xb1\x1a\x1e\x5c\xbf\x29\x32\x27\xec\xcd\x8b\x3d\x9d\x0e\ +\xd1\x83\x34\x43\xc4\xd1\x85\xa7\xfc\xfe\x3d\x04\xbc\x93\x6b\x75\ +\x28\x66\x28\x33\xf1\xd0\x64\xac\xa3\x26\x86\x26\xf3\x9a\x62\xac\ +\xa8\x33\xbf\xab\xc7\xce\xe3\x5f\xa5\x29\x4d\xbb\x00\x48\xb5\x4f\ +\x24\xec\x7d\x62\x04\x21\x4b\xec\xe4\x5b\x41\x60\x0e\x2b\xac\xb8\ +\x92\xfd\xfd\x8d\x1c\x41\x1d\x1c\x42\x76\x61\x9d\x16\x0e\x1b\xc7\ +\x0e\x1e\x44\x38\xe9\x7c\x03\x00\xe5\x52\x8a\x7a\x3d\x0f\x17\x61\ +\x21\x27\x52\x28\x58\x87\xf0\xd3\x0a\x20\xb3\xb6\xce\xa2\x46\xff\ +\x92\x2f\x4e\xb9\xfa\xdf\xf9\xe5\x2f\x7f\x72\xff\x79\xe7\x21\xaf\ +\x54\x80\x7a\x1d\xdc\x68\x40\x2b\x46\x6e\x95\x9e\x62\xf2\x42\xd1\ +\x00\xbe\xf1\x17\x69\x3a\x0e\x00\xff\xac\xd4\xab\x96\xc6\x6c\xea\ +\xd5\x7e\xb0\xe1\x66\x92\xe1\xbd\x7e\xff\x97\x85\xe7\x60\xf3\x43\ +\x88\xd9\x20\x7f\x0e\xa4\x81\x06\x38\x31\xff\x37\x8a\x5f\xc4\x72\ +\xc6\x49\x13\x96\x1d\x0c\x6d\xec\x38\x87\x30\x12\x64\x43\xc9\x09\ +\x50\x9c\xac\x94\xa2\x5e\x57\x76\xa2\xcd\x75\x29\x8e\xf3\x62\x93\ +\x64\xaf\xc5\x22\xfc\x23\x3e\x38\x2e\xd4\xd8\x59\x67\x7d\x60\xe0\ +\x8c\x33\xd0\x18\xd8\x07\x7e\xf2\x49\x24\xeb\x1e\x00\x3f\xf9\x04\ +\x78\xff\x30\x34\x00\x95\xa5\xd0\x44\x50\x6c\xdc\xdf\x9c\x50\xbe\ +\x34\x4d\xff\xfe\x3a\xa5\xfe\x61\xda\x04\x40\xae\x7c\x80\x90\x24\ +\xb0\x8e\x5f\x98\xec\xcc\x0a\x44\x6a\x5f\x4f\x52\xe7\x69\x5b\x67\ +\x8f\x82\x6a\x27\x87\x07\x00\xd8\xb6\x7d\x1f\xd6\x3d\xb2\x05\x1f\ +\x7e\xdf\xa9\x02\x7c\x23\xff\x3e\xc1\x2c\x07\x26\xb6\x0e\x9c\x8b\ +\xd3\x39\x08\x8f\x47\x02\xcd\xf1\x95\x52\x8a\x5a\xad\x1e\x7c\x00\ +\xe7\x0d\xfa\x6f\xc3\xde\xe9\x63\x16\x00\x25\x87\xdf\xc8\x34\xf5\ +\xea\xff\x86\x9b\x56\x9f\xab\xeb\xd4\xc5\xe3\xa3\xd0\x2a\xc7\xf8\ +\x09\xc7\xa3\x7a\xdc\x1b\xd0\xd8\x3f\x04\xbd\x71\x23\xf8\xd1\x47\ +\xc1\x1b\x9e\x83\xde\xbf\xdf\x9a\x84\x84\xb4\x71\x52\x77\x4e\x1b\ +\x10\x74\xfb\x95\x4b\x3b\xdd\xe3\xa5\x1f\xbc\xc8\xd8\x75\xad\xb1\ +\xf5\xae\xdb\x90\x39\x7b\x9f\x59\x5f\x20\x0d\xa6\xa0\x74\xda\x7b\ +\xa0\xc1\x18\x1f\xab\x61\x60\xa8\x8a\xa3\xe7\xf7\x82\x40\xb8\xe7\ +\xfe\xe7\x51\xab\x2b\xbc\xfb\xfc\x13\x00\x22\xd4\x1b\x0a\xbb\x76\ +\x0f\x9b\x89\x61\x97\x23\xd0\x16\x28\x82\x59\xed\x0e\xe6\xb1\x9a\ +\xc4\x7e\x4a\x00\x36\x42\xd5\x93\x31\x01\xb5\xba\x8a\x4c\x80\x83\ +\xa0\xd9\x3f\x8e\xcf\xe1\xb4\x10\x79\x14\x70\xea\x35\xc0\xfc\x3f\ +\x5e\x75\xf9\x70\xfb\xc9\x18\x28\x1d\x8f\x1c\xb3\xa1\xea\x00\x57\ +\xc7\xa1\x1b\x39\xaa\x47\x2d\xc0\xf8\xbc\x79\xa8\x9f\x7b\x1e\xf2\ +\xad\x5b\xc0\x1b\x36\x40\xbd\xb8\x09\x7a\x78\x18\x65\xe0\x67\xd3\ +\x22\x00\xb7\x5f\xb9\x94\x4e\xb8\xf8\xa2\x11\x1f\xa2\x59\xcf\x8f\ +\xd3\x0c\x0b\xdf\x7d\x91\x0f\xa1\xf2\x46\x8e\xd1\x87\xee\x34\x1a\ +\x20\x33\xf8\x7b\x9a\x18\x35\xbb\x65\xdb\x10\xee\x5f\xff\x12\xfe\ +\xd3\x25\x67\x80\x19\x28\x65\x29\x86\x47\xea\x1e\x8a\x25\x22\x68\ +\x66\x68\xcd\x6e\x8e\x3c\x72\xe7\xa6\xdb\x79\xe4\xde\x8c\xd8\x15\ +\x4a\x72\x6e\xfd\x64\x02\xa5\x34\x01\xc0\xc8\x1b\x39\xb2\x52\x16\ +\x39\x74\x02\xe2\x17\xc7\x8a\xfc\x81\x3f\x97\x9e\x7a\x60\xa6\xbe\ +\xef\xc3\x9d\x23\x77\x23\x6d\xfc\x1a\x1d\x34\x0b\x43\xd9\x62\x0c\ +\xa4\xc7\x62\x9c\xfb\xa0\x1a\x04\xae\xd6\xc0\xf5\x1a\x1a\x7d\xb3\ +\x51\x3d\xf3\x2c\xd4\x96\x2d\x87\xda\xbb\xfb\x81\x9f\xdf\xf9\xab\ +\xe1\x69\x11\x80\xe3\x3f\xf8\x7e\xed\x9c\x2f\x77\xeb\xbd\xe3\x65\ +\x96\x27\x98\x08\x69\x29\x43\xcf\xca\xf7\x61\xf8\x89\x07\x90\xe4\ +\x83\x5e\xb5\x12\x80\x5a\xbd\x81\x72\x29\xf5\x5e\x58\xb9\xec\x1c\ +\x34\x8b\x1e\x12\x41\x29\x0b\xde\xd8\x55\x0e\x69\x0a\xdc\xb9\xec\ +\xaa\x65\xb2\x9f\x61\x93\x59\xf4\x3e\x81\xf8\x76\x00\x50\x29\x97\ +\x50\xad\x36\xd0\x95\x26\x22\x73\x18\xcc\x85\x39\xa7\x33\x4b\xee\ +\xba\xce\x0f\x98\x7a\x0d\x70\xff\x3f\x2c\x3b\x5d\x69\xcc\x6e\xa0\ +\x82\x3c\x61\x50\x7d\x04\x9d\xa3\xeb\x91\xe5\x0f\xa1\x53\x77\x62\ +\x90\xe6\x63\x1f\x8e\xc2\xb8\xee\x41\x9e\x13\x74\xad\x06\x5d\xab\ +\x43\x77\xf6\x5c\x3b\x6d\xb9\x00\x66\x0e\x8e\x1b\x87\x55\xe2\x27\ +\xc1\xc3\xe6\x46\x3c\xba\x97\xbf\x19\x0c\x46\xfe\xe8\xed\x1e\xf6\ +\x6d\xe4\x0a\xa5\x34\xb1\xe7\x72\xea\x39\xb7\xc2\x63\xc2\x45\xa5\ +\x84\xf7\x2f\x57\x34\xd8\x6a\x78\x33\xc9\xe4\x85\x2e\x84\xe9\x24\ +\xd0\x24\x9f\xf3\x23\xa0\x52\x4e\x51\xad\xe5\xe8\xea\x2c\x3b\xdf\ +\xd1\x9e\x3f\xb1\x68\x21\xf9\x63\x12\x7b\x12\xe9\x34\x1e\x84\x71\ +\x99\x83\x37\xb4\x66\x28\x26\xe4\x28\x21\x07\x03\xaa\x86\xce\xfa\ +\x73\xc8\xf2\x67\xd1\xa9\xca\x18\xd2\xfd\x18\xd0\x47\xa0\xca\x1d\ +\x60\x94\x6e\x9c\x16\x01\xd8\x78\xf7\x7f\x61\x09\x88\x30\x82\x10\ +\xf8\x1b\xe4\xd0\x3c\xe1\xdd\x11\x80\xd2\x8a\xf7\xf8\xa4\x4e\xa3\ +\xa1\x91\x65\xe4\xcf\x51\xca\x12\xd4\xeb\xb9\x0d\xfd\x08\x94\x18\ +\x0d\xc0\xd6\x1c\x84\x55\xac\xad\x27\xce\x21\x99\xe3\x04\x84\x85\ +\x93\x16\xa9\x6e\xab\x99\x34\xa3\xad\x92\xa1\x5a\x6b\x84\x4c\x61\ +\x14\x2d\x38\xcd\x21\xf0\x1e\xc7\x1d\x70\x61\xeb\xd4\xbb\x00\x7f\ +\xae\x98\xbd\xb9\xd3\xcc\x46\x18\x98\xa1\x99\xa0\x50\x82\x62\x0d\ +\x56\x0a\xed\xf9\x36\xcc\x69\x6c\x41\xb7\xca\x1e\xbd\x66\xcd\x8e\ +\x3d\xd3\x03\x04\xf9\x78\x3c\x28\x57\x1f\xcf\x6b\xfb\x58\x07\x30\ +\x47\x82\x37\x32\x69\xd3\xc8\x73\x64\x69\xe2\x63\xed\x52\x9a\xa0\ +\xde\x50\xfe\x8c\x59\x92\x78\x0d\x10\xd0\xbe\x38\xdd\x6b\xd4\x8c\ +\x8e\xd1\x3a\x9f\xd0\xb1\x78\x41\x21\x8f\xd0\x56\x29\x61\x7c\xbc\ +\x6e\x51\xc5\x10\xeb\xfb\x6c\x11\xcb\x20\xd0\xe5\x2a\x44\x62\x80\ +\xa7\xce\x07\x78\xf0\x6b\xa7\x9c\xcc\xa0\xf9\x4a\x33\xb4\x46\xf4\ +\xa7\xb4\xd5\x08\x9a\x5d\xe8\x87\x5c\xa7\x68\xe8\x0c\x00\xff\x70\ +\xfa\xd2\xc1\x5c\xc8\xb5\xda\x50\xce\xdb\x53\x01\xf0\x78\x06\x8f\ +\x0e\x2b\xd2\x79\xd3\x79\xae\x0d\x28\x64\x43\xb2\x52\x96\xa0\xd1\ +\x50\x3e\x0e\x4f\x53\x42\x9e\x6b\x6f\x22\x38\x4a\x64\x50\x6c\xd9\ +\x45\xdc\x1f\x94\x0e\xf9\x89\xf4\x26\x02\x64\x34\x40\xb5\xe1\x1d\ +\x49\xef\x47\x70\xf8\xee\x8e\x91\xc4\x14\xe3\x01\x34\xc5\x10\x70\ +\xae\xf4\xa5\x4a\x71\x98\x70\xb6\x93\x6f\xb5\x81\x62\x86\xb2\xaf\ +\x69\x65\xdf\x37\xf7\xf0\xa7\xd3\x26\x00\x11\xf9\xc2\x4f\xba\x98\ +\x05\x1d\x6e\x20\x34\x83\x1d\x4b\x47\x1e\x4f\x04\x95\x6b\x24\xce\ +\x77\x00\x1b\x13\xd0\x88\x7d\x80\x5c\xe9\x26\xdc\x9d\x11\x85\xeb\ +\x5e\x6d\x43\x93\xd1\x6d\xda\xaa\x71\x97\xd7\x89\x54\xb9\x35\x01\ +\xd5\x7a\x10\x54\x21\x28\x3e\x62\xf0\x7e\x04\x05\x1e\x80\xb6\x66\ +\x64\x6a\xc1\xff\x8f\x29\x6b\xfb\x23\xd5\xaf\x85\x49\xf0\xef\x19\ +\x61\x60\xf0\xb3\xd7\xac\xd9\xb9\x6d\xfa\x04\x80\x5d\x9c\x8c\x78\ +\xc5\xb8\x54\xaa\x0b\xd7\x9c\xed\xd6\x1c\x48\x9a\x30\xef\x11\x18\ +\x4a\x6b\xa4\x89\xf0\x01\x4a\x09\x1a\xb9\xb2\x6a\x38\x41\x96\x26\ +\xc8\x73\xe5\xaf\x09\xcf\xea\x22\xaf\x9a\xc3\xf7\xb0\xf1\xba\x0e\ +\x9a\x29\x68\x0d\x8b\x0f\x58\x03\x5e\xa9\x64\x18\xab\x36\x82\x29\ +\x11\x59\x42\xa7\x15\x34\x3b\xee\xa1\x43\xfe\xa8\x80\x1b\x4c\x7e\ +\xac\xbb\x6a\xf9\x92\x5c\xf1\x62\x37\xf1\x4a\x33\x94\xe2\x48\x13\ +\xb0\x15\x08\x25\x9c\x44\x80\x7e\x34\xd9\x6b\x1f\xb0\x00\x3c\x7f\ +\xe7\xe7\xd9\x4f\xba\x08\x8d\xdd\xa4\x06\xe7\x4b\x42\xb8\xf6\x7d\ +\x1b\x1a\x82\x0c\x13\x87\x35\x23\x11\x51\x40\x29\x71\x26\xc0\x2c\ +\x8d\x34\x31\x26\x20\xc2\x75\x19\xd1\xf3\x00\xfe\x44\xf3\xe8\xc3\ +\x3f\xf9\x3d\x5d\x44\xd8\xd1\x66\x7c\x00\x66\x8e\x30\x02\x2f\x04\ +\x12\x96\xe4\x42\x10\x49\xc0\xfc\x65\x5f\x9e\x12\x11\x50\x9a\x3f\ +\xae\x35\xa0\xac\x6a\xb7\x79\x28\x3f\xf9\x41\x1b\x38\xbf\xc0\x08\ +\x7d\x4a\xf8\xf1\xb4\xa5\x83\xa5\x33\x16\xb8\x1a\xc1\xc9\x62\x9b\ +\xd9\xf3\x9c\xbc\x88\xd3\x07\xe1\x78\x09\x7e\x9e\x3d\x6f\x96\x19\ +\x27\xd0\x39\x6b\x59\x96\x40\x6b\x0d\xe5\xd3\xc3\x5a\xb8\x66\x62\ +\x62\x74\x48\xe6\x00\x46\x55\x06\x87\x30\xfe\x8e\x60\x46\x7b\x25\ +\xc3\xd8\x78\xc3\xdb\x12\x2f\x2a\x3e\x73\x28\x32\x8f\xc5\x3f\x3d\ +\xa5\x3e\xc0\x27\x94\x5b\xfd\x7e\xa2\x9d\xca\xd7\x56\x2b\x04\xbb\ +\x6f\xfe\x68\xd3\xb7\x6e\xdd\xf9\xc7\x69\xd3\x00\xb1\xca\x8f\x57\ +\xa1\x47\x05\x39\x20\xf1\x14\xfe\x09\x50\x3e\x82\x00\x10\x19\x46\ +\x0e\x11\x50\xca\x08\x79\x23\x30\x75\x88\x80\x2c\x4b\xd1\xa8\xe7\ +\x48\x2b\x59\x04\xfa\xf8\x13\x49\x12\xa7\x4d\x02\xc5\xef\x73\x9c\ +\x10\x22\x46\x7b\x7b\x86\xf1\x97\xeb\x96\x51\x14\x6c\x93\x34\x07\ +\x4e\x89\x09\x40\x23\x98\x9b\x29\x18\xbf\xfb\x5f\xcb\x17\x80\xf9\ +\x44\xb3\xd2\xc5\xe4\x4b\x95\xaf\xc3\xff\xcd\x42\x60\x10\xe1\x27\ +\x53\x71\xfd\x6c\x72\xf6\xdf\x4e\x3a\x31\x28\xc6\x4d\xe1\xee\xa9\ +\x07\x6b\x24\x78\xe2\xd2\xb5\x1e\x2f\x88\x89\x1d\x69\x6a\xc2\x3e\ +\xd6\x0c\x32\x88\x2d\xca\x59\x82\x7a\x43\xa3\x5c\x0e\x67\xf4\x89\ +\x1f\xa1\xe4\x83\xd5\xe1\x90\x25\xb4\xd7\x82\x04\xac\x00\xb4\x57\ +\x4a\x18\x1d\x6b\x04\x01\x26\x2d\xec\x7c\x90\x17\x4a\x1c\x1e\x10\ +\xe0\xe7\xa9\xc2\x81\x28\xa1\x3f\xcf\xf3\xe0\xdc\x69\x36\x69\x5f\ +\xe5\x9d\x3f\x18\x87\x2f\x72\x0e\x81\x04\xb8\x6e\x5a\x05\x20\x24\ +\xc2\x5c\xba\xb6\x80\x8e\x91\x05\x63\x1c\x1a\x48\x02\xac\x71\x1c\ +\x7c\xe7\x0b\x78\x3e\x1e\x7b\xe7\x2e\x49\x80\x3c\xd7\xc8\x4a\x09\ +\x00\x42\xa9\x94\xa2\x5e\xaf\x83\x3a\x4a\x81\x0a\x56\x80\x6e\x82\ +\xfe\x71\x70\xb0\x04\x8d\x24\x96\x6f\x3e\xd5\xd1\x1e\x7c\x00\xcf\ +\x4c\x8a\x12\x3e\xda\x82\x5b\x21\x0a\x60\xd6\x7f\xa2\x7e\xe0\x80\ +\x17\xd2\x65\xde\xd6\x3b\xfb\x2e\x26\x5b\x89\x08\x40\x79\x87\x90\ +\x77\x7c\x7b\xcd\xce\xa7\xa7\x24\xf7\x30\x29\x0c\x28\x5a\xd1\xda\ +\x13\x29\xd8\x01\x41\x2c\x41\x13\xaf\xef\xad\x6a\x77\xfe\x81\x16\ +\x60\x4d\x00\x6e\x8c\x16\x50\xde\xa7\x28\x65\x09\x1a\xb9\x8e\x19\ +\xbf\x0e\x4c\xd2\x2e\xe9\xc3\x11\x43\x28\x50\xc1\x24\x99\x54\x7b\ +\xd2\x49\x47\xa5\x84\x31\x0b\x04\xf9\xef\xeb\xfd\x13\x1d\xd5\x29\ +\x70\x13\x10\x34\x79\x15\xf0\xe8\x37\x4e\xed\x07\xf3\x0a\x0f\xf2\ +\x28\xe9\xe5\x3b\x61\x80\xd7\x02\x4e\x08\x18\xf4\xb3\xa9\x12\xc0\ +\x03\x47\x02\x75\x98\x68\x48\x6a\xb5\x70\xa8\xa4\xa0\xb0\x78\x2f\ +\x70\xfa\xa4\xd3\x86\x88\x0a\x96\xa6\x26\x14\x74\xc7\x57\xca\x29\ +\x6a\x16\xb6\x0d\xac\x9d\x80\x28\xb2\xa0\x80\xe3\x15\xa9\xe3\xe6\ +\xb8\x8e\x8e\x12\x46\xc7\xea\xb1\x13\xe8\xe9\x61\x88\x18\xc6\xc1\ +\xd3\xa5\xf8\x3b\x4f\x86\xf8\x51\xd7\x1f\xf1\xab\xdc\x7d\x6d\x8d\ +\x68\xb5\x2b\xa9\x05\xac\x10\x10\xe1\xda\x69\x17\x00\x16\x5c\x69\ +\x2e\x4c\xb0\x5c\x31\xc4\x5a\x20\xab\x1c\x55\xdf\xb8\x73\x24\x09\ +\x41\x2b\x2d\x26\xd5\xa4\x6b\x73\xa5\x40\x96\xa7\x1f\x12\x44\x3a\ +\x9a\x44\x8e\x28\xe3\x3a\x9a\xf4\x02\x43\x4c\x14\x14\x69\xeb\x03\ +\x64\xa8\xd5\x72\x68\xa5\xe2\x89\xd6\x88\x85\x5a\x0a\xad\xbf\xce\ +\x94\xa8\xff\x2b\xa4\xad\x8f\x84\xc1\xad\x76\x1d\x4f\x3e\x33\x0f\ +\x5c\x7d\xeb\x8e\x87\xa7\x5f\x03\x44\x2c\x5b\x14\xf0\x7e\x77\x13\ +\x2d\x69\x03\x3a\xbe\x81\x45\xc2\x27\x19\x8f\x57\x86\x91\x49\x02\ +\x28\xc5\x3e\x91\x54\x29\x67\xa8\x56\x73\xc1\xd1\x17\xdc\x7e\x2e\ +\x70\xf9\x38\xe4\x21\x42\x58\x07\x61\x06\xe0\x13\x4b\x6d\x6d\x19\ +\x46\xc6\xeb\x96\xfb\x67\x8e\xd7\x62\xc2\x25\x3f\x31\x22\x9b\x4e\ +\x52\x03\x3c\xfc\x8d\x53\xbb\x99\x68\xa5\x62\x07\xf8\x34\x27\x81\ +\x94\x00\x7e\x94\x06\x72\xf6\x6c\x61\xcc\x08\x0d\xe0\x0a\x2d\x02\ +\x7a\x21\x93\x2d\xda\x57\xd8\xe8\x88\xc4\x89\x28\x46\x87\x06\x12\ +\x18\x38\x38\xe4\x17\x0c\xf8\xa3\x72\xed\xcf\xd7\x5e\x4e\x31\x5e\ +\x6b\xd8\x09\xd1\xe0\xc8\x14\x37\x17\x8d\xc8\x4a\xa1\xa8\xb0\xc4\ +\xbe\x4e\xf6\xb5\xce\xf6\x12\x46\x47\x6b\x71\xf2\x20\x62\x23\x87\ +\xc2\x93\x48\x4b\x4c\x52\x05\xd4\x1a\xfa\x62\x96\xe0\x8e\x77\xf6\ +\x10\x04\x22\xd2\x0e\x6c\xd1\x3f\xfc\x60\x2a\x05\x60\x52\x38\x80\ +\x07\xfc\x25\x8d\x8a\x11\x7b\xdb\x4c\x40\xe2\xa0\xd9\x10\x12\x06\ +\x58\xd7\x4e\xb6\xe2\xe0\x8d\x83\x90\x5a\x13\xe0\x56\x6a\x7b\x5b\ +\x86\xf1\xf1\x86\x4f\xfd\x1a\x34\x51\xf0\x7f\x8a\x59\x22\xc7\xd7\ +\xd0\x21\x3d\xed\xca\xd0\x59\xfb\xac\x0f\x3a\xdb\xcb\x18\x1d\xab\ +\xf9\xb0\x16\x4d\x09\x26\x12\x91\x85\x0b\x26\x18\xac\x27\x1b\x09\ +\xf0\x15\x5a\xb9\xd5\xae\x6d\xd8\x17\x60\x5e\x16\x0e\xa0\x33\x01\ +\x60\x8c\x5c\xb3\x66\xe7\xda\x19\xa1\x01\x5c\x01\x45\xf0\xfc\x11\ +\x15\x65\xc8\xd5\x5e\xf4\xc4\xa3\x15\xc4\x86\x35\x9c\x6b\x1d\xa1\ +\x88\x09\x01\x5a\x05\xcf\xbd\x52\xc9\x50\xad\xe5\x51\xd5\xb0\xf4\ +\x23\x9c\x17\xcf\xf2\x1a\xba\x58\x5a\x06\x11\x69\x18\x95\xdf\xd5\ +\x59\xc6\xc8\x68\x3d\xf8\x33\x45\x7f\x82\xd9\x32\xbf\x42\x5d\x01\ +\x6b\x9e\x14\x21\xe4\x85\xef\xbc\xa9\xc2\x8c\xb7\x2b\x09\xf5\x7a\ +\xe7\xcf\xa9\x7f\x6b\x02\x34\x43\xc1\xfc\x1f\xc0\xea\xa9\x26\x20\ +\x24\x93\x51\x00\x92\xb7\x4f\x05\x35\x1c\xbd\x16\x41\xc4\x88\x1d\ +\x2d\x30\x92\x24\x81\xf2\xc9\x1f\xb3\x6a\x13\x32\x8e\xa1\x13\x92\ +\xf6\x4a\x86\xd1\xb1\xba\x9d\x9b\xa2\xc9\x91\x7c\x0f\x8e\xe0\x60\ +\xe9\xc8\xc5\x7c\x00\xf3\x7a\x57\x47\x19\xc3\x23\xb5\x88\x6b\x10\ +\x71\x17\x5c\xed\xa1\x6e\x3a\xcd\x01\x8f\xdd\x83\x8d\xf7\xb3\xb6\ +\x49\x1f\x1d\x84\x20\xb7\x32\xe6\x42\x42\x9f\x08\xb2\xc2\x41\xc0\ +\xf7\xa7\x5a\x00\x26\x61\x02\x42\x49\x35\x45\xd4\xeb\x02\x22\xe7\ +\xad\x44\x5c\xe6\xed\x33\x75\x6c\xe8\xe2\xb9\xd2\x5e\x63\xd8\xb2\ +\x40\xc3\x7e\x61\x93\x53\xee\x6c\x13\x31\xbb\xcf\xd4\x46\x78\xb2\ +\xa5\x84\x85\xbc\x7f\xc4\x1a\x96\xb4\x1e\x97\xf4\x61\x32\x02\x30\ +\x5a\xf3\xc4\x16\x72\xe9\xe4\x82\x4d\x71\x25\xe5\x44\xdc\x0c\x7a\ +\xbd\xda\x08\x9a\xf0\x49\x1f\xef\x0b\xa0\x87\x65\x14\x00\x88\xc8\ +\x00\xd0\x4c\xf5\x6b\xd6\xec\xb8\x6b\xc6\x68\x00\xc8\x5a\x3d\xc8\ +\xd8\x59\x3a\x51\xd6\x9e\xa1\x99\xa5\x23\x43\xb6\x2c\x25\xe4\x0d\ +\x15\x55\xe3\x12\x11\xb4\x0a\x1a\xa3\xab\xb3\x84\xfd\x9e\x29\xec\ +\x34\x90\x8e\xe3\x7b\x77\xac\x70\x4c\x9d\xd3\xf8\xa7\x4a\xc8\x7b\ +\x3a\x8d\x06\xf0\xab\x5f\x0b\xb3\x52\x70\x1e\xa3\x84\xd6\x01\xce\ +\x3f\xdf\x73\x5e\x02\xc6\xbb\x95\x66\x68\xc5\x51\x82\x47\x6a\x03\ +\x16\xce\xa1\x51\xff\x7c\x1b\x0e\xc2\x98\x54\x2e\x40\xe2\xea\x22\ +\x97\x16\x9c\x40\xd6\x76\x25\x92\xcf\x06\xc0\x3a\x6f\x60\x32\xab\ +\x8d\x19\x59\x6a\x50\xbe\x70\x2e\x04\x50\xc6\xf2\x02\xbb\xed\x4a\ +\x95\xea\x9b\x44\xa5\x0e\x8b\xac\x83\x84\xab\x7d\x9f\x21\xef\x15\ +\xfa\xbc\x34\x98\x80\xce\x8e\x32\x46\x46\xab\x31\x7b\x94\x43\x33\ +\x09\x93\x23\x08\x1c\x82\x26\x32\xcc\xab\x1c\x0f\xae\xdb\xf7\x67\ +\xac\x91\x79\xa7\x4f\xc1\x3b\x80\x3e\xe6\xf7\xf4\x2f\xed\x1d\xc2\ +\x83\xa1\xfe\x27\x69\x02\x64\x9e\xfd\x4f\xdc\x0c\x42\x9c\x95\x13\ +\x19\x35\x5f\x6c\x41\x84\x52\x6a\x8a\x3f\x02\x99\xc8\x8a\x93\x0e\ +\x9a\xa4\xbb\xd3\x08\x80\xd6\x1a\x09\x25\x71\x86\x4f\xe0\xf8\x86\ +\xf2\x25\xaa\x86\x7c\xad\x80\x44\x26\x9d\x25\x60\x74\x77\x96\x8d\ +\x66\x11\xf4\x36\x23\x34\x1c\xfd\x90\x88\x38\x3a\x89\xc6\x10\xcc\ +\xec\xd5\xbf\x27\x80\x3a\x12\x88\xe5\xfb\xf9\xa4\x4f\x30\x01\xba\ +\xa7\x23\x3d\x28\x1a\x60\x12\x4e\xa0\x0e\x5e\xb1\x4b\xe6\x70\x11\ +\x24\x42\xe1\x35\xe1\xa0\x89\x98\xba\x5c\x4a\x43\xfe\x9f\x63\x07\ +\xcc\x9d\x28\x4b\x13\x74\xb4\x95\x30\x34\x5c\xf5\x88\x62\x84\x2c\ +\x46\x1d\x3f\xb4\xe0\x1a\x20\x8a\x2e\x44\x33\x21\x30\x18\x3d\x5d\ +\x15\xec\x1f\xa9\x7a\x07\xd5\xc7\x16\x3c\x51\x19\x3a\xc2\xf3\x03\ +\xf4\x02\x15\xe8\x22\xd5\xc4\xf8\x8d\x53\xc1\x4a\x07\x6a\x98\xf5\ +\xfe\xef\xfa\xca\xcf\xb6\x35\x66\x94\x00\x48\xf4\xcd\x19\x5e\xb6\ +\x88\x1f\x4f\x10\x4e\x4d\x78\x23\xed\x49\x4a\x59\x82\x5a\x3d\xb7\ +\xab\xd5\x1e\x43\x1c\xd5\xec\x83\x19\x47\xf4\xb5\x63\xcf\xbe\xb1\ +\x42\xd4\x11\x58\xbf\x12\x05\x64\x14\x42\x54\xc0\xc3\xca\xa1\xaa\ +\xd8\xb0\x82\x6a\xb5\x3c\x98\x20\x5d\x3c\xaf\x89\x02\x9a\x5a\xd3\ +\x1c\xc0\xb8\xff\xab\xcb\xce\x07\xb8\x3d\xca\xfe\x09\xdb\xcf\x5a\ +\x82\x3e\xe1\x75\x80\x7e\x80\x83\x34\x26\x21\x00\x3a\x9a\x1c\xc8\ +\x3a\x7c\x49\x05\xd7\xa1\x24\x3b\x84\x65\x3a\xd2\x06\x95\xb2\xa9\ +\xd3\x0b\xd9\x36\x93\xff\xaf\xb9\xda\x00\x2b\x44\xf3\xfa\x3b\xb1\ +\x63\xd7\x70\xdc\x15\x4c\x66\xf1\x80\x48\xc3\x14\x43\x3f\xd9\x64\ +\x42\x0a\x61\x77\x67\x05\xfb\x87\xab\x71\x17\x32\x11\x62\x42\x07\ +\xbf\x27\x64\x1a\xf9\x00\xb4\x26\xae\x50\x0a\x11\xc1\xd3\xa1\x7e\ +\x0e\xf6\x75\xb4\x70\xe5\x4c\x01\x18\x09\x78\xf5\x8c\x13\x80\xa8\ +\x04\x4c\xf6\xe5\x11\x8a\x94\x26\x9a\x84\x09\x20\xd5\x72\xc9\xb0\ +\x80\xe5\x7b\x6d\x95\x0c\xe3\xd5\x5c\x94\x00\x30\x16\x1e\xd5\x83\ +\x17\x5e\x1a\xb0\x9f\x09\x02\x48\x11\x8d\xcb\xa9\x77\x3d\x41\xde\ +\xc1\x9c\xbb\x48\x15\xeb\xed\xae\x60\x68\xb8\x1a\xd2\x5a\x02\x95\ +\x96\x20\x96\x4c\x80\x1d\xa0\x12\x58\xa5\xbc\x83\x17\xd4\x3c\xeb\ +\x80\x00\x4a\x34\xd0\xae\xa9\xfb\xbe\xbd\x66\xe7\xe8\x8c\x13\x00\ +\xe2\xd8\x9e\x6b\x17\x82\x69\x99\x4f\x0f\x2a\x98\xa3\x0e\x1e\x01\ +\x45\x84\x66\x54\x32\x57\xa9\x1b\x84\x67\x56\x57\x05\xfb\x86\xc6\ +\x23\x54\x71\xe9\xc2\x3e\xec\xd9\x37\x8e\xad\x2f\xef\x17\x9e\x78\ +\x9c\xb8\x91\x40\x93\xef\x06\x26\x52\xc2\x9e\xcf\xaf\xc3\x67\xbb\ +\x3b\x85\x1f\x50\xec\x3f\x28\x34\x15\x45\xda\x41\xbf\x5a\xf5\x7f\ +\x36\x03\xbd\x31\xaf\x2f\x14\x7c\x78\x14\xd0\xd2\xbe\x9c\x6f\x00\ +\xc6\x41\x53\xff\x93\x12\x00\xed\x89\x91\x46\x47\x92\xb0\xc3\xd1\ +\x44\x14\xc8\xa2\x81\x3c\x12\x2c\x42\x42\x40\xb9\x94\x60\xac\x96\ +\x7b\xfb\x3c\x77\x76\x27\x76\xee\x1e\x81\x5c\x8e\xa5\x34\xc1\xdb\ +\xce\x38\x06\xbf\x7a\xe0\xc5\x90\xe3\x97\x5d\xbc\x18\x22\xde\x17\ +\x6d\x26\x19\x31\xc2\xa7\x63\x35\xdf\xdb\x5d\xc6\xe0\x50\x15\xc4\ +\xa1\x15\x8d\x14\x1c\x2a\xf4\x09\xe2\x03\x81\x02\x19\x97\x9b\xc2\ +\x8f\x90\xf5\x53\xbe\xe0\x83\x3d\xe2\xa7\x10\x43\xc3\x09\x4d\x6d\ +\xf6\x6f\xea\x34\x80\xec\xa9\xa3\x43\x18\xed\x1d\x24\x2d\xd2\xc4\ +\x8c\x82\xf3\x87\x18\x94\x71\x0c\xdd\xb1\xba\xff\xdc\xb1\x0b\x7a\ +\xf0\xe2\xb6\xa1\xe0\x9c\xd9\xbf\xd3\x4e\x9a\x8b\xfd\x23\x35\x3c\ +\xf6\xcc\xcb\x02\xfa\x2d\xe6\x1b\x20\x4a\xc1\xd0\xd4\x67\xc8\x0b\ +\xb0\x7d\xda\xdb\x55\xc1\xe0\xf0\xb8\x75\x3f\x0a\xde\xbf\xf0\x33\ +\xb8\x60\x4e\x5e\xe5\x1d\xfb\x88\xcc\xf8\xe9\x02\xf3\x47\xb2\x7e\ +\xdc\xfb\x00\x1e\xfa\xf6\xad\x3b\xf7\xcd\x48\x01\x70\xed\x55\xa1\ +\x85\x2f\xe0\x3b\x6e\xe9\x82\xdd\xd4\xde\x19\x04\x0a\xf5\x7b\x56\ +\x40\x0c\xd4\x1b\x8a\x34\x3a\xdb\x4a\x58\xbc\xa0\x17\x8f\x3c\xbd\ +\x33\x52\xc5\x49\x92\xe0\xe2\x0b\x8f\xc3\xed\x6b\x37\x62\x68\xa4\ +\x2a\xfa\x0a\x86\x46\x90\x3e\xf2\xd0\x1c\x5d\x4b\x73\x33\x2f\x81\ +\x99\x31\xab\xa7\x1d\xfb\x86\xc6\x6d\x85\x31\x0a\xfd\x85\x74\x94\ +\xa3\x00\x5e\x7d\x6f\xa8\x07\xbe\xba\xfc\x54\xcd\x98\xab\x34\x89\ +\xe4\x0f\x47\x36\x5f\x41\xc6\xfe\x46\x3b\x30\xe8\x5a\x1c\xe4\x31\ +\xc9\x30\x50\x30\x81\x04\x99\xc2\xb7\x5a\x9b\x20\x37\xcf\x3a\x36\ +\x0d\x6e\xc2\x3a\xda\x32\x8c\x8e\x35\xa2\xd5\x7c\xde\x8a\xa3\xf1\ +\x9b\x87\xb7\x98\xea\x1d\x1d\x6c\xfe\xd1\x47\x76\xe3\xac\x53\x8f\ +\xc2\xf5\xb7\x3d\x8d\x5c\xa9\xd8\x19\x05\xc7\x31\xbd\xc8\x54\x86\ +\xf2\xef\x50\xdc\x49\xcc\xe8\xed\x32\x26\x80\x85\x23\xe9\x78\x0c\ +\xae\x65\x2d\xb8\xc8\x0c\xd2\xaf\xc6\x5c\x5e\xa6\xb5\x09\x25\x15\ +\x62\x1b\xef\x78\x7f\x1c\xc5\xfe\xe6\x71\x96\xe2\x86\x19\x2b\x00\ +\xd2\x01\x93\x84\x4e\x09\xe7\xa2\x10\xc7\xcb\xfa\x7e\x16\x95\xbc\ +\x60\x42\x67\x7b\x09\x23\xe3\xf5\x28\x9b\xb8\x60\x6e\x17\x4e\x39\ +\x6e\x0e\x6e\xba\x73\x03\x98\x55\x94\xe9\x7b\xeb\xe9\xc7\x60\x76\ +\x6f\x3b\xae\xbb\xf5\x29\xd4\x6d\x9a\x98\x25\xff\x4b\x3a\x7c\x5c\ +\xec\x25\x68\x26\xd0\x61\x57\x7d\xbd\x15\xec\xdb\x5f\x15\xe9\x04\ +\xe9\x0b\xe8\x02\xb0\x15\xce\xf5\xc7\x7b\xaf\xfc\x8f\xea\x81\x4b\ +\x14\x93\x77\xf6\x42\xec\x2f\x52\xbf\xd2\x09\x34\xdf\xfb\xc9\x6f\ +\xae\xde\xf1\xf2\xcc\xd5\x00\x7a\x02\xdb\xab\x39\x66\xe3\xca\x49\ +\x8f\xec\xab\x8e\x85\x82\x35\xba\x3b\x32\x8c\x8c\xd5\x45\x1f\x5f\ +\x73\xce\x77\x9c\xbd\x10\x1a\x8c\x5f\xae\x7d\x51\x5c\xc3\x68\x98\ +\x55\x17\x2e\x45\x5f\x77\x05\xff\x7a\xd3\x63\xd8\xb9\x77\xa4\x09\ +\xa1\x8b\x00\x22\xc8\xeb\x8a\xaa\x32\xd6\xa8\x94\x32\x64\x29\x61\ +\xc4\x12\x43\x9a\xa8\x65\x02\xf7\xe0\x26\x1e\xe2\x2b\x7a\xff\xc7\ +\x33\xf3\x31\x5a\x3b\x98\x97\xa0\x2c\xe8\xa3\x58\xb0\x7f\xbc\xfa\ +\x27\x07\xfe\x5c\x87\x43\x30\x26\xd9\x27\x50\xb4\x5c\xd7\x11\x3c\ +\x18\x11\x42\xe2\x92\x2c\xc8\xd2\x7b\xaf\xae\x7b\x3a\x2b\xd8\x3f\ +\x5c\x43\x33\x6f\x0f\xb8\xe4\x5d\x27\x60\xd3\xb6\x21\xdc\xfb\x87\ +\xcd\x41\x88\x6c\xf4\x70\xd1\xf9\x6f\xc0\xd9\xa7\xcc\xc7\xbf\xdd\ +\xfc\x38\x6e\xbb\x6f\x23\x86\x86\x6b\x05\xe8\x17\x71\xf9\x5a\x41\ +\x8d\xbb\xef\x36\xbb\xb7\x1d\x7b\x2d\xca\xe8\x23\x06\x14\xc8\x2d\ +\x51\x24\xf3\x1f\xcc\x08\x12\x7d\xdc\xf3\xfb\x74\xa1\xfa\x57\x64\ +\xfc\xb8\x50\x01\x0c\xe0\xfa\x19\x2d\x00\x31\xf7\x3f\xc6\xdb\xe3\ +\xb0\x8b\x43\xf5\x8f\x24\x6e\x4a\xcf\x5a\x6b\xf4\x74\x96\x30\x34\ +\x5a\x6b\x6a\x0c\x4d\x30\xfd\x02\x2e\x7f\xff\xc9\x78\xfc\xb9\xdd\ +\x78\xe0\xb1\x6d\x85\x89\x00\x4e\x3b\xe9\x48\x7c\xee\x92\x15\x48\ +\x13\xc2\x77\x7e\xba\x1e\xd7\xae\x7e\x02\xeb\x1e\xdd\x8a\x97\x77\ +\x0f\xa3\xe1\xd2\xcc\xba\x50\xb7\xc8\x92\xab\x08\xf4\xf5\xb4\x61\ +\x60\x70\x3c\x08\xb6\x33\x21\x45\x6d\x50\x20\x8e\xbc\x32\x60\xca\ +\x1f\x77\xf6\x9f\x25\xdd\x5b\x4b\x3a\x98\x7d\x0e\x5b\x05\xc4\x78\ +\xe1\xea\x35\x3b\x5e\x3a\x14\x02\x30\xe9\xd2\xb0\x50\xa6\x85\x28\ +\x65\x1a\x52\xa8\x8e\x87\x61\x5a\xbb\x91\xac\x22\x12\xa4\x8e\xde\ +\xae\x0a\x06\x86\xaa\x51\xa2\x95\x74\xa0\x18\x76\xb6\x95\x70\xd9\ +\xfb\x4e\xc6\x0f\x6e\x79\x0a\xd5\x5a\x8e\xf3\xcf\x5c\x18\x55\x25\ +\x77\x77\x96\xf1\xae\x95\x8b\x71\xfe\xe9\xc7\x60\xe3\xd6\x41\x3c\ +\xbf\x79\x10\x0f\x3f\xfd\x32\xf6\x0c\x8e\xa1\x5c\xca\xd0\xdf\xdb\ +\x86\xfe\x59\x1d\xe8\xe9\x2a\xa3\xbf\xaf\x03\x5d\x1d\x25\xcc\xea\ +\x69\xc7\xec\x9e\x36\x94\xcb\x19\x66\xf7\xb6\x61\x60\x68\x2c\xd8\ +\x7f\x47\x72\x91\x4d\x23\xa2\xb6\x37\xfc\x8a\x4d\xc2\xd6\x7d\x75\ +\xf9\xc2\x5c\xf3\xd2\x5c\xf0\xfb\x79\x02\xb4\xaf\x18\x19\x30\xd3\ +\x4f\x70\x88\xc6\x01\x0b\xc0\x8a\xcb\x7f\x46\x8f\x5c\xfb\x51\x8e\ +\xcb\xb3\xc8\x27\x74\x7c\xef\x4d\x0a\xdd\x37\x1c\xa3\x26\xea\xfe\ +\x6d\x27\x7c\x56\x57\x19\x43\x23\x35\x28\x65\xea\x04\x5c\xc6\x99\ +\x7c\x0f\x50\x8d\xde\xae\x32\x3e\xb5\xea\x14\x5c\x7f\xfb\x06\xec\ +\xde\xb7\x01\x17\x5f\x70\x9c\xe9\x2e\x86\xd0\x2d\xa4\x5c\x4e\x71\ +\xd2\x92\x7e\x9c\xf4\x86\x7e\x5f\xcb\x37\x32\x56\xc7\xc0\x50\x1d\ +\x7b\x86\xc6\x30\x36\x9e\x63\xfb\xae\x61\xec\x1b\xaa\x62\x68\xc4\ +\xf4\x27\x4c\x12\xd3\x2d\x64\xde\x11\x9d\xb6\xa6\x91\x3d\x93\x88\ +\x84\xc3\x6b\xe4\x3c\x09\x5d\x49\x5f\xa1\x44\x4c\x33\xff\x45\x14\ +\xef\x4b\x87\xcf\x69\x03\x01\x0a\xb9\xb4\x30\x08\x3f\x9a\xf1\x02\ +\x10\x1c\xa3\x98\x3e\x15\x76\xe8\xb2\xd4\x2d\xdb\xa5\xc3\xd5\xeb\ +\xc1\xe7\xfc\xc9\xd7\x04\x30\x9b\xc6\x50\xdd\x1d\x25\x0c\xec\xaf\ +\xa2\xbf\xb7\x3d\xea\x31\x40\x5a\xfb\x56\xf0\x9d\x6d\x19\x2e\x7f\ +\xff\xc9\xb8\xf5\xbe\x8d\xf8\xdf\x37\x3d\x8e\x4b\xfe\xec\x04\xcc\ +\xe9\xeb\xb0\x5a\xc8\x34\x71\x90\x3b\x83\x10\x13\xba\xda\xcb\xe8\ +\x6a\x2f\x63\xe1\xfc\xee\x88\xb9\xec\xbe\x4e\xad\xa1\xb0\xe1\xc5\ +\x01\xdc\xff\xc8\xb6\x60\xaa\x3c\x8e\xe1\x3a\x8f\x3a\xa1\xd4\xbe\ +\xe6\x50\xbf\xb2\x09\xb8\x54\x56\xfb\xb8\xd5\xce\x5c\xac\xfd\x0f\ +\x59\x41\x80\xb6\x5e\xb3\x66\xc7\x86\x43\x25\x00\x93\x76\x02\xd9\ +\x93\x26\x0b\x4d\x9a\x7d\xfa\x57\x46\x80\xc1\x99\xd2\xae\xc6\xdf\ +\x95\x90\x33\x30\xb7\xaf\x03\xbb\xf6\x8e\x58\xb0\x48\x07\x14\xae\ +\xe0\x73\x94\x52\x60\xd5\x05\xc7\xe1\xcd\xcb\xe7\xe1\xdf\x7e\xf1\ +\x04\x1e\x7e\x7a\x67\x84\x4d\x14\x59\xc0\x11\x77\x40\x17\xf6\x14\ +\x62\xa0\x92\x65\x58\xba\xb0\x0f\x03\x43\xe3\xf1\x0e\x25\x02\x37\ +\xe0\x42\x2d\x80\x4f\x46\xfd\x49\xf0\x67\xd9\x91\x0c\x9c\xa2\x94\ +\xf6\xec\x5e\x1f\xe7\xb3\x28\x00\x2d\x94\x85\x33\xf8\xa7\x38\x84\ +\x63\x52\x02\xe0\xbd\x7b\x8d\x18\x27\xb7\x0e\x8d\x0f\xbd\xa4\xdb\ +\xaf\x39\x70\xf0\x39\x74\xf6\x22\xd6\x98\xd7\xdf\x8e\xed\xbb\xc7\ +\x04\x5c\xac\x51\xa4\x92\x93\xf0\xce\x4f\x3b\x69\x2e\x3e\xf9\x81\ +\x65\x78\xf0\x89\x1d\xf8\xf1\x6d\x4f\x63\x70\xb8\x16\x0b\x67\x81\ +\xb6\x1e\xe1\x02\x88\xc3\xd8\xb6\x4a\x86\x34\x25\x41\x10\x8d\x4b\ +\xd5\x64\x42\xc9\xb7\xa0\xff\xf7\x34\x00\xe3\xa3\xb2\xc3\x97\xeb\ +\xf8\xa1\x0a\x36\xdf\x33\x83\xad\x53\x9a\x80\x7e\x78\xd8\x08\x40\ +\x91\x69\xc3\x36\x29\x14\xe7\xe0\x45\x3c\xae\xe3\x2d\x58\x64\xe7\ +\x0e\x06\x63\xe1\xbc\x6e\x6c\xda\xbe\xbf\x40\xcf\x16\x9d\x40\x8a\ +\xe1\x18\x80\x39\xb3\x3a\xf0\xe9\x55\xcb\x71\xe4\xec\x0e\x7c\xf7\ +\x86\x47\xb1\xf6\x91\xad\xb6\xa0\x24\x0e\xd5\xc8\xd2\xad\xb8\x40\ +\xee\x94\x80\xd5\x9c\x59\x1d\xd8\x33\x30\xda\x5c\x4c\x28\xca\x01\ +\xb9\x90\x02\xff\x77\x02\xe4\xcb\x95\xcd\x87\x44\x59\x3f\x16\xa5\ +\xde\x4c\x88\xf3\x03\xbc\xfb\xdb\x6b\x76\x3c\x76\x18\x69\x80\x42\ +\x4c\x2c\x2c\x41\x53\x51\x86\xdf\xed\xa3\x50\x58\x2a\xfa\xf0\x1f\ +\x33\xb7\x0b\x7b\x86\xc6\x30\x32\xda\x28\x9c\x7b\x22\x44\x11\x5e\ +\xe8\x4a\x69\x82\x0b\xcf\x5c\x88\x4f\xad\x5a\x8e\x17\xb7\x0e\xe1\ +\xbb\x37\x3c\x86\xe7\x5e\xdc\x1b\x69\x0e\x9e\xe0\x3c\xc5\xba\xc1\ +\xfe\xbe\x36\xbc\xbc\x77\xd4\x68\x25\x14\x8e\x2d\xd4\x21\x86\x84\ +\x56\xf3\xf8\xc3\xd7\x96\xcf\x62\xc6\x99\x91\x93\x67\x1f\x7b\x00\ +\x88\x63\x5a\x98\x32\xc4\xcf\x1b\x71\x88\xc7\xe4\x35\xc0\x04\x9b\ +\x38\x21\xca\xa6\x8a\x8c\x61\x30\xd4\xb1\xdf\x60\x8f\x4b\x13\xc2\ +\xb2\xc5\xb3\xb1\xee\xc9\x1d\x91\x7a\xe6\x28\xa9\x13\xa8\x67\x51\ +\xb1\x11\x18\xfd\xbd\x15\x5c\xfa\xde\x13\xf1\xae\x95\x0b\xf1\xeb\ +\xdf\x6f\xc6\xf7\x6e\x7c\x1c\xcf\x6e\xda\x63\x2a\x8c\x64\x16\x87\ +\x8b\xf4\x2f\xf3\xe5\xe6\xf6\x75\x60\xf7\xc0\x98\x60\xb2\xf1\x84\ +\xe6\x22\x22\x9f\x4c\x30\xea\x8a\x3f\x24\x5b\xbc\x28\x4d\x9e\xf4\ +\x11\x65\xfc\x54\x9c\x10\xc2\x21\x48\xfe\x4c\xb1\x00\x08\x67\x4a\ +\x3c\x77\x36\x3d\xf0\x05\x5c\xd0\xa0\x0b\xa4\xcc\x78\x77\x0e\x80\ +\x71\xde\x8a\xf9\x78\xec\xb9\x3d\xd8\xf2\xf2\xfe\xa6\x62\x4e\x44\ +\x84\x4f\x51\xb4\x29\x84\x89\x01\x2c\x3d\xa6\x0f\x9f\xfd\xc8\x29\ +\x58\xf9\xc6\xf9\xf8\xcd\x43\x5b\xf1\x9d\x9f\x3e\x82\xfb\x1f\xdd\ +\x86\xd1\xf1\x5a\x93\x42\x91\x1b\x56\xce\xed\xef\x34\x1a\xc0\xfa\ +\xf8\xc5\x5d\x47\x3c\xdf\x40\x28\xa6\x3f\x31\xae\x88\x52\xbd\xac\ +\xa3\x4e\x1f\x2c\xfb\xfe\xb0\xcb\x10\xf2\xd0\xd5\x6b\x76\xac\x3b\ +\xd4\x02\x90\x4d\x56\x00\x8c\xe0\x72\x54\x1f\x20\xf6\x5e\x88\x5b\ +\xc9\x90\x2c\x22\x65\xff\x69\xd3\x20\xca\x60\x06\x5d\xed\x65\xbc\ +\x67\xe5\x42\xfc\xf2\x77\x2f\xe1\x33\x17\x2f\x03\x25\x62\x8f\x60\ +\x1b\x5a\x86\xf3\xc6\x60\x8d\xa7\xf6\x5b\xd6\xf8\x29\x6f\xe8\xc7\ +\xb2\x25\xb3\xb1\x79\xe7\x30\xd6\x3f\xbb\x0b\xbf\x79\x78\x2b\xfa\ +\x7b\xdb\xb0\x74\xd1\x6c\xcc\x3f\xa2\x13\x9d\x1d\x25\x74\x77\x94\ +\x51\xa9\x64\xe8\x68\xcb\x30\xa7\xaf\x0d\x2f\xef\x19\x85\xd6\xa6\ +\x9e\x21\x94\x13\x30\x26\xee\x0b\xd5\x2c\x01\x0f\x7f\xfd\x94\x8e\ +\x6a\x5d\xbf\x35\x57\x1a\xa1\xf8\x53\xb4\x7d\x65\x16\x85\xa0\x41\ +\x28\x08\xf8\x05\xa6\x61\x4c\xb2\x5b\xb8\x8e\x8b\x32\xe4\x24\x15\ +\x5a\xfa\x15\x7b\xf8\xf9\xb2\x0b\x32\xea\xd0\x14\x89\x98\x8e\x50\ +\x27\x2d\xee\xc3\xfa\x0d\xbb\xf1\xd0\x33\xbb\x70\xe6\xc9\x73\x43\ +\xd1\x89\x6f\x0a\x15\x77\xff\x04\x01\xf5\x5c\x61\xfb\xae\x51\x28\ +\x0d\x74\xb6\x97\x70\xc4\xac\x76\x64\x59\x82\x04\x84\xc5\xf3\x7b\ +\xb1\x78\x7e\x0f\x1a\x39\xe3\xa5\x1d\x43\xd8\xb2\x6b\x04\xeb\x9f\ +\xde\x89\x91\x6a\x8e\x91\xb1\x3a\x6a\x75\x85\x5c\xd9\xf6\x74\xf5\ +\x1c\xd7\xdd\xf2\x14\x2e\xbb\x68\x99\xe8\x06\x4f\xb6\x8c\x41\x70\ +\x1d\x6d\x15\xf3\x86\x35\x9f\xe5\x13\xde\xf7\x3d\xff\xc9\x5a\x83\ +\x3f\xe0\x3d\xfe\x62\xf9\xb7\x5f\xf1\x5a\x84\x84\xda\xa9\xff\x1f\ +\x1c\x76\x02\x70\xfa\x67\x6e\xa1\x87\xfe\xf5\x22\x26\xdb\x97\x9f\ +\x34\x47\x37\x8d\x51\xa8\xf4\x29\xf4\xe4\x0d\x5b\xf3\xc5\x2d\x66\ +\x99\x81\x77\xbf\x79\x21\xbe\x7f\xeb\xb3\x38\x69\x51\x1f\xba\x3a\ +\x4b\xa0\xa6\xfd\x9b\x43\xbb\xb9\x97\xf7\x8e\xe3\xba\xdb\x9e\xc5\ +\xac\xee\x0a\xca\xa5\x04\xc3\xa3\x0d\x0c\x8f\x37\xb0\x68\x7e\x37\ +\x4e\x3b\x61\x0e\x4e\x5c\xd2\x0f\x30\xa1\x94\x11\x8e\x5b\x38\x0b\ +\xc7\x2d\xec\x83\x68\x37\x0a\x02\xa1\x9e\x2b\xe4\x4a\xe3\xfa\xdb\ +\x9f\xc5\x92\xa3\x7b\xe3\x56\x37\xa1\x60\x28\xae\x09\x71\xea\x26\ +\x96\xeb\x2b\xe2\x66\xcf\x21\xc7\xaf\x5c\x03\x28\xc8\x5e\xc0\x04\ +\xcd\x7a\xfc\xea\x35\x3b\xef\x39\x0c\x35\x00\x84\x87\x1f\xb6\x5d\ +\xa2\x89\x7a\x08\x52\xdc\xc2\x3d\x84\xd1\xa2\x5b\x58\x68\xc5\x8c\ +\xd9\x3d\x15\xbc\xe9\xf8\x23\x70\xe7\x83\x9b\xb1\xea\x82\x25\x85\ +\x04\x5b\xdc\x81\xf4\x57\xeb\x36\xe3\xfc\xd3\x17\xe0\xf4\x93\xe6\ +\xfa\xf7\xeb\x0d\x85\xe7\x36\x0f\xe2\xde\x87\xb7\x61\xfd\x86\xdd\ +\x78\xdf\xb9\xc7\xa2\xb7\xab\x12\xb0\x7d\xa1\x9e\x98\x4c\x6d\x42\ +\xb9\x94\x62\xd1\xfc\x1e\xd3\x8a\xc6\x3b\x9c\xae\x84\x4d\x88\x70\ +\xb4\x61\x94\x96\xd8\x7f\x49\x69\x7e\x97\x52\xb2\xcb\x07\x7c\xfa\ +\xd7\xe1\x00\x4e\x18\x54\x00\xba\x6e\xc5\x34\x8d\xc9\x6f\x1b\x37\ +\x41\xa7\xd0\xa6\xdd\xc0\x81\x08\x1f\xf0\x25\xe5\x51\x81\x88\x6e\ +\x0a\xdb\xce\x7b\xd3\x7c\x6c\xdb\x3d\x8a\xa7\x36\x0e\x34\x77\x22\ +\xf5\x04\x50\x60\xf3\xcb\xc3\x58\x76\x6c\x5f\xc4\x0c\x2a\x95\x52\ +\x2c\x7f\x43\x3f\x3e\x7d\xf1\xc9\x98\xd7\xdf\x81\xff\xf3\x8b\x27\ +\xb1\x6b\x60\x4c\xf0\x43\xb8\xa9\x73\x19\x98\x71\xd4\x9c\x2e\x6c\ +\xdf\x35\x62\x90\x4a\x99\xc9\xb4\x4e\x21\x15\xaa\x9d\xe2\x7d\xaa\ +\xf9\x3d\x0c\x24\xaa\x50\xda\xc5\x1e\xea\x95\x6d\x60\x2c\x27\x40\ +\xe3\xa0\xd5\xfd\x1d\x22\x01\x88\x09\x13\xa1\x7d\x3f\x47\xd0\x6f\ +\xd4\xdd\x4b\x54\xe8\x72\x71\x0b\x76\x31\x39\x59\x4a\xf8\xe8\x85\ +\xc7\xe2\x8e\x75\x9b\xb1\x6d\xf7\x48\x04\x29\x3b\x04\x71\xbc\xda\ +\x40\x42\x40\x5b\x39\x8b\x68\x5f\x64\xdf\x4f\x29\xc1\x05\xa7\x1f\ +\x8d\x77\x9e\xbd\x10\xd7\xdd\xf6\x8c\xa1\x9a\xcb\x50\xae\x50\x09\ +\xb4\x60\x4e\x27\xb6\xed\x1a\x11\x99\x4c\xf6\x65\x6f\xec\xe9\xef\ +\xa1\xb2\x28\x26\xa0\xd0\x27\x95\xe8\xf1\xaf\x7c\xa3\x47\x0b\xff\ +\x42\xb4\x7c\x55\xfe\xd2\x79\x77\x7b\x76\xc7\x61\xad\x01\xe0\x7a\ +\xef\x21\x90\x2c\x74\x81\x47\x17\x31\x81\x74\xa1\x46\x4f\x6a\x87\ +\xc2\x8a\x3c\xb2\xaf\x03\x17\xbd\x65\x11\x7e\x7a\xd7\x0b\x78\x61\ +\xcb\xbe\x48\x89\x00\xc0\xde\xc1\x71\xcc\xee\xae\xc4\x39\x00\x8d\ +\x98\xdc\xc9\xc0\xf2\x25\xfd\x78\xdb\x8a\x05\xf8\xe1\x6d\xcf\x62\ +\x6c\xbc\xd1\x2c\x8c\x76\x92\xbb\x3b\xca\x48\x13\xc2\xc0\xfe\x6a\ +\xb4\x69\x64\x14\xda\x16\xf8\x8e\xcf\xae\xfe\x94\x93\xcb\xf7\x2a\ +\xe1\xe0\xc5\x24\x8f\xa2\x06\x30\xab\x9f\x81\x3b\xbe\x72\xe3\x56\ +\x35\x5d\x02\x90\x4d\x85\x02\xf0\x5b\xbd\x8b\xd6\xb0\x28\x3c\x94\ +\x7d\x7b\x5c\xd9\x36\xc0\xa2\x95\xaf\xec\xf6\x4d\xd1\x46\x4f\xc7\ +\x1d\xd3\x83\x0f\x5d\x70\x2c\x7e\xf1\x9b\x4d\x38\x72\xf6\x1e\x2c\ +\x5f\x32\x1b\x7d\x3d\x65\x28\x06\xee\x5b\xbf\x1d\x27\x2c\x9a\x65\ +\x85\x90\xfc\xb1\xd1\x3e\x41\xf6\xf1\x8a\x13\xe7\x60\xd7\xe0\x38\ +\x6e\xba\xfb\x79\x5c\xfa\x9e\x13\x05\x77\x21\xe0\x01\x44\xc0\x82\ +\xb9\x5d\xd8\xb2\x63\x08\x7d\xdd\x73\xa3\x8d\x06\xa4\x9f\xc2\x51\ +\xa7\x0b\xe0\x81\xaf\x2e\x7f\x47\xae\xb8\xa2\x35\x45\x9d\x3d\x7d\ +\x25\xb0\x0a\x65\x72\x71\xdd\xff\xf4\xa9\xff\x29\xd1\x00\x67\x7d\ +\xee\x36\x6a\x6e\x01\xa7\xa3\x7a\x81\x18\x2c\x2a\xd4\x09\x0a\xed\ +\xc0\xb6\x7b\x98\xe4\x0e\xba\x15\xba\x68\x6e\x27\xfe\xf2\x43\x27\ +\xe3\xf8\x85\x3d\x78\x61\xeb\x20\xee\x58\xb7\x05\x77\xff\x61\x2b\ +\x16\xce\xeb\xc2\xca\xe5\x73\x25\x32\xd5\xcc\x46\x16\x6a\xe3\x9d\ +\x67\x1d\x83\x5a\x5d\x61\xdd\xe3\x3b\xe0\xda\xbf\xb0\x8e\xfd\x96\ +\x85\xf3\xba\xf0\xd2\x8e\x61\xe1\x67\xf0\x04\x4d\x23\xe0\xe1\x6d\ +\x80\x91\xf5\xcc\xbe\xcb\x51\xcf\x43\xea\x97\x7d\xc1\x27\x8b\x94\ +\xaf\xf2\x20\x24\xa3\x92\xd1\xad\xd3\x29\x00\x53\xb6\x73\x28\x4b\ +\xd0\xa4\xb8\xb5\x5b\xa1\xa3\x38\x91\x68\x2f\xa3\xe1\x6b\xf2\x7d\ +\x34\xe1\xba\x85\x89\xed\x5d\x08\xc6\x27\x38\xed\xf8\x23\x70\xda\ +\xf1\x73\xe2\x5d\x42\xdc\x31\x3e\xca\x98\xa8\x85\x8b\xb9\x58\x42\ +\x84\x0f\xbe\x6d\x09\xbe\xbf\xfa\x69\xcc\xeb\xef\xc0\xe2\x05\x3d\ +\x32\x41\x08\x22\xc6\xa2\x79\xdd\x78\xf8\x99\x5d\x70\xbd\x82\x09\ +\xf1\x16\x32\x61\x4f\x84\xf0\x6f\x6d\xff\xbe\x50\xdc\x01\x16\xdd\ +\x3f\xe3\x34\xb0\xec\x07\x08\xe0\xee\xaf\xff\xbf\xed\xd5\xc3\x5a\ +\x03\x18\xff\xaf\x50\x34\xa9\x9b\x09\x95\xec\x6b\x02\x74\x44\xdd\ +\x8e\x3a\x8c\x16\xda\xc6\x46\x09\xa0\xc2\x36\xef\xa1\x2b\x18\x22\ +\xa7\x32\xea\xe4\xe9\x95\x51\x5c\xe3\xd7\xdf\x53\xc1\x47\xde\x7e\ +\x1c\x6e\xbc\xfb\x05\x6c\xda\xbe\x1f\xb2\xc1\x00\x33\x30\xaf\xbf\ +\x03\x23\x63\x75\xb3\x79\x65\x13\xb7\x00\x85\x46\x54\x1a\x8d\xd1\ +\x61\xb0\xd2\xc8\xed\x7e\x3e\x26\xb6\x47\x94\x04\x92\x4c\x20\xf7\ +\x3a\x08\x3f\xc0\x34\x8f\x29\xdb\x3d\xbc\xd8\x88\x31\x2e\xd5\xd2\ +\xa2\x6a\x98\x82\x43\x88\xf8\xc6\x06\x26\xae\x8e\x88\x1c\x11\x4b\ +\x38\xaa\xea\x71\xe7\x7c\xa7\x02\x00\x00\x08\x33\x49\x44\x41\x54\ +\xe1\x64\xa1\x16\x51\xcb\xce\x9e\x71\x93\x67\x17\xc6\x2d\x9a\xdf\ +\x8d\x0f\x9d\xbf\x04\x37\xdf\xbd\x11\x8f\x3d\xb7\x5b\x60\xfb\x1a\ +\x04\x60\xf1\xfc\x1e\xfc\x71\xeb\x60\xc4\x61\x28\x66\x27\xed\x46\ +\x65\xa8\x0d\xee\xf6\x5b\xba\x68\xb0\xe8\xf8\x1d\xe2\x7e\x2d\x4c\ +\x81\x8b\xff\x13\x9a\x1e\xf8\x77\xca\x05\xe0\xec\xbf\xba\x83\x80\ +\x98\xf1\x2b\x5d\x75\x6e\x8a\xf7\x11\xa5\x64\x7d\x53\x08\xd7\x5b\ +\xb8\x40\xc0\x90\xc4\x12\x29\x28\x4e\x18\xb4\xac\x44\x9a\xa0\x01\ +\x45\x91\xd9\xe3\xd8\x3c\xc7\x1e\xd5\x83\xcb\xdf\x7b\x22\x7e\xbb\ +\x7e\x3b\x6e\xbe\x7b\xa3\xed\x11\x60\xf2\x15\x4b\x8f\xe9\xc5\xf3\ +\x9b\x07\x45\x88\x28\x48\x26\x82\x70\x02\x30\xf2\xe1\x7d\x4d\xac\ +\x9f\xc8\xeb\x8f\xd2\xbe\x9e\x20\xb2\xee\x5b\xb7\xec\xdc\xff\x9a\ +\xd1\x00\xa2\xa2\x23\xf4\x0d\x63\x1d\x75\xfe\xf2\xf1\x34\x8a\x1d\ +\xb7\x78\x82\x96\x2e\xe2\x6c\x1c\x57\x1a\x71\x21\xbc\x24\x88\x7d\ +\x0a\x99\xc1\xa4\x63\x2d\x81\xd0\xf0\x51\xa6\xa9\x99\x81\xd9\xbd\ +\x15\x7c\x76\xd5\x32\xf4\x76\x96\xf0\xdd\x9b\x9f\xc0\xaf\x7f\xff\ +\x12\x46\xc7\xeb\x58\xba\x70\x16\x5e\xd8\x32\x68\x3a\x96\xb3\xb6\ +\x5c\x86\x42\x9d\x01\x18\x6a\x7c\x14\x2a\x57\x21\xc1\xa3\x03\xed\ +\x9b\xe5\xee\x1f\xb2\xfb\x87\x71\x8f\xa6\x5d\xfd\x4f\xb1\x09\x40\ +\x5c\x39\xab\xe3\x8d\x1e\x9b\x2a\x6e\x38\xee\xb8\x18\x57\xf1\x40\ +\xa8\xd9\x58\xe5\x73\xb1\xd9\xa3\x83\x53\x29\x16\x26\x9e\x80\x04\ +\xe2\x0b\x47\x0b\x98\x43\x96\x26\x78\xfb\x19\x47\xe3\x3f\xaf\x3a\ +\x05\x23\x63\x0d\xfc\xf3\x0d\x8f\xe3\xbe\x47\xb6\xa3\xad\x92\x61\ +\xe3\x96\xc1\xe6\x96\xf1\x22\xd2\xa9\xef\xdf\x5b\x70\xf4\x04\xc9\ +\x33\xaa\x01\x90\x55\xc0\x8c\x34\xa5\x1b\x5f\x53\x02\xf0\xe6\xbf\ +\xb9\x8b\x34\xc7\x54\xab\x89\xba\x81\xc4\x25\xe2\x08\xa1\x56\x01\ +\x26\x0e\x50\x72\x2c\x60\x1c\xb5\xa3\xd5\x62\xaf\x80\x62\xd8\x29\ +\x7a\x04\x30\x0a\xa5\xe3\x85\xbd\x0e\xec\x39\xba\xbb\x32\x7c\xf0\ +\xbc\x63\xf1\xb9\x0f\x2f\x47\x5b\xc9\xb4\xa8\x79\x74\xc3\x1e\xc1\ +\x3b\x28\xee\x80\xca\x68\x8c\xec\x0b\x1b\x3a\x8a\xd5\x1f\x55\x01\ +\x15\x84\x80\x18\x8f\x7e\x73\xf5\x81\x6f\xf7\x3a\x23\xc3\xc0\x90\ +\x1d\x16\x5b\x30\xda\xc6\xcc\x61\x63\xee\xc0\xf2\xf7\xc9\x1c\x9f\ +\x08\x0c\x89\x7e\x16\x3c\x02\x8e\x12\x4a\x64\x7c\x04\xdf\xf6\x2d\ +\x84\x63\x72\x83\x40\xcf\x49\x70\xfb\x15\x12\x47\x6d\x02\xc9\x6f\ +\x75\xcf\x51\x4f\x40\x27\x32\x5d\x1d\x25\xbc\xed\xf4\x05\x38\xe7\ +\x8d\xf3\xf0\xf8\xf3\x03\xa8\x55\x35\x2a\x95\xd4\xe7\x38\xdd\xd7\ +\xd7\xf5\x2a\x74\xa3\x61\xda\xba\x22\xf4\xfa\x89\xc3\x3e\xab\xf6\ +\x95\xd8\x03\x80\x71\x1d\x66\xc8\x48\xa6\xf2\x64\x2b\xbf\xf0\x2b\ +\x6a\xea\x19\x5c\xb4\xf7\x28\x42\xc4\x88\xdb\xcc\xfb\x10\x0f\x4d\ +\xdb\xd0\xa1\x50\x6f\xe8\x4a\xb8\x83\x1e\x90\x1d\x3d\x85\xf3\x28\ +\x37\xe3\x13\x34\x33\xdd\x54\xf3\x17\xf3\x0e\xcb\x69\x8a\x33\x4e\ +\x9c\x83\x4a\x99\xe2\x96\x78\xf6\xb3\x8d\xe1\x01\x8f\xed\xab\x02\ +\xe7\x9f\xe5\x36\xaf\x96\xc4\x64\x27\x1f\x59\x9a\x5c\x3f\x53\x04\ +\x20\x9b\xea\x13\xb2\x66\x53\xb5\x29\x2a\x6b\x49\xee\x1c\x46\x1c\ +\x53\xa9\x58\xb2\x7d\x44\xe7\x51\xb9\x5a\x21\x5e\x93\x84\x0c\x96\ +\x1c\x24\x08\x38\x9a\x45\x55\x4f\xd0\x00\xf1\x0e\xb3\x61\x3f\xe0\ +\xc2\xce\x90\x31\xd7\x87\x10\x9d\xdf\x78\x92\x46\x83\x34\x46\x06\ +\x9b\xfb\xfd\xc9\xd5\x0f\xfb\x27\x01\x20\x60\xc3\xb7\x6f\xd9\xbe\ +\xed\xb5\x2b\x00\x30\xc4\x10\x4d\x13\xa0\x71\x76\x21\xc5\x3d\xfe\ +\x59\xf0\x05\xc4\x56\x72\xb6\xc1\xb4\x6b\x49\x4b\x32\xac\xb4\x02\ +\x46\x92\x78\x52\xa8\x4d\xf4\x42\x20\x3a\x93\xb2\xd8\xdb\x38\x10\ +\x58\x28\x62\xf8\xc8\xa6\xd7\x2c\xb6\x9d\xa7\xc2\xaf\x54\x8d\x06\ +\x54\xa3\x8e\xbc\x50\xde\x25\xb7\x7c\xf1\x59\x41\xd1\x00\x92\x99\ +\x7f\x84\x19\x34\xa6\x5c\x00\xce\xb9\xf2\x6e\xba\xff\x9b\x17\x8a\ +\x25\x57\xd0\x06\x44\xd1\x6e\xa2\x5e\x18\xfc\x73\x9e\x70\x5b\x5e\ +\x57\x27\x28\x97\x27\x87\xbc\x11\x5c\x3b\x57\x5f\x74\x4a\x2e\xa1\ +\x24\x72\x51\x7e\xbb\xba\x60\x89\x64\x7f\x61\x92\xff\x44\xda\x85\ +\x71\xea\xa5\x37\x44\x5f\xe9\xfe\x7f\x58\xfe\x3f\x34\xe3\x2b\x81\ +\xe1\x2b\x26\x5d\xc5\x6c\x20\x2d\x48\x21\x53\xb1\xdd\xeb\x8c\x16\ +\x00\xa9\x8b\x59\x6c\xba\xe8\x56\x31\x17\x76\xfb\x66\xd9\x6c\xde\ +\xb1\x49\x29\x6c\x25\x6f\x19\xa3\x9e\x7b\x08\xb9\x62\xed\xe3\xa8\ +\x5d\x75\x00\xec\x0d\x6b\x27\x11\x99\xbe\xc0\x41\x8b\x51\x49\x02\ +\x4e\xbb\xe2\xe6\x57\xb9\x05\x08\x7f\x42\x15\xd5\x3d\x17\xb6\x7f\ +\x29\xec\x06\xce\xa0\x97\xae\xbe\x75\xc7\xc6\xd7\x87\x00\x08\x7c\ +\xc8\x51\xb8\xb4\x48\xfd\x7a\x73\xef\x6c\xaa\x20\x89\xfa\xed\xd9\ +\x20\xd2\xba\x91\xd0\x68\x5b\x04\xca\x91\x2f\xcb\xd0\x20\x4a\x84\ +\x59\x09\xbd\xff\xc3\x96\x2f\x84\xd3\x3f\xf5\xf3\x49\xed\xf7\xf2\ +\xe0\x55\xcb\x8f\xca\x15\x9f\x14\xaf\x7e\xd1\xff\x3f\x8a\x06\x82\ +\x36\x00\xf8\x27\x98\x61\xe3\xa0\x08\xc0\x39\x5f\xbc\x97\xee\xff\ +\xa7\xf3\xa3\x6d\x84\x4c\x32\x8e\x3c\xc5\x5a\x56\x08\x73\x93\x13\ +\x61\x0d\x03\x91\xdf\xd7\x57\x58\xf6\x38\xfc\x23\x1b\x7f\xca\x7d\ +\x88\x10\xd7\xf4\x9f\xf1\x99\xd5\x34\x95\xbf\xaf\xde\x68\x5c\xc2\ +\x48\xa3\x6e\x9f\xf2\x71\xb1\x07\xb0\x13\x04\xa2\x99\x13\xfe\x1d\ +\x64\x0d\x80\xb0\x25\x7b\x64\x61\xed\x23\x7b\x37\x98\xa2\xe0\x3c\ +\xda\x7a\xbe\x79\xbb\xf7\xd0\xe7\x1f\x89\x55\xf8\xb2\x15\x3c\xc7\ +\x6e\xfe\x19\x9f\x5d\x43\x07\xeb\xb7\x1d\x71\xd4\xa2\xcb\xf6\xee\ +\xde\x05\x55\xaf\x16\x56\x7d\x73\xaf\x3f\x15\x48\x44\x3b\xaf\x5e\ +\xb3\xf3\xa9\xd7\x8d\x00\xbc\xe5\x6f\x7f\x43\xbf\xfb\xc6\x5b\x3d\ +\x6a\xe2\x1d\x2c\x4d\x51\x38\x17\x7a\xfc\x33\x62\xbe\x3f\xc9\xfd\ +\xc5\x10\x55\x66\x30\x47\x0e\x20\x03\x38\xeb\x2f\x7f\x49\x87\xe2\ +\x86\xd5\xd6\x7e\xb1\x3f\x57\xbc\xe2\xc8\xa3\x17\xe3\x77\xf7\xde\ +\x03\xa5\x09\xb9\x06\xea\x0d\x8d\x5a\x5d\x1b\x40\x08\x05\x73\x60\ +\xd4\xff\x0d\x98\x81\x23\x3b\xa8\x67\xf7\xd1\x9c\x44\xdc\x10\x39\ +\x5f\x9e\xcc\x21\x1d\x33\x11\xb7\x73\xb4\xe1\x73\xac\x19\xce\xfe\ +\xfc\x1d\x74\xa8\x6f\x58\x3d\x57\x17\xaa\x3c\x07\x88\x71\xf4\xa2\ +\x45\xf8\xe3\xc6\xcd\xe8\xea\xac\x60\xc5\x1b\x8f\xc4\xa6\xcd\x7b\ +\xb1\x61\xd3\x20\x5c\x4b\xd8\x5c\x45\x84\xd0\x1f\xbe\xee\x04\xe0\ +\x2d\x5f\xfa\x2d\xad\xfd\xc7\xb7\xfa\x06\xf1\x72\xb3\x10\xe1\xf0\ +\xdb\x49\xd7\x82\x6b\x2f\x26\xdb\x39\x84\x56\x4b\xbc\xf9\x6f\xee\ +\xa2\x69\xbd\x63\xcc\x8a\x39\xdf\xa5\x54\x3e\xb7\xa7\xb7\x1b\x27\ +\x9c\xb8\x10\xb3\x67\x77\xa2\xd1\x18\xc7\xbc\x23\xdb\xf1\xcc\x8b\ +\xfb\xd0\x50\x66\xdb\xfb\x9e\x2e\x60\xc7\x5e\x00\x4c\xfb\xae\x59\ +\xb3\xe3\xa1\xd7\x9f\x06\xb0\x09\x02\xf6\x3a\x3f\xb4\x8e\x29\x04\ +\x0b\xc1\xbd\x8b\x76\xf6\x32\x1e\xc1\xca\x2f\xfc\x8a\x66\xca\x0d\ +\x23\xe8\xf5\x60\xdd\xcb\x5a\xa1\xab\xab\x1d\x95\x0a\xa3\x51\xaf\ +\x21\x57\x39\xfa\x7a\x32\xf4\xcf\x6a\x43\xa5\x9c\xe3\xa8\x23\x80\ +\x79\x7d\x39\xee\x7e\x58\xe1\xc1\x67\x0e\x6e\xc3\xe7\x19\x2d\x00\ +\xe7\xfe\xd7\xb5\xb4\xf6\x6b\xe7\xb2\x43\xf5\x02\xda\x2b\x60\x61\ +\x01\xeb\xba\x32\xb1\x73\xae\xbc\x9b\x66\xe2\x0d\x6b\xe4\x8d\x4e\ +\xa5\x79\x37\xb3\x3e\x3a\x57\x0d\x68\xad\xc0\xac\xc0\x5a\xa1\xda\ +\x68\xe0\xcc\xe5\x9d\xc8\x1b\x55\xa8\xbc\x86\xc1\x61\x85\xa5\x47\ +\xe7\xd0\x8c\x6b\xff\xef\x3d\x33\x53\x00\x92\x43\x71\x91\x73\xff\ +\x6e\x2d\x15\x77\x18\x25\xe8\x09\x1b\x40\x9c\xf3\xc5\x7b\xe8\x9c\ +\x2f\xce\xcc\xc9\x07\x80\x24\xc9\xf6\x30\xe7\x9b\x0c\x77\x41\x19\ +\x16\xb0\xdd\xdf\x90\x59\x43\x29\x05\xad\x15\x34\x2b\x00\xba\xde\ +\xd9\xa6\x7f\xfb\xb9\x7f\xd9\xfd\xdb\x99\xfa\x7b\x0e\xe9\x8d\x5e\ +\x7b\xd5\xb9\xa1\x44\x98\x02\x87\xff\xdc\x2f\xdd\x37\x63\x27\x7c\ +\xa2\xb1\xeb\xd6\xcb\x36\x28\xd5\x38\x3e\x57\x35\xa8\xbc\x6a\xff\ +\xea\xc8\x73\xf7\xbc\x06\x95\xd7\xa0\x75\xfd\xb6\x3c\xaf\xfd\xcf\ +\x95\x7f\xbb\xef\xa1\x96\x00\xd8\x71\xdf\x55\x6f\x61\x22\xc2\xb9\ +\x7f\xb7\xf6\xb0\x9a\x74\x37\x86\x7f\xfd\x99\x9e\xb1\xf1\xf1\x7f\ +\x52\x79\xed\xd3\x41\x00\xea\xc8\x1b\x66\xd2\x95\xb2\x02\xa0\x6a\ +\x8f\x27\xa4\x2e\x3f\xed\xaf\x0f\x6d\xcf\x9f\x19\x2f\x00\xaf\x85\ +\xb1\x63\xf5\xc7\xbe\xc5\xba\xf1\x85\xbc\x51\x45\xae\xaa\x26\x2b\ +\x98\xd7\xa0\xf3\xaa\xd1\x02\xaa\xbe\x33\x6f\x8c\x7f\xec\xac\x2b\ +\x77\xdc\x3b\xd3\x7f\x4b\xd6\x9a\xce\x03\x89\x04\x75\x43\xeb\xbc\ +\xc6\xac\x2b\x86\xbc\xa2\x00\x56\x60\xb3\xe1\xcb\x33\x04\xfe\xd6\ +\xe1\x30\xf9\x87\xcc\x09\x7c\x6d\x4d\xfe\xd7\x09\xac\xd6\x32\xeb\ +\x8a\xb6\xde\x3f\xb3\x61\x0e\x6b\xad\x01\xf0\xdf\xb3\x56\x3f\x3e\ +\x5c\x7e\x4f\x4b\x03\xbc\x5a\x9b\x49\x5f\xe2\x6d\x3f\x5f\x55\x66\ +\xd6\x39\xb4\xca\x18\x0a\xac\x35\x98\xf5\x3e\x66\xfd\xdd\x37\x7e\ +\xee\xf9\x5f\x1c\x4e\xbf\xa7\xa5\x01\x0e\x44\x0b\x68\xec\x2a\x67\ +\xd8\x95\x24\xb0\x55\x4c\xba\x41\xc0\xf7\xf2\x46\xed\xaa\xc3\xed\ +\xb7\xb4\x34\xc0\x01\x8c\xf5\xcf\xed\x79\xfa\x85\x6d\x83\xb3\x56\ +\x9e\xd8\x8d\x63\xe6\x10\x46\x72\xfe\x97\x24\xa5\xaf\x9f\xfe\xd7\ +\x2f\xee\x6f\xdd\x9d\xd7\xc1\x78\xcb\x29\xfd\xc7\x57\x4a\xe9\x53\ +\x00\xd4\x05\x6f\xea\xbb\x97\x9f\x78\xdb\xac\xd6\x5d\x79\x3d\x99\ +\x80\xfd\x9f\xed\x98\xdd\x5d\x7a\xf0\xe8\x39\x95\xd5\x6f\x5f\x31\ +\xfb\xac\xd6\x1d\x79\x1d\x8e\x13\x8f\xe9\xfc\xd1\xe5\xef\x9c\xb7\ +\x90\xf7\x7e\xa4\xe5\x47\xbd\x3e\xc3\xc1\x5b\x2a\xad\xbb\xd0\x1a\ +\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\ +\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\x87\xc7\xf8\xff\x96\ +\x1a\xe5\x8e\xbc\x46\xb7\xf4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ +\x42\x60\x82\ +\x00\x00\x38\xa6\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x06\x1d\ +\x0e\x3a\x1e\x51\x23\xc2\x06\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x77\x94\x5d\xd7\x75\xe6\xf9\x3b\ +\xf7\xde\x97\x73\xa1\x0a\x40\x55\x21\x10\x91\x48\x04\x40\x8a\x19\ +\xa2\x48\x31\x67\xca\x96\xec\x6e\xc9\x9a\xb6\x5b\xf6\x2c\x7b\xba\ +\xa5\x96\x67\x8d\x48\xcd\x58\x96\xe3\x52\xcf\x9a\xb6\xbb\x67\x64\ +\x59\xb2\xe5\x19\x5b\x2d\x59\x96\x64\x5b\x52\x4b\x22\xc1\x04\x30\ +\x8b\x04\xc0\x4c\x01\x20\x89\x1c\x0a\x55\x85\x8a\x2f\xd5\xcb\xef\ +\x9e\x33\x7f\xdc\xf0\xce\x7d\x55\x60\x10\x01\x8a\x84\x70\xb8\x8a\ +\xf5\xea\xe1\xc5\xbb\xf7\xd9\xfb\xdb\xdf\x0e\x07\xce\xad\x73\xeb\ +\xdc\x3a\xb7\xce\xad\x73\xeb\xdc\x3a\xb7\xce\xad\x73\xeb\xdc\x3a\ +\xb7\xce\xad\x73\xeb\xdc\x3a\xb7\xce\xad\x5f\x8a\x25\xde\xad\x37\ +\xfa\xc2\x17\xbe\xa0\xbc\xdb\x5f\xfa\xd2\x97\xc4\xb9\x4b\xff\x4b\ +\xa2\x00\xe3\xe3\xe3\xbe\xe0\xbf\xfc\xe5\x2f\x9f\xf2\x71\xe7\x94\ +\xe2\x2c\x54\x00\x5d\xf8\xde\x52\x28\x50\x9d\xbf\xfe\xea\xaf\xbe\ +\x72\x4e\x21\xce\x76\x05\xc8\xe7\xf3\xe4\x72\x39\x47\xfc\xca\x51\ +\x02\xe1\xeb\x81\x73\x1f\xee\xfd\x5f\xfd\xea\x57\xcf\x29\xc3\xd9\ +\xa6\x00\x77\xdf\x7d\x37\x42\x08\x56\xaf\x5e\xcd\x9a\x35\x6b\xe8\ +\xeb\xed\x25\x9d\xc9\x30\xaf\xa7\x07\xd3\xb2\x50\x4a\x05\x2c\x84\ +\x50\xa0\x14\x7c\xed\x6f\xbe\xf6\x86\xaf\x7f\x4e\x31\xde\x47\x0a\ +\xd0\xbd\x92\xc9\x24\xd9\x4c\x86\x54\x3a\xc3\x8a\x15\xcb\x59\xb7\ +\x6e\x1d\xd9\x5c\xce\x91\x7c\x97\xab\x50\xae\x89\xf0\xf4\xe4\xeb\ +\x5f\xff\xfa\x39\x65\x78\xbf\x28\x80\x52\x8a\x7b\xee\xb9\x67\xd6\ +\xbf\x29\xa5\xb4\x1f\x47\xe0\xa6\x61\xb0\xfa\xfc\xf3\xb9\xec\xd2\ +\x4b\x59\xb9\x72\x25\x96\x65\x39\x1f\x52\xb8\xba\xa0\xf4\xdf\x12\ +\x81\xe0\xef\xfe\xee\xef\xce\x59\x87\xf7\xac\x02\x8c\x8d\x29\x05\ +\x01\x05\x50\x00\x52\xe1\xff\xa7\x94\xfb\xb7\xbb\xd3\x95\x77\x3f\ +\xe4\x72\x39\xd6\xac\x59\xc3\x92\x25\x4b\xc8\x66\xb3\xf4\xf5\xf6\ +\x91\xce\xa4\x35\xab\x80\xaf\x11\xd2\xfd\xfd\xf7\x7f\xff\xf7\xe7\ +\x5c\xc6\x7b\x45\x01\xc6\xc6\xc6\x14\xba\x02\x78\x3b\x3e\x20\x6c\ +\x50\x4a\xba\x8a\xd1\xb9\xad\x5b\x07\x50\x58\x96\x49\x26\x9d\x21\ +\x9e\x4c\x32\xd0\xbf\x90\x0d\x1b\x36\xb2\x76\xed\x1a\x5f\x11\x02\ +\x38\xc2\x77\x23\x20\x94\xe2\x1f\xbe\xf1\x8d\x73\x0a\xf1\x8b\x50\ +\x80\x93\x63\x63\x4a\xa0\xb8\xe7\x9e\xcf\xe3\x6c\x7c\x85\xf0\x84\ +\x2b\x3b\x16\xc0\xf1\xf7\x8e\xb0\xa5\xec\x08\x54\x21\x11\x8e\x81\ +\x40\x29\xe9\xe0\x00\xa9\x90\x74\xa2\x86\x9e\x5c\x8e\x4b\x2e\xb9\ +\x84\x4b\x2e\xbe\x98\x4c\x36\x87\x30\xc0\x10\x86\xe3\x36\x54\x37\ +\x96\x70\x9e\xf8\xcd\x6f\x7e\xf3\x9c\x32\xbc\x2b\x0a\x70\x72\x4c\ +\x81\xe2\xf3\x9f\xff\xbc\xbf\xa3\x01\xa4\x94\xce\x3b\x4b\x90\x4a\ +\x6a\x96\x40\x05\x76\xb4\x8f\x0f\x5c\xe1\x4b\xd5\xb1\x22\x40\x47\ +\x89\x34\xeb\xb2\x6a\xd5\x2a\x56\xad\x5a\x4d\x5f\x5f\x2f\x7d\xbd\ +\x7d\x2c\xec\x5f\x80\x65\x85\xdc\xe7\x38\x6f\xaa\x10\xfe\x7b\xfe\ +\xe3\xb7\xbe\xf5\x4b\x1d\x69\x9c\x61\x05\x38\xa9\xf0\x2c\x80\x72\ +\x84\xed\x0b\x0b\xd5\xc1\x02\x3e\x10\x04\x25\x65\x40\x01\xbc\x9d\ +\xee\x29\x8d\x67\x3d\x82\x8f\x71\x84\xe9\x28\x93\xbb\xdb\xa5\x24\ +\x9e\x48\x90\x4a\xa5\x48\xa5\x52\xac\x5d\xbb\x96\x8b\x2e\xba\x88\ +\x79\x3d\x3d\xbe\x25\xe8\xc4\x1b\x22\xa8\x58\x0a\xbe\xf3\x9d\x7f\ +\xfa\xa5\x50\x86\x33\xac\x00\xa3\x4a\x29\xf8\xfc\xe7\xef\x71\x77\ +\x72\x47\x60\x52\xc7\x04\x01\x21\x3a\x6e\x42\x4a\xd9\xb1\x18\x1d\ +\xa6\x08\x25\xa5\x6b\xd6\x05\x12\x57\xe0\xba\x72\xb9\xff\xae\x5c\ +\x6b\x21\x95\x9a\xa5\x50\xeb\xd6\xaf\xe3\xca\x2d\x57\xb2\x76\xcd\ +\x5a\x84\x10\x98\xa6\x89\x61\x18\x1d\x9c\xe2\x38\x2a\xff\x79\xdf\ +\xfd\xee\x77\xcf\x5a\xeb\x70\x46\xbf\xc0\xe8\xc9\x93\x0a\x37\x0c\ +\xd4\x01\x9d\xe3\xe7\x95\xbf\x53\xa5\x0b\xd6\xa4\x06\x12\x3d\xeb\ +\x10\x70\x07\x2e\x06\xd0\x79\x01\xe5\x09\xd9\x17\xb4\xc4\xff\x53\ +\xc9\x80\xa2\x79\xd6\x44\x0f\x3d\x73\xb9\x2c\x6b\xce\x77\x22\x8d\ +\x5c\x2e\xc7\xa2\x45\x83\xf4\xe4\xe6\x69\xd6\xc1\x07\x0f\x3e\xb0\ +\xfc\xe7\xef\x7d\xef\xac\x71\x19\x67\x56\x01\x46\x47\x95\x42\x71\ +\xcf\xdd\xf7\xb8\xe6\x5d\xb9\x4c\x9f\x72\x77\xac\x00\xa9\x1c\xaf\ +\xec\x2b\x80\x2b\x30\xa1\x50\x76\x47\x0c\xd2\x77\x0d\xae\x60\x03\ +\xe8\xdf\x05\x90\x7a\x64\xe1\x3d\x1e\xcf\x65\x28\x90\x60\xe3\xfb\ +\x9a\x40\x44\xa2\x94\xc2\xb2\x2c\x12\x89\x04\xf1\x78\x9c\xc1\xc1\ +\x45\x5c\x7c\xc9\xc5\x6c\xde\xb8\x51\x73\x5b\x04\x08\x29\xe7\x73\ +\x3a\xcf\xff\xfe\xbf\x7e\xff\x7d\xa9\x10\x67\x56\x01\x46\x1c\x05\ +\xb8\xfb\x9e\x7b\xe6\x30\xf7\x2a\xe8\x16\xd0\x76\xb3\x2b\x2c\xa9\ +\xa4\x7f\xa1\x7d\x81\x4b\x39\x2b\x8c\xf4\xac\x4a\x10\x40\x4a\xd7\ +\x35\xe8\x20\x11\xff\xfe\x8e\x25\x50\x7e\xa4\xd0\xf9\x2c\x2a\x10\ +\x8d\x64\x73\x59\x2e\xbf\xec\x72\x2e\xbb\xec\x32\x7a\xe6\xf5\x60\ +\x1a\x26\x56\x28\xe4\x5e\x3c\xc7\x1d\xe9\xd6\x0a\x05\x3f\xf8\xe1\ +\x0f\xde\x17\x56\xe2\x8c\x7e\x90\x91\x91\x11\x87\x0a\xfe\xdc\xdd\ +\x1d\xbf\x8c\xf2\x85\xe8\x47\x04\x01\xd3\xdd\x85\x11\x74\xe2\x48\ +\x67\x0f\xe7\xb8\xdf\xd1\x1b\x4d\xc0\x72\x0e\xc5\xf2\x05\xed\x1a\ +\x78\x29\x3b\xae\xc9\x7b\x6f\xef\x73\xea\x8f\xd3\xde\x7b\xd5\xaa\ +\x55\xac\x58\xb1\x92\xf9\xf3\x7b\x19\x1c\x1c\x64\xf1\xe2\x25\x84\ +\xc2\x21\x9f\x94\x52\x5a\xb6\xd3\x7b\xed\x87\x1e\x7a\x98\x6a\xb5\ +\xfa\x9e\x53\x88\x33\xab\x00\xc3\x23\x8e\x05\xb8\xfb\xee\x00\x06\ +\xf0\x04\x22\xbc\xd0\x4e\x0b\xe7\x7c\xe5\xe8\xda\x9d\x52\x69\xa6\ +\xbb\xdb\x7a\x74\xef\x68\x6d\xb7\x0b\xd1\xe1\x16\x7c\x17\x71\x8a\ +\xe7\xa1\x09\x7c\x6e\xb0\xea\x50\xd0\xbe\x12\x01\xd1\x68\x94\x44\ +\x2c\x4e\x2a\x9d\x64\xe3\xa6\x4d\x5c\x7e\xf9\xe5\x2c\x98\xbf\x20\ +\xa0\x08\xde\xf7\x0e\xba\x0f\xf8\xf1\x4f\x7e\xfc\x0b\x57\x86\x33\ +\xfa\x66\xc3\xc3\xc3\x7e\x32\x28\x08\xe4\x34\xdf\xad\xf9\x6b\xc7\ +\x1a\x78\x02\xf7\x84\xdd\x11\x9c\xaf\x08\x74\xf0\x83\xf2\x14\x42\ +\x0a\x1c\x34\xa1\xb9\x87\x00\xdb\xa8\x2b\x86\xea\xec\x70\x9d\x84\ +\xf2\xdf\x47\xb7\x40\x1d\x0c\xa1\x24\x9a\xe2\xea\x60\x54\x38\x8a\ +\x2b\xf0\x3f\xe7\xba\xf5\xeb\xb8\xea\xaa\xab\x58\x7d\xfe\x6a\x22\ +\xe1\x08\x91\x70\x04\xd3\x32\x3d\x7e\x32\xf0\x5c\x50\xdc\x7b\xef\ +\xbd\xbf\x10\xeb\x70\xc6\x15\x40\xa1\xb8\xfb\x73\x9f\x43\x2a\x5c\ +\x56\x4f\x6a\x3c\xbe\x73\xa1\x95\x74\x19\x3f\x74\x53\xae\x09\x91\ +\xce\xee\x0b\x28\x8f\xec\x98\x67\x49\xd0\xbf\x63\x2b\xa4\x08\x9a\ +\x7c\x5c\x76\x51\x49\x81\x12\x2e\x46\xe8\xe2\x1d\x3a\xa1\xa4\x86\ +\x3d\x3c\x2e\x42\x57\x2c\x98\xc3\x25\xe9\x34\x76\xc7\xda\x65\x73\ +\x59\x56\xad\x5a\xc5\xe2\xc1\xc5\x2c\x58\xb8\x80\xe5\xcb\x96\xd3\ +\xb7\xa0\xcf\x0f\x61\x41\x75\x38\x0e\xe5\x90\x55\x5b\xb7\xde\xcf\ +\xf2\xe5\xcb\x01\xf8\xed\xdf\xfe\xed\x33\x26\x27\xeb\x4c\x2a\x40\ +\xc0\x04\x2a\xdd\x37\x76\x4c\x28\x9a\xc0\x55\x20\xc9\x13\x24\x66\ +\xa4\x92\x8e\xb6\x76\x3c\x81\xe6\xa7\xf5\xe7\xb8\xd7\x54\x04\x81\ +\x5d\x87\x53\x70\x93\x0e\x92\xa0\x20\xe9\x28\x15\x73\x80\x4c\xe5\ +\xbb\x20\xba\xac\x0a\x1d\x65\x71\x77\x94\xf3\xb7\xf4\x23\x84\xe9\ +\xa9\x69\x76\x4d\xed\x62\x87\xda\x81\x69\x98\xc4\x62\x31\xc2\xe1\ +\x08\xcb\x97\x9f\xc7\x15\x57\x5c\xc9\xa5\x97\x5e\x8a\xee\x1b\x94\ +\x82\x5b\x6f\xbd\x8d\xd7\x5f\x7f\xed\x8c\xbb\x00\xeb\xcc\xbe\xbc\ +\xea\x2a\xf6\x90\xbe\x32\x30\x87\x9f\xf7\x4c\xb8\x0e\xd6\x3a\xbe\ +\x9b\x0e\xdb\x17\x10\xca\xec\xf8\x7f\xae\x1d\xaa\x03\x32\xe8\x4e\ +\x3a\x75\x14\xab\x5b\x21\x84\xef\x76\x1c\xc5\x09\x2a\xb1\xa7\x89\ +\x22\xa8\x30\xfe\xef\x8e\x1b\x11\xee\x7b\xb4\xed\x36\xa5\x52\x19\ +\x28\x31\x31\x31\xce\xae\x5d\xcf\x22\xa5\x22\x97\xcb\x70\xe5\x15\ +\x5b\xb8\xf4\xb2\x4b\x58\xb5\x7a\x75\x80\x7b\x38\x93\xcb\x38\xb3\ +\xe2\xef\x20\x7d\x3d\xe6\x96\x6e\x98\x16\x08\xbb\x3c\x1a\x57\xa9\ +\x59\x24\x90\xf0\x4d\xbe\xce\x0c\x7a\x22\xf1\x14\x49\x04\x49\x1b\ +\xd5\x79\x0d\x6f\xe7\xbb\xf0\x41\x0b\x25\x35\x80\xa6\x2b\x8a\x1b\ +\x86\xa2\x04\x1e\x85\xa0\xfc\xf7\x50\x7e\x98\xe9\x7f\x27\x82\x58\ +\x83\x40\xae\x82\x8e\x4b\xf3\xc1\x0d\x01\x20\x0b\x8a\xe9\xe9\x02\ +\xf7\xdd\x77\x2f\x5f\xfc\xc3\x3f\x0a\x28\xf1\xfb\xda\x02\x08\xf4\ +\x5d\xa5\xd5\x82\x82\x7f\x31\xbd\x6b\x22\x7c\x21\x05\xd1\xb9\x2f\ +\x0b\xa9\x10\xee\x4e\x13\x1a\x48\x73\x4c\xaf\xf2\xa5\xec\xbf\xa6\ +\xc7\x25\xe0\xd3\x82\x1d\xd0\xa9\x11\x48\x81\x1d\xaf\x5b\x0f\xe1\ +\x2a\xdc\x2c\xc1\x2a\x82\x46\x4c\x79\x54\x00\xd8\x0e\x81\xd5\xe1\ +\x2b\x84\x1f\x35\xe8\x8a\xab\x7c\x1c\xd4\xa5\x54\x74\xa2\x85\x77\ +\x6b\x9d\x61\x0c\xa0\xef\x46\x8f\x7d\xeb\xec\x38\x1f\xb0\x21\x91\ +\x2e\xf8\xf1\x2f\x66\x60\xa7\x68\xb7\xbb\x5f\x5f\x31\x4b\x88\x3e\ +\x17\x20\x14\x42\xba\x56\x42\x76\x04\xdf\xbd\x63\x03\x69\x69\x82\ +\x78\x45\x75\xb9\x04\xa9\x14\xc2\x45\xee\x3e\xd0\x13\x1d\x96\x53\ +\x0f\x11\xe9\x76\x2f\x3a\x8c\xf0\x4d\xa4\xf4\x0b\x62\x84\xc7\x41\ +\x28\xde\x35\x25\xb0\xce\x30\x04\x08\x12\x40\x4a\xbb\xe0\x04\xc9\ +\x16\x2f\xe4\xd3\x13\x39\x7e\x05\x31\x6a\x56\x82\x47\x04\x5e\x5f\ +\xcd\xde\x65\x5d\x8a\xe3\xf8\x6f\xa1\xd5\x1c\x76\x95\xa8\x0b\xcf\ +\x9f\x78\x56\x43\x7f\x0d\xe5\x2b\x10\x3a\x26\xe8\x52\xa2\xd9\xb8\ +\x83\xc0\x67\x51\xaa\x8b\x46\xd6\xb2\x92\x01\xd7\xf1\xee\xc9\xff\ +\x0c\x5b\x80\x0e\xb6\xee\xfa\xf2\x68\x66\x59\xbb\x90\x01\x53\xa8\ +\x25\x6c\xb5\x42\x11\x7c\x25\x70\x90\xbe\x92\x4e\x9e\xc0\xb6\x6d\ +\x84\x10\x08\x21\x7c\x96\xd0\x8f\xb3\xdd\x0c\x9f\x1e\x9e\xa1\xba\ +\xcd\xbb\xc7\x06\x76\x14\xab\xf3\xef\x3a\xab\xe7\xd5\x13\x80\x12\ +\x41\x50\x88\x9e\x8e\xf6\x8a\x5f\xd0\x52\xdd\x74\x57\x2d\x69\x6e\ +\xc7\xcb\x86\x4a\xf5\x6e\x7a\x80\x33\x6d\x01\xdc\x22\x0c\xff\x3b\ +\x05\x59\x3e\xdd\x4d\x28\x7f\x97\xb9\x3e\xa0\x2b\x96\xee\xf0\x06\ +\xda\x45\x94\x8a\x76\xbb\xcd\xf0\xf0\x30\xcd\x66\x93\x64\x2a\x49\ +\x2a\x95\x22\x1a\x8e\x6a\x9e\x54\x6a\x3b\x5d\x63\x1f\x09\x0a\xdf\ +\xc3\x0c\x73\x85\x96\xba\xe6\x4a\xd5\xa9\x50\x55\x52\x78\xf1\x68\ +\x40\xc1\x7d\x0a\xda\x47\x9f\x9a\x45\xec\x0a\x6f\xbb\xcb\xd7\x84\ +\x93\xf3\x3e\x4b\x14\xc0\xaf\xbc\x91\x81\xf8\x5d\x79\xc4\x87\xd4\ +\xdd\x02\x01\x50\x36\x7b\x17\x2a\xed\x22\x76\xcc\x77\xbb\x6d\x53\ +\xab\xd5\x48\x24\x12\x24\x13\x49\x6a\x95\x2a\x53\x93\x53\x64\xb2\ +\x59\xa2\x91\x08\x42\x08\x4d\xb1\x3c\xc2\xa8\xab\x46\x40\x8f\x1a\ +\xf4\xb4\xb5\xd2\x43\x52\x2d\x6d\xed\xf3\x05\x6a\x4e\xda\x5a\x07\ +\x99\x7a\xe8\xaa\x5b\x37\xb4\xa4\x98\xfb\x20\x87\xb8\x0a\x5c\x89\ +\xf7\xb9\x02\x48\x14\x42\x04\x3b\x7f\x7c\x21\xea\xa1\xde\x5c\xbb\ +\x23\x10\x3a\x68\x60\x2f\xc0\xf8\x81\x61\x08\xda\xad\x16\xc9\x64\ +\x92\x25\x4b\x96\x70\xf9\xe5\x97\xf3\xe2\x8b\x2f\xb2\x67\xcf\x1e\ +\x0a\xf9\x3c\xe9\x54\x8a\x70\x24\x82\x61\x1a\x5d\xae\x41\x73\x50\ +\x1a\x32\xd3\x3f\xa3\xd0\x3a\x99\x5c\x02\x57\xf3\xed\x5e\x28\x18\ +\x0c\x3f\x03\x96\xa0\x1b\xd0\x6b\xce\x5d\x6a\x5c\x81\x52\x2e\x4d\ +\xaa\x57\x46\x9d\x0d\x18\x40\xcc\x91\x43\x57\x73\x30\x82\x1e\xe2\ +\xd7\xaf\x91\x4f\xf8\xb8\x75\x01\xaa\x9b\x29\x04\xda\xed\x16\xcd\ +\x56\x93\x56\xbb\x4d\x34\x1a\xa5\x5e\xaf\x53\x2c\x16\xf9\xd4\xa7\ +\x3e\xc5\x81\x03\x07\xd9\xb5\xeb\x69\xf6\xec\xd9\x4d\x3e\x9f\x27\ +\x1e\x8f\x11\x8d\xc6\x82\xb1\x84\x66\x4d\xa4\x74\x6a\x13\x11\x86\ +\x16\xa6\xe1\xe7\x08\x34\x9a\x5f\xab\x4d\x24\x68\xdd\x74\xf4\xd2\ +\x4d\x62\x09\x15\x00\xa6\x41\xf7\xa2\x66\x91\x58\x67\x47\x18\x18\ +\xc0\x46\x1d\x13\xdb\xf1\xbf\x52\xe3\x07\xbc\x1c\xbe\x03\xdc\x04\ +\x9d\x1a\xbf\x20\xbb\xd6\xf1\xd1\x85\x42\x91\xa9\xf1\x31\xb2\x96\ +\xc5\x4c\xa9\xc4\x8d\x37\xde\xc8\x23\x8f\x3c\xc2\xe2\xc5\x8b\x59\ +\xbc\x78\x09\x95\xca\x20\xd9\xec\x05\x1c\x38\xf0\x0c\xfb\xf7\xef\ +\x61\x7c\x7c\x82\x6c\x26\x4b\x34\x16\x05\x04\xcd\x66\x83\x46\xa3\ +\x81\x94\x12\x43\x18\x98\x96\x89\x69\x18\x08\xc3\xf0\x4b\xc4\x02\ +\x89\x23\xcd\x95\xf8\xda\xd3\x05\xf4\xe8\x62\x1f\x3d\x06\x14\x29\ +\x02\xa1\x6f\x37\x43\xa9\xa4\x13\x4e\xd2\x05\x84\xdf\xe7\x18\x80\ +\x40\x68\xa7\x5b\x03\x9d\x25\x53\x74\x13\x2c\xc1\x74\xad\x4e\xf0\ +\xf9\x17\x58\x2a\xaa\x95\x19\xd6\xc4\xe3\xcc\x4b\x26\x39\x16\x0a\ +\xb1\x6c\xd9\x32\x16\x2c\x58\xc0\x73\xcf\x3d\xc7\x4d\x37\xf5\x31\ +\x3e\xde\xcf\xd4\xd4\x0a\x36\x6e\xbc\x98\x0b\x2f\x7c\x85\x43\x87\ +\x76\xf0\xfa\xeb\xfb\x18\x1f\x1f\xf7\x85\xbb\x78\xf1\x62\xe2\xf1\ +\x38\xb5\x5a\x8d\x42\xa1\x40\xa5\x5a\xa5\xdd\x6e\x63\x08\x41\x24\ +\x1a\x25\x12\x89\x74\x5c\x90\x08\x96\x98\x3b\xd1\x80\x24\x68\x4e\ +\x82\x3c\x03\x52\x69\x89\x25\x8d\x75\xa4\xcb\x05\xe8\xc9\xa4\xb3\ +\x26\x0c\xec\x06\x58\x6e\xb6\xc4\x17\xbe\x6e\x36\x75\x57\xd0\x15\ +\x33\xeb\xdc\x81\x4e\xd0\xb4\x9b\x4d\x7a\xa2\x51\x6a\x8d\x3a\xcb\ +\xd7\xad\x25\x1a\x8d\xb2\x62\xc5\x4a\x5e\x78\xe1\x79\x4a\xa5\x02\ +\x7d\x7d\x8a\xe1\x61\x9b\xc7\x1f\x1f\xa0\xdd\x5e\x44\x6f\xef\x26\ +\x56\xac\xd8\xca\xc8\xc8\xb7\xd9\xbc\x79\x33\x1f\xbe\xf6\x5a\x16\ +\x2f\x5a\x84\x69\x18\xc4\xe2\x71\x84\x10\x14\x0a\x05\x8e\x1c\x39\ +\xc2\xee\xdd\xbb\xd9\xbb\x77\x2f\xe3\xe3\xe3\xc4\xa2\x31\x62\xf1\ +\x18\x86\x30\x5c\xdf\x7d\x0a\x21\xea\x7e\xdd\xa7\x80\x5d\xdd\x11\ +\xc1\x4a\xa8\x00\x2b\x84\x42\x6a\x5e\x41\x9c\x4d\x16\xa0\x93\xf2\ +\xd5\x76\x3f\x1a\x69\xa3\x82\xe0\x47\x2a\x27\x35\xac\x27\x5f\x82\ +\xc4\x4a\x27\xf6\x6f\xb5\x5a\x44\x2c\x8b\xe1\x66\x83\x95\xfd\x03\ +\xb4\xdb\x36\xb9\x6c\x96\x42\xa1\x40\xb1\x58\x20\x97\x6b\x72\xf5\ +\xd5\xa3\x6c\xdc\x68\x71\x62\x28\xcb\xd0\x89\x3e\x6c\xbb\x9f\xe5\ +\xcb\x97\xf3\x89\x4f\x7c\x82\x95\xab\x56\x12\x0e\x85\xb1\x4c\xd3\ +\x8d\xc1\x25\x0b\x17\x2e\x60\xe5\xca\x55\x5c\x79\xe5\x95\x0c\x0d\ +\x0d\xf1\xc2\x0b\x2f\xf0\xdc\xb3\xcf\x32\x74\xe2\x04\xa6\x69\x12\ +\x89\x44\x08\x59\x21\xbf\x7e\xd1\xab\x71\x0c\xec\x7a\x35\x3b\x51\ +\x85\x9a\x9d\xe1\xd4\x6f\x07\x73\x11\xa0\xce\x0a\x26\x50\xab\xb9\ +\x0f\xb0\x7e\x5e\x62\x47\x28\x3f\xa1\x23\xb4\x1d\xa1\xbc\x78\x5b\ +\xba\xb4\xb0\x6e\x09\xdc\xfb\x6c\xbb\x85\x68\xb5\x08\x03\x35\xdb\ +\x26\xe6\x82\x40\x61\x08\x9a\xcd\x26\xa5\x52\x09\xc3\x30\x1c\xff\ +\x6e\x54\x18\x18\x2c\x90\xcd\x8d\xb2\x6b\xd7\x2b\xf4\xf4\xf4\xb0\ +\x70\xe1\x42\x50\xd0\x6c\x36\x69\x81\xd3\x81\xea\xfe\x32\x0c\x83\ +\x4c\x26\xe3\x54\x0c\xaf\x59\xc3\x35\x57\x5f\xcd\x77\xbf\xf7\x3d\ +\x76\xee\xdc\x49\xb5\x5a\xc5\x30\x0d\x12\xf1\x04\x42\x38\xf5\x09\ +\xb2\x2b\xec\x0b\xe4\x14\x34\x4e\x40\xd2\x45\x2f\xab\x4e\x1d\x80\ +\xef\xee\xbc\xac\x95\x38\x5b\x2c\x80\x76\x51\x74\x02\x67\x16\x0b\ +\xa6\xb4\x74\xb1\x97\x37\x20\x58\x1c\xe2\xb1\x6f\x28\xb0\x6d\x09\ +\xb6\x4d\xb5\xd5\xa2\x06\xd4\x6a\x35\x1a\x8d\x3a\xad\x56\x0b\x21\ +\x04\x95\x99\x19\x22\x91\x08\x33\x33\x33\xd8\xb6\xc3\x15\x4c\x4d\ +\x4d\x50\x28\xec\x63\xf3\xe6\x8b\xb0\x2c\x8b\x56\xab\xe5\x0a\xbd\ +\x73\xb5\xf5\xdb\x08\x10\x08\xfa\xfb\xfb\x59\xbf\x7e\x3d\xe5\x72\ +\x99\x55\xab\x56\x71\xdf\x7d\x5b\xa9\x54\x2a\xc4\x63\xf1\x0e\x28\ +\xd4\x89\x4d\xff\x0f\xe1\x24\x87\xba\xbe\x67\x80\x31\x94\x1d\xa0\ +\xe8\xb1\xd1\xba\xd2\xbf\xcf\x31\x00\xc1\x5a\x7e\xcf\x07\xce\xba\ +\x28\xca\xcf\x8b\xf8\xf6\x60\x16\x08\xec\x38\x7f\x29\x9d\xc2\xd2\ +\x2a\xf0\x9c\x94\xc8\x6c\x96\xdd\x7b\xf6\x90\x4a\xa7\xa8\x54\xaa\ +\x98\xa6\xc9\x4b\xaf\xbc\x42\x2c\x1a\x45\x29\x45\xa9\x54\x62\x66\ +\x66\x86\x6c\x36\xcb\xe2\xc5\x4b\x59\xb9\x72\x25\x52\x4a\xbf\x1a\ +\xc8\x91\xb9\xf0\x7f\x77\x2b\x43\xdb\x6e\x33\x31\x39\x49\x7f\x7f\ +\x3f\x1f\xfb\xd8\xc7\xc8\xe5\x72\xfc\xc3\x3f\xfc\x03\xcd\x56\x13\ +\xcb\xb4\x4e\xd1\xd6\xd6\xc9\x40\x05\xaa\x8e\xd0\x29\xe2\x6e\x97\ +\xd0\x01\x0e\x4a\x9c\x15\x0a\x10\x20\xff\x83\x7c\x80\x17\xf6\x68\ +\x5f\x3c\x10\x05\xa0\xb1\x70\xc8\x00\x6b\xa6\x94\xa2\x56\xaf\x11\ +\x89\xc7\xd9\x78\xd9\x65\x5c\x78\xe1\x85\x3c\xfc\xf0\xc3\x3c\xfd\ +\xf4\x0e\x94\x92\x14\x8b\x45\x62\xb1\x18\xf1\x58\x9c\x68\x34\x4c\ +\xff\xc2\x7e\x56\xac\x58\x4e\x22\x99\x24\x1a\x8d\xd2\xd3\xd3\x43\ +\xb3\xd9\x74\x05\xac\xdc\xdf\x42\x53\x02\x47\x2b\xbc\x9b\x95\x4a\ +\x85\xe3\xc7\x8f\x73\xc1\x86\x0d\xd8\xb6\xcd\x96\x2d\x5b\x78\xed\ +\xb5\xd7\x78\xe2\x89\x27\xc9\xa4\xd3\x7e\xde\xdb\xc1\x03\xa2\xeb\ +\x7b\xca\xa0\x2d\x54\xce\x5e\xef\x60\x04\x81\x52\x76\x90\x7d\x14\ +\xef\x1e\x13\xf4\x2e\x85\x81\xcc\xca\x00\x7a\x05\x00\x5a\x1a\x48\ +\xdb\x11\x7a\xaf\x9e\x08\x90\x23\x52\x39\xfe\x7f\x7a\x3a\xcf\xe6\ +\x4d\x9b\xb8\xf5\xd6\x5b\x49\xa5\x52\x48\x29\xf9\xd9\xcf\x76\x93\ +\xcd\x66\xb9\xe6\x9a\x6b\xc8\x66\xb3\x98\xa6\x45\x4f\x4f\x8e\x58\ +\x2c\x86\x2d\x25\xa6\x61\x60\x9a\xa6\x0f\x20\x9d\x0e\x62\x81\x61\ +\xcc\xed\x02\xbc\xdb\x27\x4e\x0c\x51\x2a\x16\x19\x1c\x1c\xa4\xd5\ +\x6c\x82\x10\x5c\x7d\xf5\xd5\x3c\xf7\xdc\x73\x34\x5b\x4d\xc2\xa1\ +\x90\x9f\xc3\x50\x48\x2d\xa1\xa3\x50\x7e\x9b\xb2\xea\x28\xbb\x47\ +\x0d\xe3\x55\x41\x75\x6a\x23\xba\x01\xe4\xfb\xde\x05\x08\xa1\x02\ +\xb1\xb0\x5e\x19\xec\xed\x14\xc3\x30\xb0\x6d\xbb\x03\x02\x85\x0c\ +\xa0\xe2\x40\xac\x8c\xa2\xd5\xb6\x69\xb5\x5a\xac\x5e\xbd\x9a\x44\ +\x22\x81\x94\x92\xd5\xab\x57\xb3\x7c\xf9\x72\xa2\xd1\x28\xd2\xb6\ +\x41\x08\x2c\xcb\x44\x29\x45\xa3\xd1\x70\x94\xc7\x30\x68\x36\x9b\ +\x4e\x19\x94\x30\x5c\x6b\xaf\xed\xfa\x39\x14\x40\x4a\xc9\xde\x57\ +\x5f\x25\x99\x4c\x32\x6f\xde\x3c\x9a\x2e\xc6\x18\x1c\x1c\xe0\xfc\ +\x35\xe7\xf3\xca\x4b\xaf\xb8\x93\x4c\xd4\xac\xb1\x36\xbe\xca\xcb\ +\x4e\x07\xd1\xac\x2a\xe5\x59\xf4\xb4\x46\x7a\xbd\xef\x2d\x40\xa0\ +\x47\x3f\x98\x30\xf1\x2e\xd8\xbc\x25\x8b\x09\x25\x7b\x68\xd7\xcb\ +\xb4\xcb\x45\x9a\x95\x2a\xf5\x46\x83\x66\xb3\x05\xb6\xdd\x45\x04\ +\x39\xcf\x09\x99\x26\x21\x2b\xc4\xd0\xd0\x10\x9b\x36\x6d\x22\x14\ +\x0a\x03\x0a\xc3\x30\x68\x34\x9a\x3e\x82\x6a\xb7\xdb\x18\x86\x5b\ +\x7d\xa4\x14\xa6\x69\x82\x10\xd8\x4a\xa1\x64\x1b\x61\x88\x40\x53\ +\xa8\xae\x09\xc2\x41\x80\x94\xcb\x65\x0e\x1e\x3c\xc8\xea\x55\xab\ +\x09\x85\x42\x3e\xc8\x14\xc2\x60\xed\xda\xb5\xbc\xf0\xfc\x0b\x2e\ +\x63\x29\x02\x34\x70\xa7\x32\x48\x75\xed\x6e\x7c\x65\xf0\x72\x00\ +\x81\xc2\x14\x3d\xed\x7d\x36\xa4\x83\x03\x89\x9e\x00\x69\xe2\x88\ +\xf3\xfc\x6b\x6e\xa7\x69\x7c\x88\x91\x03\x8a\x7c\x7d\x0c\x15\x3b\ +\x4a\xbc\xf7\x30\xb9\xd0\x71\xec\xfa\x04\x63\x87\x8f\xf8\x51\x83\ +\x10\x20\x6d\x85\x30\x4d\xe6\xf5\xf5\xb1\x73\xe7\x2e\x6c\xdb\xe6\ +\xba\xeb\xae\xa3\xa7\xa7\x27\xd0\x51\x6c\x18\x06\xad\x56\x8b\x46\ +\xb3\xe1\x03\xb5\x7a\xa3\x4e\xb3\xd1\x24\x64\x59\x84\xc3\x61\x84\ +\x61\xf8\x3c\xbf\x65\x59\x44\x42\x61\x0c\xd3\x08\x60\x98\xd7\x5e\ +\x7d\x95\xca\x4c\x85\x15\x2b\x56\x60\xb7\x6d\x5f\xb1\xa5\x54\x54\ +\x66\x2a\x8e\x65\xb1\x25\xc2\xd1\x34\x0d\xbb\xa8\xae\x01\x15\xaa\ +\x53\xad\xac\x13\x61\x92\x39\x13\x5e\x67\x45\x18\xa8\x57\xfb\x06\ +\x0a\x26\x34\x66\xb0\xd5\x84\xa3\x87\x62\x34\x1b\x16\x4b\x2e\xc8\ +\x51\x9b\x59\x43\xa5\xa8\xb0\x43\x4d\x96\x5c\x54\x64\xe9\x25\x8f\ +\x31\x79\x74\x37\x33\xf9\x32\x96\x05\xf5\xd2\x34\xf5\x62\x89\x70\ +\x28\x44\x28\x6c\xb2\x73\xe7\x4e\x26\x27\x26\xb8\xe3\xce\x3b\x89\ +\x27\x12\x58\x86\x41\xa9\x54\xa2\x5c\x2e\x63\x48\x89\x85\xa0\x56\ +\xaf\xd1\xa8\x56\x49\x44\xc2\xc4\x42\x61\x0a\xcd\x26\xf5\x46\x03\ +\x25\x25\x91\x48\x84\x70\x24\x02\xe1\x30\x84\xc3\x44\x92\x49\x52\ +\xe9\x34\xf1\x58\x8c\x7a\xad\xc6\x9e\xbd\x7b\x19\x1c\x1c\x24\x97\ +\xcb\xd1\x6e\xb7\xfd\xb8\x7d\xcf\x9e\x3d\x3c\xfb\xec\xb3\x9a\xdb\ +\x98\x8d\xe8\x03\x3d\x89\x82\x4e\x53\x4c\x17\x59\xd4\x49\x30\x05\ +\x13\x4a\x67\x81\x05\xa0\x8b\xe9\xea\x28\xba\x07\x8e\x8f\x3d\xfb\ +\x20\xe7\x5d\x52\xc1\x6e\x35\x69\x54\x0d\x2e\xbc\xf3\x23\x1c\xd9\ +\x93\xe4\xd5\x1d\x11\xbe\xf7\x5f\x17\x30\xb0\xfc\x2e\x56\x6e\xfe\ +\x10\x7d\x6b\x05\xe9\xbe\x34\xc5\xc9\x3c\x33\xe3\x43\xb4\x6a\x87\ +\x99\xdf\xdc\xcf\xe0\x9a\x21\x46\x8e\xef\xe7\xfe\xfb\x7e\xc4\x45\ +\x1b\x36\x11\x13\x06\x21\x29\x19\xc8\x66\x89\x9a\x26\xc2\xb6\x49\ +\x67\x32\x64\xfa\xfb\x91\xb6\x4d\xa3\xd1\xc0\x02\xa2\xa1\x10\x48\ +\x49\xb9\x5a\xa5\x50\x2e\x53\x29\x16\xa9\x34\x9b\x94\x6d\x9b\xe9\ +\x48\x84\x44\x7f\x3f\x85\x5a\x8d\x89\x89\x09\x2e\xbd\xf4\x52\x2c\ +\xcb\x42\xa1\x68\x35\x5b\x1c\x3a\x74\x88\x6d\xdb\xb6\x31\x3c\x3c\ +\x4c\x2c\x16\x73\xc0\xa4\xec\x22\x79\x3c\x21\x4b\x02\x39\x7f\xed\ +\x41\x81\x14\x32\x5d\x2d\xef\x67\x89\x0b\x20\xd8\xdb\xa7\xc5\xbf\ +\x5e\xa8\x33\x7a\xe0\x20\x23\xfb\x0e\x20\x42\x16\xa9\x9e\x1c\x1b\ +\xae\xbb\x94\xda\xcc\xf9\xd4\x66\x60\xc5\x46\x45\xef\x60\x14\xa5\ +\xfa\x38\xb2\xb7\x49\xab\x15\x26\x9e\x5e\x40\x32\x3b\x88\x95\xbe\ +\x0c\xd3\x82\x9e\x95\x33\xac\xfc\xe0\x09\x7e\xfa\xc3\x2f\x31\x79\ +\xe8\x20\xbf\x71\xd5\x55\x64\xe3\x49\xec\x76\x1b\x4b\x08\x22\x96\ +\x45\xbb\xd9\xa4\xdd\x68\x38\x15\x37\x42\x60\xb7\xdb\xc8\x46\x03\ +\xbb\xdd\x26\xa7\x24\xb9\x70\x18\x29\x04\xed\x70\x98\x6a\xbd\xce\ +\x54\x65\x86\x57\x9f\x7b\x8e\xc7\x47\x46\x58\xb4\x62\x05\x8b\x16\ +\x2d\x42\x08\x87\x61\x3c\x7c\xf8\x30\x0f\x3f\xfc\x30\xc7\x8e\x1d\ +\x23\x1a\x8d\x62\x9a\x96\xdf\x78\xaa\x82\x5b\x3f\xa0\x08\x72\x96\ +\x55\x24\x58\x8e\xd6\xd5\x28\xa3\x84\x3a\x8b\x5c\x80\x36\x1a\x46\ +\x47\xcb\x81\xd1\x30\xcd\x26\xc5\xb1\x31\x5e\x7f\xf2\x49\x12\xd9\ +\x0c\x97\xdd\x22\x49\x26\x86\x38\xf1\xea\x3e\xa0\xcd\xc2\x05\x2d\ +\x92\xd9\x04\x43\xaf\x9f\xa4\x5e\x4c\x43\x74\x39\x6d\xce\x63\x6a\ +\xa4\x9f\x56\x73\x1d\x98\x5f\x60\xcf\xa1\xbf\xa3\xb4\xde\x20\x51\ +\x9d\x44\xd8\x2d\x9a\xd2\xa1\x89\xa5\x6d\x83\x6d\x23\xa5\x8d\x6a\ +\xdb\x28\xdb\xf9\x91\x52\x22\xdb\x6d\x94\xf4\xee\x93\x28\xdb\x26\ +\x27\x6d\x8c\xa9\x29\x1a\xe3\xe3\xa4\x36\x6d\x22\x12\x89\xd0\x68\ +\x34\xd8\xb3\x67\x0f\x8f\x3f\xfe\x38\x47\x8e\x1c\x21\x91\x4c\x12\ +\x72\xa3\x8c\x59\xc9\x2b\x37\xe1\x15\x74\x7f\x9d\xde\x86\xb9\xd2\ +\xc6\x81\x26\xd4\xb3\x06\x04\xa2\x27\xbc\xb4\x4c\x98\xcf\xf8\x75\ +\x62\x61\x0f\x31\xbf\xfa\xe8\x83\x9c\xb7\x69\x94\x5a\xb9\xc4\xc8\ +\xfe\x03\xa8\x96\x4d\xb3\x5e\xa3\xd9\x6c\x3a\x48\x3e\x14\xc2\x32\ +\x0d\xc2\xd1\x18\xd1\x44\x82\x85\xeb\x36\xb0\x70\xf5\x87\x99\x9a\ +\x58\xcb\x8b\xe6\xa7\xf9\xe1\x91\x29\xae\xe8\x7b\x95\x65\xf1\x03\ +\x44\xa6\x0e\x23\x6d\x89\xdd\x56\x8e\x70\xa5\x8d\xec\x52\x00\xff\ +\xb6\xdd\xb9\x7f\xa2\xd1\xe0\xa5\xf1\x71\xd6\x47\x22\xa4\x86\x86\ +\x38\x31\x34\xc4\xc1\x43\x87\xd8\xb1\x63\x07\xa3\xa3\xa3\xa4\x52\ +\x29\x0c\xc3\xe8\xb0\x97\x82\x00\xb6\x09\x94\xb8\x69\xcd\x1f\x52\ +\x06\x53\xda\x7a\x01\x8c\xe8\x2e\x4b\x17\x67\x0b\x06\x10\xc1\x24\ +\x90\x40\xb8\x4d\xa0\xb3\xc7\xb8\x81\x62\x66\x72\x8a\xdd\x8f\x3c\ +\xda\x35\x55\xac\x53\x80\xd1\x6e\x34\x68\x01\xd5\x4a\x15\x26\x27\ +\x19\x39\x7a\x94\xc4\xae\x67\x58\xb4\x76\x13\x57\xde\x7c\x2b\xe3\ +\xe3\x1f\xe0\x47\x7b\x2e\x24\x31\x32\xc2\xca\x99\x47\x59\x91\x7e\ +\x9d\x6c\xe1\x67\x84\xdb\x05\x54\xbb\x89\x6c\xdb\x48\xdb\x49\x36\ +\x75\x76\xbe\xab\x00\xd2\xa6\xd5\x6a\xb3\xab\x56\xa3\xda\x68\x70\ +\xc5\xbc\x79\x8c\x1d\x3d\xca\xbf\x7e\xe7\x3b\x4c\x14\x0a\xd4\xea\ +\x75\x52\xc9\x14\xc2\x34\x7c\x20\x13\x28\x21\xef\x4e\x78\x75\x36\ +\x7e\x47\xdd\xbb\xd2\xdc\x73\x65\x08\x95\x50\x67\x51\x59\x78\xc0\ +\x27\xea\xee\x80\xae\x2c\x61\x27\x33\x48\xd7\x85\xf1\x52\xaa\xca\ +\x9b\xc9\xe1\xa6\xe0\xbc\x8b\x5e\x9e\x9c\xe2\xb5\x27\x1f\x61\x62\ +\xff\x5e\x56\x5f\x79\x05\x8b\xef\xf8\x00\xca\xbc\x92\xe1\x97\x3f\ +\xca\xe8\x78\x81\x54\xfe\x49\x7a\x4b\xbb\xc8\x85\x4f\x92\xb0\x27\ +\x30\x2b\x53\xa8\x4a\x01\x51\x2b\x21\x64\xdb\x2d\x09\x13\xb4\x25\ +\xec\x93\x36\x87\xec\x36\x0b\x85\x60\xbc\x58\xe2\x67\xa1\x10\xd5\ +\x79\x69\xe2\x3d\x49\x12\x2a\x45\xb3\xd2\x70\x12\x51\xaa\xd3\x5e\ +\x26\xe6\x6a\x6c\xd5\x62\xff\xc0\xd0\x8a\x80\x35\x50\x81\xd1\xb7\ +\x4a\x2f\x36\x3a\x6b\xea\x01\x7c\x9a\x53\x2b\xbe\x0c\x74\x0c\x74\ +\x1c\x9e\xec\x46\xc6\x74\x3a\x6d\xfd\x52\x71\xa1\x55\xed\xba\x1a\ +\xe3\x59\xe0\xf1\x91\x51\xc6\xbf\xff\x03\x0c\xeb\xc7\x9c\x77\xd1\ +\xe5\x44\x52\x6b\x60\xe1\x66\xf2\xbd\x1f\xe3\xc4\xc9\x8f\x62\x95\ +\x4f\x92\xa9\x1f\xa2\xa7\xf5\x1a\xe9\xea\x3e\xc2\xa5\x13\xa8\xe9\ +\x31\xc8\x4f\x60\x19\x2d\xa6\x65\x89\xa7\xec\x2a\x93\x18\x84\x12\ +\x59\x4e\x0e\x0c\x10\xdf\xfc\x71\xce\x8b\x5e\x8b\x65\x8c\x81\xbd\ +\x8f\x56\xfd\x00\xf5\x99\x61\x86\x5f\x7b\xdd\x25\x9d\x64\xa7\xe7\ +\xc0\xff\xb6\xba\x89\x97\xc1\x56\x20\xbd\x32\xaa\xcb\x35\xfa\x5b\ +\xc0\xab\x3e\x3a\x5b\x92\x41\xdd\x7e\x31\x38\x7d\x43\x06\x4b\xa5\ +\xb4\x4e\x60\x9d\x3f\x57\xdd\x54\x6b\x17\xa8\xd4\x9b\x37\xda\xad\ +\x16\x87\x9e\x7b\x1a\xcb\x78\x86\xde\x81\x41\x56\x7d\x70\x0b\x62\ +\xe9\x00\x95\x99\x01\xf2\xd3\x03\xec\x2b\x6d\xa6\x59\xca\x62\x36\ +\x2a\xc4\x6b\xc7\x09\x4f\x1e\x40\xd9\x0d\x0e\x17\xe1\xf0\x58\x13\ +\x61\x16\x18\x59\xd4\xe2\xe2\xbb\x36\x70\xfe\xc5\xd7\x70\xe8\xa5\ +\x08\xa1\xb0\x81\xe2\x36\x62\x89\x36\x99\xbe\x22\xf9\x13\x8f\x71\ +\xf2\xf0\x53\x4c\x0f\xed\x63\xe8\xc0\x41\x64\xbd\xae\xf5\x2d\xcc\ +\x51\x21\x4c\x97\x6b\x08\x00\x41\x1d\x2f\x74\xbb\xc5\xb3\x01\x04\ +\x2a\x8d\x0b\xe8\x4a\xef\xaa\xae\x2e\x21\xbd\x71\x6b\xce\x36\x2f\ +\xd5\x29\xc7\xf6\xe7\x0a\xa8\x20\xaa\x16\x80\x6c\xb7\x69\x28\xc5\ +\x89\xc3\x47\x38\x71\xe8\x10\xc2\xb2\x48\xf4\xcc\x23\xdd\xbb\x90\ +\x74\xdf\x20\xf1\xe5\x03\x58\xd1\x05\xd8\x0c\xd0\x56\x1b\x90\xf6\ +\x3c\xb2\x07\x5e\xe6\xd7\xd6\x0f\x50\x2b\x0b\xa6\x46\x2c\xa6\x87\ +\xfb\x79\xe2\x70\x04\x25\x05\x89\xb4\x22\xd3\x2b\xa8\xcf\x84\x38\ +\xba\xb7\x97\x56\xf3\x4e\x72\x7d\x5b\xb8\xf0\x8e\x93\x2c\x1d\xba\ +\x9f\x57\x9f\xbc\x9f\xd1\x23\x47\xe8\x50\xfb\xaa\xcb\xb2\x05\xbb\ +\x81\x3a\x43\x28\xba\x9a\x62\x82\x55\x14\xef\x7f\x2a\x38\x30\x0e\ +\x45\xa3\x41\x03\xa0\xc8\x4b\x83\x77\x0f\x72\xd2\xad\x80\x26\xe8\ +\xb9\xe2\x6c\x3d\x79\x26\x03\xa1\x94\xbb\xe3\x5a\x6d\x8a\x27\x4f\ +\x52\x3c\x39\x8a\x52\x2f\x3a\x11\x45\x38\x42\xba\xb7\x8f\xbe\x45\ +\x03\x64\x7b\x7b\x90\xc5\xfd\x1c\x7f\x3e\x45\x38\x91\x22\x62\x85\ +\x49\xcf\x5f\x42\x24\x39\x88\xdd\x1e\x20\x14\xff\x00\xd5\x72\x9a\ +\x74\x4e\xb0\xf1\x1a\x85\x15\x0a\xf3\xd2\x23\xfd\x3c\xf7\xd0\x00\ +\x03\x2b\x37\x72\xdd\xff\xfc\x51\x8a\x27\xb7\x31\x76\xec\x75\x46\ +\x0f\xee\x63\x78\xdf\x7e\x5a\x8d\x46\x30\xb3\x17\xe8\x25\xf4\xd2\ +\xbf\x02\x0d\x42\xfa\xd4\xb0\x38\x3b\xa8\x60\xa7\xc6\x45\xa8\xe0\ +\x90\x87\x40\x57\xaf\xeb\x06\xf4\x96\x3d\xbc\x9e\x3b\x85\x56\x0f\ +\x40\x57\xbb\x98\x4b\x96\x74\x51\xab\x4a\xe8\xe5\xda\x72\x96\xe5\ +\xd1\x71\x46\xbb\x51\x67\xea\xc4\x71\xa6\x86\x8e\xf9\xe3\x69\x0c\ +\x61\x62\xb7\xdb\x81\x1d\x18\x4b\xf7\x70\xfe\x95\x37\x92\x9e\x7f\ +\x25\xb5\x99\x2d\x3c\xf6\x9d\x1c\x86\x09\x33\x05\x90\x36\xbc\xf0\ +\x50\x88\xdd\x4f\xac\x63\xf5\x25\x2b\xe9\x1d\x28\xb1\xea\xe2\x09\ +\xc6\x8f\x3d\xc0\x91\x97\x1f\x61\xf2\xd8\x71\x26\x46\x46\xba\xe6\ +\x1a\x76\x98\x71\x81\xdd\xe9\x33\x40\xc3\x47\xf2\xac\x50\x00\xa7\ +\x40\xc2\x1f\xe3\x4a\x70\x50\x93\x0e\x0e\xd5\xac\x5d\xe2\x0d\x89\ +\xf6\xb2\x79\xda\x6b\x48\x15\xcc\xa7\x4b\x6d\x17\xc9\xd9\x53\x45\ +\xf4\x41\xd3\xcc\x39\xdf\xa7\x43\xcd\xd9\xb2\x1d\x9c\x14\xa2\x14\ +\x33\xf9\x09\x5e\x79\xe8\x5f\x48\x65\x1f\x64\xfd\xd5\x57\xb3\xee\ +\xb2\x2b\x68\x36\xaf\xe5\x85\x6d\x7d\xa4\x72\x8a\x5f\xf9\xbf\x25\ +\xa5\x89\xa3\x1c\x7a\x69\x98\xe9\xd1\x7e\xc6\x8e\xad\x40\x18\x9f\ +\x65\xe5\xa5\x9f\xe4\xe2\xdb\x5e\xe6\xa5\x87\xbe\xc6\xfe\x67\x9f\ +\xa5\x56\xa9\x76\x35\xb8\xb8\x35\x04\x73\x25\xca\xce\x06\x10\x18\ +\x28\x6f\xf6\x26\x84\xfb\xa2\xf3\x06\x43\x11\x14\x8a\x2f\x35\x9d\ +\x5c\x97\x5d\x8f\xe9\x6e\x1d\x93\xb3\xbb\x8d\xb4\xb2\xac\x40\xd5\ +\xed\xac\x71\xb1\x04\x53\xb5\x74\x0f\x8a\x72\x6b\x10\x5a\x4d\xa6\ +\xc7\x27\x79\xe2\x5f\xfe\x15\xc3\xfa\x1f\x6c\xba\xee\x76\xae\xb8\ +\xe3\x77\x18\x3b\xbe\x99\xe2\x38\x08\xb5\x93\xbd\x4f\xfc\x35\xe9\ +\xbe\x01\x56\x5d\x7c\x23\xb9\xfe\xeb\x98\x1a\x59\xc6\xd1\x57\x6f\ +\x60\xf5\xa5\x0b\xc9\x0d\xfc\x7f\x3c\xfe\x9d\x7f\xf4\x47\xca\x74\ +\xbd\xf9\xac\x21\x16\xef\x56\x4d\xd8\x99\xef\x0c\x52\xf0\xd1\x8f\ +\x7e\x94\xc9\xc9\x49\x8e\x1d\x3b\xce\xb1\x63\x47\x69\xb5\x5a\x01\ +\x2b\x20\x08\x5a\x04\xa9\xa7\x90\xbb\x5c\x47\xb0\x7f\x50\x05\x6a\ +\xe9\xba\xe7\xff\x05\xe6\x02\xcd\x72\x0b\x9e\x0d\x9e\xdd\x96\xe5\ +\x4f\x20\x21\x98\xd2\xf5\xdc\x87\xdd\x6a\xb1\xfb\xd1\xad\x54\xa6\ +\x8e\x73\xc5\xaf\xff\x1f\x24\x32\x6b\x39\x79\x78\x8a\xf1\x63\x07\ +\x18\x3b\xba\x9f\xa3\x2f\x3f\x4d\xdf\xe2\xff\x97\x75\x57\xdf\xce\ +\x79\xeb\x3f\x45\xbd\xb2\x81\x0f\x7f\xf2\x33\x1c\x78\x61\x07\xc7\ +\x5f\xdd\x1f\xa8\x05\xea\x06\xc4\x3a\xaf\x70\x16\x44\x01\xce\x17\ +\xb9\xf6\xda\x6b\x81\x4e\xe5\x6e\xa9\x54\xe6\x85\x17\x5e\x60\xd7\ +\xce\x5d\x4c\x4e\x4d\x6a\x03\x17\x3a\xe0\x50\x11\x1c\x98\xd0\x4d\ +\x9d\x2a\x8d\x20\xf2\x98\x00\x5d\x01\x82\x63\x64\x35\x4c\x0a\x41\ +\xa5\x92\x5d\xc3\x19\xf4\xf2\x2d\x08\x8c\xb1\xd1\x3f\x4b\xa3\xd1\ +\xe0\xb5\x5d\xcf\x51\x2b\xfd\x01\x03\x6b\xce\xe7\xf8\x6b\xfb\xfc\ +\xcf\xd8\x6a\x36\x39\x71\xf0\x10\x63\xc7\xff\x86\xf5\x57\xbd\x46\ +\xef\xd2\x2b\xd8\xbf\x2b\x44\xa5\x50\xc6\x6b\x15\x51\x2a\x48\x86\ +\x49\x6f\x7e\x51\x20\xac\x7d\x37\x58\x9a\x33\xbc\xf6\xee\xdd\xab\ +\x66\x75\xfc\x6a\xbb\x0b\x60\xcf\x9e\x3d\xec\xd8\xb1\x83\x83\x07\ +\x0f\xd1\x68\xd4\xa9\xd5\x1c\xee\xdf\x8b\x22\xfc\xe1\x90\x6a\xae\ +\xea\xdb\x0e\x23\xe7\x44\x18\xc1\x69\xe1\xc1\x8a\xdd\xce\x40\x48\ +\xa1\xf1\x10\xdd\xa3\xec\x83\x25\x5b\xc1\x2a\x9d\x40\xab\xb7\x74\ +\x89\x29\xe9\x94\xbe\xd9\xf6\x6c\x66\x13\x70\x2a\x91\x0c\x41\xb3\ +\x56\x0f\xce\x1f\xec\x9a\x63\xe4\x09\xfe\x27\xf7\xfe\x04\x14\x8c\ +\x8e\x8e\x02\xef\xe3\x39\x81\x00\xeb\xd7\xaf\xf7\x3f\xfc\x9e\xdd\ +\xbb\x55\xb0\x87\xde\xb9\xaa\xeb\xd7\xaf\x67\xdd\xfa\x75\xa0\x60\ +\x7a\x7a\x9a\x23\x47\x8e\x70\x72\x74\x94\x91\xd1\x51\x0e\x1c\x38\ +\xc0\xc4\xc4\x44\x40\x48\xb3\x48\x14\x8d\x5d\x54\x5d\xe6\x5f\x31\ +\x3b\x04\xeb\x9e\x0c\xa2\xe6\x18\xd7\xa2\x54\x70\x27\xce\x6a\xe6\ +\xec\x9a\x5b\xe0\xe5\x2b\x02\xed\x62\xae\xa1\xb7\x9b\xb6\x86\x7c\ +\xdc\x91\x71\xee\xae\xf7\x46\xc8\xe9\x6e\x4f\xaf\x18\x3a\x0b\xa8\ +\xe0\xce\xda\x70\xc1\x05\xe2\x8e\x3b\xef\x14\x7d\xbd\xbd\xc6\xd4\ +\xe4\xe4\xbf\x35\x2d\xeb\x2b\x7f\xfc\xc7\x7f\x9c\xd3\x95\x22\x97\ +\xcb\x91\xcb\xe6\xe0\x42\x45\xab\xdd\xa6\xd1\x6c\x3a\x79\xf8\x43\ +\x87\x78\xfa\xe9\xa7\x79\xf1\xc5\x17\xbb\x84\xaf\xba\xce\x04\xe8\ +\x1a\x25\xe7\x0d\x8d\xea\x2e\xbc\xd0\xa7\x81\x30\x57\x31\x46\x30\ +\xa2\x10\xba\x9f\xee\x9a\x2b\x30\xab\xf5\x5b\xea\x60\xb2\x6b\x0e\ +\x82\x3b\x1e\x5f\x2f\x10\xf1\x8f\xcd\x11\xef\x7e\x7b\xf8\xbb\x36\ +\x98\xf8\xb6\x5b\x6f\x8d\x18\xa6\x99\x32\x4c\xf3\xdf\x98\x86\xf8\ +\xaf\x86\x61\x46\x84\x10\x01\x22\xe8\x0b\x7f\xf8\x85\x2e\xbe\x7c\ +\x8e\x49\x63\xc0\xd4\xd4\x14\xbb\x76\xed\xe2\x85\x17\x5f\xa0\x90\ +\x2f\x30\x33\x53\xa1\x52\x9d\x99\x63\x32\x68\xf0\x9c\xa1\xe0\x54\ +\x70\x3d\xcc\xd4\x14\xc1\xc5\x04\x92\xee\x53\x4a\xba\x40\xa9\xc7\ +\x39\xb8\xa3\xe1\xbc\x71\xf5\xde\x70\xea\x59\xc0\x54\xab\x05\x08\ +\xcc\x4c\xd6\xba\x8a\x3d\x8b\x70\xdf\xbd\xf7\xa2\x14\x8c\x8d\x9d\ +\x3c\xe3\x2e\xe0\x8c\xbd\xf0\x6d\xb7\xdd\x66\x6c\xdd\xba\x55\xde\ +\x74\xe3\x4d\xd1\x48\x2c\xb2\xc2\x10\xc6\x47\x85\x10\x7f\x60\x59\ +\x66\x64\x16\x20\xeb\xea\xaf\xd7\x51\xfc\x17\xbf\xf8\x47\xc1\x69\ +\xdb\xba\x32\x28\x68\xb5\xda\x0c\x0d\x1d\x67\x68\x68\x88\xf1\xf1\ +\x71\x0e\x1c\x38\xc8\xbe\xfd\xfb\x68\xb7\x5a\xc1\xe9\xe0\x7e\x2d\ +\x82\x0a\xe4\x15\xfc\xbc\x84\x9a\xbb\x50\x23\x78\xd2\x89\xb3\xbd\ +\x75\xa5\x72\xac\x83\x17\x91\x48\x37\xae\x0f\x4e\x34\x0f\x64\x02\ +\x5d\x0b\x10\x1c\x20\x11\xc4\x35\xf7\xdd\x7b\x1f\x4a\x28\xc6\x4e\ +\x8e\xbd\xff\x14\xe0\xd6\xdb\x6e\x33\xee\xdf\xba\x55\x02\xdc\x71\ +\xc7\x1d\x1f\x36\x4c\xe3\x0e\x21\xc4\xa7\x0c\xc3\xcc\x18\x62\x76\ +\xbf\x43\x80\xf8\xe8\x02\x79\xfe\x64\x6e\x6d\xee\xff\x9f\xfc\xc9\ +\x9f\xcc\x1a\x23\xe3\x25\xcf\xa4\x72\x1a\x3e\xda\xed\x36\x85\x42\ +\x81\x5d\xcf\xee\xe2\xc9\x27\x9e\x64\x6c\x6c\x2c\x70\x1e\x41\x37\ +\x01\x75\x6a\x61\x04\xcf\x30\xf0\x4f\x3d\x11\x32\x38\x77\x30\x70\ +\xba\x59\xd7\x99\x87\x4a\x06\x7a\x1b\x65\xd7\x89\x67\xfe\x61\x17\ +\x6e\x26\x51\x4a\xc5\x7d\x5b\xef\x03\x05\x63\x63\x41\x05\x50\x4a\ +\x89\xfd\x8f\x3d\x96\x4e\xf6\xf6\xa4\xc3\x89\x64\xb5\x77\xf9\x8a\ +\xbc\x10\x42\xbe\x27\x14\xe0\xd6\x5b\x6f\x4d\xdf\x7f\xff\xfd\x25\ +\x77\xf7\x7f\xda\x0a\x99\x97\x80\x71\xb3\x21\xc4\x7c\x61\xe8\xd3\ +\x31\xbc\xe4\xad\x60\x56\xbb\x58\x80\x14\xd2\xd1\x79\x37\x8b\x28\ +\xfd\xbf\xff\xec\xcf\xfe\x3c\xe0\x1e\x4e\x65\x2d\xf6\xec\xde\xc3\ +\x8e\x1d\xcf\x70\xf0\xe0\x61\x2a\x95\x19\x8a\xa5\x22\x4d\xb7\x87\ +\x40\x37\xcd\xdd\x8a\xe0\x09\x1d\x4d\x58\x9d\x91\x6e\xce\xf1\xb5\ +\x7e\x37\xd0\x5c\x5c\x85\x0c\x0e\x99\x54\x1a\x23\xa9\xf4\x1a\x09\ +\x8d\xcf\xb8\xf7\xbe\xfb\x40\x29\x7f\x90\x85\x78\xe2\x49\xf3\xe6\ +\x7b\x3e\xd7\x27\xda\x8d\xeb\x0c\xd5\x5c\x25\x22\x89\xd7\x6d\xac\ +\x5d\x0b\xd7\xae\x1b\x12\x42\xd8\xbf\x50\x05\xb8\xe5\xe6\x5b\x22\ +\x0f\x3c\xf8\x40\x03\xe0\x96\xdb\x6e\xfd\xdf\x2d\xc3\xbc\xd1\x30\ +\x8c\xcb\x10\x22\xee\x56\x4b\x13\x6c\x76\xed\x08\x7e\x56\x5c\xaf\ +\x82\x39\xf2\xd9\x08\x3d\x38\xbe\x55\x2a\x85\x21\x0c\x96\x2f\x5f\ +\xc6\x85\x17\x5e\xe8\x87\x5c\xeb\xd6\xad\xeb\x4c\xef\x56\xcc\x9a\ +\xcd\x33\x9d\xcf\x73\xfc\xd8\x31\xc6\xc7\xc7\x39\x76\xec\x18\xbb\ +\x77\xef\xe6\xe4\xe8\x68\x67\x54\x6d\x57\x0e\xa1\xc3\x23\x74\x15\ +\x76\x28\x15\x18\x71\x1f\xc0\x10\xdd\xe7\x21\xf8\x84\x92\xf3\xda\ +\xb3\xb3\x98\x9d\x5c\xe8\xbd\xf7\xde\x07\xc0\xf8\xf8\x18\x4a\x29\ +\x6e\xf9\xc0\xa6\xdb\xa3\xa2\xf6\x09\x53\xd5\x97\xce\xb4\x12\x7f\ +\x6b\x1b\xe1\x1f\x2f\xbd\xf8\x92\xf2\x7b\xc6\x05\xdc\x72\xcb\xad\ +\x5f\x32\x4d\xe3\xd7\x0d\x21\x06\x95\x10\xb1\x4e\x7f\xa5\x98\x8b\ +\x1b\x74\xf7\xbf\x98\x2d\xf8\x80\x6f\x26\xd0\x7a\xad\xe6\x12\x8a\ +\x52\x2c\x5b\xbe\x8c\xcb\x2e\xbb\x6c\xd6\x67\x32\xdc\x3e\x40\xd3\ +\x34\x39\xef\xbc\xa5\x9d\xd7\x14\xba\x95\x01\x29\xdb\xb4\x5b\x6d\ +\xda\xb6\xcd\xeb\xfb\xf6\xf1\xd8\xa3\x8f\xf2\xec\xae\x5d\xb4\x6c\ +\x89\xd0\xa7\x97\xca\x2e\x1e\xc1\x3f\xf8\x42\x06\x07\x5b\xf9\x55\ +\x4f\x4a\x43\xfd\xfa\x78\xb9\x2e\xab\xa2\x9d\x87\xe4\xad\x7b\xef\ +\xbd\x0f\x85\x64\x62\x7c\x82\xfe\x4c\x92\x0f\xad\x4c\xee\x17\x28\ +\x2b\xdf\xcc\xfd\xf1\xa2\x4b\xb7\x7c\xfb\xad\xc8\x64\xf4\xb5\xd7\ +\xa2\x91\x64\x22\xdb\xb3\x78\xc9\xc9\x33\x12\x06\xde\x78\xe3\xf5\ +\x71\xc3\xb0\xbe\x60\x18\xc6\x67\x84\x10\x49\x50\xa2\x63\xaa\x45\ +\xe7\xe8\x56\xe1\x76\xcc\x0a\xad\xd0\x45\x68\xf5\x72\x5e\x85\x8f\ +\x50\x01\x26\x0c\x9d\x0e\xd6\xf2\xe6\xdd\xd9\xbd\x0d\x1b\x36\xcc\ +\xad\xd9\x02\x7f\x72\xe8\x89\x13\xc3\x18\x86\x89\x69\x1a\xf4\xf5\ +\xf5\x05\x4a\xb3\x0d\x61\x12\x0a\x1b\x84\x94\x62\xf3\xa6\x4d\x6c\ +\xde\xb4\x09\x50\xe4\xf3\x05\x9e\x79\xe6\x19\x5e\x7c\xe9\x45\xa6\ +\x26\xa7\x9c\xa9\x23\xa5\x62\x90\xb6\x65\xf6\x79\x03\x5e\x16\x74\ +\x16\x4e\x51\x81\xd0\xc6\x1b\x23\x3d\x37\xe9\xeb\x30\x4b\x2c\x48\ +\x27\xb9\x68\xa1\x20\x2e\x4a\x2b\xa7\xda\xfd\xff\x3d\x32\x6f\xc1\ +\x03\x6f\x55\x3e\xe1\x78\xdc\x34\x4d\x71\x69\xfe\xf8\xd1\xf1\xdc\ +\x92\xf3\x76\x9e\x16\x05\xb8\xf6\xda\x6b\xc3\xa1\x50\xa8\x57\x29\ +\xf5\xbf\x08\x21\xfe\xd0\x4f\x5a\xab\xce\x44\x5f\xe8\xcc\x52\xf2\ +\x67\x04\x6a\x8f\xd1\x07\x40\xa2\x1d\xe1\x8a\x9c\x63\x72\x68\x37\ +\x00\xf3\xfa\xed\xb5\x38\x31\x16\x8b\xbd\xa1\x71\x13\x78\x53\x3f\ +\x04\xc2\x10\xe4\xf3\x79\x7f\x72\x88\x94\x12\xdb\x2d\x0d\xef\xf3\ +\xce\xf9\x71\x5f\x3b\x9b\xcd\x70\xcb\x2d\xb7\x72\xcb\x2d\xb7\x60\ +\xb7\xdb\x0c\x0d\x9f\x60\x64\x64\x94\xb1\x93\x63\xec\xd9\xbd\x9b\ +\x9f\xed\xfe\x99\x5f\xa9\xac\x02\x8c\x9e\x98\xfb\x54\x11\x9f\x96\ +\xd6\xe6\x03\x48\xc5\xa9\x66\x41\xc4\x2c\x93\x65\xbd\x16\x7d\xd6\ +\x38\xcd\x76\xef\x64\x43\xc5\xee\x5d\xb4\x62\xe5\xd4\x5b\x95\xd5\ +\xbc\xa5\x4b\x2b\x85\xa1\x63\x4d\x93\xf6\xc7\x27\x0e\x1e\x1c\xee\ +\x5b\xb9\x72\xe8\x1d\x29\xc0\xf5\xd7\x5f\x7f\x99\x52\xea\x36\x29\ +\xe5\x17\xbd\x9d\xe5\xc5\xae\x9e\x1e\x08\x70\xd2\xbf\xae\x06\x08\ +\xf7\xdf\xfc\x0b\x83\x97\xfc\x11\x9d\x01\x0a\x10\x2c\xde\xe8\x3e\ +\x05\xdc\xf7\xb3\x22\x30\x7c\xc9\x5b\x13\x13\x13\x2c\x58\xb0\x60\ +\xee\x44\x14\x5d\xd3\xb9\x11\x08\x04\x86\x10\x08\xd3\xec\x80\x4d\ +\x21\x38\x79\x72\x94\x76\xbb\x8d\x6d\xdb\x2c\x5e\xb2\x58\xcb\x65\ +\x28\x0c\xd3\x64\xe9\x92\xa5\x2c\x59\xb2\x14\x25\x25\xb7\xdd\x7e\ +\x2b\xca\x56\xe4\x0b\x05\x7e\xfa\xd3\xa7\x78\xe4\x91\x47\x38\x71\ +\xe2\x84\x4e\xe7\x9d\xa2\x68\x45\xf9\x16\xef\xcd\x7a\x40\x73\x21\ +\xc1\xa2\x68\x1e\xc3\xae\xd2\xb0\x62\xc3\x6d\xa9\xf6\xbe\x5d\x2b\ +\x6d\x84\xa3\xaf\x19\xf5\xea\x7f\x08\x85\xc2\x37\x28\xa5\xbe\x21\ +\xc4\xec\x1c\xf3\xdb\xb1\x00\x3b\x63\xb1\x18\xe5\x99\x19\x84\x00\ +\xcb\x34\x11\xc2\x9b\xa7\xd7\xf1\xf5\x4e\x38\x27\x5c\x7b\x20\x02\ +\x47\xa8\x09\x81\xa9\x0a\x8a\x9e\x00\x00\x17\xf5\x49\x44\x41\x54\ +\xe6\xff\x82\x61\x20\xa2\xab\x4c\x4c\x0f\x0b\x99\x5d\x25\xec\xad\ +\x97\x5e\x7a\x89\xeb\xaf\xbf\xde\x6d\xd1\xd6\x53\xd1\x9a\xa5\x91\ +\x0a\x0c\xef\x35\x9c\xd1\xf4\xaa\xab\x31\xc5\xc3\x2c\x02\xc1\xb1\ +\x23\xc7\xb4\x93\x49\xe0\xbc\xa5\x4b\x03\x8f\x31\x0d\x13\x0c\xe8\ +\xed\x9d\xc7\x47\xee\xfa\x08\x1f\xb9\xeb\x2e\x3f\xd2\xd8\xb9\x73\ +\x27\x87\x0e\x1f\x22\x9f\x2f\x30\x39\x39\x41\xdd\xad\x15\x0c\x4c\ +\xff\x7c\x93\xfe\xff\x88\x69\xd2\x1f\xad\x11\x69\x4f\xb9\x35\x93\ +\x46\x49\xb6\xed\xd2\xdb\x47\x78\xa2\x88\x10\xca\xa2\x7d\xe7\xf8\ +\x81\xfd\x3f\x02\xa6\xdf\x89\x02\xa8\xdb\x6e\xbb\x4d\x4c\x4c\x4e\ +\x50\x2c\x14\x19\x3b\x79\x92\xb1\xf1\x71\x6a\xb5\x1a\x86\x0b\xb6\ +\x9c\x21\x8b\x02\x03\xa1\x75\x4b\x3b\x43\x12\x02\xe7\xfd\xd0\x19\ +\xc3\xaa\x6f\xd9\xee\x6a\x19\xfd\x74\xcf\x53\x7f\x47\xc1\x8e\x1d\ +\x3b\xb8\xea\xaa\xab\x02\xf7\x3b\xd3\xc6\x84\x7b\x58\x95\x44\x48\ +\xe9\x0a\xd8\x1b\xcd\xea\xf4\xfe\x4b\xbd\x4c\xdd\x35\x63\xdd\xef\ +\x78\xf4\xd8\x31\xff\x76\x3e\x9f\xe7\xc1\x07\x1f\xe4\xf3\xf7\xdc\ +\xe3\xba\xb9\x4e\x2a\x7f\xc3\x86\xf5\xac\xdf\xb0\x1e\x14\xe4\x8b\ +\x79\x46\x86\x47\x18\x1f\x9f\xe0\xe0\xc1\x03\x3c\xff\xfc\xf3\x0c\ +\x0d\x0d\x05\x94\xff\x54\x8e\x2b\x6a\x0a\x72\xc6\x14\xd4\xab\x60\ +\x45\x41\x49\xcb\x0c\x87\xcd\xb7\x2b\xff\x66\xa5\x12\x8a\x99\x44\ +\x42\x46\x73\x8d\x9d\xea\x59\x09\x3c\xfb\x8e\x30\xc0\xda\x75\xeb\ +\x58\xd9\x6c\x51\xaf\xd7\x28\xbb\x1d\xb8\xe5\x99\x19\x46\x47\x47\ +\x19\x1a\x1a\x72\x09\x17\xe5\xa2\x6f\xcb\xf1\xbb\xee\x45\x97\x5d\ +\x05\x22\xaa\xcb\x5e\xfb\xcd\x10\x81\x98\xfe\xcd\x79\xf1\xe9\xe9\ +\x69\xa6\xa7\xa7\xb9\xef\xbe\xfb\xd8\xb2\x65\x0b\xb9\x5c\x2e\x98\ +\xad\x43\x22\x85\x81\xc7\x97\x28\xb7\x3f\xd0\x19\xfe\xe0\x0d\x9d\ +\x94\x6e\x2c\x2e\xdd\x90\xed\xd4\xef\x9b\xc9\x64\x00\xf8\xbf\xfe\ +\xcb\x7f\x09\xdc\x7f\xf7\xe7\x3e\xd7\x89\x32\x50\x64\x33\x59\x32\ +\x99\x0c\x6b\xd7\xae\xe5\xaa\x0f\x7d\x90\xdf\xfc\xad\xdf\xc4\xb6\ +\x25\x7b\xf7\xee\x65\xdb\xc3\x0f\xb3\x63\xc7\x0e\x27\xe3\xd9\x2d\ +\x10\xcb\x22\x6e\x2a\xc2\x34\xa0\x5d\x07\x61\x60\xd1\x9c\x67\x9a\ +\xc6\x7c\x60\xe4\xed\x65\xe3\xe5\x3c\x43\x35\x07\x0c\xd5\xea\x11\ +\x52\xae\x7e\xc7\x0a\xd0\x6a\x36\x69\xb5\x5a\x98\xa6\x49\x36\x97\ +\x23\xd7\x93\x43\x4a\xc5\xf2\xe5\x2b\x68\x34\x6a\x34\x1a\x0d\xf2\ +\x79\x67\xd0\xe2\xd1\xa3\x47\x7d\xc0\xe5\x9d\xce\xed\x63\x87\x59\ +\x15\x03\xa0\x4f\x4a\xfc\x79\xd2\x21\xe5\x72\x99\x27\x9f\x7c\x92\ +\x25\x4b\x96\xb0\x62\xc5\x0a\xd2\xe9\xb4\x43\xd4\xb8\xd3\xc2\x85\ +\x3e\xaa\xc5\x3b\x57\xc0\x3b\x2f\x50\x3a\x67\x11\x2b\xa9\x66\x9d\ +\x4a\x32\xd7\xfb\xcc\xb5\xfe\xe2\x2f\xff\xd2\xbf\xfd\x1f\xfe\xe3\ +\x7f\x24\x16\x8d\x68\x23\xea\x1d\xb7\x61\x08\x93\xcd\x9b\x36\xb1\ +\x69\xe3\x46\x10\x90\x9f\xce\xf3\xec\xb3\xcf\xf2\xd2\x4b\x2f\x31\ +\x39\x39\xc9\xe4\xe4\x24\xf5\x5a\x8d\xa8\x29\x11\xed\x1a\xc8\xb6\ +\xa3\x04\x76\xf9\xbc\xa7\x5e\xdc\xf1\x9f\xae\xbf\xfe\xfa\xaf\x6e\ +\xdf\xbe\xfd\x05\x17\x93\x19\xdb\xb7\x6f\x7f\x43\x16\xd0\x34\xd4\ +\x45\x66\x63\x6a\x40\x88\x56\x58\x85\x33\x8b\xde\x11\x0f\x70\xfd\ +\xf5\xd7\xcb\x7b\xee\xb9\x5b\xb4\x9a\x4e\xc1\x64\x3e\x9f\x77\x7b\ +\xe4\xcc\x4e\x21\xa6\x74\x62\x5a\x69\xb7\xb1\x6d\x45\xbd\x59\x67\ +\x64\x64\x84\x43\x07\x0f\x71\xfc\xf8\x71\x1a\x8d\xc6\x1c\x8a\x70\ +\xfa\x67\xa2\x0d\x0e\x0e\x72\xde\x79\xe7\xd1\xd7\xd7\x47\x3c\x16\ +\xc7\x30\x4d\x2c\xd3\x99\x01\x2c\x9c\xf8\x30\xa0\x10\x52\x29\x3f\ +\x2a\xd0\xa7\x87\x75\x2f\xdb\xb6\x79\xe6\x99\x67\x1c\xc0\xf7\x73\ +\xac\xdf\xff\xfd\xcf\xa2\x57\xb2\x09\xad\xbc\xad\xdd\x6a\x33\x76\ +\x72\x94\xc9\x89\x09\x7e\xed\x43\x17\xb1\xda\x7c\x0d\xa3\x7a\xd2\ +\xc1\x00\xa9\xc5\x3c\x3e\x94\x6a\x7f\xe3\xde\xc7\x8f\x9e\x9c\x98\ +\x78\x19\x98\x01\xf6\x03\x0f\x6d\xdf\xbe\xfd\x45\x57\x3e\xf1\xed\ +\xdb\xb7\xfb\x67\xd3\x4e\x1d\x3d\x3a\x3f\x2c\x67\xfe\x36\x3e\xfe\ +\xe4\x9d\xca\x4a\xd8\xb5\xfe\xab\xff\xcf\xe4\xc0\xd2\x3f\xed\x06\ +\x82\x6f\x4b\x01\xee\xfe\xdc\xe7\x44\xb3\xdd\x02\x05\x3b\x77\xee\ +\x42\x29\x67\xf0\x52\x32\x95\x22\x93\xc9\x90\xce\x64\xfc\xd1\x6c\ +\x74\x15\x7f\x0a\x21\x28\x14\x8b\x0c\x1d\x3f\xc6\xa1\x43\x87\x19\ +\x1f\x1f\x3f\xe5\x85\x7e\xc7\x39\x6e\xcb\x22\x95\x4a\x23\x0c\x58\ +\x34\xb8\x88\xf9\xf3\x17\x90\xcd\x65\x9c\x76\x6e\xc3\x74\xc7\xbf\ +\x74\x46\x94\x79\x04\x8d\x2d\x65\x60\xaa\x97\xef\x4b\x9b\x4d\x1a\ +\x8d\x06\xaf\xbc\xf2\x0a\x27\x4e\x9c\x38\x2d\x29\xdb\xcf\x7e\xf6\ +\xb3\xda\x98\x18\xef\x30\x2c\xe7\x63\x2d\x4b\x9a\xac\xb3\xf6\x62\ +\x54\x46\x1c\x2b\x10\x8a\x33\x1d\x5e\xc1\x3f\x3e\x3d\xca\x7d\x8f\ +\x3f\xed\xbd\x44\x0d\x18\x07\x4e\x02\x79\x60\x8f\x10\xe2\x07\xdb\ +\xb6\x6d\xdb\x79\x78\xe7\xae\x70\x3c\x1d\xf9\xe3\x79\xf6\xe1\xcf\ +\x5a\x87\xb6\x26\xec\xc5\xd7\x34\xaa\xf3\x3f\xf8\xc5\xf4\xe2\x65\ +\x7f\xf1\x8e\x5c\x80\xad\x3a\x33\xff\xbc\x91\xea\xad\x76\x8b\xa9\ +\xa9\x29\x26\xa7\xa6\x5c\x5f\xaa\x88\xc7\xe3\x64\xb2\x19\x72\x99\ +\x1c\x89\x64\x02\xc3\x9d\xcb\x93\x4c\x24\x58\xbb\x76\x1d\xeb\xd6\ +\xad\x47\x29\xc9\xc4\xc4\x24\xc7\x8f\x3b\x99\xbc\x72\xb9\xec\x1f\ +\xfd\xf2\x8e\x14\xc3\x25\x80\x1a\x8d\x06\xe1\x90\xc5\xe8\xe8\x28\ +\xd1\x68\x94\x72\xb9\x44\x24\x12\x21\x91\x48\x90\x88\xc7\x89\x44\ +\x23\x08\xc3\xc1\x55\x76\xbb\xed\xef\x70\x21\x84\x3f\xb4\xaa\x54\ +\x2a\x92\xcf\x17\xa8\xcc\x54\xd8\xb7\xef\x75\x5a\xee\xe3\x4e\xc7\ +\xfa\xf2\x97\xbf\x1c\xf8\xfb\x33\x9f\xf9\xb4\x1f\x29\x34\x6d\x20\ +\x12\xea\xfc\x63\xbd\x40\x8f\x71\x8c\xdf\xd8\xb2\x02\xb8\x8a\x67\ +\x77\xbf\xca\xf8\xd4\x54\x0c\x58\xea\xfe\x00\x5c\xab\x94\xfa\x9d\ +\x7f\xf7\xc9\xdf\x68\x3c\xf5\xd2\xb3\xea\xd7\xb7\x2c\xee\xb3\x8e\ +\x3c\x60\x52\x3a\x81\x8a\x66\x1a\x0a\x31\xfc\x8e\x89\x20\xdd\x3c\ +\xfa\x04\x47\xf7\x09\x9c\x52\x51\x2e\x97\x29\x95\x4a\x1c\x93\xc7\ +\x90\x4a\x11\x09\x87\x49\xa7\x53\xe4\xb2\x39\x52\xe9\x0c\xe1\x70\ +\x18\xa5\x24\xd9\x6c\x96\x5c\x4f\x8e\x0b\x2f\xba\x90\x46\xbd\xc1\ +\xf8\xd8\x18\xc3\x23\xc3\x4c\x4c\x4c\xd2\x68\x34\x68\xba\xc5\x20\ +\xed\x76\xdb\x77\x19\xe2\x4d\x3a\x26\xbc\xd0\xd4\xb1\xf4\x8e\xc9\ +\x1f\x1e\x1e\x71\x47\xca\x84\x08\x85\xdc\x9f\x70\x98\x50\x28\x04\ +\x4a\xf9\x6e\x49\x4a\x49\xbd\x5e\x27\x9f\xcf\xd3\x6a\x36\x91\x4a\ +\x51\xc8\x17\x68\xb6\x5b\xbe\xf0\x3d\xec\x70\xba\xd7\x57\xbe\xf2\ +\xd7\x00\x2c\xed\xef\xe7\x93\xd7\x5f\x0c\x4b\xaa\xce\xee\x97\xae\ +\xd2\x95\x47\xe8\x8d\x37\xf9\xad\x0f\xae\xe0\xe2\xb5\xb7\xb0\x6b\ +\xef\x11\x0e\x9f\x18\xa1\x34\x53\x41\x29\x45\x26\x9d\x0e\x2f\x5b\ +\x3c\x18\xbe\xec\x82\x55\x5c\xd0\xd7\x26\x7a\x64\x2b\x8c\x3c\x0f\ +\x03\x17\x53\x90\x99\x5a\x48\x98\xaf\xbf\x63\x05\x50\x2a\x98\xf5\ +\xea\xd4\xea\xcd\xee\x8a\xd5\xc2\x7b\xea\xb5\x1a\xd5\x6a\x95\xd1\ +\xd1\x93\x48\x25\x31\x84\x20\x91\x4c\x91\xcb\x66\xc9\xe5\x72\x24\ +\x12\x71\x94\x84\xf9\x0b\xe6\xb3\x60\xc1\x42\x84\x21\x98\x99\x99\ +\x61\x62\x62\x82\x89\x89\x09\xca\xe5\x32\xf5\x7a\x9d\x6a\xb5\x4a\ +\xad\x56\xf3\xc1\xdd\x9c\xa0\x52\x4a\x1a\x0d\xe7\x1c\x80\x48\x4f\ +\xc4\x8d\x44\x40\x18\xde\x20\x48\xe1\x9c\x07\x80\x73\xe0\x73\xd3\ +\x05\xb6\xad\x56\x8b\x66\xab\xe5\x03\x5d\xe7\xa7\xe9\xbb\x07\xcb\ +\xb2\x68\xb7\xdb\x67\xb4\x62\x67\x70\x7e\x1f\xbf\x7a\xd5\x66\xb6\ +\x2c\xad\x63\xd4\xa6\xdc\x8a\x55\xe9\x28\x81\x92\x50\x1e\x21\xd3\ +\x9c\xe1\x8a\xdc\x20\x17\x5c\x33\x48\x41\x9e\x4f\xb5\xe9\x0c\x9e\ +\x4c\x46\x4d\x72\x56\x95\x44\x6d\x1f\xc6\xf1\xdd\x90\x3f\x0c\x56\ +\x14\xbb\x77\x3d\x56\x7c\xde\xa3\x46\x28\x7c\xe8\x9d\x5b\x00\x5b\ +\x75\x52\x97\x81\xd3\x37\xb5\xe3\x99\xfc\xe2\x0a\xe9\x13\x2f\x01\ +\x26\x4c\x82\xad\x6c\xf2\xd3\x79\xa6\xa7\xa6\x5c\xf4\x6d\x13\x8f\ +\xc5\xc9\xe6\xb2\x64\xb3\x3d\x64\xd2\x69\x2c\xd3\x64\x60\xe1\x42\ +\x06\x06\xfa\x51\x52\x51\x2a\x97\x29\x14\x0a\x94\x4a\x25\x6a\xb5\ +\x2a\xe5\xf2\x0c\xe5\x72\x99\x6a\xb5\x1a\x50\x06\x5d\x21\xa6\xa7\ +\x83\xbc\xc7\x9a\x35\x6b\x1c\x13\x2f\x00\x43\xf8\x07\x59\x7b\xbf\ +\x3d\x17\xa6\xbb\xb8\x5a\xb5\xfa\xae\x54\x4c\xcd\xcb\x64\xb8\xf3\ +\x8a\x8d\xdc\xb0\xaa\x49\xa8\x36\xee\xa0\x7f\x4f\x01\xf4\x9f\xea\ +\x24\x46\x75\x92\xb4\xb5\x8f\xb4\x15\x05\xc3\x72\x14\xa4\x54\x87\ +\x46\x09\x6a\xd3\xce\x73\x01\x99\x5b\xcd\x58\x68\x15\xb4\x8d\x9f\ +\x0c\x2e\x58\x50\x3c\x0d\x16\xa0\x73\xc4\x6b\x3a\x93\xa1\x5c\x2a\ +\xd1\xb2\xed\x39\x0e\x7c\x96\x5d\xa7\x76\x77\x1d\x00\x85\x4e\x99\ +\x3a\x8f\x99\xa9\x54\x28\xcf\x94\x39\x7a\xf4\x38\x4a\x49\x42\x56\ +\x88\x74\x3a\x4d\xcf\xbc\x1e\xff\x94\x8f\xfe\x85\x0b\xe9\x5f\xb8\ +\x90\x56\xbb\x4d\xb5\x52\x61\xa6\x52\xa1\x5e\xaf\x33\x33\x33\xe3\ +\x8e\x88\x2f\xfa\x91\x86\x67\xd6\xf5\xf5\xfa\xeb\xaf\xf3\x5e\x5c\ +\xf3\x32\x19\x7e\xf5\x83\x17\xf2\x91\x0d\x36\x46\x23\x0f\x76\x73\ +\xb6\xe0\x03\x3b\xb1\x0d\xf5\x42\xc7\x45\x78\x56\x42\xff\x3b\xde\ +\x0b\x4b\xb6\xb0\x7b\xb8\x42\xb6\x32\xb6\xe3\xb4\x24\x83\x1c\xa2\ +\xc4\x11\xd8\xaa\x55\x2b\x5d\x6e\xa0\x45\xb1\x5c\xa6\x58\x28\x50\ +\x2c\x14\xa9\xd6\xaa\xb3\x0f\x70\xd6\xcf\xce\xd3\x0b\x2d\xfc\xdc\ +\x19\x7e\x7e\xdf\xbb\xdd\x68\x36\x18\x9f\x18\xe7\xe4\xd8\x49\xd7\ +\xe4\x43\x32\x99\x26\x97\xcb\xd1\xd3\x93\x23\x99\x4c\xd2\x1b\x8b\ +\xa1\x94\xa2\xd9\x6a\xd1\x70\x67\x00\x36\x9b\x4d\x0a\x85\x02\x53\ +\x53\x53\x94\xcb\x65\x6c\xdb\x3e\x25\x07\xf1\x5e\x58\xf3\x73\x39\ +\xee\xda\xb2\x99\x5f\xd9\x64\x60\x34\x26\xe7\x16\x7e\xb7\x2b\xe8\ +\x56\x0c\xfd\xb7\x30\x20\x7b\x1e\x9c\x77\x0d\x8f\x8f\x64\x79\x6c\ +\xc7\xf3\x54\x6b\xb5\x89\xd3\xa2\x00\x52\xda\xfe\x81\x0e\x85\x62\ +\x89\x44\x3c\x8e\x69\x59\xe4\x72\x59\x7a\xb2\x59\x07\x49\x4b\x49\ +\x65\x66\x86\x7c\xa1\xc0\xf4\xf4\x34\xe5\x72\x29\x78\xe8\x23\x5d\ +\xe7\xed\x68\x05\x16\x02\xed\x90\x65\x3d\x31\x24\x04\xb6\x6d\x53\ +\x28\xe4\xc9\xe7\xa7\x39\x78\xd0\xc1\x22\xd1\x68\x84\x6c\x2e\xcb\ +\xbc\xdc\x3c\x32\x99\x0c\xa9\x54\x12\x25\x15\xe9\x74\x9a\x81\x81\ +\x01\xec\x76\x9b\x6a\xb5\xca\x74\x3e\xcf\xf4\xf4\x34\x95\x4a\xc5\ +\xaf\x15\x78\x2f\x28\x43\x5f\x36\xc3\x5d\x57\x6e\xe4\xce\x0b\x0c\ +\x42\xcd\xe9\xd9\x02\xd6\xff\x9e\x4b\xf8\xfa\xfd\x00\x89\xf9\xd0\ +\xbb\x86\x72\xee\x22\x9e\x1b\x31\x79\xe8\xa7\xcf\x52\x28\x16\x09\ +\x87\xc3\xa7\xa7\x1e\x40\xc9\x4e\x41\xc3\xb1\x63\x8e\xa9\x36\x84\ +\x20\x16\x8f\x93\x4e\xa5\x48\x24\x93\x4e\xa8\x95\x4c\x12\x4f\x26\ +\x19\x1c\x18\x40\x2a\x45\xbd\x5e\xa7\x50\x2c\x30\x3d\x35\x4d\x3e\ +\x5f\xa0\xd9\x6c\xf8\x11\x03\xcc\x71\x5a\x96\xa2\x93\x3d\x54\x5e\ +\xfe\x9c\xae\xc3\x95\x15\xd5\x6a\x95\x4a\xa5\xc2\xf0\x89\x61\x3f\ +\xfe\xff\xe0\x07\xaf\xc2\x30\x0c\xac\x90\x85\x69\x9a\x84\x42\x21\ +\x52\xe9\x14\x8b\x17\x2f\xc2\xb6\x6d\xca\xe5\x19\xa6\xa6\xa6\x7c\ +\x77\xf1\x56\xa3\x8b\xd3\xbd\xb2\xc9\x24\xb7\x5d\xba\x81\xdb\x37\ +\x98\x44\xed\xc2\x1b\xef\x7c\xfd\xc7\x8a\x42\x72\xa1\x73\xbb\x39\ +\xe3\xfc\x8e\xa4\x69\xc7\x07\xa8\x45\x06\x38\x51\x4f\xf3\xfc\x4b\ +\xa3\xbc\xb2\xef\x20\xf9\x42\x11\x43\x10\x48\x6c\xbd\x33\x0b\xa0\ +\x9b\x6f\x17\x24\xb5\xa5\x4d\xb1\x58\xa4\x50\x2c\xa2\xdc\x30\x31\ +\x16\x8b\x91\x4a\xa5\x48\xa5\x52\xc4\xe3\x71\x22\x91\x08\xf3\xe7\ +\xcf\xa7\xaf\x77\x3e\xb8\xdc\x41\xb1\x54\x64\x7a\x6a\x9a\xe9\xe9\ +\x3c\xe5\x99\xb2\x6f\xc1\x94\x77\xc4\x4c\x77\xae\xc0\xd5\x14\xa9\ +\xe6\x38\x8f\xcf\x5d\x0e\x4a\x97\xb3\x46\xb7\x29\xe5\x46\x00\x86\ +\xe9\x7c\xae\x74\x0a\x25\x15\xad\x96\xf3\x39\x9c\xd2\x72\xe7\x60\ +\x89\x77\x63\x25\x63\x31\x6e\xbb\xf4\x02\x3e\x7a\x51\x98\xa8\x2a\ +\xbf\x75\xe1\x9b\x61\xe4\xfc\x4d\xbc\x5a\x59\x84\x11\x0a\x11\x89\ +\x48\x84\x65\x51\xae\xc3\xc4\x54\x8b\xc3\xc3\x13\x1c\x1e\xda\xcd\ +\xc4\xf4\xb4\xef\x36\xa5\x12\x6f\xc8\xab\x9c\x76\x1e\x00\xe5\xcc\ +\xd7\x9f\x99\x99\x61\x78\x78\x18\xa9\x14\x21\xcb\x22\x99\x4a\x92\ +\xc9\x64\x48\x26\x92\x84\xc3\x61\x72\xd9\x1c\xd9\x74\x86\x65\xcb\ +\x96\xa1\x94\xa2\x5c\x2e\x31\x3d\x9d\x67\x72\x72\x8a\x62\xb1\x40\ +\xdb\x6e\x6b\xc7\xb0\xcc\x3e\x45\x67\xd6\x19\x7c\x01\xac\xa2\x35\ +\x8c\x8a\x4e\x89\xb7\x4f\xbd\x4a\x27\x92\x31\x0d\x93\x6c\x26\x4b\ +\x2e\x9b\x43\x08\x41\xbd\x5e\xa7\x5c\x2e\x53\x2c\x16\xa9\xd7\xeb\ +\xfe\xf7\x3d\x9d\xa1\x5f\x2a\x1e\xe7\x8e\xcb\x36\xf2\xef\x2e\x0f\ +\x61\xc8\xea\xdb\xdb\xf9\xf3\x37\xf0\xf0\xf1\x5e\xee\x7d\xea\xa7\ +\xb4\xa5\x24\x64\x59\x18\x42\xd0\x68\xb7\x68\x34\x9a\xd8\xd2\xf6\ +\x07\x59\x3b\x7c\x85\x00\xa1\xb0\xdf\x20\x03\xf9\x36\x2d\x40\x50\ +\x01\xde\x2a\x0f\xd0\x6c\x34\x98\xac\xd7\x99\x18\x9f\xf0\x79\x80\ +\x58\x3c\x41\x36\xed\xd0\xc7\xf1\x78\x8c\x44\x22\x49\x22\x9e\x60\ +\x70\x70\x11\x20\xa9\xd5\xea\x14\x0a\x05\x26\x27\xa7\x98\x9e\x9e\ +\xea\x84\x63\xde\x51\x32\xa7\x48\x23\x04\x0e\x5e\x72\x7b\xef\xbd\ +\xd3\xe8\xd5\xac\x88\x26\x58\xc1\x1b\x0e\x87\xe9\xed\xed\xa5\xaf\ +\xaf\x0f\x80\x6a\xb5\x4a\xb9\x5c\x66\x66\x66\x86\x66\xb3\x89\x6d\ +\xdb\x3e\x53\xe9\x65\x15\xdf\xae\xd9\xbf\xe5\xe2\x75\x7c\xfc\xd2\ +\x08\x86\xac\xbf\xad\x9d\x4f\xdf\x3a\x1e\x3d\x31\x8f\xad\x3f\x7d\ +\x81\xb1\xe9\x29\x0c\x61\x04\xc3\x5f\x04\x86\x30\x9c\x12\x3c\x43\ +\xfa\xf7\x09\x83\x37\x3c\x8b\xf8\x6d\x5a\x00\xbd\xdc\xf9\x9d\xf1\ +\x00\xc5\x42\x91\x42\x3e\xef\xf3\x00\xb1\x68\x8c\x74\x26\x4d\x26\ +\x93\x23\x95\x4c\x12\x0a\x85\xe9\xed\xeb\xa3\xaf\xaf\x17\xe9\x1e\ +\x12\x5d\x2a\x96\x98\x9c\x72\xb2\x66\xc5\x52\x71\xce\x29\x1a\xdd\ +\x07\x93\x0b\x08\x16\x5d\xba\x07\x53\x06\x0e\xf9\xd1\x94\x42\xdf\ +\xed\xd1\x68\x94\x58\x2c\xc6\x82\x05\x0b\xfc\x73\x87\x66\x66\x66\ +\xa8\xd5\x6a\x1a\x59\xd4\x0a\x98\xd8\x53\x29\x45\x3a\x1e\xe7\xa6\ +\x8b\xd6\xf2\xb1\x8b\x62\x44\x45\xfd\xd4\xa0\xae\xfb\xc7\xb0\x60\ +\xde\x6a\x1e\x1f\xee\xe5\xc7\x4f\xbd\xcc\xc8\xf8\xb8\x53\xcb\x20\ +\x94\xcb\x76\x2a\x57\xf0\x9d\x73\x87\x84\x14\x08\x0c\x47\xf8\x12\ +\xda\xa7\xcb\x02\x28\x29\xfd\x94\x69\x22\x91\xa0\x52\xa9\xd0\x96\ +\xf2\xb4\xf0\x00\x95\x6a\x95\x99\xca\x0c\x43\x43\xc3\x28\x25\xb1\ +\x4c\x8b\x54\x2a\x45\x2e\x97\x25\x95\x4e\x13\x8d\x46\xc9\x64\x33\ +\xa4\x33\x69\x96\x2d\x5b\x86\x94\x92\x6a\xb5\xca\xd4\xd4\x94\x0f\ +\xea\x9c\x43\xa0\x14\x74\x45\x12\xfa\xf1\xed\x81\x49\x65\x6f\x81\ +\xf7\xd0\x1f\x17\x8f\xc7\x49\x24\x12\x08\x21\x68\xb5\x5a\xd4\x6a\ +\x35\xbf\x93\xb9\xd9\x6c\x52\xaf\xd7\x69\x36\x9b\x9d\x34\xb4\xab\ +\x10\xf1\x48\x84\x1b\x2f\x5c\xc3\xaf\x5d\x1c\x23\x1d\x7e\x1b\xc2\ +\x17\x06\xf4\xac\xe4\x89\xd1\x05\xfc\xf0\xa9\x97\x39\x36\x7a\xd2\ +\x61\x36\xf5\x11\xa5\xc2\x21\xb4\x04\x06\x1d\x9b\xeb\x2a\x83\x9b\ +\x06\x57\x6f\x80\x6d\xde\x76\x14\x20\xdd\xa6\x8c\x45\x8b\x17\xbb\ +\xc0\xab\x45\xa5\x52\x65\xa6\x5c\xa6\x5c\x9e\xa1\xde\xa8\x9f\x16\ +\x1e\xa0\xd9\x6a\x32\x39\x35\xc9\xf8\x44\x27\x6b\x98\x48\x24\xc9\ +\xe5\xb2\x64\x33\x19\xe7\xfc\x9f\x58\x8c\xc1\x81\x01\xfa\xfb\xfb\ +\x1d\x3e\xc0\x6d\x29\x0f\x74\x12\xeb\x8d\x22\xb2\xfb\xc4\xf0\xb7\ +\xe7\xbf\xf5\xe7\x1a\x86\x41\x32\xe9\x1c\x57\x0f\xd0\x6a\xb5\x7c\ +\x05\xf0\x94\xa1\x5a\xad\x22\xa4\xe4\xe6\x8b\xd6\xf0\xc9\xcb\xa3\ +\x24\xc2\x2d\x67\x52\xca\xa9\xc2\x3a\xfd\x3e\x61\x20\xb3\x2b\x78\ +\x6a\x74\x01\xdf\x7f\xea\x65\x8e\x0c\x0f\x3b\xbe\x1d\x67\xb7\x0b\ +\xc0\x50\x0a\x70\x4f\x3e\x51\xb6\x53\x79\x65\x08\x84\xea\x70\x1e\ +\x4a\x89\x37\xac\x42\x7a\x3b\x0a\x20\x0e\x1d\x3a\x44\x5f\x5f\x2f\ +\x56\xc8\x72\xd8\x36\xd3\xc4\x34\x2c\x1f\xf1\xf7\xbb\x56\xa2\x5a\ +\xab\x51\x2a\x95\x28\x95\x4a\x54\x2a\x33\xa7\x85\x07\x90\x6e\x76\ +\xae\x58\x2c\xb8\xe0\x4c\x11\x8d\x86\x49\x67\xb2\xe4\xb2\x59\xd2\ +\xe9\x34\xa1\x70\xd8\x4d\xe7\x06\x4f\x19\x01\xbd\xbb\x27\x88\x15\ +\xde\xc9\xd2\x15\xc2\x34\x4d\x92\xc9\x64\xa7\x78\xa6\xd5\x42\x28\ +\xc5\x25\x4b\xfb\xf8\x37\x9b\x5a\x58\x86\x9a\x9b\xc0\x39\x15\xa9\ +\x93\x5b\xce\xd3\x63\xfd\x7c\xff\xf1\x17\x39\x3c\x32\xea\xc8\x58\ +\x74\x8e\x98\x37\x94\x40\x0a\xd1\x29\x75\xf3\xca\xee\xdc\xd2\x7a\ +\xe7\x3e\x40\x18\xd8\xea\xf4\x28\xc0\x8e\xc7\x1e\x7f\x2c\x22\x84\ +\xb8\x28\x9d\x4e\xd3\xdf\xdf\x4f\x7f\x7f\x3f\xa9\x54\x8a\x50\x28\ +\x44\x38\x1c\xc6\xb2\x2c\x84\x30\x88\xc7\x63\xc4\x62\x31\xe6\xcf\ +\x9f\xef\x64\x33\x35\x74\x5d\x2a\x95\x4f\x23\x0f\x50\xa3\x52\xa9\ +\x32\x3a\x32\xe2\xf3\x00\x4e\x93\x48\x90\xcf\xf7\x72\xfc\xb3\x8e\ +\x77\x3b\xcd\xe1\x5d\xc0\x5d\x44\xa3\x6c\x1e\x9c\xc7\x6d\xab\xea\ +\x58\xa6\xf1\xd6\x4c\xbe\x27\xfc\xec\x79\x3c\x33\xb6\x80\x7f\x79\ +\xfc\x25\x0e\x1c\x3f\xe1\xec\x6a\xe1\x36\xa1\x79\xe1\x9d\x10\x18\ +\x18\x5d\xe8\x47\xb8\x3d\x19\xc2\x3f\x01\xc7\x39\xdc\xd2\x7e\xc3\ +\x1a\xc4\xb7\xb5\xae\xbf\xfe\xfa\x1f\x4a\x29\xab\xed\x76\xdb\x56\ +\x4a\x5d\x15\x0a\x85\x96\x65\x73\x59\xe6\xf7\xcd\xa7\xb7\xb7\x97\ +\x48\x34\x42\x3c\x16\x23\x16\x8b\x3b\x87\x2c\x68\x5d\xb4\x5e\x59\ +\xb4\xdd\xb2\x29\x97\xcb\x14\x0a\x79\x0a\xc5\x12\x95\x4a\xc5\xc7\ +\x17\x52\x69\xe5\x59\x6e\xf6\x51\x79\xc5\x9b\x52\xba\x35\x09\x9d\ +\xc7\x76\xfb\xf2\x2d\x5b\xb6\x04\x9e\xaf\x27\x79\x74\xd4\xef\x25\ +\xb5\xce\xc4\x0a\x99\x26\x1b\xfb\x7b\xb8\x79\x65\x83\x9e\xa4\xea\ +\xf0\xf7\xdd\x7c\xfd\x5c\xf7\xa5\x17\xf1\xcc\xd8\x02\xbe\xfb\xe4\ +\xab\xec\x3b\x7a\xd4\x05\x73\x22\xd0\xe8\xd2\xb9\x4f\xcc\x91\x08\ +\xd3\x1e\xeb\x5a\xcf\x50\x28\x94\xf8\xee\x77\xbf\x5b\x7d\xc7\x18\ +\x00\x60\xfb\xf6\xed\xbf\xaa\x29\xc3\x87\x94\x52\x37\x4d\x4f\x4d\ +\xdb\xe3\x63\xe3\x2d\xd3\x34\xff\x2c\x12\x89\x90\xcd\x66\xc9\x66\ +\xb3\xa4\x53\x69\x15\x8f\xc7\x45\x2a\x9d\x22\x91\x48\x38\x25\xe4\ +\x4a\x82\x69\x92\x4e\xa7\x48\xa7\x53\x2c\x76\x77\x7f\xa5\x52\xa1\ +\x90\x2f\x30\x9d\xcf\x53\x2e\x97\x7e\x6e\x1e\x40\x76\xb5\x7f\xeb\ +\x87\x35\xe8\x8d\x26\x67\x6a\x04\x87\x69\x18\x5c\xb0\x20\xc3\xcd\ +\x2b\x6a\xf4\x24\xc5\xdc\xa6\xfe\x54\x3f\xe9\x45\xec\x9a\x58\xc8\ +\x3f\x3f\xb9\x97\xd7\x8f\x1c\x75\xb7\xa8\xd6\xd3\x26\x44\x27\xcc\ +\x93\x5a\x6a\xdb\xab\x2a\x12\xda\xee\xc7\x2b\x7d\x53\xa7\x8f\x08\ +\xd2\xd7\x4d\x37\xdd\x24\x1e\x7a\xe8\xa1\x27\x81\x27\x35\x85\x38\ +\xd4\x6e\xb7\xcd\xb1\xb1\x31\x71\xf2\xe4\xc9\x8d\x96\x65\xfd\x6f\ +\xd1\x48\x94\x44\x32\x41\x32\x99\x24\x9e\x48\x38\x67\xf2\x66\xb3\ +\x24\x12\x09\x94\x72\xca\xb0\x50\x0e\x7b\x18\x8d\x46\x59\xd8\xbf\ +\x10\xa9\x14\xcd\x46\x83\x62\xa1\x40\x3e\x5f\x20\x5f\xc8\x53\xaf\ +\xd5\xde\x12\x0f\xe0\x4e\x74\xe8\x74\x10\x69\xd1\x89\x42\x05\xea\ +\x4f\x4f\xf7\x32\x80\x0b\x17\xa4\xb9\xeb\xfc\x19\xe2\xf1\x10\x08\ +\x73\xf6\x8e\xef\x06\x7c\xee\x6f\x99\x1c\xe4\x67\xf9\x7e\xfe\xf9\ +\xc9\xbd\xbc\xea\x09\xdf\x77\x59\x8e\x20\x0d\xaf\xd3\xd6\x9b\x34\ +\x07\x18\xb6\x44\x1a\xce\x85\x30\xf0\xc8\x1f\xc7\x5d\x78\xff\x97\ +\x6f\x60\xea\xce\x18\x01\x7e\xc3\x0d\x37\xc4\x94\x52\x97\xd9\xb6\ +\x2d\x5b\xad\x56\x39\x14\x0a\x7d\xdf\x34\xcd\xe5\x91\x48\x84\x68\ +\x34\x4a\x34\x1a\x55\xc9\x64\x52\xcc\xeb\x9d\x47\x4f\x2e\x47\x38\ +\x1c\x45\x29\xaf\x24\xcc\xf6\x7b\xe6\x3d\xe1\xb5\x6d\x9b\x99\x72\ +\x99\xe9\xe9\x29\xa6\xa6\x1d\x2b\x21\xed\xd9\xa2\xbc\xfc\xf2\xcb\ +\x83\x43\x20\xbb\x7e\x4e\x37\xb3\xe7\xef\x7c\x21\xb8\x60\x7e\x9a\ +\x8f\x5f\x50\xc6\x8a\x26\x3a\x79\xfa\x37\x32\xf7\xde\xed\xc4\x7c\ +\x76\x17\x17\xf2\xed\x27\x0e\xf2\xe2\xbe\x03\x6f\x50\xed\xd4\x6d\ +\xf2\xe9\x14\xb9\xb8\x3b\xde\x70\x81\x9f\xdf\xad\xe5\xba\x80\xef\ +\x7f\xff\xfb\xd5\x77\x55\x01\xe6\x50\x88\xf9\x52\xca\x84\x94\x52\ +\xd8\xb6\x6d\x85\x42\xa1\x7d\x86\x61\x10\x0a\x85\xb0\x2c\x93\x48\ +\x24\xaa\x7a\x7a\x7a\x44\x5f\x5f\x1f\xd9\x6c\xd6\x2f\xd1\xf2\x95\ +\x61\x0e\x61\x56\xab\x35\x0a\x05\x27\xd3\x57\x2a\x95\x68\xb7\xdb\ +\x5c\x7e\xf9\xe5\x5a\x7f\xbf\xec\x3c\x17\xe5\x17\xb4\x9c\x89\x9d\ +\xbf\x6e\x7e\x96\xbb\x56\xd7\xe9\xc9\x86\x1c\xe6\xee\xcd\x7c\xbe\ +\xf7\x77\xac\x87\x97\xa7\x17\xf2\x4f\x4f\x1d\xe4\xe5\x03\x87\xde\ +\x5a\x38\xd6\xad\x08\x08\x37\x1a\xec\x44\x03\xc2\x73\x09\x38\x0a\ +\xf0\xc3\x1f\xfe\xe0\x17\xab\x00\x73\x80\xc9\xb8\x52\x4a\x4c\x4c\ +\x4c\x34\xe6\xcf\x9f\xff\x59\xe0\x2f\xbd\x82\x4c\x21\x04\x89\x44\ +\x82\x3e\x97\x09\x4c\x26\xd3\x7e\x2a\x5a\xd9\x1e\x50\xec\x90\x4d\ +\x1e\xe8\x6b\xdb\x2d\x4c\xc3\x9c\x63\xc7\x13\x88\x0a\x4e\xab\xf0\ +\x85\xe0\xfc\x79\x29\x6e\x5b\xd9\xa0\xbf\x37\xec\x08\x7f\xae\x1d\ +\x3f\x97\x12\x44\xb3\xbc\x32\xbd\x80\x6f\xff\xf4\xc8\x5b\x16\x7e\ +\x37\xe3\xe8\x83\x3f\x8f\xfa\x75\xfd\xbe\xd7\x07\x89\x80\x50\xc8\ +\x4a\xfc\xe8\x47\x3f\x7e\x6f\x29\xc0\x9b\x28\xc7\x41\x60\xb9\xf7\ +\xf9\x0c\xc3\x20\x93\xc9\x30\x7f\xfe\x7c\x7a\x7a\x72\x84\xc3\x61\ +\x47\xb0\x38\x87\x36\xaa\xae\xe1\x50\x4a\xc9\xc0\x0c\x1f\x27\x83\ +\x68\x9f\xf6\xf1\x6b\x02\x58\x33\x2f\xc5\xad\x2b\x1b\x0c\xf4\x45\ +\x9c\x84\x8d\x2e\x6c\x9d\xeb\x97\xed\xce\xdf\xb2\x0d\x91\x34\x7b\ +\x0b\x7d\x7c\xeb\xa9\xe3\xbc\xb8\xff\xe0\xcf\xfd\xfe\xee\x19\xf7\ +\x81\x82\x17\xe1\x1e\x7b\x6f\x18\x26\x08\xf6\x98\x96\x75\xc9\x4f\ +\x7e\xfc\xe3\xfa\x69\x05\x81\x67\x6a\xdd\x78\xe3\x8d\xe2\xe1\x87\ +\x1f\x5e\xe9\xfd\x7d\xfb\xed\xb7\x47\xea\xf5\x7a\x65\x7a\x7a\xba\ +\x38\x35\x35\x25\x94\x52\xf1\x70\x38\x1c\xe9\xe9\xc9\x31\xaf\xb7\ +\x97\x54\x32\xed\x1c\xe0\xa4\x3c\xfa\x55\xfa\x6c\xa0\x3f\xbd\x43\ +\xca\xd3\x0f\xfa\x95\x62\x7d\x5f\x9a\xbb\x56\x96\xe8\xe9\x4d\x43\ +\x28\x3e\x9b\xdd\xf3\x22\x00\xbd\x68\x43\x49\x64\x28\xc5\x70\x73\ +\x21\xdf\xdb\xf1\xf3\x0b\x9f\x00\xa5\xde\x19\xcc\x2d\xc0\xe9\x7c\ +\x16\xe2\x09\xc3\x10\xdb\x0d\xcb\xfc\x57\x04\x8d\x77\x1d\x04\x9e\ +\x41\x2c\xf1\x3b\x4a\xa9\x3f\x90\x52\xd6\xdd\x1d\xbf\x36\x1e\x4f\ +\xf8\x14\x71\x2c\x1e\xef\x30\x61\x18\x6e\x77\xad\x3a\xed\xa6\x7f\ +\x55\x36\xce\xaf\xad\x2e\x91\x9b\x97\xc6\x88\x65\x66\x9b\x7a\xbb\ +\x39\x1b\xfd\xcb\x36\x58\x51\x86\x6a\xbd\x7c\xeb\x99\x09\x1e\x7f\ +\xe5\xd5\xd3\xeb\x8e\x9c\x5a\xc8\xc7\x0c\x21\xbe\x61\x5a\xd6\x53\ +\xf7\xde\x7b\xef\xd1\xb7\x66\x45\xde\x27\xeb\x96\x5b\x6e\x11\x0f\ +\x3c\xf0\x80\xea\x72\x17\xff\xac\x94\xca\x4a\x29\x4d\xa5\x54\xd2\ +\x30\x8c\xcb\x12\x89\x04\xe9\x74\x9a\x64\x32\x89\x65\x39\xb4\xb5\ +\xf7\xbb\x9b\xb1\xfb\x79\x76\xfe\xb2\x4c\x82\xdb\x97\xd7\x38\x6f\ +\x30\x0e\x91\xf4\xa9\x01\x9e\x6e\xf2\x5d\xe1\x1f\xaf\x0f\xf0\xcd\ +\x9f\x8e\xf0\xe4\xcf\xf6\x9e\xb6\xeb\x22\x84\xc0\x34\xcd\x87\x81\ +\x3f\x37\x4d\x73\xdf\xd6\xad\x5b\x27\xde\x9e\x1b\x79\x9f\xae\x1b\ +\x6e\xb8\x41\x6c\xdb\xb6\xcd\x97\xe6\x9d\x77\xde\x19\xaa\x56\xab\ +\xdf\x94\x52\x56\xa5\x94\x36\x70\x83\x65\x59\xcb\xbc\x2c\x5e\x3c\ +\xee\xb0\x93\x5e\x73\x88\x69\x9a\xb3\x32\x7e\x6f\xb6\x96\x26\xa3\ +\xdc\x72\x5e\x9d\x55\x4b\x13\x10\xcd\x06\x7d\xfd\x1b\x29\x80\x19\ +\xe6\x78\xa5\x97\x87\x8f\x86\xf8\xd1\x63\x4f\xd2\x98\xa3\x33\xf8\ +\xe7\x14\xfc\x13\x42\x88\xdf\x15\x42\x1c\xbe\xff\xfe\xfb\x5b\x3f\ +\x1f\x8e\x38\x4b\xd7\x0d\x37\xdc\x70\xb5\x94\xf2\x5a\xa5\x94\x6d\ +\xdb\x76\xcb\x30\x8c\xff\x1c\x0e\x87\xfd\x3c\x7f\x24\x12\x51\x91\ +\x48\x44\x44\x22\x11\xe7\x34\x71\xbf\x63\x58\x9d\x52\xf8\x37\x2f\ +\xad\xb3\x7a\x69\xcc\x29\xbb\x7e\x2b\x48\xdf\xcd\xe9\x8f\x35\x7b\ +\xb8\x77\x9f\xc5\x81\xc9\x02\xbb\xf7\xec\x71\x53\xd7\x3f\xb7\xeb\ +\xaf\x9b\xa6\xf9\xb2\x65\x59\xbf\xbe\x75\xeb\xd6\x13\xef\xe4\x1a\ +\x59\x67\xab\xf0\x6f\xbe\xf9\x66\xf1\xe0\x83\x0f\x3e\x01\x3c\xa1\ +\xb9\x8b\xc3\xed\x76\x3b\x52\x2a\x95\x8c\x62\xb1\xb8\xc4\x34\xcd\ +\x3f\x0d\x85\x42\x44\x22\x11\xef\x47\x45\xa3\x51\x11\x8f\xc7\xdd\ +\xf6\xb5\x4e\x64\xb1\x2c\x19\xe1\xd6\xc5\x45\x96\x2f\x49\x3b\xc2\ +\x3f\x55\x22\xa7\x0b\x08\x4a\x2c\x9a\x22\xc9\x43\x87\xc2\xbc\x3e\ +\x36\x81\x61\x9a\xef\xe4\x6b\x9d\x30\x4d\xf3\x80\x65\x59\x9f\xdc\ +\xba\x75\xeb\xc8\xe9\xb8\x4e\x67\xb5\x05\x78\x13\x05\x31\xdb\xed\ +\xf6\xb5\x52\x4a\xdb\xb6\xed\x9a\x69\x9a\x7f\x6e\x18\xc6\x75\x9e\ +\x7b\xb0\x2c\x8b\x58\x2c\x46\x32\x99\x64\x75\x5f\x0f\xb7\x2d\x2e\ +\xb3\x6a\x49\x14\x23\xbb\xf8\xcd\x99\x3d\xef\x47\x18\x94\x5a\x09\ +\xee\x3b\x94\xe2\xc5\x13\x13\x28\x9c\xb4\xf1\x9e\xb7\x6f\x01\x5e\ +\x10\x86\x71\xc0\x10\xe2\x9e\x87\x1e\x7a\x68\xe8\x74\x5e\x87\x5f\ +\x5a\x05\x98\x83\x7b\xe8\x55\x4a\xf5\x29\xa5\x44\xab\xd5\xaa\x86\ +\xc3\xe1\x23\x86\x61\xb0\x6e\x60\x01\x9f\xd8\x9c\xe0\xe2\xb5\x19\ +\x48\x0d\xd0\xb6\xc1\xa4\x89\x29\xd4\x1b\xbb\x00\x60\xa2\x9e\xe6\ +\x81\xc3\x31\x76\x8f\x4e\xf9\x7c\xfc\xdb\x54\x80\x47\x11\xe2\x69\ +\xe0\xeb\xdb\xb7\x6d\x1b\x3e\x13\xdf\xfb\x9c\x02\x9c\x5a\x21\xb2\ +\x9f\xb9\xf1\xda\x0f\x6f\x9e\x37\xf1\x47\x8b\x06\x43\x1b\x77\x97\ +\x06\x8d\xdd\xc7\x8a\x94\x6b\x4d\x7a\x93\x61\x2e\x18\x0c\xb3\x66\ +\x7e\x63\x6e\x9f\xaf\x24\x13\xd5\x38\x0f\x1c\x49\xb2\x77\x2c\x4f\ +\x5b\xcb\xc6\xbd\x45\x05\x78\x08\xf8\x0e\xf0\xd8\xf6\xed\xdb\x87\ +\xce\xe4\xf7\x34\xce\x89\x7a\xee\xf5\xa7\x9f\xf8\x44\x73\x55\xb6\ +\x75\xd3\xe0\xbc\xfa\xfa\x42\x78\xdd\x8b\xd1\xd4\xf2\x3b\x4c\x11\ +\xcf\x5e\xb1\xe1\x03\xa1\xef\x3e\xfe\xfc\x5f\xff\xed\xb6\xfd\xec\ +\x3c\x8c\x73\x34\x7d\x17\x16\x28\x35\x22\x3c\x74\x34\xc1\xab\xe3\ +\x85\x80\xf0\xdf\xca\x8e\x17\x42\x6c\x01\x7e\x73\xfb\xf6\xed\xdf\ +\x3a\xd3\xc2\x3f\xab\x41\xe0\x3b\xde\x19\xaa\x3d\x90\x0b\x4f\x5f\ +\x69\x87\x73\x8d\x92\xdd\xf3\xbd\xd1\x43\xc7\x1e\xf8\xc4\xe7\x3e\ +\xe7\x95\xd6\x7c\x46\x29\xf5\x9f\x5e\xfd\xc1\xb7\xff\xa7\x7a\xfb\ +\xd8\x7f\x8b\x9b\xe5\x79\x9e\xf0\x5b\x36\xfc\xf7\x9d\x75\x76\x1e\ +\x3d\x46\x22\x95\x22\x99\x4c\x3a\x47\xc6\xbc\x31\xff\xb0\x13\xf8\ +\xb7\xc0\xe4\xb6\x6d\xdb\x2a\xef\xe6\xf7\x3c\xa7\x00\xa7\x8a\xb5\ +\xec\x76\x32\x16\x69\xf6\xd8\xd6\x40\xa3\x25\x8d\x83\x1f\xfe\xf4\ +\xa7\xed\xae\x18\x5c\x3d\xf7\x4f\xdf\x7e\xac\x12\x8a\x1d\x8d\x45\ +\x8a\x3d\x42\x49\xd1\x68\x5b\x95\x03\xf9\xc5\x5f\x7d\xf0\xe5\x07\ +\x7e\xbf\xd9\x6e\x97\xd4\xc4\x84\x01\xc4\x22\x91\x48\x2c\x93\xc9\ +\x38\x8d\x31\x9d\xba\x41\x1b\xd8\x29\x84\xb8\x7e\xdb\xb6\x6d\xf5\ +\x5f\xd4\xf7\x3c\xa7\x00\xa7\x54\x00\xd9\x6e\x4b\xa3\x19\x55\xcd\ +\xa4\x21\x64\x66\x4e\x2b\x11\x0a\x35\xa5\xa2\x85\x6c\x53\x6b\x18\ +\x85\xa3\xe5\x25\x5f\x2b\x34\xa2\x7f\xf1\xc0\x43\x0f\x7d\x5e\xc3\ +\x12\x1f\x69\xb5\x5a\x7f\x3d\x3e\x3e\x5e\x19\x1b\x1b\x33\x0c\xc3\ +\x30\x84\x10\x69\xc3\x30\x36\x3d\xfc\xf0\xc3\x23\xbf\xe8\xef\x79\ +\x4e\x01\x4e\x75\x61\x12\xa9\xb1\x62\x23\xb9\x2f\xd3\x9c\xba\x36\ +\x12\x9a\xb9\x76\xff\xa3\x8f\xdc\xbf\xfa\xda\xeb\x26\x03\x0f\x6a\ +\x56\x57\x47\x42\xa5\x85\x8d\x86\x2a\x1f\x2d\x2f\xfe\xfa\x54\x35\ +\xf4\xe5\xab\x7e\xef\x77\x0b\xfa\x43\xb6\x6f\xdf\xfe\x23\xe0\x47\ +\xef\xd9\xef\x79\x4e\xd4\x73\xaf\x70\x32\x9d\x2f\xd6\x7a\xb7\xd9\ +\xf5\x83\x1f\xec\x0b\x1d\xf8\x95\xe1\x8a\x3a\xf1\xb3\x1f\xfd\x8f\ +\xaf\x87\xd3\xd9\x93\x85\xe1\x13\x46\x38\x64\x2c\x4f\xdb\x27\x7f\ +\x3b\x2e\xf2\xf3\x0f\xe6\x17\x7f\xad\x2c\x32\xff\xcf\x55\xbf\xf7\ +\xef\xc7\xdf\x6f\xdf\xf3\x5c\x18\xf8\x06\xeb\xa9\xbf\xf9\x5a\x7f\ +\x4e\x8e\xfc\xd1\xba\xfe\xe1\xdf\x55\xd1\x9c\x9c\x68\x2d\x7a\xae\ +\x6a\x27\xf7\xc8\x46\xcd\x4c\x1a\x85\x8d\x7d\xb1\xb1\x0b\xf7\x4d\ +\x2d\xfb\xf2\x54\x33\xf5\xa5\xab\x7e\xf7\xf7\xa6\xde\x8f\xdf\xf1\ +\x9c\x02\xbc\x59\x5c\xf6\xdf\xfe\x72\x60\x41\x56\xfe\xaf\x3d\xa1\ +\xc9\x6b\xd3\xe1\xd2\x32\xd3\x14\x61\x5b\x8a\x66\xb1\x99\x3b\x58\ +\x34\x16\xdd\x5f\x68\x46\xbf\x7c\xc5\x6f\xfd\xfb\xfc\x69\xe6\x20\ +\xac\xed\xdb\xb7\xb7\xcf\x29\xc0\x7b\x64\x3d\xfe\x95\xbf\x4a\x46\ +\x62\x91\xa5\x61\xd1\x5a\x6f\x5a\x66\x4a\x62\xe4\x6d\x23\xfc\xba\ +\xb2\xa2\xc7\x2e\xfd\xf8\xc7\x2b\xe7\xae\xd0\xb9\xf5\xbe\x5d\xff\ +\x3f\xdd\x4b\xaa\x24\xa0\xd0\xd0\x8a\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x38\xda\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\x7a\x00\xff\x00\x80\x19\x01\xf4\xdc\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x07\x08\ +\x0b\x1f\x36\xd0\x09\xf6\xed\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x79\x94\x25\xd5\x7d\xe7\xf9\xb9\ +\x11\xf1\xf6\x25\xdf\xcb\xb5\x32\xb3\xaa\xa8\x9d\xa2\x0a\x51\x20\ +\xb3\x23\x84\x84\x00\x09\x10\x92\xa6\xe5\x76\xcf\x78\xfc\xcf\xc8\ +\xdd\x67\xce\x4c\xdb\x23\xf7\x58\xa0\x69\xcb\x6a\x7b\xec\xa3\xf9\ +\xa3\xc7\x3e\x7d\xec\xf6\x72\xe4\x19\xcb\xc7\xee\xb1\x2c\xb5\xb7\ +\x96\xa1\x10\x05\x85\x04\x58\xa2\x28\x10\x20\x54\x59\x1b\xb5\x57\ +\xee\xcb\xcb\xb7\xaf\x11\x71\xef\xfc\x11\xcb\x8b\x78\x99\x85\x40\ +\x54\x96\xa0\x94\xb7\x4e\x9e\x7c\xf9\xea\xad\x71\xbf\xf7\xb7\x7c\ +\x7f\x1b\xac\xaf\xf5\xb5\xbe\xd6\xd7\xfa\x5a\x5f\xeb\x6b\x7d\xad\ +\xaf\xf5\xb5\xbe\xd6\xd7\xfa\x5a\x5f\xeb\x6b\x7d\xad\xaf\x9f\x89\ +\x25\xae\xd4\x1b\x7d\xe9\x4b\x5f\x52\xde\xed\xaf\x7c\xe5\x2b\x62\ +\xfd\xd2\xff\x8c\x00\x60\x61\x61\xc1\xdf\xf8\x3f\xf8\x83\x3f\xb8\ +\xe4\xe3\xd6\x41\x71\x15\x02\x20\xb8\xf9\xde\x52\x28\x50\xdd\xbf\ +\xfe\xf0\x0f\xff\xf3\x3a\x20\xae\x76\x00\x14\x8b\x45\xf2\xf9\xbc\ +\xb3\xfd\xca\x01\x81\xf0\x71\xe0\xdc\x87\x7b\xff\x1f\xff\xf1\x1f\ +\xaf\x83\xe1\x6a\x03\xc0\xa3\x8f\x3e\x8a\x10\x82\x5d\xbb\x76\xb1\ +\x7b\xf7\x6e\x86\x06\x07\xc9\xf6\xf5\x31\xd0\xdf\x8f\x6e\x18\x28\ +\xa5\x42\x12\x42\x28\x50\x0a\xfe\xe4\x4f\xff\xe4\x2d\x5f\x7f\x1d\ +\x18\xef\x23\x00\xf4\xae\x74\x3a\x4d\xae\xaf\x8f\x4c\xb6\x8f\xed\ +\xdb\xb7\xb1\x67\xcf\x1e\x72\xf9\xbc\xb3\xf3\x3d\xaa\x42\xb9\x22\ +\xc2\xc3\xc9\x57\xbf\xfa\xd5\x75\x30\xbc\x5f\x00\xa0\x94\xe2\xb1\ +\xc7\x1e\x5b\xf1\x7f\x4a\xa9\xc0\x8f\xb3\xe1\xba\xa6\xb1\xeb\xda\ +\x6b\xb9\xed\xd6\x5b\xd9\xb1\x63\x07\x86\x61\x38\x1f\x52\xb8\x58\ +\x50\xc1\xdf\x12\x81\xe0\xcf\xfe\xec\xcf\xd6\xa5\xc3\x7b\x16\x00\ +\xf3\xf3\x4a\x41\x08\x00\x0a\x40\x2a\xfc\x7f\x4a\xb9\x7f\xbb\x27\ +\x5d\x79\xf7\x43\x3e\x9f\x67\xf7\xee\xdd\x6c\xde\xbc\x99\x5c\x2e\ +\xc7\xd0\xe0\x10\xd9\xbe\x6c\x40\x2a\xe0\x23\x42\xba\xbf\xff\xfc\ +\xcf\xff\x7c\x5d\x65\xbc\x57\x00\x30\x3f\x3f\xaf\x08\x02\xc0\x3b\ +\xf1\xa1\xcd\x06\xa5\xa4\x0b\x8c\xee\xed\xa0\x74\x00\x85\x61\xe8\ +\xf4\x65\xfb\x48\xa6\xd3\x8c\x8d\x6e\xe0\xfa\xeb\x6f\xe0\xba\xeb\ +\x76\xfb\x40\x08\xd9\x11\xbe\x1a\x01\xa1\x14\x5f\xfb\x8b\xbf\x58\ +\x07\xc4\x4f\x03\x00\x73\xf3\xf3\x4a\xa0\x78\xec\xb1\x2f\xe2\x1c\ +\x7c\x85\xf0\x36\x57\x76\x25\x80\xa3\xef\x9d\xcd\x96\xb2\xbb\xa1\ +\x0a\x89\x70\x04\x04\x4a\x49\xc7\x0e\x90\x0a\x49\xd7\x6b\xe8\xcf\ +\xe7\xb9\xe5\x96\x5b\xb8\xe5\xe6\x9b\xe9\xcb\xe5\x11\x1a\x68\x42\ +\x73\xd4\x86\xea\xb5\x25\x9c\x27\xfe\xe5\x5f\xfe\xe5\x3a\x18\xae\ +\x08\x00\xe6\xe6\x15\x28\xbe\xf8\xc5\x2f\xfa\x27\x1a\x40\x4a\xe9\ +\xbc\xb3\x04\xa9\x64\x40\x12\xa8\xd0\x89\xf6\xed\x03\x77\xf3\xa5\ +\xea\x4a\x11\xa0\x0b\xa2\x80\x74\xd9\xb9\x73\x27\x3b\x77\xee\x62\ +\x68\x68\x90\xa1\xc1\x21\x36\x8c\x8e\x60\x18\x11\xf7\x39\xce\x9b\ +\x2a\x84\xff\x9e\xff\xe5\xaf\xfe\xea\x67\xda\xd3\x58\x63\x00\xcc\ +\x29\x3c\x09\xa0\x9c\xcd\xf6\x37\x0b\xd5\xb5\x05\x7c\x43\x10\x94\ +\x94\x21\x00\x78\x27\xdd\x03\x8d\x27\x3d\xc2\x8f\x71\x36\xd3\x01\ +\x93\x7b\xda\xa5\x24\x99\x4a\x91\xc9\x64\xc8\x64\x32\x5c\x77\xdd\ +\x75\x7c\xf0\x83\x1f\x64\xa0\xbf\xdf\x97\x04\x5d\x7f\x43\x84\x81\ +\xa5\xe0\xeb\x5f\xff\xeb\x9f\x09\x30\xac\x31\x00\x66\x95\x52\xf0\ +\xc5\x2f\x3e\xe6\x9e\xe4\xee\x86\xc9\xa0\x4d\x10\xda\x44\x47\x4d\ +\x48\x29\xbb\x12\xa3\xcb\x14\xa1\xa4\x74\xc5\xba\x40\xe2\x6e\x78\ +\x10\x5c\xee\xff\x2b\x57\x5a\x48\xa5\x56\x00\x6a\xcf\xde\x3d\xdc\ +\x79\xd7\x9d\x5c\xb7\xfb\x3a\x84\x10\xe8\xba\x8e\xa6\x69\x5d\x3b\ +\xc5\x51\x54\xfe\xf3\xfe\xe6\x6f\xfe\xe6\xaa\x95\x0e\x6b\xfa\x05\ +\x66\xe7\xe6\x14\xae\x1b\x18\x34\xe8\x1c\x3d\xaf\xfc\x93\x2a\x5d\ +\x63\x4d\x06\x8c\x44\x4f\x3a\x84\xd4\x81\x6b\x03\x04\x79\x01\xe5\ +\x6d\xb2\xbf\xd1\x12\xff\x4f\x25\x43\x40\xf3\xa4\x49\xd0\xf5\xcc\ +\xe7\x73\xec\xbe\xd6\xf1\x34\xf2\xf9\x3c\x1b\x37\x8e\xd3\x9f\x1f\ +\x08\x48\x07\xdf\x78\xf0\x0d\xcb\x6f\x7e\xe3\x1b\x57\x8d\xca\x58\ +\x5b\x00\xcc\xce\x2a\x85\xe2\xb1\x47\x1f\x73\xc5\xbb\x72\x99\x3e\ +\xe5\x9e\x58\x01\x52\x39\x5a\xd9\x07\x80\xbb\x61\x42\xa1\xec\xee\ +\x36\x48\x5f\x35\xb8\x1b\x1b\xb2\xfe\x5d\x03\x32\xe8\x59\x78\x8f\ +\xc7\x53\x19\x0a\x24\xd8\xf8\xba\x26\xe4\x91\x28\xa5\x30\x0c\x83\ +\x54\x2a\x45\x32\x99\x64\x7c\x7c\x23\x37\xdf\x72\x33\x37\xde\x70\ +\x43\x40\x6d\x11\x22\xa4\x9c\xcf\xe9\x3c\xff\xef\xfe\xf6\xef\xde\ +\x97\x80\x58\x5b\x00\xcc\x38\x00\x78\xf4\xb1\xc7\x56\x11\xf7\x2a\ +\xac\x16\x08\x9c\x66\x77\xb3\xa4\x92\xfe\x85\xf6\x37\x5c\xca\x15\ +\x6e\xa4\x27\x55\xc2\x06\xa4\x74\x55\x43\xd0\x48\xc4\xbf\xbf\x2b\ +\x09\x94\xef\x29\x74\x3f\x8b\x0a\x79\x23\xb9\x7c\x8e\xdb\x6f\xbb\ +\x9d\xdb\x6e\xbb\x8d\xfe\x81\x7e\x74\x4d\xc7\x88\x44\xdc\x8b\xe7\ +\xa8\xa3\xa0\xb4\x42\xc1\xdf\xff\xc3\xdf\xbf\x2f\xa4\xc4\x9a\x7e\ +\x90\x99\x99\x19\x87\x0a\xfe\xc2\xa3\x5d\xbd\x8c\xf2\x37\xd1\xf7\ +\x08\x42\xa2\xbb\xc7\x46\x08\x12\x47\x41\xf6\x70\x95\xfb\x1d\xdc\ +\x04\x36\x58\xae\x02\x2c\x7f\xa3\x5d\x01\x2f\x65\x57\x35\x79\xef\ +\xed\x7d\xce\xe0\xe3\x02\xef\xbd\x73\xe7\x4e\xb6\x6f\xdf\xc1\xf0\ +\xf0\x20\xe3\xe3\xe3\x6c\xda\xb4\x99\x48\x34\xe2\x93\x52\x2a\x10\ +\xed\xf4\x5e\xfb\xc0\x81\xa7\x69\x34\x1a\xef\x39\x40\xac\x2d\x00\ +\xa6\x67\x1c\x09\xf0\xe8\xa3\x21\x1b\xc0\xdb\x10\xe1\xb9\x76\x01\ +\x77\xce\x07\x47\xcf\xe9\x94\x2a\x20\xba\x7b\xa5\x47\xef\x89\x0e\ +\x9c\x76\x21\xba\xdc\x82\xaf\x22\x2e\xf1\x3c\x02\x1b\xbe\xba\xb1\ +\xea\x50\xd0\x3e\x88\x80\x78\x3c\x4e\x2a\x91\x24\x93\x4d\x73\xc3\ +\xbe\x7d\xdc\x7e\xfb\xed\x8c\x0c\x8f\x84\x80\xe0\x7d\xef\xb0\xfa\ +\x80\x6f\xfd\xd3\xb7\x7e\xea\x60\x58\xd3\x37\x9b\x9e\x9e\xf6\x83\ +\x41\x61\x43\x2e\xa0\xbb\x03\xfa\xda\x91\x06\xde\x86\x7b\x9b\xdd\ +\xdd\x38\x1f\x08\x74\xed\x07\xe5\x01\x42\x0a\x1c\x6b\x22\xa0\x1e\ +\x42\x6c\x63\x10\x18\xaa\x7b\xc2\x83\x24\x94\xff\x3e\x41\x09\xd4\ +\xb5\x21\x94\x24\x00\xdc\xa0\x31\x2a\x1c\xe0\x0a\xfc\xcf\xb9\x67\ +\xef\x1e\xee\xbe\xfb\x6e\x76\x5d\xbb\x8b\x58\x34\x46\x2c\x1a\x43\ +\x37\x74\x8f\x9f\x0c\x3d\x17\x14\x8f\x3f\xfe\xf8\x4f\x45\x3a\xac\ +\x39\x00\x14\x8a\x47\xbf\xf0\x05\xa4\xc2\x65\xf5\x64\x80\xc7\x77\ +\x2e\xb4\x92\x2e\xe3\x47\x50\x94\x07\x36\x91\xee\xe9\x0b\x81\x47\ +\x76\xc5\xb3\x24\xac\xdf\xb1\x15\x52\x84\x45\x3e\x2e\xbb\xa8\xa4\ +\x40\x09\xd7\x46\xe8\xe1\x1d\xba\xae\x64\xc0\xf6\xf0\xb8\x88\x20\ +\xb0\x60\x15\x95\x14\xa4\xb1\xbb\xd2\x2e\x97\xcf\xb1\x73\xe7\x4e\ +\x36\x8d\x6f\x62\x64\xc3\x08\xdb\xb6\x6e\x63\x68\x64\xc8\x77\x61\ +\x41\x75\x39\x0e\xe5\x90\x55\xfb\xf7\x3f\xc9\xb6\x6d\xdb\x00\xf8\ +\xe5\x5f\xfe\xe5\x35\xdb\x27\x63\x2d\x01\x10\x12\x81\x2a\xa8\x1b\ +\xbb\x22\x94\xc0\x86\xab\x50\x90\x27\x4c\xcc\x48\x25\x1d\xb4\x76\ +\x35\x41\x40\x4f\x07\x9f\xe3\x5e\x53\x11\x36\xec\xba\x9c\x82\x1b\ +\x74\x90\x84\x37\x92\x2e\xa8\x58\xc5\xc8\x54\xbe\x0a\xa2\x47\xaa\ +\xd0\x05\x8b\x7b\xa2\x9c\xbf\xa5\xef\x21\x2c\x17\x96\x39\x5c\x38\ +\xcc\x21\x75\x08\x5d\xd3\x49\x24\x12\x44\xa3\x31\xb6\x6d\xdb\xc2\ +\x1d\x77\xdc\xc9\xad\xb7\xde\x4a\x50\x37\x28\x05\x0f\x3d\xf4\x30\ +\x27\x4e\x1c\x5f\x73\x15\x60\xac\xed\xcb\xab\x9e\x64\x0f\xe9\x83\ +\x81\x55\xf4\xbc\x27\xc2\x83\xc6\x5a\x57\x77\xd3\x65\xfb\x42\x9b\ +\xb2\xd2\xff\x5f\xed\x84\x06\x0d\x32\xe8\x0d\x3a\x75\x81\xd5\x0b\ +\x08\xe1\xab\x1d\x07\x38\x61\x10\x7b\x48\x14\x61\xc0\xf8\xbf\xbb\ +\x6a\x44\xb8\xef\x61\xd9\x16\x95\x4a\x15\xa8\xb0\xb8\xb8\xc0\xe1\ +\xc3\x2f\x23\xa5\x22\x9f\xef\xe3\xce\x3b\xee\xe2\xd6\xdb\x6e\x61\ +\xe7\xae\x5d\x21\xee\x61\x2d\x97\xb6\xb6\xdb\xdf\xb5\xf4\x83\x3e\ +\xb7\x74\xdd\xb4\x90\xdb\xe5\xd1\xb8\x4a\xad\x20\x81\x84\x2f\xf2\ +\x83\xcc\xa0\xb7\x25\x1e\x90\x44\x98\xb4\x51\xdd\xd7\xf0\x4e\xbe\ +\x6b\x3e\x04\x5c\xc9\x80\x81\x16\x04\x8a\xeb\x86\xa2\x04\x1e\x85\ +\xa0\xfc\xf7\x50\xbe\x9b\xe9\x7f\x27\xc2\xb6\x06\xa1\x58\x05\x5d\ +\x95\xe6\x1b\x37\x84\x0c\x59\x50\x2c\x2f\x97\x78\xe2\x89\xc7\xf9\ +\xf2\x6f\xfe\x87\x10\x88\xdf\xd7\x12\x40\x10\x3c\x55\x81\x5c\x50\ +\xf0\x2f\xa6\x77\x4d\x84\xbf\x49\x61\xeb\xdc\xdf\x0b\xa9\x10\xee\ +\x49\x13\x01\x23\xcd\x11\xbd\xca\xdf\x65\xff\x35\x3d\x2e\x01\x9f\ +\x16\xec\x1a\x9d\x01\x02\x29\x74\xe2\x83\xd2\x43\xb8\x80\x5b\xb1\ +\xb1\x8a\xb0\x10\x53\x1e\x15\x00\xb6\x43\x60\x75\xf9\x0a\xe1\x7b\ +\x0d\x41\xe0\x2a\xdf\x0e\xea\x01\x15\x5d\x6f\xe1\x4a\xad\x35\xb6\ +\x01\x82\xa7\xd1\x63\xdf\xba\x27\xce\x37\xd8\x90\x48\xd7\xf8\xf1\ +\x2f\x66\xe8\xa4\x04\x6e\xf7\xbe\xbe\x62\xc5\x26\xfa\x5c\x80\x50\ +\x08\xe9\x4a\x09\xd9\xdd\xf8\xde\x13\x1b\x0a\x4b\x13\xb6\x57\x54\ +\x8f\x4a\x90\x4a\x21\x5c\xcb\xdd\x37\xf4\x44\x97\xe5\x0c\xba\x88\ +\xf4\xaa\x97\xa0\x19\xe1\x8b\x48\xe9\x27\xc4\x08\x8f\x83\x50\x5c\ +\x31\x10\x18\x6b\x6c\x02\x84\x09\x20\x15\xb8\xe0\x84\xc9\x16\xcf\ +\xe5\x0b\x06\x72\xfc\x0c\x62\xd4\x8a\x00\x8f\x08\xbd\xbe\x5a\x79\ +\xca\x7a\x80\xe3\xe8\x6f\x11\xc8\x39\xec\x49\x51\x17\x9e\x3e\xf1\ +\xa4\x46\xf0\x35\x94\x0f\x20\x82\x36\x41\x0f\x88\x56\xda\x1d\x84\ +\x3e\x8b\x52\x3d\x34\x72\x20\x2a\x19\x52\x1d\x57\x6e\xff\xd7\x58\ +\x02\x74\x6d\xeb\x9e\x2f\x4f\x40\x2c\x07\x2e\x64\x48\x14\x06\x02\ +\xb6\x81\x44\x11\x7c\x10\x38\x96\xbe\x92\x4e\x9c\xc0\xb6\x6d\x84\ +\x10\x08\x21\x7c\x96\xd0\xf7\xb3\xdd\x08\x5f\xd0\x3d\x43\xf5\x8a\ +\x77\x8f\x0d\xec\x02\xab\xfb\xff\x41\x56\xcf\xcb\x27\x00\x25\xc2\ +\x46\x21\xc1\x70\xb4\x97\xfc\x42\x20\xd4\x4d\x6f\xd6\x52\x40\xed\ +\x78\xd1\x50\xa9\xae\xa4\x06\x58\x6b\x09\xe0\x26\x61\xf8\xdf\x29\ +\xcc\xf2\x05\xd5\x84\xf2\x4f\x99\xab\x03\x7a\x7c\xe9\x2e\x6f\x10\ +\xb8\x88\x52\x61\x59\x16\xd3\xd3\xd3\x74\x3a\x1d\xd2\x99\x34\x99\ +\x4c\x86\x78\x34\x1e\xd0\xa4\x32\x70\xd2\x03\xec\x23\xe1\xcd\xf7\ +\x6c\x86\xd5\x5c\xcb\x20\x72\xa5\xea\x66\xa8\x2a\x29\x3c\x7f\x34\ +\x04\x70\x9f\x82\xf6\xad\xcf\x80\x44\xec\x71\x6f\x7b\xd3\xd7\x84\ +\x13\xf3\xbe\x4a\x00\xe0\x67\xde\xc8\x90\xff\xae\x3c\xe2\x43\x06\ +\xd5\x02\x21\xa3\x6c\xe5\x29\x54\x81\x8b\xd8\x15\xdf\x96\x65\xd3\ +\x6c\x36\x49\xa5\x52\xa4\x53\x69\x9a\xf5\x06\x85\xa5\x02\x7d\xb9\ +\x1c\xf1\x58\x0c\x21\x44\x00\x58\x1e\x61\xd4\x93\x23\x10\xf4\x1a\ +\x82\x61\x6b\x15\x74\x49\x03\x61\x6b\x9f\x2f\x50\xab\xd2\xd6\x41\ +\x23\x33\xe8\xba\x06\xa5\x1b\x81\xa0\x98\xfb\x20\x87\xb8\x0a\x5d\ +\x89\xf7\x39\x00\x24\x0a\x21\xc2\x95\x3f\xfe\x26\x06\x5d\xbd\xd5\ +\x4e\x47\xc8\x75\x08\x18\x7b\x21\xc6\x0f\x34\x4d\x60\x99\x26\xe9\ +\x74\x9a\xcd\x9b\x37\x73\xfb\xed\xb7\xf3\xda\x6b\xaf\x31\x31\x31\ +\x41\xa9\x58\x24\x9b\xc9\x10\x8d\xc5\xd0\x74\xad\x47\x35\x04\x14\ +\x54\xc0\x32\x0b\x7e\x46\x11\xa8\x64\x72\x09\xdc\x80\x6e\xf7\x5c\ +\xc1\xb0\xfb\x19\x92\x04\xbd\x06\x7d\x40\xb9\xcb\x00\x57\xa0\x94\ +\x4b\x93\x06\x33\xa3\xae\x06\x1b\x40\xac\x12\x43\x57\xab\x30\x82\ +\x9e\xc5\x1f\xbc\x46\x3e\xe1\xe3\xe6\x05\xa8\x5e\xa6\x10\xb0\x2c\ +\x93\x8e\xd9\xc1\xb4\x2c\xe2\xf1\x38\xad\x56\x8b\x72\xb9\xcc\xe7\ +\x3e\xf7\x39\x4e\x9d\x3a\xcd\xe1\xc3\xdf\x67\x62\xe2\x08\xc5\x62\ +\x91\x64\x32\x41\x3c\x9e\x08\xfb\x12\x01\x69\x22\xa5\x93\x9b\x88\ +\xd0\x02\x6e\x1a\x7e\x8c\x20\x40\xf3\x07\x72\x13\x09\x4b\xb7\xa0\ +\xf5\xd2\x4b\x62\x09\x15\x32\x4c\xc3\xea\x45\xad\x20\xb1\xae\x0e\ +\x37\x30\x64\x1b\x75\x45\x6c\x57\xff\xca\x00\x3f\xe0\xc5\xf0\x1d\ +\xc3\x4d\xd0\xcd\xf1\x0b\xb3\x6b\x5d\x1d\x5d\x2a\x95\x29\x2c\xcc\ +\x93\x33\x0c\x6a\x95\x0a\x0f\x3c\xf0\x00\xcf\x3e\xfb\x2c\x9b\x36\ +\x6d\x62\xd3\xa6\xcd\xd4\xeb\xe3\xe4\x72\x1f\xe0\xd4\xa9\x17\x79\ +\xf3\xcd\x09\x16\x16\x16\xc9\xf5\xe5\x88\x27\xe2\x80\xa0\xd3\x69\ +\xd3\x6e\xb7\x91\x52\xa2\x09\x0d\xdd\xd0\xd1\x35\x0d\xa1\x69\x7e\ +\x8a\x58\x28\x70\x14\x50\x25\x3e\x7a\x7a\x0c\x3d\x7a\xd8\x47\x8f\ +\x01\x45\x8a\x90\xeb\xdb\xcb\x50\x2a\xe9\xb8\x93\xf4\x18\xc2\xef\ +\x73\x1b\x80\x90\x6b\x17\x94\x06\x41\x96\x4c\xd1\x4b\xb0\x84\xc3\ +\xb5\x41\x82\xcf\xbf\xc0\x52\xd1\xa8\xd7\xd8\x9d\x4c\x32\x90\x4e\ +\x73\x21\x12\x61\xeb\xd6\xad\x8c\x8c\x8c\xf0\xca\x2b\xaf\xf0\xf1\ +\x8f\x0f\xb1\xb0\x30\x4a\xa1\xb0\x9d\x1b\x6e\xb8\x99\x9b\x6e\x7a\ +\x83\x33\x67\x0e\x71\xe2\xc4\x49\x16\x16\x16\xfc\xcd\xdd\xb4\x69\ +\x13\xc9\x64\x92\x66\xb3\x49\xa9\x54\xa2\xde\x68\x60\x59\x16\x9a\ +\x10\xc4\xe2\x71\x62\xb1\x58\x57\x05\x89\x70\x8a\xb9\xe3\x0d\x48\ +\xc2\xe2\x24\xcc\x33\x20\x55\x20\xb0\x14\x60\x1d\xe9\x51\x01\xc1\ +\x60\xd2\x55\xe3\x06\xf6\x1a\x58\x6e\xb4\xc4\xdf\xfc\xa0\xd8\x0c\ +\xaa\x82\x1e\x9f\x39\xc8\x1d\x04\x09\x1a\xab\xd3\xa1\x3f\x1e\xa7\ +\xd9\x6e\xb1\x6d\xcf\x75\xc4\xe3\x71\xb6\x6f\xdf\xc1\xab\xaf\xfe\ +\x80\x4a\xa5\xc4\xd0\x90\x62\x7a\xda\xe6\xb9\xe7\xc6\xb0\xac\x8d\ +\x0c\x0e\xee\x63\xfb\xf6\xfd\xcc\xcc\xfc\x7f\xdc\x78\xe3\x8d\x7c\ +\xf4\xde\x7b\xd9\xb4\x71\x23\xba\xa6\x91\x48\x26\x11\x42\x50\x2a\ +\x95\x38\x77\xee\x1c\x47\x8e\x1c\xe1\xe8\xd1\xa3\x2c\x2c\x2c\x90\ +\x88\x27\x48\x24\x13\x68\x42\x73\x75\xf7\x25\x36\x31\xa8\xd7\x7d\ +\x0a\xd8\xc5\x8e\x08\x67\x42\x85\x58\x21\x14\x32\xa0\x15\xc4\xd5\ +\x24\x01\xba\x21\xdf\xc0\xe9\x27\x40\xda\xa8\xb0\xf1\x23\x95\x13\ +\x1a\x0e\x06\x5f\xc2\xc4\x4a\xd7\xf7\x37\x4d\x93\x98\x61\x30\xdd\ +\x69\xb3\x63\x74\x0c\xcb\xb2\xc9\xe7\x72\x94\x4a\x25\xca\xe5\x12\ +\xf9\x7c\x87\x7b\xee\x99\xe5\x86\x1b\x0c\xa6\x26\x73\x4c\x4e\x0d\ +\x61\xdb\xa3\x6c\xdb\xb6\x8d\x5f\xfc\xc5\x5f\x64\xc7\xce\x1d\x44\ +\x23\x51\x0c\x5d\x77\x7d\x70\xc9\x86\x0d\x23\xec\xd8\xb1\x93\x3b\ +\xef\xbc\x93\xc9\xc9\x49\x5e\x7d\xf5\x55\x5e\x79\xf9\x65\x26\xa7\ +\xa6\xd0\x75\x9d\x58\x2c\x46\xc4\x88\xf8\xf9\x8b\x5e\x8e\x63\xe8\ +\xd4\xab\x95\x81\x2a\xd4\xca\x08\x67\xf0\x76\x38\x16\x01\xea\xaa\ +\x60\x02\x03\x39\xf7\x21\xd6\xcf\x0b\xec\x08\xe5\x07\x74\x44\xe0\ +\x44\x28\xcf\xdf\x96\x2e\x2d\x1c\x94\x04\xee\x7d\xb6\x6d\x22\x4c\ +\x93\x28\xd0\xb4\x6d\x12\xae\x11\x28\x34\x41\xa7\xd3\xa1\x52\xa9\ +\xa0\x69\x9a\xa3\xdf\xb5\x3a\x63\xe3\x25\x72\xf9\x59\x0e\x1f\x7e\ +\x83\xfe\xfe\x7e\x36\x6c\xd8\x00\x0a\x3a\x9d\x0e\x26\x38\x15\xa8\ +\xee\x2f\x4d\xd3\xe8\xeb\xeb\x73\x32\x86\x77\xef\xe6\x23\xf7\xdc\ +\xc3\xdf\x7c\xe3\x1b\xbc\xf4\xd2\x4b\x34\x1a\x0d\x34\x5d\x23\x95\ +\x4c\x21\x84\x93\x9f\x20\x7b\xdc\xbe\x50\x4c\x21\xc0\x09\x48\x7a\ +\xe8\x65\xd5\xcd\x03\xf0\xd5\x9d\x17\xb5\x12\x57\x8b\x04\x08\x5c\ +\x94\x20\x81\xb3\x82\x05\x53\x81\x70\xb1\x17\x37\x20\x9c\x1c\xe2\ +\xb1\x6f\x28\xb0\x6d\x09\xb6\x4d\xc3\x34\x69\x02\xcd\x66\x93\x76\ +\xbb\x85\x69\x9a\x08\x21\xa8\xd7\x6a\xc4\x62\x31\x6a\xb5\x1a\xb6\ +\xed\x70\x05\x85\xc2\x22\xa5\xd2\x49\x6e\xbc\xf1\x83\x18\x86\x81\ +\x69\x9a\xee\xa6\x77\xaf\x76\xf0\x36\x02\x04\x82\xd1\xd1\x51\xf6\ +\xee\xdd\x4b\xb5\x5a\x65\xe7\xce\x9d\x3c\xf1\xc4\x7e\xea\xf5\x3a\ +\xc9\x44\xb2\x6b\x14\x06\x89\x4d\xff\x0f\xe1\x04\x87\x7a\xbe\x67\ +\x88\x31\x94\x5d\x43\xd1\x63\xa3\x83\xa0\x7f\x9f\xdb\x00\x84\x73\ +\xf9\x3d\x1d\xb8\xe2\xa2\x28\x3f\x2e\xe2\xcb\x83\x15\x46\x60\x57\ +\xf9\x4b\xe9\x24\x96\x36\x80\x57\xa4\x44\xe6\x72\x1c\x99\x98\x20\ +\x93\xcd\x50\xaf\x37\xd0\x75\x9d\xd7\xdf\x78\x83\x44\x3c\x8e\x52\ +\x8a\x4a\xa5\x42\xad\x56\x23\x97\xcb\xb1\x69\xd3\x35\xec\xd8\xb1\ +\x03\x29\xa5\x9f\x0d\xe4\xec\xb9\xf0\x7f\xf7\x82\xc1\xb2\x2d\x16\ +\x97\x96\x18\x1d\x1d\xe5\xe7\x7f\xfe\xe7\xc9\xe7\xf3\x7c\xed\x6b\ +\x5f\xa3\x63\x76\x30\x74\xe3\x12\x65\x6d\xdd\x08\x54\x28\xeb\x88\ +\x20\x45\xdc\xab\x12\xba\x86\x83\x12\x57\x05\x00\x42\xe4\x7f\x98\ +\x0f\xf0\xdc\x9e\xc0\x17\x0f\x79\x01\x04\x58\x38\x64\x88\x35\x53\ +\x4a\xd1\x6c\x35\x89\x25\x93\xdc\x70\xdb\x6d\xdc\x74\xd3\x4d\x3c\ +\xfd\xf4\xd3\x7c\xff\xfb\x87\x50\x4a\x52\x2e\x97\x49\x24\x12\x24\ +\x13\x49\xe2\xf1\x28\xa3\x1b\x46\xd9\xbe\x7d\x1b\xa9\x74\x9a\x78\ +\x3c\x4e\x7f\x7f\x3f\x9d\x4e\xc7\xdd\x60\xe5\xfe\x16\x01\x10\x38\ +\xa8\xf0\x6e\xd6\xeb\x75\x2e\x5e\xbc\xc8\x07\xae\xbf\x1e\xdb\xb6\ +\xb9\xeb\xae\xbb\x38\x7e\xfc\x38\xcf\x3f\xff\x02\x7d\xd9\xac\x1f\ +\xf7\x76\xec\x01\xd1\xf3\x3d\x65\x58\x16\x2a\xe7\xac\x77\x6d\x04\ +\x81\x52\x76\x98\x7d\x14\x57\x8e\x09\xba\x42\x6e\x20\x2b\x22\x80\ +\x5e\x02\x40\x20\x0c\x14\x38\x11\xc1\x5a\x3d\x11\x22\x47\xa4\x72\ +\xf4\xff\xf2\x72\x91\x1b\xf7\xed\xe3\xa1\x87\x1e\x22\x93\xc9\x20\ +\xa5\xe4\x47\x3f\x3a\x42\x2e\x97\xe3\x23\x1f\xf9\x08\xb9\x5c\x0e\ +\x5d\x37\xe8\xef\xcf\x93\x48\x24\xb0\xa5\x44\xd7\x34\x74\x5d\xf7\ +\x0d\x48\xa7\x82\x58\xa0\x69\xab\xab\x00\xef\xf6\xd4\xd4\x24\x95\ +\x72\x99\xf1\xf1\x71\xcc\x4e\x07\x84\xe0\x9e\x7b\xee\xe1\x95\x57\ +\x5e\xa1\x63\x76\x88\x46\x22\x7e\x0c\x43\x21\x03\x01\x1d\x85\xf2\ +\xcb\x94\x55\x17\xec\x1e\x35\x8c\x97\x05\xd5\xcd\x8d\xe8\x35\x20\ +\xdf\xf7\x2a\x40\x08\x15\xf2\x85\x83\x99\xc1\xde\x49\xd1\x34\x0d\ +\xdb\xb6\xbb\x46\xa0\x90\x21\xab\x38\xe4\x2b\xa3\x30\x2d\x1b\xd3\ +\x34\xd9\xb5\x6b\x17\xa9\x54\x0a\x29\x25\xbb\x76\xed\x62\xdb\xb6\ +\x6d\xc4\xe3\x71\xa4\x6d\x83\x10\x18\x86\x8e\x52\x8a\x76\xbb\xed\ +\x80\x47\xd3\xe8\x74\x3a\x4e\x1a\x94\xd0\x5c\x69\x1f\x38\xf5\xab\ +\x00\x40\x4a\xc9\xd1\x63\xc7\x48\xa7\xd3\x0c\x0c\x0c\xd0\x71\x6d\ +\x8c\xf1\xf1\x31\xae\xdd\x7d\x2d\x6f\xbc\xfe\x86\xdb\xc9\x44\xad\ +\x68\x6b\xe3\x43\x5e\x76\x2b\x88\x56\x64\x29\xaf\xa0\xa7\x03\xa4\ +\xd7\xfb\x5e\x02\x84\x6a\xf4\xc3\x01\x13\xef\x82\x0d\x6c\xde\x44\ +\x24\xdd\x8f\xd5\xaa\x62\x55\xcb\x74\xea\x0d\x5a\xed\x36\x9d\x8e\ +\x09\xb6\xdd\x43\x04\x39\xcf\x89\xe8\x3a\x11\x23\xc2\xe4\xe4\x24\ +\xfb\xf6\xed\x23\x12\x89\x02\x0a\x4d\xd3\x68\xb7\x3b\xbe\x05\x65\ +\x59\x16\x9a\xe6\x66\x1f\x29\x85\xae\xeb\x20\x04\xb6\x52\x28\x69\ +\x21\x34\x11\x2a\x0a\x0d\x22\x41\x38\x16\x20\xd5\x6a\x95\xd3\xa7\ +\x4f\xb3\x6b\xe7\x2e\x22\x91\x88\x6f\x64\x0a\xa1\x71\xdd\x75\xd7\ +\xf1\xea\x0f\x5e\x75\x19\x4b\x11\xa2\x81\xbb\x99\x41\xaa\xe7\x74\ +\xe3\x83\xc1\x8b\x01\x84\x12\x53\x82\x61\xef\xab\x21\x1c\x1c\x0a\ +\xf4\x84\x48\x13\x67\x3b\xaf\xfd\xc8\x27\xe9\x68\x1f\x66\xe6\x94\ +\xa2\xd8\x9a\x47\x25\xce\x93\x1c\x3c\x4b\x3e\x72\x11\xbb\xb5\xc8\ +\xfc\xd9\x73\xbe\xd7\x20\x04\x48\x5b\x21\x74\x9d\x81\xa1\x21\x5e\ +\x7a\xe9\x30\xb6\x6d\xf3\xb1\x8f\x7d\x8c\xfe\xfe\xfe\x50\x45\xb1\ +\xa6\x69\x98\xa6\x49\xbb\xd3\xf6\x0d\xb5\x56\xbb\x45\xa7\xdd\x21\ +\x62\x18\x44\xa3\x51\x84\xa6\xf9\x3c\xbf\x61\x18\xc4\x22\x51\x34\ +\x5d\x0b\xd9\x30\xc7\x8f\x1d\xa3\x5e\xab\xb3\x7d\xfb\x76\x6c\xcb\ +\xf6\x81\x2d\xa5\xa2\x5e\xab\x3b\x92\xc5\x96\x08\x07\x69\x01\xdb\ +\x45\xf5\x34\xa8\x50\xdd\x6c\xe5\x20\x11\x26\x59\x35\xe0\x75\x55\ +\xb8\x81\xc1\x6c\xdf\x50\xc2\x44\x80\x19\x34\x3b\x70\xfe\x4c\x82\ +\x4e\xdb\x60\xf3\x07\xf2\x34\x6b\xbb\xa9\x97\x15\x76\xa4\xc3\xe6\ +\x0f\x96\xb9\xe6\x96\xef\xb2\x74\xfe\x08\xb5\x62\x15\xc3\x80\x56\ +\x65\x99\x56\xb9\x42\x34\x12\x21\x12\xd5\x79\xe9\xa5\x97\x58\x5a\ +\x5c\xe4\x91\x4f\x7d\x8a\x64\x2a\x85\xa1\x69\x54\x2a\x15\xaa\xd5\ +\x2a\x9a\x94\x18\x08\x9a\xad\x26\xed\x46\x83\x54\x2c\x4a\x22\x12\ +\xa5\xd4\xe9\xd0\x6a\xb7\x51\x52\x12\x8b\xc5\x88\xc6\x62\x10\x8d\ +\x42\x34\x4a\x2c\x9d\x26\x93\xcd\x92\x4c\x24\x68\x35\x9b\x4c\x1c\ +\x3d\xca\xf8\xf8\x38\xf9\x7c\x1e\xcb\xb2\x7c\xbf\x7d\x62\x62\x82\ +\x97\x5f\x7e\x39\xa0\x36\x56\x5a\xf4\xa1\x9a\x44\x41\xb7\x28\xa6\ +\x87\x2c\xea\x06\x98\xc2\x01\xa5\xab\x40\x02\xd0\xc3\x74\x75\x81\ +\xee\x19\xc7\x17\x5e\x7e\x8a\x2d\xb7\xd4\xb1\xcd\x0e\xed\x86\xc6\ +\x4d\x9f\xfa\x0c\xe7\x26\xd2\x1c\x3b\x14\xe3\x1b\xbf\x3f\xc2\xd8\ +\xb6\x4f\xb3\xe3\xc6\x0f\x33\x74\x9d\x20\x3b\x94\xa5\xbc\x54\xa4\ +\xb6\x30\x89\xd9\x3c\xcb\x70\xe7\x4d\xc6\x77\x4f\x32\x73\xf1\x4d\ +\x9e\x7c\xe2\xbf\xf1\xc1\xeb\xf7\x91\x10\x1a\x11\x29\x19\xcb\xe5\ +\x88\xeb\x3a\xc2\xb6\xc9\xf6\xf5\xd1\x37\x3a\x8a\xb4\x6d\xda\xed\ +\x36\x06\x10\x8f\x44\x40\x4a\xaa\x8d\x06\xa5\x6a\x95\x7a\xb9\x4c\ +\xbd\xd3\xa1\x6a\xdb\x2c\xc7\x62\xa4\x46\x47\x29\x35\x9b\x2c\x2e\ +\x2e\x72\xeb\xad\xb7\x62\x18\x06\x0a\x85\xd9\x31\x39\x73\xe6\x0c\ +\xcf\x3c\xf3\x0c\xd3\xd3\xd3\x24\x12\x09\xc7\x98\x94\x3d\x24\x8f\ +\xb7\xc9\x92\x50\xcc\x3f\xf0\xa0\x50\x08\x99\x9e\x92\xf7\xab\x44\ +\x05\x10\xae\xed\x0b\xf8\xbf\x9e\xab\x33\x7b\xea\x34\x33\x27\x4f\ +\x21\x22\x06\x99\xfe\x3c\xd7\x7f\xec\x56\x9a\xb5\x6b\x69\xd6\x60\ +\xfb\x0d\x8a\xc1\xf1\x38\x4a\x0d\x71\xee\x68\x07\xd3\x8c\x92\xcc\ +\x8e\x90\xce\x8d\x63\x64\x6f\x43\x37\xa0\x7f\x47\x8d\x1d\x1f\x9a\ +\xe2\x7b\xff\xf0\x15\x96\xce\x9c\xe6\x7f\xbc\xfb\x6e\x72\xc9\x34\ +\xb6\x65\x61\x08\x41\xcc\x30\xb0\x3a\x1d\xac\x76\xdb\xc9\xb8\x11\ +\x02\xdb\xb2\x90\xed\x36\xb6\x65\x91\x57\x92\x7c\x34\x8a\x14\x02\ +\x2b\x1a\xa5\xd1\x6a\x51\xa8\xd7\x38\xf6\xca\x2b\x3c\x37\x33\xc3\ +\xc6\xed\xdb\xd9\xb8\x71\x23\x42\x38\x0c\xe3\xd9\xb3\x67\x79\xfa\ +\xe9\xa7\xb9\x70\xe1\x02\xf1\x78\x1c\x5d\x37\xfc\xc2\x53\x15\x3e\ +\xfa\x21\x20\xc8\x15\x52\x91\x70\x3a\x5a\x4f\xa1\x8c\x12\xea\x2a\ +\x52\x01\x81\xd6\x30\x41\x6b\x39\xd4\x1a\xa6\xd3\xa1\x3c\x3f\xcf\ +\x89\x17\x5e\x20\x95\xeb\xe3\xb6\x07\x25\xe9\xd4\x24\x53\xc7\x4e\ +\x02\x16\x1b\x46\x4c\xd2\xb9\x14\x93\x27\xe6\x68\x95\xb3\x10\xdf\ +\x86\xc5\x16\x0a\x33\xa3\x98\x9d\x3d\xa0\x7f\x89\x89\x33\x7f\x46\ +\x65\xaf\x46\xaa\xb1\x84\xb0\x4d\x3a\xd2\xa1\x89\xa5\x6d\x83\x6d\ +\x23\xa5\x8d\xb2\x6c\x94\xed\xfc\x48\x29\x91\x96\x85\x92\xde\x7d\ +\x12\x65\xdb\xe4\xa5\x8d\x56\x28\xd0\x5e\x58\x20\xb3\x6f\x1f\xb1\ +\x58\x8c\x76\xbb\xcd\xc4\xc4\x04\xcf\x3d\xf7\x1c\xe7\xce\x9d\x23\ +\x95\x4e\x13\x71\xbd\x8c\x15\xc1\x2b\x37\xe0\x15\x56\x7f\xdd\xda\ +\x86\xd5\xc2\xc6\xa1\x22\xd4\xab\xc6\x08\x24\x18\xf0\x0a\x44\xc2\ +\x7c\xc6\xaf\xeb\x0b\x7b\x16\xf3\xb1\xef\x3c\xc5\x96\x7d\xb3\x34\ +\xab\x15\x66\xde\x3c\x85\x32\x6d\x3a\xad\x26\x9d\x4e\xc7\xb1\xe4\ +\x23\x11\x0c\x5d\x23\x1a\x4f\x10\x4f\xa5\xd8\xb0\xe7\x7a\x36\xec\ +\xfa\x28\x85\xc5\xeb\x78\x4d\xff\x15\xfe\xe1\x5c\x81\x3b\x86\x8e\ +\xb1\x35\x79\x8a\x58\xe1\x2c\xd2\x96\xd8\x96\x72\x36\x57\xda\xc8\ +\x1e\x00\xf8\xb7\xed\xee\xfd\x8b\xed\x36\xaf\x2f\x2c\xb0\x37\x16\ +\x23\x33\x39\xc9\xd4\xe4\x24\xa7\xcf\x9c\xe1\xd0\xa1\x43\xcc\xce\ +\xce\x92\xc9\x64\xd0\x34\xad\xcb\x5e\x0a\x42\xb6\x4d\x28\xc5\x2d\ +\x50\xfc\x21\x65\x38\xa4\x1d\x4c\x80\x11\xbd\x69\xe9\xe2\x6a\xb1\ +\x01\x44\x38\x08\x24\x10\x6e\x11\xe8\xca\x36\x6e\xa0\xa8\x2d\x15\ +\x38\xf2\xec\x77\x7a\xba\x8a\x75\x13\x30\xac\x76\x1b\x13\x68\xd4\ +\x1b\xb0\xb4\xc4\xcc\xf9\xf3\xa4\x0e\xbf\xc8\xc6\xeb\xf6\x71\xe7\ +\x27\x1e\x62\x61\xe1\xe7\xf8\x6f\x13\x37\x91\x9a\x99\x61\x47\xed\ +\x3b\x6c\xcf\x9e\x20\x57\xfa\x11\x51\xab\x84\xb2\x3a\x48\xcb\x46\ +\xda\x4e\xb0\xa9\x7b\xf2\x5d\x00\x48\x1b\xd3\xb4\x38\xdc\x6c\xd2\ +\x68\xb7\xb9\x63\x60\x80\xf9\xf3\xe7\xf9\xdb\xaf\x7f\x9d\xc5\x52\ +\x89\x66\xab\x45\x26\x9d\x41\xe8\x9a\x6f\xc8\x84\x52\xc8\x7b\x03\ +\x5e\xdd\x83\xdf\x85\x7b\x4f\x98\x7b\xb5\x08\xa1\x12\xea\x2a\x4a\ +\x0b\x0f\xe9\xc4\xa0\x3a\xa0\x27\x4a\xd8\x8d\x0c\xd2\x73\x61\xbc\ +\x90\xaa\xf2\x7a\x72\xb8\x21\x38\xef\xa2\x57\x97\x0a\x1c\x7f\xe1\ +\x59\x16\xdf\x3c\xca\xae\x3b\xef\x60\xd3\x23\x3f\x87\xd2\xef\x64\ +\xfa\x87\x9f\x65\x76\xa1\x44\xa6\xf8\x02\x83\x95\xc3\xe4\xa3\x73\ +\xa4\xec\x45\xf4\x7a\x01\x55\x2f\x21\x9a\x15\x84\xb4\xdc\x94\x30\ +\x81\x25\xe1\xa4\xb4\x39\x63\x5b\x6c\x10\x82\x85\x72\x85\x1f\x45\ +\x22\x34\x06\xb2\x24\xfb\xd3\xa4\x54\x86\x4e\xbd\xed\x04\xa2\x54\ +\xb7\xbc\x4c\xac\x56\xd8\x1a\xf0\xfd\x43\x4d\x2b\x42\xd2\x40\x85\ +\x5a\xdf\xaa\x60\xb2\xd1\x55\x93\x0f\xe0\xd3\x9c\x81\xe4\xcb\x50\ +\xc5\x40\x57\xe1\xc9\x5e\xcb\x98\x6e\xa5\xad\x9f\x2a\x2e\x02\x59\ +\xbb\x2e\x62\x3c\x09\xbc\x30\x33\xcb\xc2\xdf\xfd\x3d\x9a\xf1\x2d\ +\xb6\x7c\xf0\x76\x62\x99\xdd\xb0\xe1\x46\x8a\x83\x3f\xcf\xd4\xdc\ +\x67\x31\xaa\x73\xf4\xb5\xce\xd0\x6f\x1e\x27\xdb\x38\x49\xb4\x32\ +\x85\x5a\x9e\x87\xe2\x22\x86\x66\xb2\x2c\x2b\xfc\xb3\xdd\x60\x09\ +\x8d\x48\x2a\xc7\xdc\xd8\x18\xc9\x1b\xff\x07\xb6\xc4\xef\xc5\xd0\ +\xe6\xc1\x3e\x89\xd9\x3a\x45\xab\x36\xcd\xf4\xf1\x13\x2e\xe9\x24\ +\xbb\x35\x07\xfe\xb7\x0d\x8a\x78\x19\x2e\x05\x0a\x66\x46\xf5\xa8\ +\x46\xff\x08\x78\xd9\x47\x57\x4b\x30\xa8\x57\x2f\x86\xbb\x6f\xc8\ +\x70\xaa\x54\xa0\x12\x38\xc8\x9f\xab\x5e\xaa\xb5\xc7\xa8\x0c\x16\ +\x6f\x58\xa6\xc9\x99\x57\xbe\x8f\xa1\xbd\xc8\xe0\xd8\x38\x3b\x3f\ +\x74\x17\xe2\x9a\x31\xea\xb5\x31\x8a\xcb\x63\x9c\xac\xdc\x48\xa7\ +\x92\x43\x6f\xd7\x49\x36\x2f\x12\x5d\x3a\x85\xb2\xdb\x9c\x2d\xc3\ +\xd9\xf9\x0e\x42\x2f\x31\xb3\xd1\xe4\xe6\x4f\x5f\xcf\xb5\x37\x7f\ +\x84\x33\xaf\xc7\x88\x44\x35\x14\x0f\x93\x48\x59\xf4\x0d\x95\x29\ +\x4e\x7d\x97\xb9\xb3\xff\xcc\xf2\xe4\x49\x26\x4f\x9d\x46\xb6\x5a\ +\x81\xba\x85\x55\x32\x84\xe9\x51\x0d\x21\x43\x30\x68\x2f\xf4\xaa\ +\xc5\xab\xc1\x08\x54\x01\x2e\xa0\x27\xbc\xab\x7a\xaa\x84\x82\x85\ +\x5b\xab\x96\x79\xa9\x6e\x3a\xb6\xdf\x57\x40\x85\xad\x6a\x01\x48\ +\xcb\xa2\xad\x14\x53\x67\xcf\x31\x75\xe6\x0c\xc2\x30\x48\xf5\x0f\ +\x90\x1d\xdc\x40\x76\x68\x9c\xe4\xb6\x31\x8c\xf8\x08\x36\x63\x58\ +\xea\x7a\xa4\x3d\x40\xee\xd4\x0f\xf9\x97\x7b\xc7\x68\x56\x05\x85\ +\x19\x83\xe5\xe9\x51\x9e\x3f\x1b\x43\x49\x41\x2a\xab\xe8\x1b\x14\ +\xb4\x6a\x11\xce\x1f\x1d\xc4\xec\x7c\x8a\xfc\xd0\x5d\xdc\xf4\xc8\ +\x1c\xd7\x4c\x3e\xc9\xb1\x17\x9e\x64\xf6\xdc\x39\xba\xd4\xbe\xea\ +\x91\x6c\xe1\x6a\xa0\x6e\x13\x8a\x9e\xa2\x98\x70\x16\xc5\xfb\x9f\ +\x0a\x0e\xb5\x43\x09\xd0\xa0\x21\xa3\xc8\x0b\x83\xf7\x36\x72\x0a\ +\x4a\x81\xc0\x46\xaf\xe6\x67\x07\x83\x67\x32\xe4\x4a\xb9\x27\xce\ +\xb4\x28\xcf\xcd\x51\x9e\x9b\x45\xa9\xd7\x1c\x8f\x22\x1a\x23\x3b\ +\x38\xc4\xd0\xc6\x31\x72\x83\xfd\xc8\xf2\x9b\x5c\xfc\x41\x86\x68\ +\x2a\x43\xcc\x88\x92\x1d\xde\x4c\x2c\x3d\x8e\x6d\x8d\x11\x49\xfe\ +\x1c\x8d\x6a\x96\x6c\x5e\x70\xc3\x47\x14\x46\x24\xca\xeb\xcf\x8e\ +\xf2\xca\x81\x31\xc6\x76\xdc\xc0\xc7\xfe\xcd\x67\x29\xcf\x3d\xc3\ +\xfc\x85\x13\xcc\x9e\x3e\xc9\xf4\xc9\x37\x31\xdb\xed\x70\x64\x2f\ +\x54\x4b\xe8\x85\x7f\x05\x01\x13\xd2\xa7\x86\xc5\xd5\x41\x05\x3b\ +\x39\x2e\x42\x85\x9b\x3c\x84\xaa\x7a\x5d\x35\x10\x2c\xd9\xc3\xab\ +\xb9\x53\x04\xf2\x01\xe8\x29\x17\x73\xc9\x92\x1e\x6a\x55\x89\x60\ +\xba\xb6\x5c\x21\x79\x82\x76\x86\xd5\x6e\x51\x98\xba\x48\x61\xf2\ +\x82\xdf\x9e\x46\x13\x3a\xb6\x65\x85\x4e\x60\x22\xdb\xcf\xb5\x77\ +\x3e\x40\x76\xf8\x4e\x9a\xb5\xbb\xf8\xee\xd7\xf3\x68\x3a\xd4\x4a\ +\x20\x6d\x78\xf5\x40\x84\x23\xcf\xef\x61\xd7\x2d\x3b\x18\x1c\xab\ +\xb0\xf3\xe6\x45\x16\x2e\x7c\x9b\x73\x3f\x7c\x96\xa5\x0b\x17\x59\ +\x9c\x99\xe9\xe9\x6b\xd8\x65\xc6\x05\x76\xb7\xce\x80\x80\x7d\x24\ +\xaf\x0a\x00\x38\x09\x12\x7e\x1b\x57\xc2\x8d\x9a\x82\xc6\xa1\x5a\ +\x71\x4a\xbc\x26\xd1\x5e\x34\x2f\xf0\x1a\x52\x85\xe3\xe9\x32\x70\ +\x8a\xe4\xca\xae\x22\xc1\x46\xd3\xac\xda\xdf\xa7\x4b\xcd\xd9\xd2\ +\x0a\x77\x0a\x51\x8a\x5a\x71\x91\x37\x0e\xfc\x57\x32\xb9\xa7\xd8\ +\x7b\xcf\x3d\xec\xb9\xed\x0e\x3a\x9d\x7b\x79\xf5\x99\x21\x32\x79\ +\xc5\x7f\xf7\x9f\x24\x95\xc5\xf3\x9c\x79\x7d\x9a\xe5\xd9\x51\xe6\ +\x2f\x6c\x47\x68\x9f\x67\xc7\xad\xbf\xc4\xcd\x0f\xff\x90\xd7\x0f\ +\xfc\x09\x6f\xbe\xfc\x32\xcd\x7a\xa3\xa7\xc0\xc5\xcd\x21\x58\x2d\ +\x50\x76\x35\x18\x81\xa1\xf4\x66\xaf\x43\xb8\xbf\x75\x5e\x63\x28\ +\xc2\x9b\xe2\xef\x5a\x90\x5c\x97\x3d\x8f\xe9\x2d\x1d\x93\x2b\xab\ +\x8d\x02\x69\x59\xa1\xac\xdb\x15\xed\x62\x09\x87\x6a\xe9\x6d\x14\ +\xe5\xe6\x20\x98\x1d\x96\x17\x96\x78\xfe\xbf\xfe\x2d\x9a\xf1\x8f\ +\xec\xfb\xd8\x27\xb9\xe3\x91\x7f\xcd\xfc\xc5\x1b\x29\x2f\x80\x50\ +\x2f\x71\xf4\xf9\x3f\x22\x3b\x34\xc6\xce\x9b\x1f\x20\x3f\xfa\x31\ +\x0a\x33\x5b\x39\x7f\xec\x7e\x76\xdd\xba\x81\xfc\xd8\xff\xcb\x73\ +\x5f\xff\x2f\x7e\x4b\x99\x9e\x37\x5f\xd1\xc4\xe2\x4a\xe5\x84\xad\ +\x7d\x65\x90\x82\xcf\x7e\xf6\xb3\x2c\x2d\x2d\x71\xe1\xc2\x45\x2e\ +\x5c\x38\x8f\x69\x9a\x21\x29\x20\x08\x4b\x04\x19\x0c\x21\xf7\xa8\ +\x8e\x70\xfd\xa0\x0a\xe5\xd2\xf5\xf6\xff\x0b\xf5\x05\x5a\xa1\x16\ +\x3c\x19\xbc\xb2\x2c\xcb\xef\x40\x42\x38\xa4\xeb\xa9\x0f\xdb\x34\ +\x39\xf2\x9d\xfd\xd4\x0b\x17\xb9\xe3\x17\xfe\x3d\xa9\xbe\xeb\x98\ +\x3b\x5b\x60\xe1\xc2\x29\xe6\xcf\xbf\xc9\xf9\x1f\x7e\x9f\xa1\x4d\ +\xff\x0f\x7b\xee\xf9\x24\x5b\xf6\x7e\x8e\x56\xfd\x7a\x3e\xfa\x4b\ +\xbf\xca\xa9\x57\x0f\x71\xf1\xd8\x9b\xa1\x5c\xa0\x5e\x83\x38\xc8\ +\x2b\x5c\x05\x5e\x80\xf3\x45\xee\xbd\xf7\x5e\xa0\x9b\xb9\x5b\xa9\ +\x54\x79\xf5\xd5\x57\x39\xfc\xd2\x61\x96\x0a\x4b\x81\x86\x0b\x5d\ +\xe3\x50\x11\x6e\x98\xd0\x4b\x9d\xaa\x00\x41\xe4\x31\x01\x41\x00\ +\x84\xdb\xc8\x06\x6c\x52\x08\x83\x4a\xf6\x34\x67\x08\xa6\x6f\x41\ +\xa8\x8d\x4d\xf0\xb3\xb4\xdb\x6d\x8e\x1f\x7e\x85\x66\xe5\x37\x18\ +\xdb\x7d\x2d\x17\x8f\x9f\xf4\x3f\xa3\xd9\xe9\x30\x75\xfa\x0c\xf3\ +\x17\xff\x94\xbd\x77\x1f\x67\xf0\x9a\x3b\x78\xf3\x70\x84\x7a\xa9\ +\x8a\x57\x2a\xa2\x54\x98\x0c\x93\x5e\xff\xa2\x90\x5b\x7b\x25\x58\ +\x9a\x35\x5e\x47\x8f\x1e\x55\x2b\x2a\x7e\x03\xa7\x0b\x60\x62\x62\ +\x82\x43\x87\x0e\x71\xfa\xf4\x19\xda\xed\x16\xcd\xa6\xc3\xfd\x7b\ +\x5e\x84\xdf\x1c\x52\xad\x96\x7d\xdb\x65\xe4\x1c\x0f\x23\xdc\x2d\ +\x3c\x9c\xb1\xdb\x6d\x08\x29\x02\x3c\x44\x6f\x2b\xfb\x70\xca\x56\ +\x38\x4b\x27\x54\xea\x2d\x5d\x62\x4a\x3a\xa9\x6f\xb6\xbd\x92\xd9\ +\x04\x9c\x4c\x24\x4d\xd0\x69\xb6\xc2\xfd\x07\x7b\xfa\x18\x79\x1b\ +\xff\x4f\x8f\xff\x13\x28\x98\x9d\x9d\x05\xde\xc7\x7d\x02\x01\xf6\ +\xee\xdd\xeb\x7f\xf8\x89\x23\x47\x54\xb8\x86\xde\xb9\xaa\x7b\xf7\ +\xee\x65\xcf\xde\x3d\xa0\x60\x79\x79\x99\x73\xe7\xce\x31\x37\x3b\ +\xcb\xcc\xec\x2c\xa7\x4e\x9d\x62\x71\x71\x31\xb4\x49\x2b\x48\x94\ +\x00\xbb\xa8\x7a\xc4\xbf\x62\xa5\x0b\xd6\xdb\x19\x44\xad\xd2\xae\ +\x45\xa9\xf0\x49\x5c\x51\xcc\xd9\xd3\xb7\xc0\x8b\x57\x84\xca\xc5\ +\x5c\x41\x6f\x77\xec\x80\xe5\xe3\xb6\x8c\x73\x4f\xbd\xd7\x42\x2e\ +\xa8\xf6\x82\x19\x43\x57\x01\x15\xdc\x5d\xd7\x7f\xe0\x03\xe2\x91\ +\x4f\x7d\x4a\x0c\x0d\x0e\x6a\x85\xa5\xa5\xff\x5e\x37\x8c\xff\xfc\ +\x5b\xbf\xf5\x5b\xf9\x20\x28\xf2\xf9\x3c\xf9\x5c\x1e\x6e\x52\x98\ +\x96\x45\xbb\xd3\x71\xe2\xf0\x67\xce\xf0\xfd\xef\x7f\x9f\xd7\x5e\ +\x7b\xad\x67\xf3\x55\xcf\x4c\x80\x9e\x56\x72\x5e\xd3\xa8\xde\xc4\ +\x8b\x60\x37\x10\x56\x4b\xc6\x08\x7b\x14\x22\xa8\xa7\x7b\xfa\x0a\ +\xac\x28\xfd\x96\x41\x63\xb2\xa7\x0f\x82\xdb\x1e\x3f\x98\x20\xe2\ +\x8f\xcd\x11\x57\xbe\x3c\xfc\x8a\x35\x26\x7e\xf8\xa1\x87\x62\x9a\ +\xae\x67\x34\x5d\xff\x57\xba\x26\x7e\x5f\xd3\xf4\x98\x10\x22\x44\ +\x04\x7d\xe9\x37\xbf\xd4\xc3\x97\xaf\xd2\x69\x0c\x28\x14\x0a\x1c\ +\x3e\x7c\x98\x57\x5f\x7b\x95\x52\xb1\x44\xad\x56\xa7\xde\xa8\xad\ +\xd2\x19\x34\x3c\x67\x28\xdc\x15\x3c\xe8\x66\x06\x80\xe0\xda\x04\ +\x92\xde\x29\x25\x3d\x46\xa9\xc7\x39\xb8\xad\xe1\xbc\x76\xf5\x5e\ +\x73\xea\x15\x86\x69\x20\x17\x20\xd4\x33\x39\x50\x55\xec\x49\x84\ +\x27\x1e\x7f\x1c\xa5\x60\x7e\x7e\x6e\xcd\x55\xc0\x9a\xbd\xf0\xc3\ +\x0f\x3f\xac\xed\xdf\xbf\x5f\x7e\xfc\x81\x8f\xc7\x63\x89\xd8\x76\ +\x4d\x68\x9f\x15\x42\xfc\x86\x61\xe8\xb1\x15\x06\x59\x4f\x7d\x7d\ +\xd0\x8a\xff\xf2\x97\xff\x43\xb8\xdb\x76\x10\x0c\x0a\x4c\xd3\x62\ +\x72\xf2\x22\x93\x93\x93\x2c\x2c\x2c\x70\xea\xd4\x69\x4e\xbe\x79\ +\x12\xcb\x34\xc3\xdd\xc1\xfd\x5c\x04\x15\x8a\x2b\xf8\x71\x09\xb5\ +\x7a\xa2\x46\x78\xd2\x89\x73\xbc\x83\xa0\x72\xa4\x83\xe7\x91\x48\ +\xd7\xaf\x0f\x77\x34\x0f\x45\x02\x5d\x09\x10\x6e\x20\x11\xb6\x6b\ +\x9e\x78\xfc\x09\x94\x50\xcc\xcf\xcd\xbf\xff\x00\xf0\xd0\xc3\x0f\ +\x6b\x4f\xee\xdf\x2f\x01\x1e\x79\xe4\x91\x8f\x6a\xba\xf6\x88\x10\ +\xe2\x73\x9a\xa6\xf7\x69\x62\x65\xbd\x43\x88\xf8\xe8\x31\xf2\xfc\ +\xce\xdc\x81\xbe\xff\xbf\xfd\xdb\xbf\xbd\xa2\x8d\x8c\x17\x3c\x93\ +\xca\x29\xf8\xb0\x2c\x8b\x52\xa9\xc4\xe1\x97\x0f\xf3\xc2\xf3\x2f\ +\x30\x3f\x3f\x1f\x9a\x47\xd0\x4b\x40\x5d\x7a\x33\xc2\x33\x0c\xfc\ +\xa9\x27\x42\x86\xfb\x0e\x86\xa6\x9b\xf5\xcc\x3c\x54\x32\x54\xdb\ +\x28\x7b\x26\x9e\xf9\xc3\x2e\xdc\x48\xa2\x94\x8a\x27\xf6\x3f\x01\ +\x0a\xe6\xe7\xdf\x47\x00\x78\xe8\xa1\x87\xb2\x4f\x3e\xf9\x64\xc5\ +\x3d\xfd\xbf\x62\x44\xf4\x5b\x40\xfb\x84\x26\xc4\xb0\xd0\x82\xdd\ +\x31\xbc\xe0\xad\x60\x45\xb9\x58\x88\x14\x0a\x5a\xe7\xbd\x2c\xa2\ +\xf4\xff\xfe\x9d\xdf\xf9\xdd\x90\x7a\xb8\x94\xb4\x98\x38\x32\xc1\ +\xa1\x43\x2f\x72\xfa\xf4\x59\xea\xf5\x1a\xe5\x4a\x99\x8e\x5b\x43\ +\x10\x14\xcd\xbd\x40\xf0\x36\x9d\xc0\x66\x75\x5b\xba\x39\xe3\x6b\ +\xfd\x6a\xa0\xd5\xb8\x0a\x19\x6e\x32\xa9\x02\x8c\xa4\x0a\xe6\x48\ +\x04\xf8\x8c\xc7\x9f\x78\x02\x94\xf2\x1b\x59\xbc\xa7\x01\xf0\xe0\ +\x27\x1e\x8c\x7d\xfb\xa9\x6f\xb7\x01\x1e\x7c\xf8\xa1\xff\xc3\xd0\ +\xf4\x07\x34\x4d\xbb\x0d\x21\x92\x6e\xb6\x34\xe1\x62\xd7\xee\xc6\ +\xaf\xf0\xeb\x55\x38\x46\xbe\xd2\x42\x0f\xb7\x6f\x95\x4a\xa1\x09\ +\x8d\x6d\xdb\xb6\x72\xd3\x4d\x37\xf9\x2e\xd7\x9e\x3d\x7b\xba\xdd\ +\xbb\x15\x2b\x7a\xf3\x2c\x17\x8b\x5c\xbc\x70\x81\x85\x85\x05\x2e\ +\x5c\xb8\xc0\x91\x23\x47\x98\x9b\x9d\xed\xb6\xaa\xed\x89\x21\x74\ +\x79\x84\x9e\xc4\x0e\xa5\x42\x2d\xee\x43\x36\x44\xef\x3c\x04\x9f\ +\x50\x72\x5e\x7b\x65\x14\xb3\x1b\x0b\x7d\xfc\xf1\x27\x00\x58\x58\ +\x58\x7b\x09\xf0\xae\xbd\x80\x6f\x3f\xf5\xed\xf6\x83\x0f\x3e\xf4\ +\x15\x5d\xd7\x7e\x41\x13\x62\x5c\x09\x91\xf0\xad\x6d\x21\x02\x21\ +\xde\x70\xb0\x57\x04\xfb\x07\xf6\x06\x42\x54\xb8\xa2\x28\x98\x31\ +\x13\xda\x14\xa5\xb8\x66\xdb\x66\x6e\xbe\xf9\xe6\xd0\x67\x3a\x76\ +\xec\x18\x9a\x5b\x07\xa8\xeb\x3a\x5b\xb6\x5c\xd3\x6d\xf2\x24\x20\ +\x9f\xcb\x91\xcf\xe5\xdc\x06\x94\x16\x96\x69\x61\xd9\x36\x27\x4e\ +\x9e\xe4\xbb\xdf\xf9\x0e\x2f\x1f\x3e\x8c\x29\x65\x97\xca\x16\x81\ +\xa1\x11\x01\xd5\xa4\x7a\x5a\x96\xa8\x90\x71\x19\x6e\x11\x23\x08\ +\x27\x7e\x28\xd9\x93\x03\xb1\x82\x42\xbb\x32\xd1\xa0\x9f\x18\x00\ +\x0f\x3c\x70\x5f\x52\xd3\x8c\x2f\x69\x9a\xf6\xab\x42\x88\x34\x28\ +\xd1\x15\xd5\xa2\x3b\xba\x55\xb8\x15\xb3\x22\x90\xe8\x22\x02\xf9\ +\x72\x5e\x86\x8f\x50\x21\x26\x2c\x78\x51\x83\x71\xf3\xde\xe8\xde\ +\xf5\xd7\x5f\xbf\xba\x68\x13\xf8\x9d\x43\xa7\xa6\xa6\xd1\x34\x1d\ +\x5d\xd7\x18\x1a\x1a\x0a\xa5\x66\x6b\x42\x27\x12\xd5\x88\x28\xc5\ +\x8d\xfb\xf6\x71\xe3\xbe\x7d\x80\xa2\x58\x2c\xf1\xe2\x8b\x2f\xf2\ +\xda\xeb\xaf\x51\x58\x2a\x38\x5d\x47\x2a\xe5\x30\x6d\xcb\xca\x79\ +\x03\x5e\x14\x74\x85\x9d\xa2\x42\xae\x8d\xd7\x46\x7a\x75\xd2\xd7\ +\x61\x96\xde\x7b\x00\xb8\xf7\xde\x7b\xa3\x91\x48\x64\x50\x29\xf5\ +\xbf\x08\x21\x7e\xd3\xff\x90\xaa\xdb\xd1\x17\xba\xbd\x94\xfc\x1e\ +\x81\x81\xc7\x04\x1b\x40\x12\x18\xe1\x8a\x5c\xa5\x73\x68\xaf\x01\ +\xe6\xd5\xdb\x07\xfc\xc4\x44\x22\xf1\x96\xda\x4d\xe0\x75\xfd\x10\ +\x08\x4d\x50\x2c\x16\xfd\xce\x21\x52\x4a\x6c\x37\x35\x7c\xc8\x9b\ +\xf3\xe3\xbe\x76\x2e\xd7\xc7\x83\x0f\x3e\xc4\x83\x0f\x3e\x88\x6d\ +\x59\x4c\x4e\x4f\x31\x33\x33\xcb\xfc\xdc\x3c\x13\x47\x8e\xf0\xa3\ +\x23\x3f\xf2\x33\x95\x55\x88\xd1\x13\xab\x4f\x15\xf1\x69\xe9\x40\ +\x7f\x00\xa9\xb8\x64\x2f\x88\xf7\x5a\x75\xf0\x7d\xf7\xdd\x77\x9b\ +\x52\xea\x61\x29\xe5\x97\xbd\x93\xe5\xf9\xae\x1e\x0e\x04\x38\xe1\ +\x5f\x17\x01\xc2\xfd\x3f\xff\xc2\xe0\x05\x7f\x44\xb7\x81\x02\x84\ +\x93\x37\x7a\xa7\x80\xfb\x7a\x56\x84\x9a\x2f\x79\x6b\x71\x71\x91\ +\x91\x91\x91\xd5\x03\x51\xf4\x74\xe7\x46\x20\x10\x68\x42\x20\x74\ +\xbd\x6b\x6c\x0a\xc1\xdc\xdc\x2c\x96\x65\x61\xdb\x36\x9b\x36\x6f\ +\x0a\xc4\x32\x14\x9a\xae\x73\xcd\xe6\x6b\xd8\xbc\xf9\x1a\x94\x94\ +\x3c\xfc\xc9\x87\x50\xb6\xa2\x58\x2a\xf1\xbd\xef\xfd\x33\xcf\x3e\ +\xfb\x2c\x53\x53\x53\x41\x3a\xef\x12\x49\x2b\xca\x97\x78\x6f\x55\ +\x03\xda\xdb\x0f\xf1\xbd\x22\x01\x5e\x4a\x24\x12\x54\x6b\x35\x84\ +\x00\x43\xd7\x11\xc2\xeb\xa7\xd7\x15\x57\x8e\x3b\x27\x5c\x79\x20\ +\x42\x23\xd4\x84\x20\x60\x55\x87\xdd\x40\x44\x4f\x9a\x58\xd0\x2d\ +\x7c\x0b\x5d\xf9\xfa\xeb\xaf\x73\xdf\x7d\xf7\xb9\x25\xda\xc1\x50\ +\x74\x40\xd2\x48\x05\x9a\xf7\x1a\x4e\x6b\x7a\xd5\x53\x98\xe2\xa8\ +\x0d\x07\x20\x17\xce\x5d\x08\x4c\x26\x81\x2d\xd7\x5c\x13\x7a\x8c\ +\xae\xe9\xa0\xc1\xe0\xe0\x00\x9f\xf9\xf4\x67\xf8\xcc\xa7\x3f\xed\ +\x7b\x1a\x2f\xbd\xf4\x12\x67\xce\x9e\xa1\x58\x2c\xb1\xb4\xb4\x48\ +\xcb\xcd\x15\x0c\x75\xff\xbc\x82\xf5\xff\x97\x13\x00\xea\xe1\x87\ +\x1f\x16\x8b\x4b\x8b\x94\x4b\x65\xe6\xe7\xe6\x98\x5f\x58\xa0\xd9\ +\x6c\xa2\xb9\xc6\x96\xd3\x64\x51\xa0\x21\x02\xd5\xd2\x4e\x93\x84\ +\xd0\xbc\x1f\xba\x6d\x58\x83\xb0\xef\xcd\x96\x09\x4e\xf7\xbc\xa4\ +\x1b\x23\x04\x87\x0e\x1d\xe2\xee\xbb\xef\x0e\xdd\xef\x74\x1b\x13\ +\xee\xb0\x2a\x89\x90\xd2\xdd\x60\xaf\x35\xab\x53\xfb\x2f\x83\x69\ +\xea\xae\x18\xeb\x8f\xca\xc9\x00\x00\x00\x18\x29\x49\x44\x41\x54\ +\x7d\xc7\xf3\x17\x2e\xf8\xb7\x8b\xc5\x22\x4f\x3d\xf5\x14\x5f\x7c\ +\xec\x31\x57\xcd\x75\x43\xf9\xd7\x5f\xbf\x97\xbd\xd7\xef\x05\x05\ +\xc5\x72\x91\x99\xe9\x19\x16\x16\x16\x39\x7d\xfa\x14\x3f\xf8\xc1\ +\x0f\x98\x9c\x9c\x0c\x81\xff\x92\x17\xfa\x0a\x82\x43\xbc\x03\x15\ +\x20\x7f\xf3\xcb\x5f\x16\x66\xc7\xa4\xd5\x6a\x52\x75\x2b\x70\xab\ +\xb5\x1a\xb3\xb3\xb3\x4c\x4e\x4e\xba\x84\x8b\x72\xad\x6f\xc3\xd1\ +\xbb\x81\x16\xee\x97\xec\x7f\x17\x20\x82\xc2\x3e\xfd\xdb\xbf\x10\ +\x99\x4c\x86\xbb\xee\xba\x8b\x7c\x3e\x1f\x8a\xc2\xe9\x9a\x8e\xa6\ +\x6b\xfe\x80\x68\x4d\xd3\xfc\xcf\x24\xdd\xb1\x73\x52\x4a\xa4\x6d\ +\x63\x4b\x1b\xdb\xb2\xb1\x6d\xfb\x92\xa0\x93\x52\xf2\xcd\x6f\x7e\ +\x73\xc5\xfd\x8f\x7e\xe1\x0b\xbe\x97\x41\x8f\x1d\x23\xdd\xf7\xb0\ +\x6d\xc9\xd1\xa3\x47\x79\xe6\xe9\xa7\x39\x74\xe8\x90\x13\xf1\x5c\ +\x65\x7d\xeb\x5b\xdf\x42\x29\x45\xa1\x50\x78\x6f\xb9\x81\x66\xa7\ +\x83\x69\x9a\xe8\xba\x4e\x2e\x9f\x27\xdf\x9f\x47\x4a\xc5\xb6\x6d\ +\xdb\x69\xb7\x9b\xb4\xdb\x6d\x8a\x45\xa7\xd1\xe2\xf9\xf3\xe7\x7d\ +\x83\xcb\xbb\xf8\xbe\xed\xb0\x22\x63\x00\x82\x9d\x12\x7f\x12\xfc\ +\x57\xab\x55\x5e\x78\xe1\x05\x36\x6f\xde\xcc\xf6\xed\xdb\xc9\x66\ +\xb3\x0e\x51\xe3\x76\x0b\x17\xc1\x56\x2d\x1e\x28\xbd\x79\x81\xd2\ +\x99\x45\xac\xa4\x5a\x31\x95\x64\xb5\xf7\x59\x6d\xfd\xdf\xbf\xf7\ +\x7b\xfe\xed\xff\xf5\xdf\xfe\x5b\x12\xf1\x58\xa0\x45\xbd\xa3\x36\ +\x34\xa1\x73\xe3\xbe\x7d\xec\xbb\xe1\x06\x10\x50\x5c\x2e\xf2\xf2\ +\xcb\x2f\xf3\xfa\xeb\xaf\xb3\xb4\xb4\xc4\xd2\xd2\x12\x85\x42\x61\ +\x05\xf0\xef\xbb\xef\xbe\xdf\x02\x26\x81\x37\x0e\x1e\x3c\xf8\xaa\ +\x7b\x9f\x76\xf0\xe0\x41\x79\x45\x25\xc0\x63\x8f\x3d\x2a\xcc\x8e\ +\x93\x30\x59\x2c\x16\xdd\x1a\x39\xbd\x9b\x88\x29\x1d\x02\x44\xda\ +\x16\xb6\xad\x68\x75\x5a\xcc\xcc\xcc\x70\xe6\xf4\x19\x2e\x5e\xbc\ +\x48\xbb\xdd\x5e\x05\x08\x97\xbf\x27\xda\xf8\xf8\x38\x5b\xb6\x6c\ +\x61\x68\x68\x88\x64\x22\x89\xa6\xeb\x18\xba\xd3\x03\x58\x38\xfe\ +\x61\x08\x10\x52\x29\xdf\x2b\x08\x76\x0f\xeb\x5d\xb6\x6d\xf3\xe2\ +\x8b\x2f\x3a\x06\xdf\x4f\xb0\x7e\xed\xd7\x3e\x1f\x70\x21\xbb\x12\ +\x51\x01\x96\x69\x31\x3f\xe7\x84\xc0\x3d\x5e\xc3\x93\x00\xee\xf8\ +\xfa\x2a\x30\x05\x1c\x05\x6a\xc0\x9b\xc0\x81\x83\x07\x0f\xbe\xe6\ +\xee\x4f\xf2\xe0\xc1\x83\x8d\x35\x05\xc0\xa3\x5f\xf8\x82\xe8\x58\ +\x26\x28\x78\xe9\xa5\xc3\x28\xe5\x34\x5e\x4a\x67\x32\xf4\xf5\xf5\ +\x91\xed\xeb\xf3\x5b\xb3\xd1\x93\xfc\x29\x84\xa0\x54\x2e\x33\x79\ +\xf1\x02\x67\xce\x9c\x65\x61\x61\xe1\x92\x17\xfa\x5d\x8b\x35\xc3\ +\x20\x93\xc9\x22\x34\xd8\x38\xbe\x91\xe1\xe1\x11\x72\xf9\x3e\xa7\ +\x9c\x5b\xd3\xdd\xf6\x2f\xdd\x16\x65\xd2\x75\xc9\x6c\x29\x43\x5d\ +\xbd\xbc\xd5\xe9\x74\x68\xb7\xdb\xbc\xf1\xc6\x1b\x4c\x4d\x4d\xbd\ +\x2d\xd5\x24\x34\x0d\x74\x50\xb6\x63\x8b\xf4\x3e\xe7\xf3\x9f\xff\ +\x7c\xa0\x4d\x8c\x37\x0c\x2b\x6c\x7f\x14\x0a\x05\x6f\xf3\x57\x5b\ +\x4d\x60\x01\x98\x03\x8a\xc0\x84\x10\xe2\xef\x9f\x79\xe6\x99\x97\ +\xdc\xfd\x4a\x1d\x3c\x78\xb0\x7e\x59\x01\xf0\xbf\xff\xfa\xaf\x0b\ +\xcb\x34\x51\x4a\x71\xf8\xf0\x61\x3f\x23\xc7\x0b\x66\x28\xb7\x45\ +\x4b\x32\x99\xa4\x2f\xd7\x47\xbe\x2f\x4f\x2a\x9d\x42\x13\x22\x34\ +\xea\xcd\x11\xbf\x92\xc5\xc5\x25\x2e\x5e\x74\x22\x79\xd5\x6a\xd5\ +\x1f\xfd\xf2\xae\x80\x21\x20\x62\x44\x88\x44\xa2\x44\x23\x06\x91\ +\x68\x94\xad\x5b\xb7\x22\x84\x20\x16\x8b\x91\x4a\xa5\x48\x25\x93\ +\xc4\xe2\x31\x84\xe6\xb8\x82\xb6\x65\xf9\x27\x5c\x08\xe1\x37\xad\ +\xaa\x54\xca\x14\x8b\x25\xea\xb5\x3a\x27\x4f\x9e\xc0\x74\x1f\xf7\ +\xe3\x96\xa6\x69\xa8\x1c\x24\x07\x53\x10\xd3\x10\x1d\x81\x58\x54\ +\x54\x97\xcb\x97\x7c\xce\xaf\xfe\xea\xaf\x84\x8c\xe2\x3f\xfa\xa3\ +\x3f\x7a\xa7\xdf\xbc\x03\x34\x80\x3a\xb0\x28\x84\x78\xcd\x34\xcd\ +\x7f\x7c\xee\xb9\xe7\x9e\xb8\x6c\x00\xf8\xb5\x7f\xf7\xef\x84\xe5\ +\x76\xd7\xf4\x01\x20\x95\xef\x32\x49\x29\xfd\xbf\x95\x27\x56\x95\ +\x22\x16\x8d\x92\xcd\x66\xc8\xe7\xf2\x64\xb2\x7d\x44\xa3\x51\x3f\ +\x72\xe6\x35\x6a\x6a\xb7\xda\x2c\xcc\xcf\x33\x3d\x33\xcd\xe2\xe2\ +\x12\xed\x76\x9b\x8e\x9b\x0c\x62\x59\x96\xaf\x32\xc4\x8f\x61\xc8\ +\x84\xa6\x11\x8d\x44\x30\x0c\x83\x68\x24\x4a\x24\xea\x81\x21\xe2\ +\xde\x76\x7f\xa2\x51\x22\x91\x08\x28\xe5\xab\x25\x29\x25\xad\x56\ +\x8b\x62\xb1\x88\xd9\xe9\x20\x95\xa2\x54\x2c\xd1\xb1\x4c\xa7\x3d\ +\x9c\x0f\xde\xb7\x96\x00\xba\xae\x13\xd9\x18\x23\xbb\x3b\x47\x62\ +\x53\x1a\x0c\x98\x3a\x39\x45\xdf\xd1\x04\xe5\x4a\x19\xbb\x65\xb1\ +\xd6\xcb\xb6\x6d\xb9\x71\xe3\x46\x19\x89\x44\xb5\xe9\xe9\xa9\x7f\ +\x73\xe0\xc0\x81\xaf\xbd\x6b\x23\xd0\x3b\xed\x9e\x85\xde\xcd\xd5\ +\x5b\x59\x15\x1b\x70\xef\x69\x35\x9b\x34\x1a\x0d\x66\x67\xe7\x90\ +\x4a\xa2\x09\x41\x2a\x9d\x71\x38\xf9\x7c\x9e\x54\x2a\x89\x92\x30\ +\x3c\x32\xcc\xc8\xc8\x06\x84\x26\xa8\xd5\x6a\x2c\x2e\x2e\xb2\xb8\ +\xb8\x48\xb5\x5a\xa5\xd5\x6a\xd1\x68\x34\x68\x36\x9b\xbe\x71\xb7\ +\xaa\x51\x29\x25\xed\xb6\x33\x07\x20\xd6\x1f\x73\x3d\x11\x07\x68\ +\x4e\x4b\x38\xe1\xcc\x03\xc0\x19\xf8\xdc\x71\x0d\x5b\xd3\x34\xe9\ +\x98\xa6\x6f\xe8\x3a\x3f\x1d\x5f\x3d\x18\x86\x81\x65\x59\xef\xc0\ +\x33\x11\xe8\x71\x9d\xd4\xb6\x2c\xe9\x6b\xd2\xa4\xb7\x66\x29\x6f\ +\x28\x52\x7e\xb3\x4a\xdf\xf9\x1c\x95\x52\x19\x65\x5f\x5e\xdb\xc7\ +\x03\xe7\xe0\xe0\x20\xfd\xfd\xfd\x0e\xf7\x29\xe0\x43\x77\xdd\xf9\ +\xd7\x07\x0e\x1c\x78\xf7\x5e\x80\xb4\x55\x37\x74\x19\x9a\xbe\x19\ +\x18\xcf\xe4\x27\x57\x48\x9f\x78\x09\x31\x61\x12\x6c\x65\x53\x5c\ +\x2e\xb2\x5c\x28\xb8\xd6\xb7\x4d\x32\x91\x24\x97\xcf\x91\xcb\xf5\ +\xd3\x97\xcd\x62\xe8\x3a\x63\x1b\x36\x30\x36\x36\x8a\x92\x8a\x4a\ +\xb5\x4a\xa9\x54\xa2\x52\xa9\xd0\x6c\x36\xa8\x56\x6b\x54\xab\x55\ +\x1a\x8d\x46\x08\x0c\x41\x40\x2c\x2f\x2f\x87\x3e\xff\xee\xdd\xbb\ +\x1d\x11\x2f\x00\x4d\x74\x25\x95\xc7\x37\x48\x19\x08\xe7\x3a\xb7\ +\x9b\x8d\x77\x6c\x57\x05\x62\x1e\x1a\xd1\x64\x8c\xf4\x70\x86\x58\ +\x26\x4e\x2c\x95\x24\x33\x9c\xa6\x38\xb8\x4c\xfc\x74\x92\x85\xe9\ +\x39\x54\xeb\xf2\xd8\x41\xba\xae\xfb\xbd\x0c\x75\x5d\xc7\xb6\x6d\ +\x07\xfc\x68\x14\x8a\x25\xfd\xb2\xb8\x81\xde\xc5\x42\x41\xb6\xaf\ +\x8f\x6a\xa5\x82\x69\xdb\xab\x0c\x7c\x96\x3d\x53\xbb\x7b\x06\x40\ +\x11\xa4\x4c\x9d\xc7\xd4\xea\x75\xaa\xb5\x2a\xe7\xcf\x5f\x44\x29\ +\x49\xc4\x88\x90\xcd\x66\xe9\x1f\xe8\xf7\xa7\x7c\x8c\x6e\xd8\xc0\ +\xe8\x86\x0d\x98\x96\x45\xa3\x5e\xa7\x56\xaf\xd3\x6a\xb5\xa8\xd5\ +\x6a\x6e\x8b\xf8\xb2\xef\x69\x78\x62\x3d\xb8\x4e\x9c\x38\x71\x45\ +\x59\x36\xa5\x24\xca\x72\xa6\x85\xc8\xa8\x44\x8e\x42\x26\x9f\x27\ +\x32\x12\xa7\xdc\xbf\xc4\xc6\xa3\x9b\x59\xbc\xb8\x40\xab\xd2\x0c\ +\x8d\xcd\x79\xbb\x7b\x21\x84\x20\x12\x89\x10\x8f\xc7\xe9\xeb\x73\ +\x54\xab\xd7\x2a\xcf\x69\xc4\x81\xdb\xd1\x5c\x72\x99\x00\x20\xfd\ +\x49\x5f\x3b\x77\xee\x70\xb9\x01\x93\x72\xb5\x4a\xb9\x54\xa2\x5c\ +\x2a\xd3\x68\x36\x56\x0e\x70\x0e\x86\x41\x83\x89\x16\x7e\xec\x8c\ +\x40\x98\xd5\xb9\xdd\xee\xb4\x59\x58\x5c\x60\x6e\x7e\xce\x15\xf9\ +\x90\x4e\x67\xc9\xe7\xf3\xf4\xf7\xe7\x49\xa7\xd3\x0c\x26\x12\x28\ +\xa5\xe8\x98\x26\x6d\xb7\x07\x60\xa7\xd3\xa1\x54\x2a\x51\x28\x14\ +\xa8\x56\xab\xee\x49\x58\x9d\x83\x58\x4b\x76\x4d\xc3\x69\x21\x53\ +\xae\x95\x59\x3e\x5f\xe4\xf4\x85\x33\xcc\x2d\xcd\xb3\x79\x6c\x9c\ +\x2d\xc3\xdb\x18\xf8\xf0\x38\x62\x5c\x12\x39\x16\xa3\x72\x62\x99\ +\xc2\xc5\x45\x94\xf5\xf6\x37\x3f\x1a\x8d\x12\x8f\x27\x48\x26\x13\ +\xc4\x62\x31\x27\x1b\xca\x32\x9d\x68\x87\xd0\xd0\xdc\xce\x65\x42\ +\xe3\x2d\x8d\xea\x77\xa6\x02\xa4\xed\x0f\x74\x28\x95\x2b\xa4\x92\ +\x49\x74\xc3\x20\x9f\xcf\xd1\x9f\xcb\x39\xc6\x87\x94\xd4\x6b\x35\ +\x8a\xa5\x12\xcb\xcb\xcb\x54\xab\x95\xf0\xd0\x47\x7a\xe6\xed\x04\ +\x12\x2c\x04\x81\x21\xcb\xc1\xc0\x90\x10\xd8\xb6\x4d\xa9\x54\xa4\ +\x58\x5c\xe6\xf4\x69\xc7\x16\x89\xc7\x63\xe4\xf2\x39\x06\xf2\x03\ +\xf4\xf5\xf5\x91\xc9\xa4\x51\x52\x91\xcd\x66\x19\x1b\x1b\xc3\xb6\ +\x2c\x1a\x8d\x06\xcb\xc5\x22\xcb\xcb\xcb\xd4\xeb\x75\xdf\x4a\x5f\ +\x6b\x30\x78\xad\xa6\x4d\x65\xd1\x36\xdb\x14\xea\x05\x2e\x2e\x9c\ +\xa7\xa3\x75\xb0\xa3\x02\xb5\x09\x86\x6e\x1a\x24\x3d\x90\x83\x11\ +\x41\x76\xa2\x9f\xd9\xb3\xd3\xb4\xcb\x0d\xa4\x25\x2f\xb9\xf1\x86\ +\x61\x90\x4e\xa7\xd0\x8d\x08\xf1\x58\xd4\xe9\x87\xe0\x19\xc9\x6e\ +\xcf\x6b\x21\x9c\x78\x87\x40\x20\xa4\xb8\x8c\x12\x40\x76\xd3\xa7\ +\x2e\x5c\x70\x44\xb5\x26\x04\x89\x64\x92\x6c\x26\x43\x2a\x9d\x76\ +\x5c\xad\x74\x9a\x64\x3a\xcd\xf8\xd8\x18\x52\x29\x5a\xad\x16\xa5\ +\x72\x89\xe5\xc2\x32\xc5\x62\x89\x4e\xa7\xed\x7b\x10\xb0\xca\xb4\ +\x2c\x45\x37\x7a\xa8\xbc\xf8\x39\x3d\xc3\x95\x15\x8d\x46\x83\x7a\ +\xbd\xce\xf4\xd4\xb4\xef\xff\x7f\xe8\x43\x77\xa3\x69\x1a\x46\xc4\ +\x70\xac\xf1\x48\x84\x4c\x36\xc3\xa6\x4d\x1b\xb1\x6d\x9b\x6a\xb5\ +\x46\xa1\x50\xf0\xd5\xc5\xdb\xf5\x2e\x7e\x52\x10\xe8\x86\x46\x3c\ +\x99\x20\xda\x17\xa3\x93\x30\x99\x6d\x4c\xd3\x9a\xae\x53\xb7\xca\ +\x6c\xdb\xb0\x9d\xf1\x5d\x63\x0c\x6d\x1a\xa5\x36\x5e\x61\xf0\xc8\ +\x08\x8d\x1f\xd5\x29\xcf\x2e\x61\x77\xec\xc0\xf5\x71\x3c\x95\x6c\ +\x26\xeb\x78\x39\xb1\xa8\xd3\x2f\xc9\xb2\x10\x42\x73\x4f\xbc\xf2\ +\xe2\xde\x7e\xfb\x19\x21\x34\x10\x2a\x14\xd8\x7a\x77\x12\x20\x28\ +\xbe\x5d\x23\xc9\x92\x36\xe5\x72\x99\x52\xb9\x8c\x72\x59\xb4\x44\ +\x22\x41\x26\x93\x21\x93\xc9\x90\x4c\x26\x89\xc5\x62\x0c\x0f\x0f\ +\x33\x34\x38\x0c\x4a\x61\x5a\x26\xe5\x4a\x99\xe5\xc2\x32\xcb\xcb\ +\x45\xaa\xb5\xaa\x1f\x00\x52\xde\x88\x99\xde\x58\x81\x8b\x14\xa9\ +\x56\x99\xc7\xe7\x2e\xc7\x4a\x97\x2b\x5a\xb7\x29\xe5\x7a\x00\x9a\ +\xee\x7c\xae\x6c\x06\x25\x15\xa6\xe9\x7c\x0e\x27\xb5\xdc\x19\x2c\ +\x71\x99\xad\x00\x27\xfc\x6b\x08\xb4\x84\x46\xa4\x2f\x42\x2c\x16\ +\xc3\x8a\x49\xce\xd4\xcf\x32\x37\x35\xc7\x48\x79\x03\x1b\xf3\xe3\ +\x6c\xbc\x6e\x13\x83\x63\x23\xd4\x47\xab\x30\x21\xb1\x4e\x9b\x94\ +\xe6\x97\x11\x4a\x90\x4e\x67\xd0\x74\x81\xae\x69\x8e\x34\x74\x87\ +\x5a\x21\x34\xd0\x5c\x83\x1b\xef\xc4\xcb\x80\xba\xb3\x91\x4a\x5c\ +\x4e\x15\x20\xc3\xc3\x0f\xbc\x4e\x98\x2a\x3c\xf1\xb3\x5e\xaf\x53\ +\xab\xd5\x98\x9e\x9e\x46\x2a\x45\xc4\x30\x48\x67\xd2\xf4\xf5\xf5\ +\x91\x4e\xa5\x89\x46\xa3\xe4\x73\x79\x72\xd9\x3e\xb6\x6e\xdd\x8a\ +\x52\x8a\x6a\xb5\xc2\xf2\x72\x91\xa5\xa5\x02\xe5\x72\x09\xcb\xb6\ +\x02\x63\x58\x56\x4e\xd1\x59\x31\x83\xaf\x27\x97\xa2\x3b\xd9\xbb\ +\x9b\xe2\xed\x53\xaf\xd2\xf1\x64\x74\x4d\x27\xd7\x97\x23\x9f\xcb\ +\x23\x84\xa0\xd5\x6a\x51\xad\x56\x29\x97\xcb\xb4\x5a\x2d\xff\xfb\ +\xbe\xab\xe8\x9c\xdb\xfd\x5c\x46\x6d\x54\x4a\xa1\x27\x74\x34\x43\ +\xa3\xd1\x69\xd2\x34\x9b\x34\x2a\x4d\x5a\xb4\x40\xd3\x19\x1f\x1e\ +\x25\x75\x7b\x8e\x78\x7f\x82\x72\x7e\x89\xfe\x0b\x83\xaa\xbc\x58\ +\xa4\x53\x6f\x0b\xa1\xc0\x96\x0a\xaf\xb7\xb5\xb3\xe5\x12\x4d\x3a\ +\x89\x2e\x0a\x0d\xb0\x7d\x0b\xc4\xb9\x0e\x02\x84\xc2\x7e\x0b\x03\ +\xf3\x1d\x4a\x80\x30\x00\xde\x2e\x0f\xd0\x69\xb7\x59\x6a\xb5\x58\ +\x5c\x58\xf4\x79\x80\x44\x32\x45\x2e\xeb\xd0\xc7\xc9\x64\x82\x54\ +\x2a\x4d\x2a\x99\x62\x7c\x7c\x23\x20\x69\x36\x5b\x94\x4a\x25\x96\ +\x96\x0a\x2c\x2f\x17\xba\xee\x98\x37\x4a\xe6\x12\x61\x84\xd0\xe0\ +\x25\x97\x82\xf5\xa6\xd1\xab\x15\x1e\x4d\x38\x83\x37\x1a\x8d\x32\ +\x38\x38\xc8\xd0\xd0\x10\x00\x8d\x46\x83\x6a\xb5\x4a\xad\x56\xa3\ +\xd3\xe9\x60\xdb\xb6\xcf\x54\x7a\x56\xf8\x8f\xa7\x05\xdd\x1f\x03\ +\x64\x4c\x22\xe3\x12\x2d\xae\x91\x54\x29\x2c\x65\xd1\x6a\x37\xb9\ +\xd8\xba\x40\x63\xb9\x41\xdd\x2e\x73\xed\xd0\x5e\x06\x6f\xe9\x27\ +\xbe\x21\x4e\xe5\x64\x49\x24\x8e\x9a\x44\x2f\xc4\x68\x94\x6a\x28\ +\x4b\xa2\x94\xe6\x24\xa9\xb8\x9b\x2c\x01\x21\x5d\x30\x08\xcd\x49\ +\xc1\xd3\xa4\x9f\xdb\x20\x34\xde\x72\x16\xf1\x3b\x94\x00\xc1\x74\ +\xe7\x77\xc7\x03\x94\x4b\x65\x4a\xc5\xa2\xcf\x03\x24\xe2\x09\xb2\ +\x7d\x59\xfa\xfa\xf2\x64\xd2\x69\x22\x91\x28\x83\x43\x43\x0c\x0d\ +\x0d\x22\xdd\x21\xd1\x95\x72\x85\xa5\x82\x13\x35\x2b\x57\xca\xab\ +\x76\xd1\xe8\x1d\x4c\x2e\x20\x44\x43\x7b\x83\x29\x43\x43\x7e\x02\ +\xa0\x08\x9e\xf6\x78\x3c\x4e\x22\x91\x60\x64\x64\xc4\x9f\x3b\x54\ +\xab\xd5\x68\x36\x9b\x01\xb2\xc8\x0c\x89\xd8\x30\x28\x9c\xbc\x08\ +\xa5\x29\xa4\xa1\x90\x71\x89\x4c\x38\x20\x70\xab\x05\x30\x62\x11\ +\x94\xa5\x58\xb2\x96\x68\x2c\xd5\x99\xad\x2e\x30\x10\xed\xa7\x2f\ +\x9a\x63\x60\x67\x9e\xc1\x81\x11\x3a\xa7\x9a\x44\x4f\x45\xa9\xcc\ +\x14\xb1\xab\x8e\xde\x97\x42\xb9\x79\x8f\xca\xdd\xf8\xee\xdc\x21\ +\x21\x1d\xff\x5f\x68\x0e\x42\xac\xcb\x25\x01\x94\x4b\xf5\x2a\x14\ +\xa9\x54\x8a\x7a\xbd\x8e\x25\xe5\x65\xe1\x01\xea\x8d\x06\xb5\x7a\ +\x8d\xc9\xc9\x69\x94\x92\x18\xba\x41\x26\x93\x21\x9f\xcf\x91\xc9\ +\x66\x1d\x5f\x37\xd7\x47\xb6\x2f\xcb\xd6\xad\x5b\x91\x52\xd2\x68\ +\x34\x28\x14\x0a\xbe\x51\xe7\x0c\x81\x52\xd0\xe3\x49\x04\xc7\xb7\ +\x87\x3a\x95\xbd\x0d\x77\x2b\xf8\xb8\x64\x32\x49\x2a\x95\x42\x08\ +\x81\x69\x9a\x34\x9b\x4d\xbf\x92\xb9\xd3\xe9\xd0\x6a\xb5\xe8\x74\ +\x3a\xbe\x84\x70\x72\xa2\x24\x42\x57\x10\x55\xa8\x98\x03\x02\x3b\ +\x61\xa3\x94\xed\xea\x6c\x0d\x65\x29\x3a\x66\x87\x62\xad\x42\xad\ +\xd6\x62\x91\x02\x7d\x91\x3e\xc6\x53\x63\xc4\xb6\xc5\x49\xe7\x53\ +\x68\x83\x06\xb9\xd3\xa3\x2c\x5d\xbc\x48\x63\xa1\x8e\x6c\xdb\x9e\ +\xc9\xef\x78\x66\x68\x74\x65\xae\x0b\x06\x37\x0c\xae\xde\xc2\xb6\ +\x79\xc7\x5e\x80\x74\x53\x9e\x37\x6e\xda\xe4\x1a\x5e\x26\xf5\x7a\ +\x83\x5a\xb5\x4a\xb5\x5a\xa3\xd5\x6e\x5d\x16\x1e\xa0\x63\x76\x58\ +\x2a\x2c\xb1\xb0\xd8\x8d\x1a\xa6\x52\x69\xf2\xf9\x1c\xb9\xbe\x3e\ +\x67\xfe\x4f\x22\xc1\xf8\xd8\x18\xa3\xa3\xa3\x0e\x1f\xe0\x96\x94\ +\x87\x2a\x89\x83\x85\x22\xb2\x77\x62\xf8\x3b\x25\x76\x54\x68\x1e\ +\x41\x3a\xed\x8c\xab\x07\x30\x4d\xd3\x07\x80\x6d\xdb\xc8\x8c\x40\ +\xd7\x75\xc7\x99\x11\x02\xa9\x2b\x88\x28\x94\x61\xa3\x22\x12\x5b\ +\xb3\x1d\xd5\x60\x09\xf4\x96\x46\x4c\xc4\x10\x29\x0d\xd5\x56\x54\ +\xab\x65\x0a\xa5\x45\x8a\xa5\x02\x76\xdb\x62\xe7\x86\x1d\x6c\x1c\ +\x1d\x47\x6d\x86\xf6\xc9\x01\x52\x47\xb3\x2c\x9e\x9d\x43\x36\x4c\ +\x47\xbf\x08\x40\xd9\x4e\xe6\x95\x26\x10\xaa\xcb\x79\x28\x25\xde\ +\x32\x0b\xe9\x9d\x00\x40\x9c\x39\x73\x86\xa1\xa1\x41\x8c\x88\xe1\ +\xb0\x6d\xba\x8e\xae\x19\xbe\xc5\x3f\xea\x4a\x89\x46\xb3\x49\xa5\ +\x52\xa1\x52\xa9\x50\xaf\xd7\x2e\x0b\x0f\x20\xdd\xe8\x5c\xb9\x5c\ +\x72\x8d\x33\x45\x3c\x1e\x25\xdb\xe7\xe4\xf8\x67\xb3\x59\x22\xd1\ +\xa8\xeb\xf3\x86\xa7\x8c\x78\xe0\x0d\x55\x28\x5c\xca\x95\xf8\x09\ +\x01\xe1\x51\xb1\x1e\x38\x64\x0e\xe4\x80\x46\x3b\xd1\xa1\x26\x5a\ +\xae\xa2\x56\x48\x5d\xa1\x22\x8e\x4a\x40\x73\xc6\xca\x29\x5b\xa1\ +\x23\x10\x3a\x68\xba\x4e\x2c\x1a\xc3\xb0\x22\x98\xed\x0e\x67\xa6\ +\x4e\xd3\xac\x37\xe9\x8c\x77\x18\xde\x34\x42\xdf\x50\x9e\xe6\x70\ +\x9d\xf1\xfe\xcd\xcc\x1d\x9f\xc2\x2a\x9a\xce\xc0\x0a\x2f\xed\xce\ +\x4d\xad\x77\x3c\x01\x87\x8e\xb6\xd5\xe5\x01\xc0\xa1\xef\x3e\xf7\ +\xdd\x98\x10\xe2\x83\xd9\x6c\x96\xd1\xd1\x51\x46\x47\x47\xc9\x64\ +\x32\x44\x22\x11\xa2\xd1\x28\x86\x61\x20\x84\x46\x32\x99\x20\x91\ +\x48\x30\x3c\x3c\x0c\x10\xb2\xae\x2b\x95\xea\x65\xe4\x01\x9a\xd4\ +\xeb\x0d\x66\x67\x66\x7c\x1e\xe0\xb6\xdb\x6e\x0b\x88\xfe\x2e\xc7\ +\xdf\xb5\x0f\x7a\x1a\x35\x5f\x56\xea\xb7\x2b\xf5\x74\x3d\x82\x11\ +\xd1\xb1\x74\xe9\x93\x42\xde\x2f\x0d\x0d\x4d\x6a\x7e\xb1\x8a\x73\ +\x5a\x35\x84\x72\xf2\x29\x23\x7a\x04\x11\x15\x74\xcc\x0e\xe5\x5a\ +\x05\xb3\x61\x63\xd7\x6d\x2a\x1b\xaa\x8c\x0c\x6f\x20\xb9\x27\x89\ +\x96\x17\xf4\x0f\x6e\x40\x1d\xb3\x29\xcf\x17\x30\x6b\x1d\xa7\x21\ +\xb6\xf2\xb2\x9d\xbc\xda\x08\xa7\x49\xf6\xbb\x06\xc0\xc1\x83\x07\ +\xef\x74\xc3\xc2\xff\x50\xaf\xd7\x1b\x27\x4e\x9c\xb0\x8f\x1f\x3f\ +\x7e\x77\x24\x12\xd9\x9a\xcb\xe7\x18\x1e\x1a\x66\x70\x70\x90\x58\ +\x3c\x46\x32\x91\x20\x91\x48\x3a\x43\x16\x94\x72\xc6\xad\x46\xa3\ +\xe4\xfb\xfb\x1d\xb7\xc4\xb4\xa9\x56\xab\x94\x4a\x45\x4a\xe5\x8a\ +\xcf\xd0\x5d\x0e\x1e\x00\xba\xc3\x37\x2f\xe1\x1b\xc2\x9a\x6c\xff\ +\xea\x06\xa9\xab\x03\xd0\x94\x86\xb0\x35\x74\x4b\x43\x58\xc2\x07\ +\x85\x90\x0a\x61\x81\xb0\x14\x58\x02\x65\x3b\xad\xe7\x34\x04\x31\ +\x23\x41\x24\x9e\xc0\xaa\x58\x9c\xbb\x70\x9e\xb9\xa9\x39\x06\x07\ +\x06\xd8\xb6\x65\x3b\x5b\xaf\xd9\x42\xdf\x60\x3f\xed\x0d\x4d\xac\ +\xe3\x16\xd6\xe9\x0e\x95\xc5\x12\xaa\xa5\x10\xc2\xf5\x50\x14\x28\ +\x71\x19\x79\x00\x17\x08\xff\x22\x90\x23\xf0\x61\xa5\xd4\xc7\x97\ +\x0b\xcb\xf6\xc2\xfc\x82\xa9\xeb\xfa\xef\xc4\x62\x31\x72\xb9\x1c\ +\xb9\x5c\x8e\x6c\x26\xab\x92\xc9\xa4\xc8\x64\x33\xa4\x52\x29\x27\ +\x85\x5c\x49\xd0\x75\xb2\xd9\x0c\xd9\x6c\x86\x4d\xee\xe9\xaf\xd7\ +\xeb\x94\x8a\x25\x96\x8b\x45\xaa\xd5\xca\x4f\xcc\x03\xc8\x9e\xf2\ +\xef\xe0\xb0\x86\x60\xa1\xc9\xda\xef\xbf\xdf\xda\x1a\x65\x81\xb2\ +\x04\xaa\x03\x22\xa2\x41\x4b\x73\x4f\xbc\x42\x28\x0d\xcd\x14\xa8\ +\xb6\x00\x13\x84\x0d\x9a\xad\x21\x6c\x81\xb2\x9d\x5c\x89\x68\x44\ +\x60\x1b\x1a\x96\x65\xb3\xb4\x5c\x44\xd3\xce\xd3\xee\x74\x18\x1e\ +\x1a\xa1\xff\xba\x2c\xe9\x81\x3e\x3a\xa3\x4d\xf2\xe7\x06\x59\x98\ +\x9c\xc5\x5a\xea\xd0\x69\xb6\xdd\xd4\x37\x75\x79\x01\xe0\xad\x8f\ +\x7f\xfc\xe3\xe2\xc0\x81\x03\x2f\x00\x2f\x04\x00\x71\xc6\xb2\x2c\ +\x7d\x7e\x7e\x5e\xcc\xcd\xcd\xdd\x60\x18\xc6\xaf\xc7\x63\x71\x52\ +\xe9\x14\xe9\x74\x9a\x64\x2a\xe5\xcc\xe4\xcd\xe5\x48\xa5\x52\x28\ +\xe5\xa4\x61\xa1\x1c\xf6\x30\x1e\x8f\xb3\x61\x74\x03\x52\x29\x3a\ +\xed\x36\xe5\x52\x89\x62\xb1\x44\xb1\x54\xa4\xd5\x6c\xbe\x2d\x1e\ +\xc0\xed\xe8\xd0\xad\x20\x0a\x78\x27\x8a\x40\x47\xf2\x35\x89\xfe\ +\x29\x27\xf8\xa4\xeb\x44\x94\xe1\xd7\x3f\x82\x42\xb3\x04\x7a\x5b\ +\xa0\xe9\xa0\x0b\x81\x42\x77\x44\x95\x4b\x52\x08\xe9\x48\x09\xcd\ +\xd4\xc0\x72\x38\x1d\xcd\x02\x61\x82\x10\x3a\x91\x68\x04\x4b\xb3\ +\xb1\x4c\x93\xd9\x85\x39\x96\xcb\x25\xaa\x8d\x1a\xda\x96\x6d\xf4\ +\x6f\x1f\xa4\x7f\xa4\x8f\xfa\x60\x05\x23\x1e\xa5\x22\xab\x18\x33\ +\xdd\x0e\xeb\xf2\x32\xd9\x00\xa1\x75\xe0\xc0\x01\xb5\x8a\x74\xf8\ +\xba\x77\xfb\xfe\xfb\xef\x4f\x28\xa5\x9e\x68\xb6\x9a\xb2\x52\xad\ +\x54\x23\x91\xc8\xdf\xe9\xba\xbe\x2d\x16\x8b\x11\x8f\xc7\x89\xc7\ +\xe3\x2a\x9d\x4e\x8b\x81\xc1\x01\xfa\xf3\x79\xa2\xd1\x38\x4a\x49\ +\x77\x7e\xa0\xc4\x30\x0c\xfa\x07\x07\xe9\x1f\x18\x70\x28\x67\xdb\ +\xa6\x56\xad\xb2\xbc\x5c\xa0\xb0\xec\x48\x89\x55\x79\x80\x60\xe3\ +\xc9\x55\x8a\x49\xd6\x72\x28\xa3\x94\x92\x64\x32\x49\xb3\xd5\xa2\ +\xde\xae\x23\x1a\x11\x6c\x53\xa2\x2c\x05\x6d\x81\x68\x69\x08\xcd\ +\x29\xa8\x31\x94\x02\xa9\x79\xa5\x53\x08\x5b\x80\x05\xc2\x72\x11\ +\xda\x01\xd1\x51\xd0\x72\xb8\x13\xa1\x14\x86\xa1\x23\x80\x5a\xbd\ +\x46\xb5\x5c\x46\xda\x16\x86\xd0\x88\xc6\xe2\xe4\x86\x72\xc8\x8a\ +\x24\x3a\x57\x21\x35\x93\xc2\x8c\xb6\x31\x9b\x4e\xac\x43\xad\x85\ +\x04\xf8\x71\xeb\x99\x67\x9e\x69\x02\xcf\x05\x00\x71\x87\x94\x32\ +\xd5\x68\x34\x44\xb5\x5a\x35\x22\x91\xc8\x49\x4d\xd3\x98\x9c\x9c\ +\xc4\x30\x74\x62\xb1\xb8\xea\xef\xef\x17\x43\x43\x43\xee\xd4\x4f\ +\xad\x5b\xb8\xa1\x14\x9a\x10\x64\x32\x19\xd2\xe9\x34\x9b\x36\x6d\ +\x46\x29\xc7\x08\x2c\x95\x9c\x48\x5f\xa5\x52\xf1\x6d\x80\x50\xcb\ +\xe5\xc0\xe9\x0f\x12\x59\x6b\xb5\xa4\x94\x18\xba\x8e\x14\x4e\x6f\ +\x22\xa5\x5c\xa3\xcf\x14\x68\x6d\x81\xae\x09\x74\xa1\x75\x03\x34\ +\x0a\x90\xc2\x11\x5a\x96\x42\x98\x1a\xc2\xd6\x11\x1d\x0d\x61\xbb\ +\xa4\x8e\x10\xa0\x04\x66\xdb\xa2\x6d\xb6\x88\x44\xa2\x8c\x6d\x18\ +\x67\x7c\x74\x94\xd1\x0d\xa3\x24\x55\x8c\xca\xf1\x65\x6a\x47\x4a\ +\x30\xa1\x30\xa7\x5b\xd8\x6d\xcb\xef\x5e\x22\xa5\xba\xf2\x00\x58\ +\x05\x10\x0b\x3d\x39\x86\x29\x29\xa5\x98\x9a\x9a\x6a\x0f\x0f\x0f\ +\x7f\xbe\xd1\x68\xfe\x5e\xa9\x54\xe2\xfc\xf9\xf3\x08\x21\x48\xa5\ +\x52\x0c\xb9\x4c\x60\x3a\x9d\x75\xe6\xfd\x84\xea\xef\x25\xf1\x78\ +\x8c\x91\x91\x11\x86\x86\x87\x51\x52\x61\xd9\xe6\x2a\x81\xa0\x70\ +\x33\xc9\xb5\x5c\xa6\x5b\x5b\x08\xb8\xb1\x7d\x0d\xdb\x72\xfa\x08\ +\x69\x6d\x0d\xad\x61\xa0\xa1\xa3\x09\x0d\x29\x75\xb7\xac\x48\xa0\ +\xd9\xae\xe6\xb2\x1c\x55\x81\x05\x9a\x29\x1c\xa9\x60\x7b\x14\xbc\ +\x8d\x44\x11\x4b\xc4\x18\x19\x1c\x61\xc7\xb6\x6d\x0c\x66\x07\x88\ +\x99\x71\x3a\x27\x9a\x2c\xbe\x51\xa2\x71\xbc\x4a\x6b\xa6\xe1\x8e\ +\x64\x73\x0c\x4d\x25\x40\x4a\xf1\xd3\x07\xc0\x2a\xea\x22\x98\x6b\ +\xf5\xfb\xee\x8f\x07\x8e\xd3\xe5\x72\x79\x5b\xb9\x5c\x16\xa7\x4f\ +\x9f\x46\xd3\x34\xfa\xfa\xfa\x18\x1e\x1e\xa6\xbf\x3f\xef\x0c\x7d\ +\x54\xe1\xe1\x4c\x00\xba\x66\x84\xfa\xfd\x85\x1a\x4d\x22\xd7\xbc\ +\x1e\xaf\x5e\xab\xfb\xb9\x06\x5a\xda\x40\xb7\x23\x60\xbb\x6c\x9f\ +\xa9\x43\xd3\x40\x68\x06\x9a\x2e\xd0\x2c\xcd\xad\x95\xd4\xd0\x3c\ +\xf2\xd4\x56\x68\x96\x23\x2d\x90\x20\x2d\x1b\x4b\xda\x34\x1b\x2d\ +\x3a\xb6\x49\x7f\x36\xcf\x35\x1b\xb7\xb0\x63\xf3\x76\xc6\xf3\x63\ +\x58\x17\xda\x2c\x9f\x28\xb0\x3c\x51\xc5\x3e\x53\xa4\x5d\xeb\x38\ +\x15\xc7\xee\xd8\x7b\x37\xeb\x79\x42\xbe\x45\xb3\x81\x9f\x1a\x00\ +\x2e\xb5\x1e\x78\xe0\x01\xf1\xf4\xd3\x4f\xef\xf0\xfe\xfe\xe4\x27\ +\x3f\x19\x6b\xb5\x5a\xf5\xe5\xe5\xe5\x72\xa1\x50\x10\x4a\xa9\x64\ +\x34\x1a\x8d\xf5\xf7\xe7\x19\x18\x1c\x24\x93\xce\x3a\x69\xd8\xca\ +\xad\x02\xf2\x63\x10\xdd\xd8\x84\xdf\xf7\x77\x8d\x57\x34\x1a\xa1\ +\x52\x2e\x23\x74\x9d\x68\x27\x46\xc4\x12\x08\x15\x45\x93\xa0\x77\ +\x20\x52\x17\x44\xd0\xd1\x84\x81\xee\x7a\x2b\x1a\x8e\xe5\x8f\xe7\ +\xaa\x4b\x81\x6d\x49\x4c\xdb\x42\x28\x41\x3c\x91\xa0\xbf\x6f\x80\ +\x4c\x26\xc3\xf0\xe0\x20\x23\x7d\xc3\xc4\x6b\x71\xca\xc7\x0b\x74\ +\x4e\xb6\xa8\x9d\x2a\xd2\x9c\x2f\x62\x36\xdd\x6c\x20\x70\x2a\x9f\ +\x85\x78\x5e\xd3\xc4\x41\xcd\xd0\xff\x16\x41\xfb\xad\xb2\x97\xde\ +\x57\xeb\xfe\xfb\xef\xff\xd7\x4a\xa9\xdf\x90\x52\xb6\xdc\xd3\x7e\ +\x5d\x32\x99\xf2\x29\xe2\x44\x32\xd9\x65\xc2\xd0\xdc\x89\x24\xea\ +\x8a\x14\x5c\x16\x8b\x45\x00\x4a\xa5\x32\x91\xd1\x28\xf1\x7d\x29\ +\xa2\xd7\x27\xb1\x47\x15\x13\x27\x8f\x71\xf2\xcd\x93\xa4\x52\x29\ +\xe2\x89\x18\xb6\xb2\x9d\xa2\x31\x57\x4f\x77\x2b\xa4\x9d\xec\x27\ +\x5b\xda\x24\xe3\x71\x86\x87\x47\x18\x1a\x1c\x62\xb0\x6f\x90\xac\ +\x96\xc1\x98\xd7\xa8\x1e\x2b\x51\x3a\x56\xa0\x71\xbe\x46\xb3\xd4\ +\xf0\x39\x05\x37\x17\xf2\xbb\x9a\x10\x7f\xa1\x1b\xc6\x3f\x3f\xfe\ +\xf8\xe3\xe7\xdf\x4e\xfa\xda\xfb\x66\x3d\xf8\xe0\x83\xe2\xdb\xdf\ +\xfe\xb6\xea\xb1\x25\xbe\xa9\x94\xca\x49\x29\x75\xa5\x54\x5a\xd3\ +\xb4\xdb\x52\xa9\x14\xd9\x6c\x96\x74\x3a\x8d\x61\x38\xb4\xb5\xf7\ +\x3b\xc8\xd8\xad\xc5\x5a\x5a\x5c\x04\x21\x68\xa5\x3a\x64\x6e\xc9\ +\x63\x7c\x20\x46\x67\xd8\xe2\xe8\x89\x93\x9c\x7c\xf3\x38\xe9\x54\ +\x8a\x58\x34\xe6\x37\xaf\xf4\xb2\x87\x95\x02\x5b\xda\x74\x3a\x8e\ +\xe5\x9e\x4c\xa6\xd8\x38\x36\xca\x8e\xed\x3b\xc9\x25\x73\x68\x0b\ +\x36\xf5\x13\x35\xca\x13\xcb\x98\x67\x4d\x2a\x8b\x25\xbf\xbe\x40\ +\x08\x81\xae\xeb\x4f\x03\xbf\xab\xeb\xfa\xc9\xfd\xfb\xf7\x2f\xbe\ +\xfd\xac\xa5\xf7\xf1\xba\xff\xfe\xfb\xc5\x33\xcf\x3c\xe3\xef\xe6\ +\xa7\x3e\xf5\xa9\x48\xa3\xd1\xf8\x4b\x29\x65\x43\x4a\x69\x03\xf7\ +\x1b\x86\xb1\xd5\x8b\xe2\x25\x93\x0e\x3b\xe9\x15\x87\xe8\xba\xbe\ +\x22\xe2\x77\x39\x96\xae\xeb\x68\xc3\x06\x72\x87\xa0\xbd\xdd\xa6\ +\xda\x57\x67\xe2\xc4\x71\xde\x74\x25\x40\x2c\x16\x77\x5c\x33\xb7\ +\x3c\x51\x4a\xdb\x0f\x22\xe9\xba\xce\xd0\xd0\x10\x9b\xc6\x37\xb2\ +\x61\x68\x03\x79\xad\x0f\x79\xde\xa4\x3e\x51\xc1\x3e\x25\xb9\x78\ +\xee\x2c\xa2\xe1\xb8\x76\xee\xc6\x3f\x2f\x84\xf8\x9f\x85\x10\x67\ +\x9f\x7c\xf2\x49\xf3\x9d\xa7\xad\x5d\xc5\xeb\xfe\xfb\xef\xbf\x47\ +\x4a\x79\xaf\x52\xca\xb6\x6d\xdb\xd4\x34\xed\xff\x72\xb2\x69\x9d\ +\x38\x7f\x2c\x16\x53\xb1\x58\x4c\xc4\x62\x31\xc7\xb0\xf4\x2b\x86\ +\xd5\x65\x01\x00\xd7\xea\x34\xb7\x58\x2e\x00\x8e\x05\x00\x10\xf3\ +\x13\x4a\xbc\xbe\x86\x4a\x29\x62\xd1\x18\xfd\xb9\x1c\x63\xa3\xe3\ +\x6c\x1c\x1c\x27\xd1\x89\x63\x1e\x6f\x50\x3e\x5a\xa2\x75\xa2\x49\ +\x79\xa9\x08\x96\x52\x40\x4b\xd7\xf5\x1f\x1a\x86\xf1\x0b\xfb\xf7\ +\xef\x9f\x7a\x37\x9f\xd5\xb8\x5a\x37\xff\x13\x9f\xf8\x84\x78\xea\ +\xa9\xa7\x9e\x07\x9e\x0f\xa8\x8b\xb3\x96\x65\xc5\x2a\x95\x8a\x56\ +\x2e\x97\x37\xeb\xba\xfe\x7f\x46\x22\x4e\x9e\x9e\xfb\xa3\xe2\xf1\ +\xb8\x48\x26\x93\x6e\xf9\x9a\xba\x3c\x12\xc2\x9b\x43\xe0\x39\x67\ +\x42\x20\x6d\x49\xc7\xea\x50\x6f\xd4\x89\xc5\x62\x6c\xde\xb8\x99\ +\x4d\xe3\x9b\x18\x1b\xde\x40\xac\x1d\xa5\x7d\xb6\x49\x61\x62\x0e\ +\x75\x54\x52\x9c\x5b\xc2\x6c\x98\x20\xd5\x94\xae\xeb\xa7\x0c\xc3\ +\xf8\xa5\xfd\xfb\xf7\xcf\x5c\x8e\xeb\x74\x55\x4b\x80\x1f\x03\x10\ +\xdd\xb2\xac\x7b\xa5\x94\xb6\x6d\xdb\x4d\x5d\xd7\x7f\x57\xd3\xb4\ +\x8f\x79\xea\xc1\x30\x0c\x12\x89\x84\x43\x61\x27\x93\x44\x22\x91\ +\x6e\xa2\xc7\xdb\xa8\x0d\xec\x95\x00\x47\x4f\x9e\xe0\xc4\xc9\xe3\ +\x4e\x85\x72\xc4\xc0\x36\x4d\x34\x5d\x27\x1e\x8b\x33\x3c\x34\xc4\ +\xce\x2d\x3b\x19\x4a\x0e\x22\x16\x14\xcd\x53\x55\xea\x13\x4d\x0a\ +\x67\x67\xb0\x0b\x16\xb6\x65\xbf\x2a\x34\xed\x94\x26\xc4\x63\x07\ +\x0e\x1c\x98\xbc\x9c\xd7\xe1\x67\x16\x00\xbd\xeb\xbe\xfb\xee\x1b\ +\x54\x4a\x0d\x29\xa5\x84\x69\x9a\x8d\x68\x34\x7a\xce\x33\x1e\xdd\ +\xf4\x72\x95\x4a\xa5\x84\x97\xe9\xec\xb8\x9e\xab\x4b\x88\x5e\x00\ +\xd4\xfa\x1a\x1c\x39\x79\x94\x13\x27\x8e\xe1\xa8\x9b\x18\x11\xdd\ +\x20\x9b\xc9\x32\x32\x34\xc2\xf8\xe0\x28\x23\xb1\x61\xc4\x39\x45\ +\xe1\x47\x4b\xd4\x4f\x54\x29\x4e\x2f\x61\x35\xcd\xef\x20\xc4\xf7\ +\x81\xaf\x1e\x7c\xe6\x99\xe9\xb5\xf8\xde\xeb\x00\xb8\x34\x20\x72\ +\x4a\x29\xdd\xb2\x2c\xcd\x30\x8c\x6d\x42\x88\x97\xbc\xd2\x71\x4d\ +\xd3\x88\xc7\xe3\x2a\x93\xc9\x88\xac\x9b\xae\xd6\x8d\x43\xa8\x10\ +\x00\x6a\x9b\x5a\x94\xd2\x55\x7e\x78\xe4\x87\x1c\x3b\x7e\x8c\xfe\ +\xfe\x01\x36\x6f\xdc\xc4\x96\x4d\x5b\x18\x1b\x1b\x23\x29\x12\x58\ +\x53\x1d\xaa\x13\x65\xc4\xb1\x16\x73\xe7\x96\x69\x15\x6b\x4f\x2b\ +\x5b\xfd\x35\xf0\xdd\x83\x07\x0f\x4e\xae\xe5\xf7\x5c\x07\xc0\xdb\ +\x07\x84\x06\x68\x07\x0f\x1e\xb4\xee\xbb\xef\xbe\xdf\x03\x7e\xdd\ +\x4b\xbb\xd2\x34\x8d\x94\x1b\xe9\xcc\x64\x32\xc4\x13\x09\xb4\x21\ +\x1d\x76\xe9\x34\xae\xe9\x50\xed\x6b\x72\xe2\xf4\x71\x2e\x4c\x9e\ +\x67\x74\x78\x8c\x8d\x63\xe3\x8c\x0e\x8c\x93\xef\x64\x68\x9f\x6d\ +\x52\x3a\xb9\x8c\x75\xd2\x62\x7e\x76\xf6\x05\x59\x31\xff\xbd\x52\ +\xea\xcc\xc1\x83\x07\xe7\xaf\xc4\xf7\x5a\x07\xc0\xe5\x01\xc7\x79\ +\x60\xdc\xb3\xf3\x22\xd1\xa8\x36\xb8\x7b\x88\xfe\xdb\x87\x30\xae\ +\x8f\x63\x0d\x4b\x66\x17\xe7\x28\xd7\xcb\x0c\x65\x87\xc8\x6a\x59\ +\xf4\x02\xb4\x8f\xd5\xa9\x9c\x2c\x61\x4e\xb7\x5f\x93\xba\xfc\x57\ +\xd5\xa9\xca\xec\xdb\xe9\xea\x71\x39\x97\xb1\xbe\x7d\x97\x85\x8b\ +\xd8\xe2\xfd\xfd\xd0\x43\x0f\x19\xb6\x94\xf5\x72\xbd\xd2\x10\xe5\ +\x68\x74\x44\x25\xe2\x23\xfd\xc3\x5a\x7e\xa0\x9f\x4e\xa7\x0d\x73\ +\x36\x0b\xaf\xce\xa3\xbd\x21\xe4\xd2\xe4\xfc\xeb\x9f\xf9\x17\xbf\ +\xf8\x09\xed\x61\x55\xfc\x25\xf1\x59\xfb\xa7\xf1\xf9\xd7\x25\xc0\ +\x1a\xac\x49\x55\x8b\x7e\x95\x3f\xdc\x23\x30\x1e\x10\x25\xf5\x3f\ +\xc5\xd3\xa9\x6b\x65\xcd\xb6\xeb\xa7\xcb\xed\xc4\x44\xa2\x75\xf2\ +\x87\x47\xf4\xf1\xed\xd7\xdc\xf9\x1f\xff\xb7\xdf\x3d\xfe\xd3\xfe\ +\xac\xeb\x12\x60\x4d\x4e\x95\x8e\x8e\x40\xc3\xb0\x44\x8e\x33\x1d\ +\xda\xa6\x95\x33\x5f\xe9\xbb\x79\xe0\x89\xc4\xcd\x89\x57\xfe\x5a\ +\xfc\xd5\xd4\x7b\xe5\xb3\xae\x03\x60\x0d\xd6\x45\x5a\xaa\x8a\xdd\ +\x4e\x62\xcf\x68\xc8\xef\x29\x04\x77\x70\xf7\x2b\xb3\x4c\xbf\x72\ +\x9c\xd7\x6b\xef\x2d\xb0\xae\xaf\xcb\xbe\xfe\x93\xfa\x9e\x7e\x0d\ +\x99\x81\xa7\xf8\xc7\x91\x07\xf9\x68\xec\x3b\xfc\x69\xf3\x5f\xf2\ +\x1f\xa7\x3f\x2c\x36\x97\xd6\xaf\xce\xcf\xc8\xea\xa8\x45\x71\x51\ +\x4d\xe8\xdf\x53\x4f\x6a\x3f\x81\x57\xb1\x2e\x99\xd7\xd7\xfa\x5a\ +\x5f\x57\x60\xfd\xff\x91\xff\x98\x4a\x74\x03\x10\x92\x00\x00\x00\ +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x21\x68\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x05\x0f\ +\x0e\x20\x02\x55\xba\xb1\xee\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\x9d\x79\x7c\x56\xc5\xbd\xff\xdf\xe7\ +\xc9\x9e\x40\x12\x08\x59\x88\x40\xd8\x13\x30\xec\xb2\x09\x82\x52\ +\x40\x83\xd8\x7a\xeb\xd5\xab\xed\x7d\xb5\x0a\xb6\x5a\xeb\xd2\x5a\ +\xf5\xd7\xed\xde\xb6\xfe\x6c\x6b\xb5\xbd\xbf\x6a\xed\x6d\xa9\x6d\ +\x7f\xbd\x95\xda\x5a\xbd\xda\x5e\xc1\xaa\x60\x71\x81\x4a\x20\xec\ +\x81\x00\x61\x0b\x49\x90\xb0\x84\x24\x24\x79\x92\x9c\x33\x67\xee\ +\x1f\x33\xe7\x79\xe6\x79\xc8\x9e\x00\x11\x9e\xef\x8b\x87\x3c\xcf\ +\x39\x33\x73\xce\x99\xef\xe7\xbb\xce\x9c\x19\x88\x50\x84\x22\x14\ +\xa1\x08\x45\x28\x42\x11\x8a\x50\x84\x22\x14\xa1\x08\x45\x28\x42\ +\x11\x52\x24\xbb\xf8\xb9\x1c\x28\x03\xf8\x1e\xb0\x09\xa8\x05\x6c\ +\xe0\x04\xb0\x0a\xf8\xa7\x2e\xb6\xf5\x68\x58\xff\xfd\xba\x9b\x3c\ +\x69\x04\x8e\x00\x6f\x00\x8f\x01\xc3\x22\x00\x38\x3f\xb4\x14\x38\ +\xd3\x41\x1f\xbc\x0a\xc4\x77\xb2\xbd\xed\x61\x75\xab\x81\x98\x5e\ +\xe0\x89\x0d\x3c\xdb\x85\xfb\xe8\xd4\xc5\x2e\x77\x9a\x0d\x34\xeb\ +\xbe\x70\x81\xff\x04\x26\xea\x4e\x1e\x0c\x7c\x1d\x68\xd2\xe7\x5f\ +\xea\x44\x7b\xe3\x8d\xbe\x5d\x67\x7c\x5f\xda\x0d\x9e\xa4\x00\x93\ +\xb5\xf4\x57\x18\xe7\x3f\x00\x12\xfa\x02\x00\xbc\x36\x3e\xa9\x7f\ +\x0f\xd2\xea\xee\x23\xc0\x01\x1a\x80\x03\x9d\x64\xc2\xaf\x81\xbd\ +\xba\x4e\x8b\x56\x7d\x2b\x81\xab\xbb\xc0\xc8\xae\xb6\xe1\x03\x8a\ +\x8d\xe7\xf8\x6a\x1b\xe5\x96\x00\x22\xec\x59\xdb\xa2\xef\x1b\xed\ +\xe5\xeb\xfb\x90\xc0\x1f\x7a\xc8\x93\x54\xe0\x5d\xa3\xcc\x73\x7d\ +\x09\x00\xdf\x03\xfa\x01\x25\x5d\x34\x21\x96\x56\x69\x1d\xa9\xbe\ +\x1f\xeb\xb2\xbd\xdd\xc6\x62\xe3\xfc\xae\x76\xae\x01\xf0\x3b\x5d\ +\x6e\x63\x07\x7d\x72\x48\x97\xdb\xaa\x7f\xbf\xa5\x7f\x9f\xed\x40\ +\x6a\x3b\xd3\x5f\x69\xda\x9c\x48\x2d\x60\xc3\xfb\x0a\x00\xfe\x0c\ +\xfc\xc0\x40\xe6\x08\x20\x0a\x48\xd6\xea\xb4\x2d\x7a\xc2\x68\xe3\ +\x28\x70\xab\x56\x7b\x49\x5a\x65\xee\x37\xce\x3f\x72\x1e\xda\xf8\ +\x99\x71\xee\xb1\x0e\x9e\x75\x02\xf0\x3e\xb0\xa8\x9d\x32\x57\x1b\ +\xed\x7d\x57\x1f\xbb\xdb\x38\x76\x5b\x2f\xf0\xe4\xc7\x46\xb9\x6f\ +\xf7\x15\x00\x14\x03\x35\xc0\x37\xbb\x50\x77\xa4\x76\x6a\xa4\xae\ +\xdb\x1a\x9a\xaf\x30\x9c\xb3\xb3\x40\x7a\x2f\xb7\xf1\x0f\xe3\x19\ +\xe6\xf4\x82\x3f\xf1\xf3\x30\xf5\xef\x45\x17\xc2\x70\x24\x7b\xca\ +\x93\x45\x46\xb9\xb5\x7d\x05\x00\x1e\x08\x7c\x5d\xa8\xfb\x83\x56\ +\xa4\xa5\x35\x7a\xd2\x28\x77\x5f\x2f\xb7\xf1\x91\x71\x3c\xab\x87\ +\x7d\x11\xad\xc3\x46\xa9\x4d\xa1\x49\xef\xeb\xe3\x7e\xad\x15\x7b\ +\xc2\x93\x2b\x8c\x72\x15\x17\x3b\x0c\x34\xcb\x7c\xa5\x8b\xf7\xb0\ +\xd1\xa8\x3b\xb5\x9d\x72\x73\x8c\x72\xaf\xf5\x72\x1b\xcd\xc6\xf1\ +\x84\x1e\x02\x60\x89\xd1\xd6\xff\x0d\x3b\xf7\x55\xe3\xdc\xe7\x7b\ +\x08\x80\x38\xa3\x5c\x53\x5f\x02\xc0\x94\x2e\xde\xc3\x69\xa3\x6e\ +\x6a\x3b\xe5\x06\x18\xe5\xf6\xf7\x72\x1b\xc2\x38\xee\xeb\x21\x00\ +\x56\x1a\x6d\x85\xfb\x3d\xc3\x8d\x73\x7f\xeb\x21\x00\xa2\x8c\x72\ +\xa2\x2f\x99\x80\xfe\x5d\xac\xeb\x74\x03\x88\x35\xbd\xdc\x46\x9d\ +\x71\x3c\xb1\x07\xfd\x90\x08\xd4\xb7\x01\x52\x8f\xb6\x1a\xc9\x9c\ +\x41\x3d\xe0\x49\x8a\x51\xee\x2c\xed\xc4\xb7\x17\x9a\xea\xbb\x01\ +\x9e\xae\x52\xff\x5e\x6e\xe3\x74\x58\x88\xd5\x5d\xfa\x94\x8e\x3a\ +\x00\x5e\x69\xa3\xcc\x6b\x86\xaf\xf0\xcf\x3d\xb8\xd6\x60\xe3\xfb\ +\xb1\xbe\xa4\x01\xba\x4a\xa6\x03\x16\xd7\xcd\xeb\xf7\xb4\x8d\x37\ +\x8c\xfa\xd7\xf5\xa0\x1f\x56\x75\x51\x0b\xbd\xd7\x83\xbe\xbc\xd5\ +\x28\xf7\x72\x5f\xd2\x00\x5d\xa5\x3d\xc6\xf7\x9c\x8b\xd4\x46\x91\ +\xf1\x7d\x6e\x07\x65\xaf\x02\x3e\x6c\x45\x7a\xd3\x74\x42\xa9\x2b\ +\x34\x17\xc8\xee\xe6\x33\xdf\x64\x7c\x5f\xfb\x71\xd6\x00\xff\xc7\ +\xa8\xfb\x50\x37\xaf\xdf\xd3\x36\x26\x19\xf5\xf7\x76\x90\x09\xfc\ +\x8b\x2e\xf7\x76\xd8\xf1\x2f\x85\x65\x1b\xdb\xa3\x9f\xd0\x76\xda\ +\xb9\x33\x7d\x99\xa3\x43\x49\xcf\xfe\x0f\xf8\x38\x03\x20\x13\x95\ +\xb3\x97\xda\x96\x65\xb4\x83\xf8\x63\xc0\xeb\xad\x64\xeb\x7a\xa3\ +\x8d\xb7\x3b\x91\x6d\xbc\xcb\xf0\xba\x67\x84\x9d\xfb\xc0\xa8\x3f\ +\xa3\x83\x67\x9e\x69\x94\xdd\xd4\xc5\xbe\xec\x17\x96\xb8\xfa\xb7\ +\x8b\xc5\xb8\xde\x6c\xe7\xcb\x46\xfd\x03\xa8\x71\xf7\x14\xd4\xd0\ +\x69\x1e\xf0\xb8\x81\xf8\xb6\x52\x9f\x3d\x6d\x63\x8c\x8e\x0c\xbc\ +\xd1\xc0\x9f\xea\x63\xd1\x5a\xe2\x9e\x32\xc2\xc5\x27\x5a\x91\x48\ +\x57\x9f\x3b\xd4\xc9\x67\x3e\x6c\xdc\xcb\xa8\x0e\xfa\x32\x56\x5f\ +\xe3\x8b\x61\xf5\xde\xd4\xe1\xe0\xc7\x1e\x00\x00\x0f\x84\x25\x64\ +\x5a\xfb\x38\xa8\x51\x36\xeb\x3c\xb5\x31\x03\xa8\xa4\xeb\x83\x49\ +\x5f\x37\xce\xff\xa8\x93\xcf\xfb\x94\x51\xe7\x5b\x5d\xcc\xcd\x08\ +\x54\xba\x39\x8e\x3e\xc0\xb8\xde\x6c\x27\x47\xdb\xc7\x9d\x5a\xa5\ +\x3b\x5a\x2a\x8b\x74\x87\x8d\xbd\x00\x6d\x24\x6b\x86\x6e\x24\x38\ +\x23\xe8\x23\xd4\x40\x57\x5b\x0e\xe2\x2e\xe3\xf9\xa7\x75\xf2\x59\ +\xa7\x11\x3a\x02\xd9\x1e\x00\x5c\xe3\x19\x9e\x06\xc6\x11\xa1\x08\ +\x45\x28\x42\x11\x8a\x50\x84\x22\x14\xa1\x08\x45\x28\x42\x11\x8a\ +\x50\x84\x22\xf4\x31\xa2\x21\xa8\x29\x5a\x51\x91\xae\xb8\xbc\x68\ +\x0c\x6a\x52\xc4\x5a\x82\x33\x73\xfe\x1b\x95\xe7\x1e\x1e\xe9\x9e\ +\x4b\x9b\x66\x68\xa6\xcb\x98\x98\x18\x19\x1b\x1b\xdb\x5a\xda\x73\ +\x2f\x6a\x9e\xfe\x12\xd4\xc8\x57\x84\x7a\x40\x56\x1f\xbb\x9f\x39\ +\xc0\x7a\x80\xdb\x6f\xbf\x9d\x3f\xfd\xe9\x4f\xdc\x7d\xf7\xdd\x0c\ +\x1d\x3a\x94\xf5\xeb\xd7\xf3\xe1\x87\x1f\x52\x5f\x1f\x32\xa3\xac\ +\x45\x97\x5f\x83\x7a\xb3\xc6\x7b\xd9\xb2\x37\x28\x15\x35\xab\x66\ +\xae\xd6\x4a\x83\x51\xd3\xc4\xac\xb0\xeb\xd7\x00\x65\xa8\xe9\xee\ +\x85\xc0\x6a\xd4\xdb\xba\x11\xea\x06\x8d\x07\xe4\xc8\x91\x23\xe5\ +\x13\x4f\x3c\x21\x01\xb9\x74\xe9\x52\xb9\x6b\xd7\x2e\xb9\x63\xc7\ +\x76\x59\xb4\x79\xb3\xfc\xed\x6f\x7f\x2b\x97\x2f\x5f\x2e\xf3\xf3\ +\xf3\xa5\xcf\xe7\x0b\xd7\x0e\xc7\x51\xb3\x6e\xff\x95\xee\xcd\xdf\ +\x1f\x05\xbc\x48\x70\xde\x7e\x77\x3f\x35\x1a\x94\x9f\x47\x0d\xd5\ +\x46\x34\x40\x17\x1c\xbf\xf2\x8c\x8c\x0c\x9e\x7c\xf2\x49\x96\x2d\ +\x5b\x46\x4e\x4e\x0e\x3f\x7b\xee\x39\xb2\xb3\xb3\x71\x85\xc0\x75\ +\x05\xae\xeb\x22\x84\x4b\x4d\x4d\x0d\x45\x5b\xb6\xb0\xa9\xb0\x90\ +\xa2\xa2\x22\x4e\x9e\x3c\x69\xb6\x25\xb5\x46\xf0\xb4\xc3\x7a\x2d\ +\xb1\xad\xd1\x2c\xe0\x79\x82\x6f\xe9\x00\x90\x93\x93\x43\x6e\x6e\ +\x2e\xa3\x47\x8f\x26\x33\x33\x93\xac\xcc\x2c\x84\x2b\x88\x8e\x8e\ +\xc6\xb6\x6d\x5a\x5a\x6c\x4e\x54\x55\x71\xec\xd8\x31\x8e\x96\x1f\ +\xa5\xa4\xa4\x84\xe3\xc7\x8f\x87\xb7\xed\x02\xfb\x50\xaf\xc2\xfd\ +\x27\xea\x5d\x80\x57\x81\x6d\x11\x00\x9c\x4b\xc9\xa8\x21\x56\x72\ +\x72\x72\x90\x52\x52\x57\x57\x47\x7d\x7d\x3d\xdf\xf8\xfa\xd7\x29\ +\x58\xb2\x04\x21\x5c\x5c\xd7\x0d\x02\xc1\x15\xb8\xfa\x58\x59\xd9\ +\x11\x8a\x8a\xb6\xb0\x6d\xdb\x36\x8a\x8b\x8b\x69\x69\x09\xe1\x77\ +\x03\xea\xcd\x9b\xbf\x69\x07\xb3\x04\x35\x4d\xfb\x2d\x8c\x61\xdc\ +\xe9\xd3\xa7\x73\xd3\x4d\x37\x31\x77\xce\x1c\xd2\xd2\x07\x05\x64\ +\x5a\x6a\xcb\x22\x25\x58\x96\x44\x1a\x86\x46\x4a\x55\x48\x4a\xa8\ +\xad\xad\x65\xcb\x96\x2d\x6c\xdc\xb8\x91\x0d\x1b\x36\x84\x03\xa2\ +\x99\xe0\x18\xfd\x41\xad\xa9\x36\x46\x00\x10\x4a\x12\x20\x3a\x3a\ +\x9a\xd5\xab\x57\xf3\xd0\x43\x0f\xb1\x77\xef\x5e\x00\xbe\xf3\x9d\ +\xef\x70\xdd\x75\xd7\xe2\x0a\x17\xe1\xba\xfa\xaf\xd0\x80\x70\x11\ +\x22\xf8\xdd\xef\xf7\xb3\x6f\xdf\x3e\xb6\x6f\xdf\xce\xce\x9d\x3b\ +\x29\x2f\x2f\x0f\xbf\xce\x49\x0d\x80\x24\x80\x85\x0b\x17\x72\xdf\ +\x7d\xf7\x31\x72\xc4\x48\x8f\xd5\xfa\x7f\x69\xdc\x95\xf4\xfe\x05\ +\x7e\x9a\xd3\x1c\x8c\x22\x58\x52\xd5\x3c\x50\x7a\x80\xd5\x6f\xac\ +\xe6\xd5\x57\x5f\xc5\xef\xf7\x83\x9a\x3f\x60\x2e\x02\xf1\x07\x0d\ +\x84\x8b\x42\x7d\x31\xc6\xbe\x12\x18\xdf\xbf\x7f\x7f\x6b\xe9\xd2\ +\xa5\xdc\x71\xc7\x1d\xf8\xfd\x7e\x8a\x8b\x8b\xd9\xbe\x7d\x3b\x05\ +\x05\x05\xf8\xa2\xa2\x10\x42\xe0\xb8\x02\x21\x04\xab\x56\x0d\xa5\ +\xb2\x32\x9e\xf8\x78\x3f\x71\x71\xcd\x38\x42\x00\x16\x69\x69\x03\ +\x18\x37\x7e\x3c\xf3\xe7\xcf\x67\xde\xbc\x79\x64\x67\x67\x13\x13\ +\x13\x43\x75\x75\x35\x8e\xe3\x24\x01\xb1\x59\x59\x59\xfc\xf8\x27\ +\x3f\xe1\xce\x3b\xef\x24\x35\x35\x15\x57\x4a\xa4\x74\x91\xae\xab\ +\xe6\x70\xb9\x52\x7d\xa4\x0c\x9e\x93\xe8\xbf\x12\x57\xba\xa0\xcf\ +\xab\x72\x2e\x12\xfd\x5b\xba\xa4\x0e\x18\xc0\x8c\x19\x33\xa8\xa8\ +\xa8\x60\xff\xfe\xfd\x3c\xfc\xf0\xc3\x51\x8f\x3c\xf2\x08\x15\x15\ +\x95\x1e\x28\x27\xa2\xd6\x12\xf8\x35\x17\x61\x21\x8e\xbe\x04\x80\ +\x91\xa8\xe9\x54\xb7\x03\x2d\xcd\xcd\xcd\x31\x67\xcf\x9e\x65\xf6\ +\xac\xd9\x4c\x99\x3a\x85\xc2\xc2\x42\x2a\x2b\x2b\xb1\xb0\xc8\x9f\ +\x90\x8f\x10\x0e\xae\x10\xd8\xb6\xe0\xf1\xc7\xaf\xe6\xfd\xf7\x87\ +\xb1\x6a\xd5\x58\xd6\xad\x1b\xce\x81\xd2\x81\x9c\x3e\x1d\x8b\x65\ +\x09\x12\x13\xeb\x91\xae\x4b\x74\x4c\x34\x83\xb3\xb3\x99\x38\x61\ +\x02\xc5\xc5\xc5\xd4\xd4\xd4\x90\x95\x95\xc5\xca\x95\x7f\x60\xe4\ +\xc8\x11\xb8\x52\x82\x66\x6a\xe0\x83\x0c\x32\x5a\xab\x7a\x29\x51\ +\x40\xf0\x98\x2e\x95\x5d\x10\xae\x9a\x98\xe3\x4a\x55\xce\x75\xdd\ +\x00\x68\x90\x92\x97\x5f\x7e\x99\x8f\x3e\xfa\x88\x4f\x7d\xf2\x93\ +\x8c\x1b\x37\x8e\x45\x8b\x16\x92\x95\x95\xc5\xfa\xf5\xeb\xd1\x11\ +\xc6\x27\x80\xff\x7f\x39\x02\x20\x59\x3b\x47\xbf\x46\x4d\x83\x72\ +\x51\x2f\x44\x8c\x6a\x68\x68\xe0\xe6\x9b\x6f\x46\x08\x41\x56\x56\ +\x16\x6b\xd7\xae\xa5\xaa\xaa\x8a\x1b\x6f\xbc\x11\x57\x08\x1c\x21\ +\x68\x6a\x52\x8c\x88\x89\x71\xa8\xab\x8b\xa7\xae\x2e\x81\x8a\x8a\ +\x54\x76\xed\x1a\xc2\x7b\xef\xe5\xb2\x66\x4d\x3e\x25\x25\xd9\x1c\ +\x3f\xde\x8f\xe6\x66\x18\x38\xb0\x9a\x77\xdf\x7d\x97\x86\x86\x06\ +\x9e\x7c\xf2\x49\x46\x8e\x1c\xa9\x25\x5e\x33\xd8\x75\x71\x91\x21\ +\x40\x08\x30\x1c\x17\xd7\x35\x8e\x6b\x26\x4b\x57\xcd\xf7\x74\x03\ +\xe5\x5d\xd0\xdf\x91\x0a\x14\xbf\x5a\xb1\x82\xc6\xc6\x46\xee\x5a\ +\xbe\x8c\xfe\xfd\xfb\x23\xa5\x64\xf4\xe8\xd1\x0c\x1f\x3e\x82\x77\ +\xdf\x7d\x17\xd4\xc2\x4e\x71\xc0\x3b\x17\xb2\xf3\xa3\xfb\x48\xec\ +\xbf\x0c\x60\xc1\xd8\xb1\xdc\x32\x71\x62\xf4\xba\xfd\xfb\x17\xbf\ +\xb2\x73\x27\x69\x69\x69\xd8\x8e\x92\xf4\xf1\xe3\xc7\x93\x9a\x9a\ +\xca\xc9\x93\x27\x29\x29\x29\x61\xf4\xe8\xd1\x08\x21\xb0\x7c\x2e\ +\x9f\xbc\x69\x17\xc2\x15\x08\xe1\x52\x5e\x9e\x4c\x69\x69\x3a\x07\ +\x0e\x64\x70\xe8\x50\x26\x27\x4e\xa4\xb2\x6f\xdf\x10\xf6\xed\x1b\ +\x42\x72\xf2\x59\x1e\xfe\xea\x4f\xa8\xaa\xaa\x22\x2e\x2e\x8e\x49\ +\x93\x26\xe1\xba\x02\x89\x05\xd2\x35\x1c\xba\x80\x77\x17\xd0\xc9\ +\x12\xa9\xa0\x69\xf8\x04\x9e\xf5\xb7\x3c\x53\xa1\x7f\x59\x5a\x63\ +\x78\xf5\xce\x54\x9f\xe1\xd4\xa9\x53\x24\xc4\xc7\x93\x95\x99\x85\ +\xeb\xba\x81\xb6\xe7\xcd\x9b\xcb\xdd\x5f\xf8\x02\xbf\x7e\xfe\x79\ +\x50\xef\x2f\xac\xd0\x79\x85\xcb\x06\x00\xd9\x00\x93\xb3\xb3\xb9\ +\x77\xfa\x74\x5a\x5a\x5a\x78\x6b\xdf\x3e\x00\x0a\x0a\x6e\x40\xd8\ +\x36\xc2\x55\x4e\xdf\xb4\x69\xd3\x78\xe7\x9d\x77\xd8\xb9\x73\x07\ +\x39\xc3\x87\x07\xc2\x42\xe1\x4a\xa4\x10\x08\xd7\x25\x33\xeb\x24\ +\xe9\xe9\x55\xcc\x9a\xa5\x9c\xc4\x9a\xda\x38\x0e\x1d\xca\xe2\xd0\ +\xa1\xc1\x44\x45\xdb\xec\x2f\x2d\x05\x20\x3f\x3f\x9f\xa8\xa8\x28\ +\x84\x30\x58\x25\x43\x3d\x51\xcf\x91\x0b\x89\x02\xbc\x50\xc0\x8b\ +\x08\x30\x98\x2d\x83\x8e\xa3\x25\xad\x40\x9d\x9d\xbb\xd4\x9c\xce\ +\xdc\xbc\x3c\x35\x83\x53\x88\x10\xa7\xf1\xb6\x5b\x6f\x65\xc3\xfa\ +\xf5\x94\x94\x94\xf8\x80\xbf\xa2\x16\x7c\xba\x20\xd4\x17\x5e\x0d\ +\x1b\x06\x30\x32\x35\x15\xc7\xef\x67\xeb\xd1\xa3\x9c\x6d\x6e\x26\ +\x2d\x2d\x8d\xb9\xd7\x5c\x83\xed\x38\x38\xfa\x93\x97\xa7\x26\xbb\ +\x96\x1e\x38\x88\x63\xdb\xfa\xb8\xc0\xb1\x6d\xa3\x9c\xd0\xc7\x1c\ +\x6c\xc7\x26\x21\xa1\x8e\x71\xe3\xf6\x72\x43\xc1\x3b\x2c\xfc\xc4\ +\x3a\x0e\x1d\x52\xd3\xf2\x27\x4e\x9c\x14\x12\x41\xb8\xae\x76\xfc\ +\x74\x74\xe1\x0a\x81\xe3\x85\x99\x5e\x39\x21\x34\xe8\x14\x20\xa5\ +\x14\x3a\x1a\x09\x86\xa2\xae\xeb\x22\x85\x0c\xd4\x13\xae\xcb\xd6\ +\x2d\x5b\x00\x98\x30\x21\x1f\xa9\x23\x18\xe1\x45\x2e\xae\x8b\x94\ +\x2e\x0f\x3c\xf8\xa0\xd7\x1f\x93\xb4\x3f\x70\xd9\x68\x80\x61\x00\ +\x03\x62\x62\x70\x9a\xfc\x94\x54\x55\x01\x30\x6f\xde\x3c\x1c\xdb\ +\x09\x32\x48\xb8\x0c\xb9\x42\xbd\x26\x57\x7e\xf4\x28\x8e\xe3\x04\ +\xf2\x01\x5e\x6e\xc0\xcc\x09\x04\x18\x13\x12\x22\x4a\x8e\x1c\x39\ +\x02\xc0\xe4\x49\x13\x95\x24\x4a\x0b\x69\xc9\x73\xe2\x7d\xad\x02\ +\x82\x1a\x20\xdc\x34\x58\x96\x52\x01\xda\x06\x48\xdc\x80\x48\x4b\ +\x9d\xfe\x91\x3a\x0f\xb4\x75\xeb\xd6\x10\xd0\x79\x5a\xc4\x32\x34\ +\xca\xf0\xe1\x39\xcc\x9c\x39\x93\xc2\xc2\x42\x50\x2b\x95\x4c\xbf\ +\x5c\x00\x30\x14\x20\xd5\xe7\xc3\xf6\x37\x51\x5e\x5b\xab\x42\x82\ +\x91\x23\x14\x93\xa5\x8e\xf7\x85\x60\x50\xba\x5a\xb6\xe7\xd4\xa9\ +\x53\xd8\xb6\xad\x1d\x31\x0d\x00\xe1\x22\xa4\xd0\x65\xcf\x4d\x16\ +\x21\xc1\xef\xf7\x53\x55\x55\x45\x74\x74\x34\xb9\x79\x79\x4a\x5a\ +\xb1\x54\x18\x87\x52\xe7\xe7\x30\x5c\x4a\xa4\x05\xfa\xbf\x10\x06\ +\x7b\x40\xb0\x5c\x19\x92\x17\x70\x8d\xef\x27\x4e\x9c\xa0\xbc\xbc\ +\x9c\xc4\xc4\x44\x72\x73\x73\x71\xf5\xbd\x48\xc3\xd8\x48\x94\x0b\ +\x72\xdb\x6d\xff\xe2\x01\x60\x2a\x6a\xa0\xab\xfe\xb2\x31\x01\xc9\ +\x58\xd8\xfe\x26\xaa\x9b\xd4\x6a\x26\x83\x06\xa5\xab\x58\xdf\x0e\ +\xaa\x76\x9f\xcf\x47\x52\x52\x12\x42\x08\x15\xcb\xdb\x9e\xca\x77\ +\x70\x84\xad\x7e\x0b\x07\xe1\x38\x08\xc7\x56\xdf\x85\xea\x70\xc7\ +\x71\x28\x2b\x2b\x43\x4a\x49\x5e\x5e\x1e\xd1\x31\xd1\xb8\x42\x1a\ +\x5a\xc2\x00\x92\x79\x4c\x4a\xa4\x70\x03\xea\x5c\xd5\x31\xd5\xbd\ +\x32\x15\xaa\xac\xca\x4d\x48\x21\x90\x1a\x7c\x85\x1b\x0b\x01\x98\ +\x3a\x75\x2a\x3e\x9f\x15\x50\xfd\x01\xa0\x7a\x1f\x57\x30\x7a\xf4\ +\x28\x86\x0f\x1f\xee\xf1\xe5\xdf\x2f\x2b\x0d\x90\x82\xc4\x69\x6a\ +\xa4\x4e\xa7\x6f\x53\x52\x92\xb1\x6d\xdb\x50\xe9\xaa\x43\x93\x92\ +\x92\x68\x68\x68\xa0\xae\xb6\x8e\x84\xf8\x78\x5c\x37\x68\x6f\x55\ +\x66\x50\x06\x24\x1f\xa0\xa6\xa6\x86\x2d\x5b\x54\x7a\x38\x23\x23\ +\x23\xe0\x00\xba\x42\xc5\xed\xa1\x19\x3d\x25\xf9\x96\x16\xf0\x80\ +\x13\xe8\x65\x00\xb5\xda\x97\x61\x91\x40\x50\x9c\x5d\xed\x18\x06\ +\x75\xc5\xfa\x0d\xeb\x01\x98\x36\x6d\x1a\x42\x78\x47\x43\x9d\x44\ +\xd3\x74\xcc\xbf\x76\x3e\x47\x7e\x77\x04\xe0\xb3\x74\xbc\x24\xdd\ +\xc7\x1e\x00\x19\x40\x7c\x62\x54\x14\x56\x73\x0b\xb6\xeb\xd0\xa8\ +\x3d\xe4\xd8\xd8\x78\x1c\xc7\x51\x4e\x92\xeb\xa9\x75\x87\x84\x78\ +\xb5\x46\x53\x7d\x43\x3d\x03\x9d\x81\x41\x1b\x1f\x70\xd4\xd4\xef\ +\x03\x07\x0e\x50\x54\x54\x44\x69\x69\x69\x40\x9d\x8f\x1a\x35\x8a\ +\x9b\x6f\xbe\x99\x99\x33\x66\xea\xf0\x4f\xab\xfd\x90\xf4\x6d\x90\ +\x7d\x6e\x30\x06\x0c\x19\x0b\x08\xe1\x7e\x60\x5c\x40\xd7\xd5\xa0\ +\xb1\x24\xd4\xd6\xd5\xb2\x7b\xf7\x6e\xa2\xa2\xa2\x98\x36\x6d\x9a\ +\x52\xff\x1e\xab\xbd\x36\xa5\xa5\x0a\xab\x7c\x11\x73\xae\x9e\xc3\ +\xef\xff\xeb\xf7\x48\x29\xb3\x51\x2b\x7d\x55\x5e\xca\x00\x50\xf6\ +\x3f\x2a\x0a\xc7\xdf\x48\x8b\xe3\xe0\x02\x51\x51\x51\x58\x48\x1c\ +\x47\x9c\x93\xe3\x8f\x8d\x53\xa3\xab\x4d\x4d\x4d\xfa\x7c\xd0\x2b\ +\x3f\x5b\x57\xc7\xb6\x6d\xdb\xd8\xb2\x65\x0b\xb5\xda\x97\x88\x8e\ +\x8e\x66\xee\xdc\xb9\xdc\x78\xe3\x8d\xe4\x5f\x79\x65\x60\x78\xce\ +\x15\x6e\xc0\xf9\xf3\x62\x79\x57\x06\x63\xf9\x40\xa8\x17\x16\xf6\ +\x85\x5a\x6f\x42\xfd\x87\x80\x9f\xa0\x74\xcb\x07\x1f\x7c\x80\x10\ +\x82\xa9\x53\xa7\x2a\xd3\xe5\xba\x46\x68\x19\xda\x8e\x77\x2c\x35\ +\x35\x95\x8c\x8c\x0c\xaa\x94\x33\x7c\x0b\x6a\x75\xd3\x4b\x16\x00\ +\xc3\x00\x52\x7c\x3e\xec\x26\x3f\x7e\xdb\xd1\xd2\x1f\xab\x12\x40\ +\x5e\x98\xe4\xaa\xac\x9f\xeb\xba\x44\x45\xa9\xe4\x65\x53\x73\x13\ +\x8e\xb0\x11\x8e\xe0\xf0\xe1\xc3\x14\x15\x15\x51\x52\x52\x12\x50\ +\xfd\x59\x59\x59\x2c\x29\x58\xc2\xa2\x45\x0b\x49\x4e\x49\x41\x4a\ +\x10\xfa\x5c\x40\xf5\xba\xc1\x4c\x8e\x2b\x3d\x35\xaf\x3c\x32\x0f\ +\x14\x9e\x44\x87\x44\x01\x86\xb4\x87\x24\x8f\x02\xf5\xd5\x6f\x9d\ +\xe1\xe3\x9a\x6b\xae\x51\x80\x33\x1c\x4d\x19\x96\x74\xd0\x3a\x87\ +\xed\xdb\xb6\x7b\xcc\x97\xa8\xb9\x09\x97\xb4\x09\xb8\x02\xa0\xbf\ +\x04\xd1\x62\xd3\xec\xba\x24\x58\x16\xb6\x6d\x73\xe6\xcc\x19\x12\ +\x93\x92\x90\xae\x40\x08\x6d\xd7\x85\x20\x3e\x3e\x1e\xe0\xb0\x70\ +\xc4\x88\xf5\x1f\xac\xa7\xa8\xa8\x88\xd3\xa7\xd5\x1a\x4e\x3e\x9f\ +\x8f\xd9\xb3\x67\x53\x50\x50\xc0\xe4\xc9\x93\xf1\x59\x96\x4a\xbc\ +\x04\x42\x2f\x42\x54\xb0\xa9\xde\x43\xa4\xd2\xf4\xd2\x4d\x9b\x1f\ +\x5e\xb7\x0d\x46\x82\xa4\xa2\xa2\x82\xd2\xd2\x52\x12\x12\x12\xb8\ +\x6a\xda\x55\xb8\x7a\x4c\x41\x5d\xc3\x0a\xc2\x50\x06\x93\x50\xfe\ +\xe6\x26\x7e\xf3\x9b\xdf\x78\xad\xbd\x0d\x9c\xba\xd4\x01\xa0\x35\ +\x80\xc5\x29\x21\x78\xb9\xbe\x1e\xbf\x94\xe0\x38\xbc\xf0\xc2\x0b\ +\x2c\x5f\xbe\x3c\x24\x51\x23\x84\xcb\xf4\x19\xd3\xd9\xbe\x7d\xbb\ +\xfb\xe2\x8b\x41\xe1\x48\x4b\x4b\x63\xf1\xe2\xc5\x2c\x5e\xbc\x98\ +\xb4\x81\x03\xc1\xb2\x90\x52\x2a\x0f\xde\x74\xd8\x42\x62\x6f\x42\ +\xb5\x01\xa1\xe3\xfa\x26\x47\x65\x88\xce\x97\x21\x43\x76\x52\xca\ +\xd0\xfc\x81\x06\xcd\x7b\xef\xa9\xf5\x9d\x66\xcf\x9e\x4d\x54\x74\ +\x14\x42\x38\x4a\xfe\x03\x31\x64\x68\xaa\x19\x60\xe5\x0b\x2f\x70\ +\xea\xd4\x29\x50\x0b\x3b\x7e\xfa\x72\x88\x02\x86\x00\xac\xf1\xfb\ +\x5f\x5c\xe3\xf7\xdf\x01\x58\x89\x89\x6a\x19\xbe\x3d\x7b\xf6\xf0\ +\xde\xfb\xef\x31\x7b\xd6\xd5\xf8\xfd\x8d\x6c\xdd\xb6\x8d\xa2\xcd\ +\x9b\xbd\x09\x16\xa3\x2c\xcb\x62\xf2\xe4\xc9\xdc\x70\xfd\x0d\x5c\ +\x35\x7d\x3a\x51\x51\x3e\x90\x20\xa4\x6b\x24\x61\x94\x4e\x56\x5e\ +\x77\x50\xd2\x2d\x33\xc7\x2f\x25\x96\x65\x08\x7f\x98\xaa\x0f\x32\ +\xd7\x88\x00\x4c\x0f\xfe\x1c\x90\x48\x1c\x21\x58\xb7\x6e\x9d\x1a\ +\xe8\x98\x33\x27\x30\x68\x14\x42\x21\x49\x27\x49\x51\x51\x51\xa0\ +\x0e\xf0\x39\x2e\xd0\xbc\xc2\x8b\x0d\x80\x4d\x40\x2e\xf0\x19\x2f\ +\x56\x7e\xf4\xd1\x47\xd9\xb1\x63\x07\x4f\x3e\xf9\x24\xab\x57\xad\ +\xe6\xd0\xc1\x43\x94\x96\x96\xd2\xdc\xdc\xac\xc3\xc3\x14\xae\xbb\ +\xee\x3a\xae\xbf\xfe\x7a\xb2\x32\x33\x03\x5e\x7b\x40\xcd\xbb\x61\ +\xde\xb5\xeb\x65\xed\x82\x62\xef\xca\x73\x43\x3e\x69\x66\xff\x64\ +\x30\x3a\x30\x5d\x7f\x79\x0e\xc3\xc3\x67\x06\xa9\x63\x45\x9b\x8b\ +\xa8\xab\xab\x23\x3b\x3b\x9b\x31\x63\xc6\x20\x5c\xe1\x39\xfa\xc1\ +\xcc\xa1\x51\xb1\xaa\xaa\x8a\x5f\xa9\xc1\x20\x50\xeb\x07\xbe\x7c\ +\xb9\xa4\x82\x0f\xa3\x97\x8e\x5d\xb0\x60\x01\xf7\xdf\x7f\x3f\x96\ +\xcf\xc7\xcc\x99\x33\x59\xb8\x68\x11\x6b\xd7\xac\xa1\xb8\xb8\x18\ +\x80\xf1\xe3\xc7\xb3\x78\xd1\x62\x66\xcd\x9e\x45\x4c\x4c\x0c\x20\ +\x95\xb4\x4b\x02\x76\x55\xb6\x16\x9a\x05\x4d\xae\x61\xe7\x03\xde\ +\x5a\x20\x6b\x17\xc6\xe2\x73\x1d\xbc\xd6\xa2\x80\x56\xcf\x49\xde\ +\x7c\xeb\x4d\x00\xae\xbd\xf6\xda\x80\x53\x2a\xc3\xa4\xdf\x23\xbf\ +\xdf\xcf\xb3\xcf\x3e\x4b\x93\x4a\x80\x55\x02\xff\x72\x21\x19\x70\ +\x31\x01\x90\x0c\xfc\x09\xb0\x66\xce\x9c\xc9\x97\xbf\x7c\x9f\xea\ +\x17\xa1\x66\xd4\x2c\xbb\xf3\x2e\x1a\x1b\x1a\x48\x4d\x4d\x65\xe1\ +\xc2\x85\x0c\x1d\x3a\x2c\x28\xc1\x42\x84\xa8\xf0\x73\x1d\x34\x0b\ +\x29\x5d\x2c\xac\x73\x6d\xbc\x99\xb4\x31\x46\xf4\x42\x9d\x3e\x5a\ +\xb5\xd1\x98\xa3\x83\x96\x6c\x75\xfe\x4e\x59\x59\x19\xfb\xf7\xef\ +\x27\x2e\x2e\x8e\x39\x73\xda\x5f\x59\x5e\x4a\xc9\x8a\x15\x2b\xa8\ +\xac\xac\xf4\xec\xfe\xf4\xa0\x83\x70\xe9\x03\xe0\xcf\x40\xfc\xa0\ +\x41\x83\x78\xe0\x81\x07\x42\x26\x56\x00\xc4\xc4\x46\xf3\x95\xaf\ +\x7c\x25\x60\xb3\xbd\x1c\x3a\x21\x1e\xbb\x65\x24\x68\xe4\x39\x22\ +\xe6\xb6\xe2\xad\x4b\x53\x25\x9c\x33\x04\x2c\x09\x9f\x02\xd8\xe6\ +\x2c\xad\x36\x0e\xaf\x5d\xbb\x36\x10\xfa\x25\x25\x25\xb5\xdb\x01\ +\xaf\xbc\xf2\x0a\xdb\xb7\x6f\xf7\x5a\x5b\x8a\x5a\x6b\x88\xcb\x01\ +\x00\xa9\xe8\x55\x33\xef\xbe\xfb\x6e\x62\x62\x63\x10\x42\x06\x46\ +\xd6\xcd\x14\x6c\x70\x70\x26\x4c\x45\x9b\xea\xbc\x4d\x4d\x20\x5b\ +\x49\xf5\x12\xca\x64\x83\x93\x8d\x8d\x8d\x9c\x3c\x79\x92\xd3\xa7\ +\x4f\x53\x5d\x5d\x4d\x63\x63\x23\x8d\x8d\x8d\x9e\x7a\x26\x2a\x2a\ +\x8a\xb8\xb8\x38\x52\x52\x52\x48\x4b\x4b\x23\x33\x33\x93\xec\xec\ +\xec\x40\x6e\xa2\xae\xae\x8e\x8d\x1b\x37\x62\x59\x16\x8b\x16\x2d\ +\x6a\xb7\x03\xde\x79\xe7\x1d\x56\xaf\x5e\xed\xfd\x7c\x94\x0b\x3c\ +\x13\xe8\x62\x03\xe0\x7e\xcf\xe3\x9f\x3c\x79\x92\x9e\x21\x63\x30\ +\xcc\xd5\xd2\xdd\xe6\x30\xad\xa9\xce\xc3\xa2\xf4\x30\x63\x6b\x66\ +\xe7\x02\xca\xdf\x75\xa9\xa8\xa8\xa0\xac\xac\x8c\xf2\xf2\x72\x2a\ +\x2a\x2a\xa8\xac\xac\xa4\xa9\xa9\x89\x8c\x8c\x0c\x46\xa4\xa6\x92\ +\x91\x9a\xca\x80\x84\x04\x86\xc6\xc5\xc9\xf8\xc4\x44\x70\x05\xb6\ +\xed\xd0\xd8\xdc\xc4\xa9\x03\x07\xac\xed\x45\x45\x1c\x38\x7b\x96\ +\x33\x67\xce\x90\x97\x97\xc7\xd4\xa9\x53\xa9\xaa\xaa\xc2\xb6\x6d\ +\xa6\x4c\x99\x42\x66\x66\x66\xdb\x9e\xef\xa6\x4d\xac\x5c\xb9\xd2\ +\xfb\xf9\x0b\xd4\xaa\x65\x5c\x4e\x00\x98\x05\x30\x63\xc6\x8c\x40\ +\x86\x2c\xc4\x91\x92\x04\xe7\xd9\x78\xf6\x56\x25\xe8\xb0\xac\x60\ +\xfa\x35\x3c\xa4\x6b\x4b\x57\xbb\xae\xcb\xd1\xa3\x47\xd9\xbd\x7b\ +\x37\x7b\xf7\xee\xa5\xb4\xb4\x94\x01\x03\x06\x30\x75\xc4\x08\xf2\ +\x87\x0c\x95\xb7\x4c\x98\xc0\xa8\xcc\x0c\x2b\xbd\x7f\x32\xae\xe3\ +\x04\x3e\x52\x08\x5c\xdb\xb6\x5c\x21\x90\xde\x31\xc7\x41\x08\x07\ +\xe9\x08\x5c\xc7\xa1\xa6\xbe\x9e\x4d\x65\x65\x72\xdd\xdb\x6f\x5b\ +\x9b\x95\x2d\xa7\xa0\xa0\xa0\xcd\xbb\xd9\xb3\x67\x0f\x2b\x56\xac\ +\xf0\x34\xd6\x5b\x9c\xbb\xbb\xc9\x65\x01\x80\x18\xcf\x03\x76\xb4\ +\xdd\xb7\xa4\x85\xeb\x05\x75\x6d\xe4\xde\xc3\x52\xe8\xed\x99\x62\ +\x6a\x6b\x6b\xd9\xb1\x63\x07\xbb\x76\xed\x62\xcf\x9e\x3d\x24\x27\ +\x27\xb3\x60\xe2\x44\xbe\xb0\x70\xa1\x9c\x72\xcf\x3d\xd6\x80\xa4\ +\x44\xc5\x50\xdb\xb1\x84\x10\xe0\xd8\xd8\xf5\xf5\x9a\xf9\x02\x57\ +\x38\x48\xdb\x51\x7f\xc3\x40\x21\x34\x10\x5c\xe1\x90\x28\x1c\xae\ +\xc9\xcc\xb2\x8e\x9f\x3a\xcd\xe6\xca\x4a\x12\x13\x13\xc9\xc9\x69\ +\x7d\x3d\xea\x83\x07\x0f\xf2\xcc\x33\xcf\xa8\x21\x6a\xd8\x01\xdc\ +\x70\x91\xa3\xb0\x8b\xf6\x62\xc8\x23\xa8\x05\x0d\xf9\xda\xd7\x1e\ +\x61\xc2\x84\xfc\x5e\x69\xf4\xe4\xc9\x93\x6c\xd9\xb2\x85\xa2\xa2\ +\x22\x8e\x1d\x3b\xc6\xfc\xc9\x93\xb9\x66\xd2\x24\x39\x27\xff\x4a\ +\x2b\xbd\x7f\x7f\x5c\x5b\x33\x56\x38\xea\xbb\x13\xc6\xe0\x80\x64\ +\xdb\x0a\x04\x01\x46\xab\x63\xd2\x00\x87\xeb\x68\xad\x60\xdb\x34\ +\x36\x37\x73\xcf\xba\x75\x9c\xb5\x6d\xc6\x8d\x1b\x47\x7a\x7a\x3a\ +\xcb\x96\x2d\x0b\xb9\xb7\x23\x47\x8e\xf0\xc3\x1f\xfe\xd0\xcb\x67\ +\x1c\x06\x46\x5f\x68\x8f\xbf\x2f\x01\x20\x1a\xf5\x02\x65\x12\xc0\ +\xe2\xc5\x8b\xb9\xe5\x96\x5b\x88\x8b\xeb\xfa\xca\xa6\xd5\xd5\xd5\ +\x14\x16\x16\xb2\x69\xd3\x26\x4e\x9c\x38\xc1\x8d\xb3\x67\xb3\x78\ +\xc6\x0c\x66\xe4\xe6\x12\x65\x59\x48\xc7\xc6\xb5\x85\x62\xba\xc1\ +\xcc\x00\x03\x1d\x81\x2b\xec\x00\xe3\xa5\x63\x48\x78\xe0\xaf\x30\ +\x80\xa2\xeb\x6b\x10\x49\xe1\xf0\xea\xa1\x43\xfc\xf1\xc8\x11\xf2\ +\x52\x53\xf9\xd6\x94\x29\xdc\xbf\x75\x2b\x0f\x3f\xfc\x70\x40\x13\ +\x1c\x39\x72\x84\xa7\x9e\x7a\x8a\xc6\xc6\x46\x50\x8b\x51\x8f\xa0\ +\xed\xf7\x14\x2f\x0b\x00\x80\x7a\x6b\x76\x1d\x7a\xb7\xce\x94\x94\ +\x14\xee\xb8\xe3\x0e\x66\xcd\x9a\xd5\x61\xc5\xa6\xa6\x26\x36\x6f\ +\xde\xcc\x86\x0d\x1b\x28\x2f\x2f\xa7\x60\xe6\x4c\x6e\x9c\x7d\x35\ +\xd3\xf3\x72\xf1\xb9\x6e\x80\x39\xe1\xea\x3b\x60\xd7\x3d\x69\xb7\ +\x4d\x5b\xef\x68\xc9\x0e\xaa\xf7\x00\x48\x84\xa3\xce\x3b\x5a\x43\ +\x18\xe5\xea\x9b\x9b\x79\x70\xfb\x76\x1a\x85\xe0\x5b\x57\x5e\x49\ +\x7e\x6a\x0a\xab\x2a\x2a\x39\x38\x78\x30\xf7\xde\x7b\x2f\x87\x0f\ +\x1f\xe6\xe9\xa7\x9f\x36\x99\x9f\xcb\x05\x98\xea\xf5\x71\x00\x80\ +\x47\x9f\x47\xbd\x18\x92\x08\x30\x65\xca\x14\xee\xba\xeb\x2e\x92\ +\x93\xcf\xdd\x35\x6d\xff\xfe\xfd\xbc\xff\xfe\xfb\x6c\xdd\xba\x95\ +\xdc\xdc\x5c\x96\x2f\x58\xc0\x35\x13\x26\x10\x63\x59\x4a\x6a\x3d\ +\xa6\x99\xcc\x0c\xa8\x7b\x5b\x4b\xbf\x62\x5c\x50\xed\x8b\x73\x40\ +\x12\x30\x05\x1e\xe3\x0d\xa7\xcf\x35\xeb\x3a\x82\x57\x8e\x55\xf2\ +\x3f\xa7\x4e\x91\xdb\x2f\x89\x6f\x8f\x19\x8b\x74\x25\xf5\xb6\xcd\ +\x43\xa5\xfb\x79\xf8\xe1\x87\x79\xe6\x99\x67\xcc\x2c\x5f\x5e\x5f\ +\x62\x7e\x5f\x01\x80\x67\x12\x56\xa2\x76\xcc\xb4\x52\x52\x52\x78\ +\xf0\xc1\x07\x19\x35\x6a\x14\x7e\xbf\x9f\x0d\x1b\x36\xf0\xf7\xbf\ +\xff\x1d\xd7\x75\xf9\xfc\xc2\x85\x72\xe9\xd5\x57\x5b\x03\x13\x93\ +\x42\xd5\xb2\xd0\x36\x3a\x20\xf9\xea\x98\x6b\x1b\x52\xec\x98\x8c\ +\x0c\x05\x84\xeb\x68\x33\x61\xab\xe3\x3a\x02\xd0\x9a\x42\x84\xd6\ +\xd7\xdf\x4f\x37\x35\xf1\x58\x59\x19\x2e\xf0\xad\x61\x39\x8c\x8a\ +\x8f\x53\x51\x89\x94\x7c\xa3\xac\x8c\x2a\xdb\xf6\x9e\xaf\x42\x4b\ +\x7e\x9f\x5b\x38\xa2\xaf\xbd\x1d\x3c\x53\x27\x44\x92\x62\x63\x63\ +\x29\x28\x28\x60\xed\xda\xb5\x5c\x79\xe5\x95\x7c\x79\xd1\x42\xa6\ +\x8d\x19\x0b\x42\x18\xd2\xea\x31\xd9\x50\xed\x8e\x40\x3a\xb6\xf1\ +\x3b\x54\xdd\x9b\x52\x2f\x85\x83\x70\x0c\x07\xcf\xf0\x15\x4c\x6f\ +\x3f\xc4\x0c\x68\x73\x21\x85\xc3\xf3\xa7\x4f\xb3\xb9\xa9\x89\x69\ +\x89\x89\xdc\x3b\x30\x2d\xf0\x1e\xe1\x86\x86\x06\x56\xd6\xd6\x7a\ +\x1e\xde\x01\xd4\x0b\xaf\x2d\xf4\x41\xea\x8b\xaf\x87\xc7\x03\xbb\ +\x51\x2f\x8b\xf2\x9b\xc7\x1e\x93\x33\x73\x73\x2d\xd7\x71\xc2\x9c\ +\x33\x4f\x45\xdb\x61\x76\x5d\x84\xa9\x7f\x27\x20\xe9\xa1\xd2\x6e\ +\x07\xcc\x85\x10\xa6\x59\xf0\xea\x9b\x8e\xa2\x13\x0a\x28\x47\xb0\ +\xbf\xc9\xcf\x4f\x1b\x1a\x88\x01\xbe\x9b\x9a\x4a\xaa\xcf\x07\x52\ +\xb2\xba\xd1\xcf\x1b\xcd\x81\x7d\x1a\x3f\x44\xad\x3d\xe0\xd2\x47\ +\x29\x00\x80\x35\xd2\xee\xf6\xab\xc9\x8b\xac\x98\x73\x80\xd4\x93\ +\xf6\xa4\x94\x2c\xf6\xc5\x56\x00\x43\x86\xa5\xa7\xf3\xc7\xc7\x1e\ +\x23\xde\xe7\x43\x38\x41\xc9\x0d\xd1\x02\xda\x7b\xf7\x4c\x82\x08\ +\x30\xcc\x33\x01\xb6\x61\xeb\x4d\xaf\x3f\xcc\xa6\x0b\x5d\xd6\x11\ +\xad\x3a\x8e\x5e\x39\xdb\x76\x78\xba\xa5\x99\x8f\x80\xeb\xa3\xa3\ +\x59\x12\x1d\x8d\xed\xba\xbc\xe8\x38\x6c\x75\x5d\x7c\x51\x3e\xee\ +\x7f\xee\x59\x6e\xba\xf7\x9e\x1e\xf5\xe1\x05\x01\x80\xc9\xa8\xa3\ +\x7b\x61\xe3\xeb\x16\xfb\x8b\x2c\x8e\xee\xb5\xa8\x3d\x09\x2d\x1a\ +\xcc\xd1\xb1\x90\x3c\x10\x32\x86\x49\xae\x18\x0b\xa3\x26\x49\xf2\ +\xe7\x4a\x86\xe6\xb6\xdd\x78\xb3\x1f\x8e\x1f\x86\xe3\x47\x2c\xce\ +\x1c\x87\xda\x53\xea\x58\x8b\x3f\xf8\xac\xf1\x49\x92\x7e\x03\xa0\ +\x5f\x2a\x64\xe6\x48\x86\xe6\x41\x6a\x3a\xb4\x34\x35\xf1\xb9\xd1\ +\xb9\x9c\xae\x3c\xc6\xdd\x0b\x16\xb0\x7c\xfe\xb5\x8a\xd1\x86\xc7\ +\x2e\xdb\xf0\xf6\xa5\xc1\x4c\x05\x1a\x2d\xf1\xb6\x40\x18\x60\x09\ +\x61\xae\x6d\xb7\xe2\x10\x1a\x6d\x07\xc2\x3e\xc1\x5a\x24\x6f\xa0\ +\xb6\x01\x7b\x4c\xc7\xb3\xbf\xd3\x23\x39\x09\xfd\xfb\xf1\x85\x1f\ +\xfd\x95\x03\xdb\xae\xa5\xde\xd8\x7a\x32\xa1\x1f\x24\xf4\x87\xfe\ +\x03\x25\x03\x32\x21\x2d\x1b\xd2\x87\x48\xb2\x46\x40\xff\x01\x17\ +\x0f\x18\xd6\x1a\x69\xcb\x92\x42\xf8\xd5\xa3\x51\x14\x7f\xd0\xf5\ +\x6b\x65\xe4\x48\x3e\xf1\x59\xc9\x82\xcf\xb8\x9c\x3e\x66\xb1\xe7\ +\x43\xd8\xb7\xc9\xe2\xd0\x4e\x8b\x93\xe5\xdd\xbb\xf7\x01\x59\x92\ +\x31\x53\x25\x99\x39\x47\x78\xfd\x17\x05\xc4\x27\x55\xf0\xe7\xbb\ +\x96\x91\x12\x1b\x6b\x64\xe1\x4c\x06\x9b\xcc\x6c\x2d\xc6\x77\x42\ +\x13\x3b\x8e\x13\xe6\x00\x86\x32\x1d\x61\x23\xb4\x3f\x20\xf5\x3a\ +\x04\xde\x08\xe2\x31\x09\xff\xa1\x75\xfa\xbd\xa8\x2d\xb9\x5e\x41\ +\xad\xfd\x02\xd8\xbf\xda\xb5\x2d\x46\x38\xf9\x7c\x69\x4a\xe7\x93\ +\xac\xfd\x07\x4a\xae\x18\x03\xc3\xf3\x25\xa3\x26\x49\x46\x4f\x91\ +\x8c\x9a\x02\x09\x49\xe7\x1f\x0c\xd6\x1a\x69\xcb\xbf\xfe\xdc\xe2\ +\xb9\xfb\xa3\xf0\x45\x4b\xe6\xdc\x2c\xb9\xea\x7a\xc9\x88\x09\x92\ +\xb4\x6c\x85\x5c\x29\xc1\x6e\x86\x9a\x13\x70\xb2\xdc\xe2\xf0\x2e\ +\xd8\xb7\xd9\x62\xcb\x1a\x8b\xa6\xfa\x76\xee\xc9\x52\x0f\x96\x3e\ +\x44\x92\x99\x03\x89\xc9\xea\x13\x9f\x24\xb1\x9b\xc1\x17\x05\x76\ +\xb3\x45\xfd\x19\x38\xfd\x11\x1c\x3f\x6c\x71\xec\x00\x34\xd6\x85\ +\xb7\x59\xc4\xf4\x82\x06\xee\xfb\xe9\x1c\xb2\x7f\x74\x6f\x40\x2a\ +\x3d\xc6\x0a\xed\xc4\x85\xc6\xf3\x1e\x08\xec\xa0\x87\xef\x49\xb1\ +\xe9\x18\x0a\x53\xd5\x1b\x1a\xc5\x15\x7a\x56\x51\xf0\x2e\x6c\x29\ +\x79\x86\xc0\x36\x9c\x47\x74\x4a\xfb\x0a\x80\xf9\xb7\xfd\x33\x5f\ +\x7d\x7e\x05\x49\xc9\xc9\xb4\x34\xc3\xaa\x5f\x5a\xa4\x1a\x1b\xd0\ +\x37\x35\x82\xff\x2c\xd4\xd7\x58\x54\x7f\x04\xa7\x2a\xa1\xaa\xcc\ +\xa2\xaa\x8c\x56\xfb\x30\x2a\x46\x32\xf6\x2a\x98\xb2\x40\x72\xf5\ +\xcd\x2e\xb9\x57\x9d\x1f\x33\x12\x30\x01\xaf\xff\xc2\x62\xc1\x67\ +\x25\x49\xc9\xed\x57\x70\x5d\xd8\xf0\x17\x8b\xff\xf9\xb9\xc5\xf6\ +\x75\x96\x9e\x59\x03\x96\x4f\x32\x6a\x32\x4c\x9c\x27\xc9\x9b\x29\ +\x19\x7b\x95\x64\xf0\x48\xf0\xf9\xba\x6a\xff\x95\xd9\xd8\xfd\x0f\ +\x8b\x8d\xaf\x5b\x14\xae\x16\x34\x35\x04\x97\xd4\xc9\x1c\x2e\x99\ +\xb6\x48\x32\x65\xa1\x32\x41\xb1\xcb\x96\x86\xda\xff\x80\xc7\x2f\ +\x82\x26\xc3\xf0\xe4\xa5\x2d\x02\x4e\xdf\x39\x09\x21\xd7\x1b\x6d\ +\x92\xe7\x30\x1f\xe0\x45\x29\x29\x02\x92\x07\x65\xe2\xaf\x4f\xc2\ +\x6e\x4a\x27\x36\x61\x38\xd7\xdd\x7e\x0f\xe3\x66\xcd\x0b\x29\xdb\ +\x6f\x00\xa4\x66\x48\x52\x33\x20\x63\xa8\x12\xa4\x36\xb3\x99\xc7\ +\xa1\x6c\x8f\x45\xd9\x1e\x38\xb0\xcd\x62\xdf\x26\x8b\xa3\x25\xe0\ +\x8a\xe0\x0d\x64\x8d\x94\xdc\xb0\xcc\x65\xdc\xcc\x50\x90\xa4\x0c\ +\x82\xcc\x9c\xb6\xdb\xef\x08\x14\x56\x6b\x0e\x9b\x59\xc9\x3b\x27\ +\x25\xbc\xfb\x92\xc5\xca\xc7\x7d\x1c\x2d\x09\x32\xfd\x9a\x5b\xd4\ +\x67\xda\x62\xd9\xa6\x2d\xeb\x2c\x32\x5b\x73\x1c\x5b\x9a\xa0\xf0\ +\x0d\x8b\x0d\xaf\x59\x6c\x7e\xd3\xa2\xee\x54\x68\x53\x19\xc3\x24\ +\x63\xa6\x49\x72\xa7\x4b\x86\x8d\x83\x9c\xf1\x12\xf1\xc9\x29\xf8\ +\xdc\x66\x1d\xe6\x79\x92\x7e\x6e\x12\x48\x08\xa1\x10\x1d\x3e\x5f\ +\xcb\x18\x41\xb6\x89\x27\xb1\xf0\x2c\x2b\xbe\xf6\x12\xc5\xeb\x05\ +\x6a\x11\x93\x31\x74\x75\xf9\xbf\xd4\x0c\xc9\xb0\xf1\x92\xd1\x93\ +\x61\xf4\x54\x05\xde\xc1\x23\x5a\x2f\x7b\xec\x20\xfc\xe3\xaf\x16\ +\x1b\x57\x59\x1c\xd8\x6a\xd1\x50\xdb\x71\xf7\xf5\x4f\x93\x8c\xc8\ +\x87\xfc\xb9\x92\x49\xd7\x6a\xe1\x88\xef\x98\x07\x56\x67\x98\x22\ +\x25\x7c\x73\x89\x8f\xa2\x37\x7d\x01\xbb\xff\xe9\x87\x5c\x6e\x58\ +\x26\x49\x4a\x39\x7f\x76\x2a\x1c\x10\xae\x0b\xa5\x5b\xa0\xe8\x6d\ +\x8b\xe2\x0f\x2c\x4a\x36\xb6\xde\x39\x51\x31\x92\xf4\x21\x90\x3e\ +\x14\xd2\x87\x2a\x29\x4c\x19\x24\x49\x4e\x83\xf8\x24\x88\x89\x53\ +\x82\x1e\x1d\x03\x4d\x0d\xaa\x17\xfc\x67\xe1\x6c\x35\xf8\xeb\x2d\ +\x8e\x1f\x86\x53\x95\x16\xc7\x0e\x2a\x55\xed\x69\xb9\x50\x09\x6f\ +\x22\x6b\x44\x1c\xc9\x69\x92\x81\x83\x15\x60\x62\xd5\x5b\x6b\x08\ +\x07\x6a\x4f\x2a\x75\x5f\x73\x02\x2a\x4b\x41\xba\xe7\xb6\x91\x3d\ +\x5a\x32\xfd\x06\xc9\xd5\x9f\x92\x8c\x9b\x2d\x59\xf7\x47\x8b\x37\ +\x7f\xeb\xa3\xe4\x43\xab\x55\x3f\x21\x63\x98\x92\xf4\x98\x78\xd5\ +\x2d\x0d\x35\x16\x75\xd5\x50\xfd\x51\xa8\x63\x0d\x90\xd0\x5f\x32\ +\xff\x36\xc9\x4d\x5f\x72\x19\x3b\xad\x6d\xfe\x58\x9d\x65\xc2\xef\ +\xbf\xeb\xe3\xa5\xa7\x2c\xee\xfd\x0f\x97\x82\xe5\x92\xe8\x98\x0b\ +\x1b\xc2\xb4\xa6\x1d\xa4\x54\x91\xcb\xfe\xcd\x16\x07\x77\x58\x94\ +\xed\x86\x8a\xfd\xca\xae\xb6\xd6\xe1\xdd\xa1\xa8\x18\xe5\xc7\xf4\ +\x4b\x2d\xe5\x6c\xf5\xdf\xb8\xf5\x91\xf9\x5c\x77\x47\x3e\xf1\x5d\ +\xdc\x44\xbe\xaa\x0c\x8e\x14\x5b\x1c\xd8\x0e\xbb\x37\x58\xec\x7a\ +\xdf\xa2\xa9\xc1\x0a\xb9\x8e\xb0\xd5\x6f\x5f\xb4\x64\xe6\x8d\x0a\ +\x1c\x79\x33\x24\xc3\xf3\x21\xa6\x03\x85\x73\xea\x18\x94\x6e\xb1\ +\xd8\xf5\x81\x45\xe1\x6a\x8b\xa3\x7b\x82\x6d\x4f\x9c\x2f\xb9\xe7\ +\x27\x22\x00\x04\x93\x5f\x9d\x56\xcd\x42\x40\xdd\x29\x18\x90\x79\ +\xf1\x63\xd7\x8e\xf2\x0c\x2d\xcd\xca\x8f\x38\x59\x6e\x51\x7d\x5c\ +\x49\x63\xcd\x09\x8b\xb3\x67\x94\xc4\x3b\x2d\x0a\x3c\x8e\xad\x3a\ +\xd6\xf2\x41\x52\x8a\xd2\x0e\xc9\x03\x95\x44\x67\x0e\x57\x61\x69\ +\x66\x0e\x01\xb0\x2f\xb2\x62\x42\xc2\xe6\x9e\x98\x36\x21\x60\xdf\ +\x26\xd8\xf0\x17\x1f\x1b\x5e\xb3\xa8\x2c\xb5\x02\x8e\xf3\xdc\x4f\ +\x4b\xee\x7c\xdc\x25\x67\x7c\xe7\xb4\x6b\x6b\xed\x97\xef\x83\x37\ +\x9e\xf7\xf1\x97\x9f\x59\x38\x2d\x16\x63\xa7\x4b\x9e\x2b\x14\x58\ +\x56\x37\x01\xd0\x17\x92\x16\x3d\x05\x46\x4f\xe8\x7c\x9a\x36\x80\ +\xe2\x0d\xb0\xea\x97\x3e\xde\xf9\x83\x72\xac\x7d\xd1\x92\xa5\xf7\ +\x48\x96\x7d\xdf\x0d\x98\xd9\xee\x00\xae\xa1\x16\x7e\xf7\xef\x3e\ +\xae\xbf\xd3\x65\xf4\x94\x6e\x6a\x80\x08\x5d\x38\xd0\x9e\x28\x87\ +\x3f\xfe\xc0\xc7\xaa\x15\x0a\x08\x19\xc3\x24\x3f\x5e\x27\x18\x3c\ +\xb2\xeb\x20\x6c\x0d\x68\x5d\xf6\x01\x22\x74\x71\x80\x70\x60\x1b\ +\xfc\xe8\x73\x51\x0c\xc8\x94\xfc\xf0\x2d\x97\xa8\xa8\xf3\x94\x08\ +\x8a\x74\x7b\xdf\x05\x82\x63\x83\xbf\x3e\x98\x2a\x8e\x00\xe0\x32\ +\xd5\x06\x7d\xdd\xef\x8a\x50\x84\x22\x14\xa1\x08\x45\x28\x42\x11\ +\x8a\x50\x84\x22\x14\xa1\x8f\x0f\xa5\x02\xff\x84\x9a\xd1\x55\x8b\ +\x5e\xad\x24\x42\x97\x3e\x3d\x82\xda\x94\xa1\xb5\x3d\xff\xfe\xc4\ +\x05\x5c\xae\x3d\x42\x17\x47\xea\xf7\x68\x66\xb7\xa0\xb6\xa7\x79\ +\x40\x83\xc2\x03\x41\x71\xa4\x9b\x2e\x3d\xf2\x32\x69\x0f\x11\xdc\ +\x65\x34\x9c\x12\xf5\x39\x41\x64\xd7\xf2\x3e\x47\xa6\x9a\xee\xee\ +\xba\x06\xfd\x74\x7d\x17\x98\xdf\x46\x99\x62\x5d\x66\xce\xe5\xd0\ +\xa9\xbe\xcb\x0c\x44\xf5\xa8\x1d\x43\x2d\xd4\x8c\xee\xd6\x34\xc4\ +\x26\xfd\xf7\xf6\x88\xcc\xf5\x2e\x8d\x44\xed\x9b\xbb\x1e\xb5\x39\ +\x73\x0b\x6a\x17\xcd\x13\xfa\xd8\xb7\x51\xcb\xc7\x9f\x4f\x0d\x00\ +\x6a\x3d\x1e\xa9\xaf\x17\x4e\x73\xf4\xb9\x13\xe8\x65\x6c\x23\xd4\ +\x7b\x5e\xb7\x4d\xc7\xbb\x6e\xd7\x01\x37\x9d\x67\x00\xcc\xd7\x6d\ +\xd4\x02\x1f\xa0\xde\x45\xbc\x03\xf8\x23\x6a\x3b\x59\xef\x1a\xff\ +\xa5\xb5\x44\x6a\x84\x7d\x3d\xa3\x5b\x8c\x4e\x6d\x00\xbe\x81\x5a\ +\x1e\x25\x16\x48\x40\x2d\x8e\xf8\x82\x51\xa6\x11\xf5\x1e\xfd\xf9\ +\x02\x40\x34\xf0\x12\xe0\xd0\xb9\xad\xe0\x97\x44\x58\xd8\x33\x2a\ +\x32\x3a\xf3\xb3\xed\x94\xfb\xad\x51\xee\xf7\x1d\x00\xc0\x07\x8c\ +\xd5\x52\xeb\x99\x93\x32\xe0\x67\xc0\xa0\x0e\x22\x81\x38\xd4\xbb\ +\xfa\xe1\x79\x00\xa1\xff\xd6\xa3\x76\x18\xff\x12\x30\x2a\xcc\x3f\ +\xe8\x0a\xa5\x18\x6d\xef\xd7\xc7\xc6\xa0\x36\x8b\x3e\xae\x01\x78\ +\x1a\x78\x0d\xb5\x55\xdc\x25\x4b\xcd\x46\x47\xb4\x37\x99\x7a\x2c\ +\x6a\x7d\xfc\xf5\xc0\xff\x6b\x07\x00\xcd\xa8\x8d\x15\x6b\xdb\x90\ +\xd8\x12\xed\xed\xb7\x45\x4f\x87\x95\xb7\x81\xbd\xfa\xfb\x3f\x7a\ +\xf1\xb9\x63\x8d\x6b\x9c\x40\xad\x11\x70\xa6\x8d\x7b\x6e\x02\x16\ +\x5d\xca\x9e\xb7\xf7\xa0\x59\xbd\x10\x06\x56\x03\xbb\x50\x1b\x2a\ +\x5c\xa9\x3b\x7a\x1e\xea\xe5\x5c\xaf\xcc\x37\xdb\x69\x67\x2e\x6a\ +\xd1\x86\xc7\x81\x19\x86\x59\xf0\xcc\x4f\x6f\x46\x58\xa6\x59\xdb\ +\xa8\x93\x4e\xd3\xb5\x16\x1a\x06\xfc\xd2\x28\x53\xd5\x81\x80\x7c\ +\x6c\xe9\x5d\xe3\x21\x5f\xa0\xab\xef\x54\xb5\x6e\x02\x76\xeb\x4e\ +\x34\x69\x99\x71\xbe\xb0\x1b\xed\x7b\x26\x61\xc2\x79\xca\x5d\x1c\ +\x6a\x83\xc1\xef\x1b\x65\x96\x5f\x8a\x00\xf8\x84\x61\x5f\x25\x70\ +\x10\xf8\x37\x2d\x09\x51\xdd\xec\xcc\xbb\x5a\x39\x3f\xd4\x38\x5f\ +\xd3\x8d\xfb\xfc\x95\xae\xfb\x8d\xf3\x04\x80\xb6\xb6\x80\xfb\x57\ +\x42\xc7\x21\x2e\x49\xba\x59\xab\xb8\x70\xdb\x57\x03\xfc\x05\xf5\ +\xaa\x7d\x7a\x17\x3a\x73\x78\x1b\xde\xbd\xe9\xd0\x75\x95\x6e\x3c\ +\x0f\x7e\x80\x79\xcf\x6d\x6d\x05\x9b\x67\x94\xd9\x75\x29\x3b\x83\ +\x89\x5a\xc5\xfd\x2d\xcc\x2f\x30\x9d\xbb\x5f\x6a\xef\xb9\xa3\xce\ +\x8c\xe9\x44\x99\xae\x92\x97\x26\x76\xe8\xbd\x0c\xa9\x79\x3f\x69\ +\x6d\x94\xe9\x6f\x94\x39\x73\xb9\x84\x86\x31\x3a\xeb\xf6\x1d\x60\ +\x6b\x58\x47\x15\xa3\x36\x93\xe8\x0e\x73\x7b\x02\x00\x74\x04\x21\ +\xd1\x8b\x59\xf7\x32\x00\xda\x32\x77\x51\x61\x11\xc9\x65\x49\xd7\ +\xeb\x50\xc9\xeb\x88\xa7\x2e\x12\x00\xbc\x34\xf1\xf7\xcf\x03\x00\ +\xac\x76\x84\xc1\xd4\x82\x97\x2d\x2d\x09\xf3\x98\x2f\x06\x00\xbc\ +\x34\xf1\x8e\x4e\x96\xf7\x98\x1a\xdf\x86\x87\x6f\xde\x4f\x5b\xdb\ +\x87\x0c\x30\xca\x9c\xbe\xd4\x98\xfa\x3d\xe0\x4d\x9d\xf9\x1a\xda\ +\x41\xd9\x04\xa3\x23\x5a\x2e\x12\x00\x4c\x69\x8c\xef\x64\x9d\xef\ +\xea\xf2\x8f\x76\x70\x3f\x79\x6d\xd4\x9f\x64\x94\xd9\x7a\xa1\x19\ +\x74\xbe\x87\x83\xe7\x6a\xf5\x9e\x89\x1a\x13\x68\x8f\x4c\x27\xa9\ +\xfa\x22\x01\xd6\x06\xb6\x18\xf7\xde\x11\x0d\x43\xed\x7e\xe2\x69\ +\xb0\x8e\xb4\x4b\x6b\x34\xc3\xf8\x7e\xc9\x45\x01\xb7\x12\x9a\x0e\ +\xcd\x69\xa7\xec\x53\x46\xd9\x95\x17\x49\x03\x98\x12\xdd\xd1\xa6\ +\xcd\xb9\x5a\xc3\x79\xd7\xdb\xd6\xc1\xfd\xec\x6c\x25\x7a\xb1\x74\ +\xd2\xca\x2b\xf3\x99\x4b\x0d\x00\x16\xb0\xca\x78\xc0\xe3\xc0\x17\ +\x51\x3b\x86\x46\xeb\xd0\x6b\x16\xf0\x1b\x42\x47\x0c\xc7\x5e\x44\ +\x00\x5c\xa5\xeb\x97\x76\xc1\xc1\x1b\xd7\x41\x99\x66\xd4\x82\xd1\ +\xab\x80\x89\xa8\x6c\x68\x4e\xd8\x73\x1f\xa5\xfb\x59\xd2\x3e\x1f\ +\xff\xbf\x44\xe7\x86\x5e\x8f\x02\xd7\xf4\x80\xb9\x1d\x95\xe9\xec\ +\xa8\x5e\x0b\xc1\x8c\xe3\x6b\x46\x6e\x62\x11\xf0\xdf\x46\xc4\xb2\ +\x1e\xb5\xc7\x6f\x6c\x1b\x6d\x9b\x00\x28\x30\xda\x0d\xff\xd4\x77\ +\xd2\xe4\x7c\xac\x69\x2e\xb0\x42\xab\xc2\x1a\x54\xb6\xae\x09\x95\ +\x83\x7f\x5d\x27\x89\x12\x7b\x28\xdd\xed\x95\x49\xe8\xe4\x3d\xfe\ +\x42\xdf\x97\x1b\x17\xeb\x3b\xae\x00\x00\x00\xb7\x49\x44\x41\x54\ +\xd6\xde\x7d\xa8\xac\xa5\x19\xb3\x7f\xb1\x93\x5a\xc2\x5b\x2c\x7a\ +\x2a\x6a\x5b\xd8\x2a\x82\xc3\xc1\xaf\xa2\x06\xb5\x22\x74\x1e\xe9\ +\x1d\xcd\x88\xbb\x8d\x70\xac\x35\x89\x5d\xdd\x8a\x74\x86\x03\xe1\ +\x73\xe8\x95\xcc\x3b\xa1\x55\x7a\xc3\x24\x45\xa8\x17\xe8\xf7\x06\ +\x23\x3e\x44\x8d\x26\x3e\xa7\x1d\xb9\x1f\x69\x67\x6e\x5a\x1b\x0c\ +\x37\x25\xfe\xdd\x1e\x24\x82\x22\xd4\x07\xa2\x91\x43\xed\x48\xb6\ +\x68\xc7\x37\xf9\x54\x37\xaf\x1b\x01\x40\x1f\xa1\x68\xc3\xbf\x78\ +\x16\xb8\x4e\x4b\x74\x29\xf0\x8c\x8e\xc5\x0f\xa3\x26\x8a\x7c\x1f\ +\x35\x64\x2d\x51\x6f\x10\xfd\x82\xf6\xa7\x99\x45\x00\xf0\x31\x09\ +\x47\xc3\xed\x75\xb8\xc3\x69\x4e\x30\xb9\x82\xf6\xa7\x95\x45\x00\ +\x70\x89\x00\xe2\x7c\x53\x04\x00\x11\x8a\x50\x84\x22\x14\xa1\xbe\ +\x4a\xff\x0b\xae\x75\xe2\xe0\x08\xd2\x80\xca\x00\x00\x00\x00\x49\ +\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x33\xb3\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\x83\x00\x0f\x00\x0f\x94\xe6\x2b\x91\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x07\x08\ +\x0b\x32\x3b\x8e\x92\xd0\xbf\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x69\x90\x5c\xd7\x75\xe7\xf9\xbb\ +\xef\xe5\xbe\x55\x66\xa1\x0a\x3b\x40\x62\x25\x48\x50\x04\x29\x73\ +\xa7\x68\x4a\x14\x48\x89\xa0\x48\x69\x5a\x9a\xf6\x8c\xa7\x3b\x62\ +\x42\xee\xfe\xd0\xd3\x52\xc8\x3d\x16\x29\xd9\xb2\x6c\xb7\x3b\x34\ +\x5f\xc6\x9e\x09\x77\xcb\xee\xb0\x67\x2c\x87\xda\xd3\xb2\xd4\xf2\ +\xd2\x32\x49\x91\x20\x41\x8a\xa2\x4d\x82\x20\x05\x52\x14\x00\x12\ +\x20\x00\x62\x29\x6c\xb5\x66\x66\x65\xe5\xfe\xde\xbd\xf3\xe1\x6d\ +\xf7\xbe\x2c\xd0\xa4\x80\x82\x04\xa8\x2e\xa2\xa2\x32\x13\xb9\xd5\ +\x3b\xe7\x9e\xf3\x3f\xff\xb3\x5c\x58\x5c\x8b\x6b\x71\x2d\xae\xc5\ +\xb5\xb8\x16\xd7\xe2\x5a\x5c\x8b\x6b\x71\x2d\xae\xc5\xb5\xb8\x16\ +\xd7\xe2\x5a\x5c\xbf\x10\x4b\x5c\xaa\x0f\xfa\xca\x57\xbe\xa2\x82\ +\xdb\x5f\xfb\xda\xd7\xc4\xe2\xa5\xff\x05\x51\x80\x89\x89\x89\x50\ +\xf0\x7f\xf4\x47\x7f\x74\xde\xe7\x2d\x2a\xc5\x15\xa8\x00\xba\xf0\ +\x83\xa5\x50\xa0\xa2\x7b\xff\xf1\x3f\xfe\xa7\x45\x85\xb8\xd2\x15\ +\xa0\x5a\xad\x52\xa9\x54\x3c\xf1\x2b\x4f\x09\x44\xa8\x07\xde\x63\ +\xf8\x8f\xff\xf1\x1f\xff\xf1\xa2\x32\x5c\x69\x0a\xf0\xc8\x23\x8f\ +\x20\x84\x60\xf3\xe6\xcd\x6c\xd9\xb2\x85\xd1\x91\x11\x4a\x43\x43\ +\x2c\x19\x1e\xc6\x4e\x24\x50\x4a\x19\x16\x42\x28\x50\x0a\xfe\xe4\ +\x3f\xff\xc9\xbb\xbe\xff\xa2\x62\x5c\x46\x0a\x10\x5f\x85\x42\x81\ +\xf2\xd0\x10\xc5\xd2\x10\x1b\x36\xac\xe7\xba\xeb\xae\xa3\x5c\xa9\ +\x78\x92\x8f\xb9\x0a\xe5\x9b\x88\x40\x4f\xfe\xf4\x4f\xff\x74\x51\ +\x19\x2e\x17\x05\x50\x4a\xf1\xe8\xa3\x8f\x0e\xfc\x9f\x52\x4a\xfb\ +\xf1\x04\x6e\x5b\x16\x9b\xaf\xb9\x86\xdb\x6e\xbd\x95\x8d\x1b\x37\ +\x92\x48\x24\xbc\x2f\x29\x7c\x5d\x50\xfa\x6f\x89\x40\xf0\x67\x7f\ +\xf6\x67\x8b\xd6\xe1\xe7\x56\x01\xc6\xc7\x95\x02\x43\x01\x14\x80\ +\x54\x84\xff\x94\xf2\xef\xfb\x3b\x5d\x05\x8f\x43\xa5\x52\x61\xcb\ +\x96\x2d\xac\x5d\xbb\x96\x72\xb9\xcc\xe8\xc8\x28\xa5\xa1\x92\x66\ +\x15\x08\x35\x42\xfa\xbf\xff\xfc\xcf\xff\x7c\xd1\x65\xfc\xbc\x28\ +\xc0\xf8\xf8\xb8\x42\x57\x80\x60\xc7\x1b\xc2\x06\xa5\xa4\xaf\x18\ +\xd1\x6d\xdd\x3a\x80\x22\x91\xb0\x19\x2a\x0d\x91\x2b\x14\x58\xb9\ +\x62\x39\xd7\x5f\x7f\x03\xd7\x5e\xbb\x25\x54\x04\x03\x47\x84\x6e\ +\x04\x84\x52\x7c\xe3\x2f\xfe\x62\x51\x21\x7e\x16\x0a\x70\x6e\x7c\ +\x5c\x09\x14\x8f\x3e\xfa\x25\xbc\x8d\xaf\x10\x81\x70\x65\x64\x01\ +\x3c\x7f\xef\x09\x5b\xca\x48\xa0\x0a\x89\xf0\x0c\x04\x4a\x49\x0f\ +\x07\x48\x85\x24\x8a\x1a\x86\x2b\x15\x6e\xb9\xe5\x16\x6e\xb9\xf9\ +\x66\x86\xca\x15\x84\x05\x96\xb0\x3c\xb7\xa1\xe2\x58\xc2\x7b\xe1\ +\x37\xbf\xf9\xcd\x45\x65\xb8\x24\x0a\x70\x6e\x5c\x81\xe2\x4b\x5f\ +\xfa\x52\xb8\xa3\x01\xa4\x94\xde\x27\x4b\x90\x4a\x6a\x96\x40\x19\ +\x3b\x3a\xc4\x07\xbe\xf0\xa5\x8a\xac\x08\x10\x29\x91\x66\x5d\x36\ +\x6d\xda\xc4\xa6\x4d\x9b\x19\x1d\x1d\x61\x74\x64\x94\xe5\x2b\x96\ +\x91\x48\x24\xfd\xd7\x78\x1f\xaa\x10\xe1\x67\xfe\xe5\x7f\xf9\x2f\ +\xbf\xd0\x91\xc6\x02\x2b\xc0\x39\x45\x60\x01\x94\x27\xec\x50\x58\ +\xa8\x08\x0b\x84\x40\x10\x94\x94\x86\x02\x04\x3b\x3d\x50\x9a\xc0\ +\x7a\x98\xcf\xf1\x84\xe9\x29\x93\xbf\xdb\xa5\x24\x97\xcf\x53\x2c\ +\x16\x29\x16\x8b\x5c\x7b\xed\xb5\x7c\xf0\x83\x1f\x64\xc9\xf0\x70\ +\x68\x09\xa2\x78\x43\x98\x8a\xa5\xe0\x5b\xdf\xfa\xaf\xbf\x10\xca\ +\xb0\xc0\x0a\x70\x56\x29\x05\x5f\xfa\xd2\xa3\xfe\x4e\x8e\x04\x26\ +\x75\x4c\x60\x08\xd1\x73\x13\x52\xca\xc8\x62\x44\x4c\x11\x4a\x4a\ +\xdf\xac\x0b\x24\xbe\xc0\x75\xe5\xf2\xff\x5f\xf9\xd6\x42\x2a\x35\ +\xa0\x50\xd7\x6d\xbd\x8e\x3b\xef\xba\x93\x6b\xb7\x5c\x8b\x10\x02\ +\xdb\xb6\xb1\x2c\x2b\xc2\x29\x9e\xa3\x0a\x5f\xf7\x57\x7f\xf5\x57\ +\x57\xac\x75\x58\xd0\x3f\xe0\xec\xb9\x73\x0a\x3f\x0c\xd4\x01\x9d\ +\xe7\xe7\x55\xb8\x53\xa5\x0f\xd6\xa4\x06\x12\x03\xeb\x60\xb8\x03\ +\x1f\x03\xe8\xbc\x80\x0a\x84\x1c\x0a\x5a\x12\xde\x55\xd2\x50\xb4\ +\xc0\x9a\xe8\xa1\x67\xa5\x52\x66\xcb\x35\x5e\xa4\x51\xa9\x54\x58\ +\xbd\x7a\x15\xc3\x95\x25\x9a\x75\x08\xc1\x43\x08\x2c\xbf\xf3\xed\ +\x6f\x5f\x31\x2e\x63\x61\x15\xe0\xec\x59\xa5\x50\x3c\xfa\xc8\xa3\ +\xbe\x79\x57\x3e\xd3\xa7\xfc\x1d\x2b\x40\x2a\xcf\x2b\x87\x0a\xe0\ +\x0b\x4c\x28\x94\x1b\x89\x41\x86\xae\xc1\x17\xac\x81\xfe\x7d\x00\ +\xa9\x47\x16\xc1\xf3\x09\x5c\x86\x02\x09\x2e\xa1\xaf\x31\x22\x12\ +\xa5\x14\x89\x44\x82\x7c\x3e\x4f\x2e\x97\x63\xd5\xaa\xd5\xdc\x7c\ +\xcb\xcd\xdc\x78\xc3\x0d\x9a\xdb\xc2\x20\xa4\xbc\xef\xe9\xbd\xfe\ +\xaf\xbf\xfb\xd7\x97\xa5\x42\x2c\xac\x02\x9c\xf1\x14\xe0\x91\x47\ +\x1f\x9d\xc7\xdc\x2b\xd3\x2d\xa0\xed\x66\x5f\x58\x52\xc9\xf0\x42\ +\x87\x02\x97\x72\x20\x8c\x0c\xac\x8a\x09\x20\xa5\xef\x1a\x74\x90\ +\x48\xf8\x78\x64\x09\x54\x18\x29\x44\xdf\x45\x19\xd1\x48\xb9\x52\ +\xe6\xf6\xdb\x6e\xe7\xb6\xdb\x6e\x63\x78\xc9\x30\xb6\x65\x93\x48\ +\x26\xfd\x8b\xe7\xb9\x23\xdd\x5a\xa1\xe0\x6f\xfe\xf6\x6f\x2e\x0b\ +\x2b\xb1\xa0\x5f\xe4\xcc\x99\x33\x1e\x15\xfc\xc5\x47\x22\xbf\x8c\ +\x0a\x85\x18\x46\x04\x86\xe9\x8e\x61\x04\x9d\x38\xd2\xd9\xc3\x79\ +\x1e\xf7\xf4\x46\x13\xb0\x9c\x47\xb1\x42\x41\xfb\x06\x5e\xca\xc8\ +\x35\x05\x9f\x1d\x7c\x4f\xfd\x79\xda\x67\x6f\xda\xb4\x89\x0d\x1b\ +\x36\xb2\x74\xe9\x08\xab\x56\xad\x62\xcd\x9a\xb5\x24\x53\xc9\x90\ +\x94\x52\x5a\xb6\x33\x78\xef\x9d\x3b\x9f\xa6\xd5\x6a\xfd\xdc\x29\ +\xc4\xc2\x2a\xc0\xe9\x33\x9e\x05\x78\xe4\x11\x03\x03\x04\x02\x11\ +\x41\x68\xa7\x85\x73\xa1\x72\xc4\x76\xa7\x54\x9a\xe9\x8e\x5b\x8f\ +\xf8\x8e\xd6\x76\xbb\x10\x11\xb7\x10\xba\x88\xf3\xbc\x0e\x4d\xe0\ +\xf3\x83\x55\x8f\x82\x0e\x95\x08\xc8\x64\x32\xe4\xb3\x39\x8a\xa5\ +\x02\x37\x6c\xdb\xc6\xed\xb7\xdf\xce\xb2\xa5\xcb\x0c\x45\x08\xfe\ +\x6e\xd3\x7d\xc0\xf7\xfe\xfe\x7b\x3f\x73\x65\x58\xd0\x0f\x3b\x7d\ +\xfa\x74\x98\x0c\x32\x81\x9c\xe6\xbb\x35\x7f\xed\x59\x83\x40\xe0\ +\x81\xb0\x23\xc1\x85\x8a\x40\x84\x1f\x54\xa0\x10\x52\xe0\xa1\x09\ +\xcd\x3d\x18\x6c\xa3\xae\x18\x2a\xda\xe1\x3a\x09\x15\x7e\x8e\x6e\ +\x81\x22\x0c\xa1\x24\x9a\xe2\xea\x60\x54\x78\x8a\x2b\x08\xbf\xe7\ +\x75\x5b\xaf\xe3\xee\xbb\xef\x66\xf3\x35\x9b\x49\xa7\xd2\xa4\x53\ +\x69\xec\x84\x1d\xf0\x93\xc6\x6b\x41\xf1\xd8\x63\x8f\xfd\x4c\xac\ +\xc3\x82\x2b\x80\x42\xf1\xc8\x17\xbf\x88\x54\xf8\xac\x9e\xd4\x78\ +\x7c\xef\x42\x2b\xe9\x33\x7e\xe8\xa6\x5c\x13\x22\xd1\xee\x33\x94\ +\x47\x46\xe6\x59\x62\xfa\x77\x5c\x85\x14\xa6\xc9\xc7\x67\x17\x95\ +\x14\x28\xe1\x63\x84\x18\xef\x10\x85\x92\x1a\xf6\x08\xb8\x08\x5d\ +\xb1\x60\x1e\x97\xa4\xd3\xd8\x91\xb5\x2b\x57\xca\x6c\xda\xb4\x89\ +\x35\xab\xd6\xb0\x6c\xf9\x32\xd6\xaf\x5b\xcf\xe8\xb2\xd1\x30\x84\ +\x05\x15\x71\x1c\xca\x23\xab\x9e\x78\xe2\xfb\xac\x5f\xbf\x1e\x80\ +\x5f\xfb\xb5\x5f\x5b\x30\x39\x25\x16\x52\x01\x0c\x13\xa8\x74\xdf\ +\x18\x99\x50\x34\x81\x2b\x23\xc9\x63\x12\x33\x52\x49\x4f\x5b\x23\ +\x4f\xa0\xf9\x69\xfd\x35\xfe\x35\x15\x26\xb0\x8b\x38\x05\x3f\xe9\ +\x20\x31\x05\x49\xa4\x54\xcc\x03\x32\x55\xe8\x82\x88\x59\x15\x22\ +\x65\xf1\x77\x94\x77\x5f\x86\x11\xc2\xcc\xf4\x0c\x7b\xa6\xf7\xb0\ +\x5b\xed\xc6\xb6\x6c\xb2\xd9\x2c\xa9\x54\x9a\xf5\xeb\xaf\xe6\x8e\ +\x3b\xee\xe4\xd6\x5b\x6f\x45\xf7\x0d\x4a\xc1\x8e\x1d\x0f\x72\xf0\ +\xe0\x5b\x0b\xee\x02\x12\x0b\xfb\xf6\x2a\x56\xec\x21\x43\x65\x60\ +\x1e\x3f\x1f\x98\x70\x1d\xac\x45\xbe\x9b\x88\xed\x33\x84\x32\x18\ +\xff\xcf\xb7\x43\x75\x40\x06\xf1\xa4\x53\xa4\x58\x71\x85\x10\xa1\ +\xdb\xf1\x14\xc7\x54\xe2\x40\x13\x85\xa9\x30\xe1\xef\xc8\x8d\x08\ +\xff\x33\x1c\xd7\x61\x76\xb6\x01\xcc\x32\x39\x39\xc1\x9e\x3d\xaf\ +\x20\xa5\xa2\x52\x19\xe2\xce\x3b\xee\xe2\xd6\xdb\x6e\x61\xd3\xe6\ +\xcd\x06\xf7\xb0\x90\xcb\x5a\x58\xf1\x47\x48\x5f\x8f\xb9\xa5\x1f\ +\xa6\x19\x61\x57\x40\xe3\x2a\x35\x40\x02\x89\xd0\xe4\xeb\xcc\x60\ +\x20\x92\x40\x91\x84\x49\xda\xa8\xe8\x3d\x82\x9d\xef\xc3\x07\x2d\ +\x94\xd4\x00\x9a\xae\x28\x7e\x18\x8a\x12\x04\x14\x82\x0a\x3f\x43\ +\x85\x61\x66\xf8\x37\x61\x62\x0d\x8c\x5c\x05\x91\x4b\x0b\xc1\x0d\ +\x06\x90\x05\xc5\xcc\x4c\x8d\xc7\x1f\x7f\x8c\xaf\xfe\xf6\xef\x18\ +\x4a\x7c\x59\x5b\x00\x81\xbe\xab\xb4\x5a\x50\x08\x2f\x66\x70\x4d\ +\x44\x28\x24\x13\x9d\x87\xb2\x90\x0a\xe1\xef\x34\xa1\x81\x34\xcf\ +\xf4\xaa\x50\xca\xe1\x7b\x06\x5c\x02\x21\x2d\x18\x81\x4e\x8d\x40\ +\x32\x76\xbc\x6e\x3d\x84\xaf\x70\x03\x82\x55\x98\x46\x4c\x05\x54\ +\x00\xb8\x1e\x81\x15\xf1\x15\x22\x8c\x1a\x74\xc5\x55\x21\x0e\x8a\ +\x29\x15\x51\xb4\x70\xa9\xd6\x02\x63\x00\x7d\x37\x06\xec\x5b\xb4\ +\xe3\x42\xc0\x86\x44\xfa\xe0\x27\xbc\x98\xc6\x4e\xd1\x6e\xc7\xdf\ +\x5f\x31\x20\xc4\x90\x0b\x10\x0a\x21\x7d\x2b\x21\x23\xc1\xc7\x77\ +\xac\x91\x96\xc6\xc4\x2b\x2a\xe6\x12\xa4\x52\x08\x1f\xb9\x87\x40\ +\x4f\x44\x2c\xa7\x1e\x22\x12\x77\x2f\x3a\x8c\x08\x4d\xa4\x0c\x0b\ +\x62\x44\xc0\x41\x28\x2e\x99\x12\x24\x16\x18\x02\x98\x04\x90\xd2\ +\x2e\x38\x26\xd9\x12\x84\x7c\x7a\x22\x27\xac\x20\x46\x0d\x24\x78\ +\x84\xf1\xfe\x6a\x70\x97\xc5\x14\xc7\xf3\xdf\x42\xab\x39\x8c\x95\ +\xa8\x8b\xc0\x9f\x04\x56\x43\x7f\x0f\x15\x2a\x10\x3a\x26\x88\x29\ +\xd1\x20\xee\xc0\xf8\x2e\x4a\xc5\x68\x64\x2d\x2b\x69\xb8\x8e\x4b\ +\x27\xff\x05\xb6\x00\x11\xb6\x8e\xfd\xf1\x68\x66\x59\xbb\x90\x86\ +\x29\xd4\x12\xb6\x5a\xa1\x08\xa1\x12\x78\x48\x5f\x49\x2f\x4f\xe0\ +\xba\x2e\x42\x08\x84\x10\x21\x4b\x18\xc6\xd9\x7e\x86\x4f\x0f\xcf\ +\x50\x71\xf3\x1e\xb0\x81\x91\x62\x45\xff\xaf\xb3\x7a\x41\x3d\x01\ +\x28\x61\x82\x42\xf4\x74\x74\x50\xfc\x82\x96\xea\x26\x5e\xb5\xa4\ +\xb9\x9d\x20\x1b\x2a\xd5\xa5\xf4\x00\x0b\x6d\x01\xfc\x22\x8c\xf0\ +\x6f\x32\x59\x3e\xdd\x4d\xa8\x70\x97\xf9\x3e\x20\x16\x4b\x47\xbc\ +\x81\x76\x11\xa5\xc2\x71\x1c\x4e\x9f\x3e\x4d\xaf\xd7\xa3\x50\x2c\ +\x50\x2c\x16\xc9\xa4\x32\x9a\x27\x95\xda\x4e\xd7\xd8\x47\x4c\xe1\ +\x07\x98\x61\xbe\xd0\x52\xd7\x5c\xa9\xa2\x0a\x55\x25\x45\x10\x8f\ +\x1a\x0a\x1e\x52\xd0\x21\xfa\xd4\x2c\x62\x2c\xbc\x8d\x97\xaf\x09\ +\x2f\xe7\x7d\x85\x28\x40\x58\x79\x23\x8d\xf8\x5d\x05\xc4\x87\xd4\ +\xdd\x02\x06\x28\x1b\xdc\x85\x4a\xbb\x88\x91\xf9\x76\x1c\x97\x76\ +\xbb\x4d\x3e\x9f\xa7\x90\x2f\xd0\x6e\xb6\x98\x9e\x9a\x66\xa8\x5c\ +\x26\x93\x4e\x23\x84\xd0\x14\x2b\x20\x8c\x62\x35\x02\x7a\xd4\xa0\ +\xa7\xad\x95\x1e\x92\x6a\x69\xeb\x90\x2f\x50\xf3\xd2\xd6\x3a\xc8\ +\xd4\x43\x57\xdd\xba\xa1\x25\xc5\xfc\x27\x79\xc4\x95\x71\x25\x2e\ +\x73\x05\x90\x28\x84\x30\x3b\x7f\x42\x21\xea\xa1\xde\x7c\xbb\xc3\ +\x08\x1d\x34\xb0\x67\x30\x7e\x60\x59\x02\xa7\xdf\xa7\x50\x28\xb0\ +\x76\xed\x5a\x6e\xbf\xfd\x76\x5e\x7b\xed\x35\xf6\xef\xdf\x4f\xad\ +\x5a\xa5\x54\x2c\x92\x4a\xa7\xb1\x6c\x2b\xe6\x1a\x34\x07\xa5\x21\ +\x33\xfd\x3b\x0a\xad\x93\xc9\x27\x70\x35\xdf\x1e\x84\x82\x66\xf8\ +\x69\x58\x82\x38\xa0\xd7\x9c\xbb\xd4\xb8\x02\xa5\x7c\x9a\x54\xaf\ +\x8c\xba\x12\x30\x80\x98\x27\x87\xae\xe6\x61\x04\x03\xc4\xaf\x5f\ +\xa3\x90\xf0\xf1\xeb\x02\x54\x9c\x29\x04\x1c\xa7\x4f\xaf\xdf\xa3\ +\xef\x38\x64\x32\x19\x3a\x9d\x0e\xf5\x7a\x9d\xcf\x7e\xf6\xb3\x1c\ +\x3e\x7c\x84\x3d\x7b\x5e\x64\xff\xfe\x7d\x54\xab\x55\x72\xb9\x2c\ +\x99\x4c\xd6\x8c\x25\x34\x6b\x22\xa5\x57\x9b\x88\xb0\xb4\x30\x8d\ +\x30\x47\xa0\xd1\xfc\x5a\x6d\x22\xa6\x75\xd3\xd1\x4b\x9c\xc4\x12\ +\xca\x00\xa6\xa6\x7b\x51\x03\x24\xd6\x95\x11\x06\x1a\xd8\x28\x32\ +\xb1\x91\xff\x95\x1a\x3f\x10\xe4\xf0\x3d\xe0\x26\x88\x6a\xfc\x4c\ +\x76\x2d\xf2\xd1\xb5\x5a\x9d\xe9\x89\x71\xca\x89\x04\x73\xb3\xb3\ +\xdc\x7f\xff\xfd\x3c\xfb\xec\xb3\xac\x59\xb3\x86\x35\x6b\xd6\xd2\ +\x6c\xae\xa2\x5c\xfe\x00\x87\x0f\xbf\xc4\xdb\x6f\xef\x67\x62\x62\ +\x92\xf2\x50\x99\x4c\x36\x03\x08\x7a\xbd\x2e\xdd\x6e\x17\x29\x25\ +\x96\xb0\xb0\x13\x36\xb6\x65\x21\x2c\x2b\x2c\x11\x33\x12\x47\x9a\ +\x2b\x09\xb5\x27\x06\xf4\x88\xb1\x8f\x01\x03\x8a\x14\x46\xe8\x1b\ +\x67\x28\x95\xf4\xc2\x49\x62\x40\xf8\x32\xc7\x00\x18\xa1\x9d\x6e\ +\x0d\x74\x96\x4c\x11\x27\x58\xcc\x74\xad\x4e\xf0\x85\x17\x58\x2a\ +\x5a\xcd\x39\xb6\xe4\x72\x2c\x29\x14\x38\x91\x4c\xb2\x6e\xdd\x3a\ +\x96\x2d\x5b\xc6\xab\xaf\xbe\xca\xc7\x3e\x36\xca\xc4\xc4\x0a\xa6\ +\xa7\x37\x70\xc3\x0d\x37\x73\xd3\x4d\x6f\x70\xf4\xe8\x6e\x0e\x1e\ +\x3c\xc4\xc4\xc4\x44\x28\xdc\x35\x6b\xd6\x90\xcb\xe5\x68\xb7\xdb\ +\xd4\x6a\x35\x9a\xad\x16\x8e\xe3\x60\x09\x41\x3a\x93\x21\x9d\x4e\ +\x47\x2e\x48\x98\x25\xe6\x5e\x34\x20\x31\xcd\x89\xc9\x33\x20\x95\ +\x96\x58\xd2\x58\x47\x62\x2e\x40\x4f\x26\x5d\x31\x61\x60\x1c\x60\ +\xf9\xd9\x92\x50\xf8\xba\xd9\xd4\x5d\x41\x2c\x66\xd6\xb9\x03\x9d\ +\xa0\x71\x7a\x3d\x86\x33\x19\xda\xdd\x0e\xeb\xaf\xbb\x96\x4c\x26\ +\xc3\x86\x0d\x1b\xd9\xbb\xf7\x47\xcc\xce\xd6\x18\x1d\x55\x9c\x3e\ +\xed\xf2\xfc\xf3\x2b\x71\x9c\xd5\x8c\x8c\x6c\x63\xc3\x86\x27\x38\ +\x73\xe6\xff\xe3\xc6\x1b\x6f\xe4\x23\xf7\xde\xcb\x9a\xd5\xab\xb1\ +\x2d\x8b\x6c\x2e\x87\x10\x82\x5a\xad\xc6\xb1\x63\xc7\xd8\xb7\x6f\ +\x1f\x07\x0e\x1c\x60\x62\x62\x82\x6c\x26\x4b\x36\x97\xc5\x12\x96\ +\xef\xbb\xcf\x23\x44\xdd\xaf\x87\x14\xb0\xaf\x3b\xc2\xac\x84\x32\ +\x58\x21\x14\x52\xf3\x0a\xe2\x4a\xb2\x00\x51\xca\x57\xdb\xfd\x68\ +\xa4\x8d\x32\xc1\x8f\x54\x5e\x6a\x58\x4f\xbe\x98\xc4\x4a\x14\xfb\ +\xf7\xfb\x7d\xd2\x89\x04\xa7\x7b\x5d\x36\xae\x58\x89\xe3\xb8\x54\ +\xca\x65\x6a\xb5\x1a\xf5\x7a\x8d\x4a\xa5\xc7\x3d\xf7\x9c\xe5\x86\ +\x1b\x12\x9c\x1a\x2b\x33\x76\x6a\x14\xd7\x5d\xc1\xfa\xf5\xeb\xf9\ +\xd5\x5f\xfd\x55\x36\x6e\xda\x48\x2a\x99\x22\x61\xdb\x7e\x0c\x2e\ +\x59\xbe\x7c\x19\x1b\x37\x6e\xe2\xce\x3b\xef\x64\x6c\x6c\x8c\xbd\ +\x7b\xf7\xf2\xea\x2b\xaf\x30\x76\xea\x14\xb6\x6d\x93\x4e\xa7\x49\ +\x26\x92\x61\xfd\x62\x50\xe3\x68\xec\x7a\x35\x98\xa8\x42\x0d\x66\ +\x38\xf5\xdb\x66\x2e\x02\xd4\x15\xc1\x04\x6a\x35\xf7\x06\xeb\x17\ +\x24\x76\x84\x0a\x13\x3a\x42\xdb\x11\x2a\x88\xb7\xa5\x4f\x0b\xeb\ +\x96\xc0\x7f\xcc\x75\xfb\x88\x7e\x9f\x14\xd0\x76\x5d\xb2\x3e\x08\ +\x14\x96\xa0\xd7\xeb\x31\x3b\x3b\x8b\x65\x59\x9e\x7f\xb7\x9a\xac\ +\x5c\x55\xa3\x5c\x39\xcb\x9e\x3d\x6f\x30\x3c\x3c\xcc\xf2\xe5\xcb\ +\x41\x41\xaf\xd7\xa3\x0f\x5e\x07\xaa\xff\xcb\xb2\x2c\x86\x86\x86\ +\xbc\x8a\xe1\x2d\x5b\xf8\xf0\x3d\xf7\xf0\x57\xdf\xfe\x36\x2f\xbf\ +\xfc\x32\xad\x56\x0b\xcb\xb6\xc8\xe7\xf2\x08\xe1\xd5\x27\xc8\x58\ +\xd8\x67\xe4\x14\x34\x4e\x40\x12\xa3\x97\x55\x54\x07\x10\xba\xbb\ +\x20\x6b\x25\xae\x14\x0b\xa0\x5d\x14\x9d\xc0\x19\x60\xc1\x94\x96\ +\x2e\x0e\xf2\x06\x98\xc5\x21\x01\xfb\x86\x02\xd7\x95\xe0\xba\xb4\ +\xfa\x7d\xda\x40\xbb\xdd\xa6\xdb\xed\xd0\xef\xf7\x11\x42\xd0\x9c\ +\x9b\x23\x9d\x4e\x33\x37\x37\x87\xeb\x7a\x5c\xc1\xf4\xf4\x24\xb5\ +\xda\x21\x6e\xbc\xf1\x83\x24\x12\x09\xfa\xfd\xbe\x2f\xf4\xe8\x6a\ +\xeb\xb7\x11\x20\x10\xac\x58\xb1\x82\xad\x5b\xb7\xd2\x68\x34\xd8\ +\xb4\x69\x13\x8f\x3f\xfe\x04\xcd\x66\x93\x5c\x36\x17\x81\x42\x9d\ +\xd8\x0c\xef\x08\x2f\x39\x14\xfb\x3b\x0d\xc6\x50\x46\x40\x31\x60\ +\xa3\x75\xa5\xbf\xcc\x31\x00\x66\x2d\x7f\xe0\x03\x07\x2e\x8a\x0a\ +\xf3\x22\xa1\x3d\x18\x00\x81\x91\xf3\x97\xd2\x2b\x2c\x6d\x01\xaf\ +\x4a\x89\x2c\x97\xd9\xb7\x7f\x3f\xc5\x52\x91\x66\xb3\x85\x6d\xdb\ +\xbc\xfe\xc6\x1b\x64\x33\x19\x94\x52\xcc\xce\xce\x32\x37\x37\x47\ +\xb9\x5c\x66\xcd\x9a\xab\xd8\xb8\x71\x23\x52\xca\xb0\x1a\xc8\x93\ +\xb9\x08\x7f\xc7\x95\xc1\x71\x1d\x26\xa7\xa6\x58\xb1\x62\x05\x9f\ +\xf9\xcc\x67\xa8\x54\x2a\x7c\xe3\x1b\xdf\xa0\xd7\xef\x91\xb0\x13\ +\xe7\x69\x6b\x8b\x32\x50\x46\xd5\x11\x3a\x45\x1c\x77\x09\x11\x70\ +\x50\xe2\x8a\x50\x00\x83\xfc\x37\xf9\x80\x20\xec\xd1\xfe\x70\x23\ +\x0a\x40\x63\xe1\x90\x06\x6b\xa6\x94\xa2\xdd\x69\x93\xce\xe5\xb8\ +\xe1\xb6\xdb\xb8\xe9\xa6\x9b\x78\xfa\xe9\xa7\x79\xf1\xc5\xdd\x28\ +\x25\xa9\xd7\xeb\x64\xb3\x59\x72\xd9\x1c\x99\x4c\x8a\x15\xcb\x57\ +\xb0\x61\xc3\x7a\xf2\x85\x02\x99\x4c\x86\xe1\xe1\x61\x7a\xbd\x9e\ +\x2f\x60\xe5\xff\x16\x9a\x12\x78\x5a\x11\xdc\x6c\x36\x9b\x9c\x3c\ +\x79\x92\x0f\x5c\x7f\x3d\xae\xeb\x72\xd7\x5d\x77\xf1\xd6\x5b\x6f\ +\xf1\xc3\x1f\xbe\xc0\x50\xa9\x14\xe6\xbd\x3d\x3c\x20\x62\x7f\xa7\ +\x34\x6d\xa1\xf2\xf6\x7a\x84\x11\x04\x4a\xb9\x26\xfb\x28\x2e\x1d\ +\x13\x74\x89\xc2\x40\x06\x32\x80\x41\x01\x80\x96\x06\xd2\x76\x84\ +\xde\xab\x27\x0c\x72\x44\x2a\xcf\xff\xcf\xcc\x54\xb9\x71\xdb\x36\ +\x76\xec\xd8\x41\xb1\x58\x44\x4a\xc9\x4f\x7e\xb2\x8f\x72\xb9\xcc\ +\x87\x3f\xfc\x61\xca\xe5\x32\xb6\x9d\x60\x78\xb8\x42\x36\x9b\xc5\ +\x95\x12\xdb\xb2\xb0\x6d\x3b\x04\x90\x5e\x07\xb1\xc0\xb2\xe6\x77\ +\x01\xc1\xed\x53\xa7\xc6\x98\xad\xd7\x59\xb5\x6a\x15\xfd\x5e\x0f\ +\x84\xe0\x9e\x7b\xee\xe1\xd5\x57\x5f\xa5\xd7\xef\x91\x4a\x26\xc3\ +\x1c\x86\x42\x6a\x09\x1d\x85\x0a\xdb\x94\x55\xa4\xec\x01\x35\x4c\ +\x50\x05\x15\xd5\x46\xc4\x01\xe4\x65\xef\x02\x84\x50\x46\x2c\xac\ +\x57\x06\x07\x3b\xc5\xb2\x2c\x5c\xd7\x8d\x40\xa0\x90\x06\x2a\x36\ +\x62\x65\x14\x7d\xc7\xa5\xdf\xef\xb3\x79\xf3\x66\xf2\xf9\x3c\x52\ +\x4a\x36\x6f\xde\xcc\xfa\xf5\xeb\xc9\x64\x32\x48\xd7\x05\x21\x48\ +\x24\x6c\x94\x52\x74\xbb\x5d\x4f\x79\x2c\x8b\x5e\xaf\xe7\x95\x41\ +\x09\xcb\xb7\xf6\xda\xae\x9f\x47\x01\xa4\x94\x1c\x78\xf3\x4d\x0a\ +\x85\x02\x4b\x96\x2c\xa1\xe7\x63\x8c\x55\xab\x56\x72\xcd\x96\x6b\ +\x78\xe3\xf5\x37\xfc\x49\x26\x6a\x60\xac\x4d\xa8\xf2\x32\xea\x20\ +\x1a\xa8\x52\x1e\xa0\xa7\x35\xd2\xeb\xb2\xb7\x00\x46\x8f\xbe\x99\ +\x30\x09\x2e\xd8\x92\xb5\x6b\x48\x16\x86\x71\x3a\x0d\x9c\x46\x9d\ +\x5e\xb3\x45\xa7\xdb\xa5\xd7\xeb\x83\xeb\xc6\x88\x20\xef\x35\x49\ +\xdb\x26\x99\x48\x32\x36\x36\xc6\xb6\x6d\xdb\x48\x26\x53\x80\xc2\ +\xb2\x2c\xba\xdd\x5e\x88\xa0\x1c\xc7\xc1\xb2\xfc\xea\x23\xa5\xb0\ +\x6d\x1b\x84\xc0\x55\x0a\x25\x1d\x84\x25\x8c\xa6\x50\x5d\x13\x84\ +\x87\x00\x69\x34\x1a\x1c\x39\x72\x84\xcd\x9b\x36\x93\x4c\x26\x43\ +\x90\x29\x84\xc5\xb5\xd7\x5e\xcb\xde\x1f\xed\xf5\x19\x4b\x61\xd0\ +\xc0\x51\x65\x90\x8a\xed\x6e\x42\x65\x08\x72\x00\x46\x61\x8a\x9e\ +\xf6\xbe\x12\xd2\xc1\x46\xa2\xc7\x20\x4d\x3c\x71\x5e\xf3\xe1\x4f\ +\xd0\xb3\x7e\x99\x33\x87\x15\xd5\xce\x38\x2a\x7b\x9c\xdc\xc8\x3b\ +\x54\x92\x27\x71\x3b\x93\x8c\xbf\x73\x2c\x8c\x1a\x84\x00\xe9\x2a\ +\x84\x6d\xb3\x64\x74\x94\x97\x5f\xde\x83\xeb\xba\x7c\xf4\xa3\x1f\ +\x65\x78\x78\xd8\xe8\x28\xb6\x2c\x8b\x7e\xbf\x4f\xb7\xd7\x0d\x81\ +\x5a\xa7\xdb\xa1\xd7\xed\x91\x4c\x24\x48\xa5\x52\x08\xcb\x0a\x79\ +\xfe\x44\x22\x41\x3a\x99\xc2\xb2\x2d\x03\xc3\xbc\xf5\xe6\x9b\x34\ +\xe7\x9a\x6c\xd8\xb0\x01\xd7\x71\x43\xc5\x96\x52\xd1\x9c\x6b\x7a\ +\x96\xc5\x95\x08\x4f\xd3\x34\xec\xa2\x62\x03\x2a\x54\x54\xad\xac\ +\x13\x61\x92\x79\x13\x5e\x57\x44\x18\xa8\x57\xfb\x1a\x05\x13\x1a\ +\x33\xd8\xef\xc1\xf1\xa3\x59\x7a\xdd\x04\x6b\x3f\x50\xa1\x3d\xb7\ +\x85\x66\x5d\xe1\x26\x7b\xac\xfd\x60\x9d\xab\x6e\xf9\x01\x53\xc7\ +\xf7\x31\x57\x6d\x90\x48\x40\x67\x76\x86\x4e\x7d\x96\x54\x32\x49\ +\x32\x65\xf3\xf2\xcb\x2f\x33\x35\x39\xc9\x43\x0f\x3f\x4c\x2e\x9f\ +\x27\x61\x59\xcc\xce\xce\xd2\x68\x34\xb0\xa4\x24\x81\xa0\xdd\x69\ +\xd3\x6d\xb5\xc8\xa7\x53\x64\x93\x29\x6a\xbd\x1e\x9d\x6e\x17\x25\ +\x25\xe9\x74\x9a\x54\x3a\x0d\xa9\x14\xa4\x52\xa4\x0b\x05\x8a\xa5\ +\x12\xb9\x6c\x96\x4e\xbb\xcd\xfe\x03\x07\x58\xb5\x6a\x15\x95\x4a\ +\x05\xc7\x71\xc2\xb8\x7d\xff\xfe\xfd\xbc\xf2\xca\x2b\x9a\xdb\x18\ +\x44\xf4\x46\x4f\xa2\x20\x6a\x8a\x89\x91\x45\x51\x82\xc9\x4c\x28\ +\x5d\x01\x16\x80\x18\xd3\x15\x29\x7a\x00\x8e\x4f\xbc\xf2\x14\x57\ +\xdf\xd2\xc4\xed\xf7\xe8\xb6\x2c\x6e\x7a\xf8\x53\x1c\xdb\x5f\xe0\ +\xcd\xdd\x69\xbe\xfd\x87\xcb\x58\xb9\xfe\x93\x6c\xbc\xf1\x97\x19\ +\xbd\x56\x50\x1a\x2d\x51\x9f\xaa\x32\x37\x31\x46\xbf\xfd\x0e\x4b\ +\x7b\x6f\xb3\x6a\xcb\x18\x67\x4e\xbe\xcd\xf7\x1f\xff\xef\x7c\xf0\ +\xfa\x6d\x64\x85\x45\x52\x4a\x56\x96\xcb\x64\x6c\x1b\xe1\xba\x94\ +\x86\x86\x18\x5a\xb1\x02\xe9\xba\x74\xbb\x5d\x12\x40\x26\x99\x04\ +\x29\x69\xb4\x5a\xd4\x1a\x0d\x9a\xf5\x3a\xcd\x5e\x8f\x86\xeb\x32\ +\x93\x4e\x93\x5f\xb1\x82\x5a\xbb\xcd\xe4\xe4\x24\xb7\xde\x7a\x2b\ +\x89\x44\x02\x85\xa2\xdf\xeb\x73\xf4\xe8\x51\x9e\x79\xe6\x19\x4e\ +\x9f\x3e\x4d\x36\x9b\xf5\xc0\xa4\x8c\x91\x3c\x81\x90\x25\x46\xce\ +\x5f\x7b\x92\x91\x42\x26\xd6\xf2\x7e\x85\xb8\x00\xcc\xde\x3e\x2d\ +\xfe\x0d\x42\x9d\xb3\x87\x8f\x70\xe6\xd0\x61\x44\x32\x41\x71\xb8\ +\xc2\xf5\x1f\xbd\x95\xf6\xdc\x35\xb4\xe7\x60\xc3\x0d\x8a\x91\x55\ +\x19\x94\x1a\xe5\xd8\x81\x1e\xfd\x7e\x8a\x5c\x69\x19\x85\xf2\x2a\ +\x12\xa5\xdb\xb0\x13\x30\xbc\x71\x8e\x8d\x1f\x3a\xc5\x3f\xfe\xed\ +\xd7\x98\x3a\x7a\x84\xff\xe5\xee\xbb\x29\xe7\x0a\xb8\x8e\x43\x42\ +\x08\xd2\x89\x04\x4e\xaf\x87\xd3\xed\x7a\x15\x37\x42\xe0\x3a\x0e\ +\xb2\xdb\xc5\x75\x1c\x2a\x4a\x52\x49\xa5\x90\x42\xe0\xa4\x52\xb4\ +\x3a\x1d\xa6\x9b\x73\xbc\xf9\xea\xab\x3c\x7f\xe6\x0c\xab\x37\x6c\ +\x60\xf5\xea\xd5\x08\xe1\x31\x8c\xef\xbc\xf3\x0e\x4f\x3f\xfd\x34\ +\x27\x4e\x9c\x20\x93\xc9\x60\xdb\x89\xb0\xf1\x54\x99\x5b\xdf\x50\ +\x04\x39\x60\x15\x31\xcb\xd1\x62\x8d\x32\x4a\xa8\x2b\xc8\x05\x68\ +\xa3\x61\x74\xb4\x6c\x8c\x86\xe9\xf5\xa8\x8f\x8f\x73\xf0\x85\x17\ +\xc8\x97\x87\xb8\xed\x01\x49\x21\x3f\xc6\xa9\x37\x0f\x01\x0e\xcb\ +\x97\xf5\x29\x94\xf3\x8c\x1d\x3c\x47\xa7\x5e\x82\xcc\x7a\x1c\xae\ +\x66\xfa\xcc\x0a\xfa\xbd\xeb\xc0\xfe\x0a\xfb\x8f\xfe\x19\xb3\x5b\ +\x2d\xf2\xad\x29\x84\xdb\xa7\x27\x3d\x9a\x58\xba\x2e\xb8\x2e\x52\ +\xba\x28\xc7\x45\xb9\xde\x8f\x94\x12\xe9\x38\x28\x19\x3c\x26\x51\ +\xae\x4b\x45\xba\x58\xd3\xd3\x74\x27\x26\x28\x6e\xdb\x46\x3a\x9d\ +\xa6\xdb\xed\xb2\x7f\xff\x7e\x9e\x7f\xfe\x79\x8e\x1d\x3b\x46\xbe\ +\x50\x20\xe9\x47\x19\x03\xc9\x2b\x3f\xe1\x65\xba\xbf\xa8\xb7\x61\ +\xbe\xb4\xb1\xd1\x84\x7a\xc5\x80\x40\xf4\x84\x97\x96\x09\x0b\x19\ +\xbf\x28\x16\x0e\x10\xf3\x9b\xcf\x3d\xc5\xd5\xdb\xce\xd2\x6e\xcc\ +\x72\xe6\xed\xc3\xa8\xbe\x4b\xaf\xd3\xa6\xd7\xeb\x79\x48\x3e\x99\ +\x24\x61\x5b\xa4\x32\x59\x32\xf9\x3c\xcb\xaf\xbb\x9e\xe5\x9b\x3f\ +\xc2\xf4\xe4\xb5\xbc\x66\x7f\x8e\xbf\x3d\x36\xcd\x1d\xa3\x6f\xb2\ +\x2e\x77\x98\xf4\xf4\x3b\x48\x57\xe2\x3a\xca\x13\xae\x74\x91\x31\ +\x05\x08\x6f\xbb\xd1\xe3\x93\xdd\x2e\xaf\x4f\x4c\xb0\x35\x9d\xa6\ +\x38\x36\xc6\xa9\xb1\x31\x8e\x1c\x3d\xca\xee\xdd\xbb\x39\x7b\xf6\ +\x2c\xc5\x62\x11\xcb\xb2\x22\xf6\x52\x60\x60\x1b\xa3\xc4\x4d\x6b\ +\xfe\x90\xd2\x4c\x69\xeb\x05\x30\x22\x5e\x96\x2e\xae\x14\x0c\x20\ +\xcc\x24\x90\x40\xf8\x4d\xa0\x83\x63\xdc\x40\x31\x37\x35\xcd\xbe\ +\x67\x9f\x8b\x4d\x15\x8b\x0a\x30\x9c\x6e\x97\x3e\xd0\x6a\xb6\x60\ +\x6a\x8a\x33\xc7\x8f\x93\xdf\xf3\x12\xab\xaf\xdd\xc6\x9d\x1f\xdf\ +\xc1\xc4\xc4\x2f\xf1\xdf\xf7\xdf\x44\xfe\xcc\x19\x36\xce\x3d\xc7\ +\x86\xd2\x41\xca\xb5\x9f\x90\x72\x6a\x28\xa7\x87\x74\x5c\xa4\xeb\ +\x25\x9b\xa2\x9d\xef\x2b\x80\x74\xe9\xf7\x1d\xf6\xb4\xdb\xb4\xba\ +\x5d\xee\x58\xb2\x84\xf1\xe3\xc7\xf9\xee\xb7\xbe\xc5\x64\xad\x46\ +\xbb\xd3\xa1\x58\x28\x22\x6c\x2b\x04\x32\x46\x09\x79\x3c\xe1\x15\ +\x6d\xfc\x48\xdd\x63\x69\xee\xf9\x32\x84\x4a\xa8\x2b\xa8\x2c\xdc\ +\xf0\x89\xba\x3b\x20\x96\x25\x8c\x32\x83\xc4\x2e\x4c\x90\x52\x55\ +\xc1\x4c\x0e\x3f\x05\x17\x5c\xf4\xc6\xd4\x34\x6f\xbd\xf0\x2c\x93\ +\x6f\x1f\x60\xf3\x9d\x77\xb0\xe6\xa1\x5f\x42\xd9\x77\x72\xfa\xc7\ +\x9f\xe6\xec\x44\x8d\x62\xf5\x05\x46\x66\xf7\x50\x49\x9d\x23\xef\ +\x4e\x62\x37\xa7\x51\xcd\x1a\xa2\x3d\x8b\x90\x8e\x5f\x12\x26\x70\ +\x24\x1c\x92\x2e\x47\x5d\x87\xe5\x42\x30\x51\x9f\xe5\x27\xc9\x24\ +\xad\x25\x25\x72\xc3\x05\xf2\xaa\x48\xaf\xd9\xf5\x12\x51\x2a\x6a\ +\x2f\x13\xf3\x35\xb6\x6a\xb1\xbf\x31\xb4\xc2\xb0\x06\xca\x18\x7d\ +\xab\xf4\x62\xa3\x2b\xa6\x1e\x20\xa4\x39\xb5\xe2\x4b\xa3\x63\x20\ +\x72\x78\x32\x8e\x8c\x89\x3a\x6d\xc3\x52\x71\xa1\x55\xed\xfa\x1a\ +\x13\x58\xe0\x89\x33\x67\x99\xf8\xeb\xbf\xc1\x4a\x7c\x8f\xab\x3f\ +\x78\x3b\xe9\xe2\x16\x58\x7e\x23\xd5\x91\xcf\x70\xea\xdc\xa7\x49\ +\x34\xce\x31\xd4\x39\xca\x70\xff\x2d\x4a\xad\x43\xa4\x66\x4f\xa1\ +\x66\xc6\xa1\x3a\x49\xc2\xea\x33\x23\x67\xf9\x07\xb7\xc5\x14\x16\ +\xc9\x7c\x99\x73\x2b\x57\x92\xbb\xf1\x7f\xe6\xea\xcc\xbd\x24\xac\ +\x71\x70\x0f\xd1\xef\x1c\xa6\x33\x77\x9a\xd3\x6f\x1d\xf4\x49\x27\ +\x19\xf5\x1c\x84\x7f\xad\x6e\xe2\xa5\xd9\x0a\xa4\x57\x46\xc5\x5c\ +\x63\xb8\x05\x82\xea\xa3\x2b\x25\x19\x14\xf7\x8b\xe6\xf4\x0d\x69\ +\x96\x4a\x69\x9d\xc0\x3a\x7f\xae\xe2\x54\x6b\x0c\x54\xea\xcd\x1b\ +\x4e\xbf\xcf\xd1\x57\x5f\x24\x61\xbd\xc4\xc8\xca\x55\x6c\xfa\xd0\ +\x5d\x88\xab\x56\xd2\x9c\x5b\x49\x75\x66\x25\x87\x66\x6f\xa4\x37\ +\x5b\xc6\xee\x36\xc9\xb5\x4f\x92\x9a\x3a\x8c\x72\xbb\xbc\x53\x87\ +\x77\xc6\x7b\x08\xbb\xc6\x99\xd5\x7d\x6e\xfe\xe4\xf5\x5c\x73\xf3\ +\x87\x39\xfa\x7a\x9a\x64\xca\x42\xf1\x20\xd9\xbc\xc3\xd0\x68\x9d\ +\xea\xa9\x1f\x70\xee\x9d\x7f\x60\x66\xec\x10\x63\x87\x8f\x20\x3b\ +\x1d\xad\x6f\x61\x9e\x0a\x61\x62\xae\xc1\x00\x82\x3a\x5e\x88\xbb\ +\xc5\x2b\x01\x04\x2a\x8d\x0b\x88\xa5\x77\x55\xac\x4b\x48\x6f\xdc\ +\x9a\xb7\xcd\x4b\x45\xe5\xd8\xe1\x5c\x01\x65\xa2\x6a\x01\x48\xc7\ +\xa1\xab\x14\xa7\xde\x39\xc6\xa9\xa3\x47\x11\x89\x04\xf9\xe1\x25\ +\x94\x46\x96\x53\x1a\x5d\x45\x6e\xfd\x4a\x12\x99\x65\xb8\xac\xc4\ +\x51\xd7\x23\xdd\x25\x94\x0f\xff\x98\xff\x71\xeb\x4a\xda\x0d\xc1\ +\xf4\x99\x04\x33\xa7\x57\xf0\xc3\x77\xd2\x28\x29\xc8\x97\x14\x43\ +\x23\x82\xce\x5c\x92\xe3\x07\x46\xe8\xf7\x1e\xa6\x32\x7a\x17\x37\ +\x3d\x74\x8e\xab\xc6\xbe\xcf\x9b\x2f\x7c\x9f\xb3\xc7\x8e\x11\x51\ +\xfb\x2a\x66\xd9\xcc\x6e\xa0\x68\x08\x45\xac\x29\xc6\xac\xa2\xb8\ +\xfc\xa9\x60\x63\x1c\x8a\x46\x83\x1a\xa0\x28\x48\x83\xc7\x07\x39\ +\xe9\x56\x40\x13\xf4\x7c\x71\xb6\x9e\x3c\x93\x46\x28\xe5\xef\xb8\ +\xbe\x43\xfd\xdc\x39\xea\xe7\xce\xa2\xd4\x6b\x5e\x44\x91\x4a\x53\ +\x1a\x19\x65\x74\xf5\x4a\xca\x23\xc3\xc8\xfa\xdb\x9c\xfc\x51\x91\ +\x54\xbe\x48\x3a\x91\xa2\xb4\x74\x2d\xe9\xc2\x2a\x5c\x67\x25\xc9\ +\xdc\x2f\xd1\x6a\x94\x28\x55\x04\x37\x7c\x58\x91\x48\xa6\x78\xfd\ +\xd9\x15\xbc\xba\x73\x25\x2b\x37\xde\xc0\x47\xff\xf5\xa7\xa9\x9f\ +\x7b\x86\xf1\x13\x07\x39\x7b\xe4\x10\xa7\x0f\xbd\x4d\xbf\xdb\x35\ +\x33\x7b\x46\x2f\x61\x90\xfe\x15\x68\x10\x32\xa4\x86\xc5\x95\x41\ +\x05\x7b\x35\x2e\x42\x99\x43\x1e\x8c\xae\x5e\xdf\x0d\xe8\x2d\x7b\ +\x04\x3d\x77\x0a\xad\x1e\x80\x58\xbb\x98\x4f\x96\xc4\xa8\x55\x25\ +\xf4\x72\x6d\x39\x60\x79\x74\x9c\xe1\x74\x3b\x4c\x9f\x3a\xc9\xf4\ +\xd8\x89\x70\x3c\x8d\x25\x6c\x5c\xc7\x31\x76\x60\xb6\x34\xcc\x35\ +\x77\xde\x4f\x69\xe9\x9d\xb4\xe7\xee\xe2\x07\xdf\xaa\x60\xd9\x30\ +\x57\x03\xe9\xc2\xde\x9d\x49\xf6\xfd\xf0\x3a\x36\xdf\xb2\x91\x91\ +\x95\xb3\x6c\xba\x79\x92\x89\x13\x4f\x72\xec\xc7\xcf\x32\x75\xe2\ +\x24\x93\x67\xce\xc4\xe6\x1a\x46\xcc\xb8\xc0\x8d\xfa\x0c\xd0\xf0\ +\x91\xbc\x22\x14\xc0\x2b\x90\x08\xc7\xb8\x62\x0e\x6a\xd2\xc1\xa1\ +\x1a\xd8\x25\xc1\x90\xe8\x20\x9b\xa7\xbd\x87\x54\x66\x3e\x5d\x6a\ +\xbb\x48\x0e\x4e\x15\xd1\x07\x4d\x33\xef\x7c\x9f\x88\x9a\x73\xa5\ +\x63\x4e\x0a\x51\x8a\xb9\xea\x24\x6f\xec\xfc\x6f\x14\xcb\x4f\xb1\ +\xf5\x9e\x7b\xb8\xee\xb6\x3b\xe8\xf5\xee\x65\xef\x33\xa3\x14\x2b\ +\x8a\xff\xe1\xff\x96\xcc\x4e\x1e\xe7\xe8\xeb\xa7\x99\x39\xbb\x82\ +\xf1\x13\x1b\x10\xd6\x17\xd8\x78\xeb\xbf\xe0\xe6\x07\x7f\xcc\xeb\ +\x3b\xff\x84\xb7\x5f\x79\x85\x76\xb3\x15\x6b\x70\xf1\x6b\x08\xe6\ +\x4b\x94\x5d\x09\x20\xd0\x28\x6f\x0e\x26\x84\x87\xa2\x0b\x06\x43\ +\x61\x0a\x25\x94\x9a\x4e\xae\xcb\xd8\x73\xe2\xad\x63\x72\xb0\xdb\ +\x48\x2b\xcb\x32\xaa\x6e\x07\xc6\xc5\x62\xa6\x6a\x89\x0f\x8a\xf2\ +\x6b\x10\xfa\x3d\x66\x26\xa6\xf8\xe1\x7f\xfb\x2e\x56\xe2\xef\xd8\ +\xf6\xd1\x4f\x70\xc7\x43\xff\x8a\xf1\x93\x37\x52\x9f\x00\xa1\x5e\ +\xe6\xc0\x0f\xbf\x4e\x69\x74\x25\x9b\x6e\xbe\x9f\xca\x8a\x8f\x32\ +\x7d\x66\x1d\xc7\xdf\xbc\x8f\xcd\xb7\x2e\xa7\xb2\xf2\xff\xe5\xf9\ +\x6f\xfd\x65\x38\x52\x26\xf6\xe1\x03\x43\x2c\x2e\x55\x4d\xd8\xc2\ +\x77\x06\x29\xf8\xf4\xa7\x3f\xcd\xd4\xd4\x14\x27\x4e\x9c\xe4\xc4\ +\x89\xe3\xf4\xfb\x7d\xc3\x0a\x08\x4c\x8b\x20\xf5\x14\x72\xcc\x75\ +\x98\xfd\x83\xca\xa8\xa5\x8b\xcf\xff\x33\xe6\x02\x0d\xb8\x85\xc0\ +\x06\x0f\xb6\x65\x85\x13\x48\x30\x53\xba\x81\xfb\x70\xfb\x7d\xf6\ +\x3d\xf7\x04\xcd\xe9\x93\xdc\xf1\xcf\x7f\x93\xfc\xd0\xb5\x9c\x7b\ +\x67\x9a\x89\x13\x87\x19\x3f\xfe\x36\xc7\x7f\xfc\x22\xa3\x6b\xfe\ +\x1f\xae\xbb\xe7\x13\x5c\xbd\xf5\xb3\x74\x9a\xd7\xf3\x91\x7f\xf1\ +\x79\x0e\xef\xdd\xcd\xc9\x37\xdf\x36\x6a\x81\xe2\x80\x58\xe7\x15\ +\xae\x80\x28\xc0\xfb\x43\xee\xbd\xf7\x5e\x20\xaa\xdc\x9d\x9d\x6d\ +\xb0\x77\xef\x5e\xf6\xbc\xbc\x87\xa9\xe9\x29\x6d\xe0\x42\x04\x0e\ +\x15\xe6\xc0\x84\x38\x75\xaa\x34\x82\x28\x60\x02\x74\x05\x30\xc7\ +\xc8\x6a\x98\x14\x4c\xa5\x92\xb1\xe1\x0c\x7a\xf9\x16\x18\x63\x6c\ +\xf4\xef\xd2\xed\x76\x79\x6b\xcf\xab\xb4\x67\x7f\x8b\x95\x5b\xae\ +\xe1\xe4\x5b\x87\xc2\xef\xd8\xef\xf5\x38\x75\xe4\x28\xe3\x27\xff\ +\x33\x5b\xef\x7e\x8b\x91\xab\xee\xe0\xed\x3d\x49\x9a\xb5\x06\x41\ +\xab\x88\x52\x26\x19\x26\x83\xf9\x45\x46\x58\x7b\x29\x58\x9a\x05\ +\x5e\x07\x0e\x1c\x50\x03\x1d\xbf\xda\xee\x02\xd8\xbf\x7f\x3f\xbb\ +\x77\xef\xe6\xc8\x91\xa3\x74\xbb\x1d\xda\x6d\x8f\xfb\x0f\xa2\x88\ +\x70\x38\xa4\x9a\xaf\xfa\x36\x62\xe4\xbc\x08\xc3\x9c\x16\x6e\x56\ +\xec\x46\x03\x21\x85\xc6\x43\xc4\x47\xd9\x9b\x25\x5b\x66\x95\x8e\ +\xd1\xea\x2d\x7d\x62\x4a\x7a\xa5\x6f\xae\x3b\xc8\x6c\x02\x5e\x25\ +\x92\x25\xe8\xb5\x3b\xe6\xfc\xc1\xd8\x1c\xa3\x40\xf0\x7f\xff\xd8\ +\xdf\x83\x82\xb3\x67\xcf\x02\x97\xf1\x9c\x40\x80\xad\x5b\xb7\x86\ +\x5f\x7e\xff\xbe\x7d\xca\xec\xa1\xf7\xae\xea\xd6\xad\x5b\xb9\x6e\ +\xeb\x75\xa0\x60\x66\x66\x86\x63\xc7\x8e\x71\xee\xec\x59\xce\x9c\ +\x3d\xcb\xe1\xc3\x87\x99\x9c\x9c\x34\x84\x34\x40\xa2\x68\xec\xa2\ +\x8a\x99\x7f\xc5\x60\x08\x16\x9f\x0c\xa2\xe6\x19\xd7\xa2\x94\xb9\ +\x13\x07\x9a\x39\x63\x73\x0b\x82\x7c\x85\xd1\x2e\xe6\x1b\x7a\xb7\ +\xe7\x6a\xc8\xc7\x1f\x19\xe7\xef\xfa\x60\x84\x9c\xee\xf6\xf4\x8a\ +\xa1\x2b\x80\x0a\x8e\xd6\xf5\x1f\xf8\x80\x78\xe8\xe1\x87\xc5\xe8\ +\xc8\x88\x35\x3d\x35\xf5\x3f\xd9\x89\xc4\x7f\xfa\xdd\xdf\xfd\xdd\ +\x8a\xae\x14\x95\x4a\x85\x4a\xb9\x02\x37\x29\xfa\x8e\x43\xb7\xd7\ +\xf3\xf2\xf0\x47\x8f\xf2\xe2\x8b\x2f\xf2\xda\x6b\xaf\xc5\x84\xaf\ +\x62\x67\x02\xc4\x46\xc9\x05\x43\xa3\xe2\x85\x17\xfa\x34\x10\xe6\ +\x2b\xc6\x30\x23\x0a\xa1\xfb\xe9\xd8\x5c\x81\x81\xd6\x6f\xa9\x83\ +\xc9\xd8\x1c\x04\x7f\x3c\xbe\x5e\x20\x12\x1e\x9b\x23\x2e\x7d\x7b\ +\xf8\x25\x1b\x4c\xfc\xe0\x8e\x1d\x69\xcb\xb6\x8b\x96\x6d\xff\x8a\ +\x6d\x89\x3f\xb4\x2c\x3b\x2d\x84\x30\x88\xa0\xaf\xfc\xf6\x57\x62\ +\x7c\xf9\x3c\x93\xc6\x80\xe9\xe9\x69\xf6\xec\xd9\xc3\xde\xd7\xf6\ +\x52\xab\xd6\x98\x9b\x6b\xd2\x6c\xcd\xcd\x33\x19\xd4\x3c\x67\xc8\ +\x9c\x0a\xae\x87\x99\x9a\x22\xf8\x98\x40\x12\x3f\xa5\x24\x06\x4a\ +\x03\xce\xc1\x1f\x0d\x17\x8c\xab\x0f\x86\x53\x0f\x00\x53\xad\x16\ +\xc0\x98\x99\xac\x75\x15\x07\x16\xe1\xf1\xc7\x1e\x43\x29\x18\x1f\ +\x3f\xb7\xe0\x2e\x60\xc1\xde\xf8\xc1\x07\x1f\xb4\x9e\x78\xe2\x09\ +\xf9\xb1\xfb\x3f\x96\x49\x67\xd3\x1b\x2c\x61\x7d\x5a\x08\xf1\x5b\ +\x89\x84\x9d\x1e\x00\x64\xb1\xfe\x7a\x1d\xc5\x7f\xf5\xab\xbf\x63\ +\x4e\xdb\xd6\x95\x41\x41\xbf\xef\x30\x36\x76\x92\xb1\xb1\x31\x26\ +\x26\x26\x38\x7c\xf8\x08\x87\xde\x3e\x84\xd3\xef\x9b\xd3\xc1\xc3\ +\x5a\x04\x65\xe4\x15\xc2\xbc\x84\x9a\xbf\x50\xc3\x3c\xe9\xc4\xdb\ +\xde\xba\x52\x79\xd6\x21\x88\x48\xa4\x1f\xd7\x9b\x13\xcd\x8d\x4c\ +\xa0\x6f\x01\xcc\x01\x12\x26\xae\x79\xfc\xb1\xc7\x51\x42\x31\x7e\ +\x6e\xfc\xf2\x53\x80\x1d\x0f\x3e\x68\x7d\xff\x89\x27\x24\xc0\x43\ +\x0f\x3d\xf4\x11\xcb\xb6\x1e\x12\x42\x7c\xd6\xb2\xec\x21\x4b\x0c\ +\xf6\x3b\x18\xc4\x47\x0c\xe4\x85\x93\xb9\xb5\xb9\xff\xbf\xf7\x7b\ +\xbf\x37\x30\x46\x26\x48\x9e\x49\xe5\x35\x7c\x38\x8e\x43\xad\x56\ +\x63\xcf\x2b\x7b\x78\xe1\x87\x2f\x30\x3e\x3e\x6e\x9c\x47\x10\x27\ +\xa0\xce\x2f\x0c\xf3\x0c\x83\xf0\xd4\x13\x21\xcd\xb9\x83\xc6\xe9\ +\x66\xb1\x33\x0f\x95\x34\x7a\x1b\x65\xec\xc4\xb3\xf0\xb0\x0b\x3f\ +\x93\x28\xa5\xe2\xf1\x27\x1e\x07\x05\xe3\xe3\x97\x91\x02\xec\xd8\ +\xb1\xa3\xf4\xfd\xef\x7f\x7f\xd6\xdf\xfd\x9f\x4b\x24\xed\x5b\xc0\ +\xfa\xb8\x25\xc4\x52\x61\xe9\xd3\x31\x82\xe4\xad\x60\xa0\x5d\xcc\ +\x20\x85\x74\x74\x1e\x67\x11\x65\x78\xff\xf7\x7f\xff\x3f\x18\xee\ +\xe1\x7c\xd6\x62\xff\xbe\xfd\xec\xde\xfd\x12\x47\x8e\xbc\x43\xb3\ +\x39\x47\x7d\xb6\x4e\xcf\xef\x21\xd0\x4d\x73\x5c\x11\x02\xa1\xa3\ +\x09\x2b\x1a\xe9\xe6\x1d\x5f\x1b\x76\x03\xcd\xc7\x55\x48\x73\xc8\ +\xa4\xd2\x18\x49\xa5\xd7\x48\x68\x7c\xc6\x63\x8f\x3f\x0e\x4a\x85\ +\x83\x2c\x7e\xae\x15\xe0\x81\x8f\x3f\x90\x7e\xf2\xa9\x27\xbb\x00\ +\x0f\x3c\xb8\xe3\xcb\x09\xcb\xbe\xdf\xb2\xac\xdb\x10\x22\xe7\x57\ +\x4b\x63\x36\xbb\x46\x82\x1f\x88\xeb\x95\x99\x23\x1f\x44\xe8\xe6\ +\xf8\x56\xa9\x14\x96\xb0\x58\xbf\x7e\x1d\x37\xdd\x74\x53\x18\x72\ +\x5d\x77\xdd\x75\xd1\xf4\x6e\xc5\xc0\x6c\x9e\x99\x6a\x95\x93\x27\ +\x4e\x30\x31\x31\xc1\x89\x13\x27\xd8\xb7\x6f\x1f\xe7\xce\x9e\x8d\ +\x46\xd5\xc6\x72\x08\x11\x8f\x10\x2b\xec\x50\xca\x18\x71\x6f\x60\ +\x88\xf8\x79\x08\x21\xa1\xe4\xbd\xf7\x60\x16\x33\xca\x85\x3e\xf6\ +\xd8\xe3\x00\x4c\x4c\x2c\xbc\x05\xb8\xe0\x28\xe0\xc9\xa7\x9e\xec\ +\x3e\xf0\xc0\x8e\xaf\xd9\xb6\xf5\xcf\x2d\x21\x56\x29\x21\xb2\x21\ +\xda\x16\x42\x4b\xf1\x9a\xc9\x5e\xa1\xcf\x0f\x8c\x27\x42\x94\xd9\ +\x51\xa4\x57\xcc\x18\x42\x51\x8a\xab\xd6\xaf\xe5\xe6\x9b\x6f\x36\ +\xbe\xd3\x9b\x6f\xbe\x89\xe5\xf7\x01\xda\xb6\xcd\xd5\x57\x5f\x15\ +\x0d\x79\x12\x50\x29\x97\xa9\x94\xcb\xfe\x00\x4a\x07\xa7\xef\xe0\ +\xb8\x2e\x07\x0f\x1d\xe2\x07\xcf\x3d\xc7\x2b\x7b\xf6\xd0\x97\x32\ +\xa2\xb2\x85\x76\x68\x84\xe6\x9a\x54\x6c\x64\x89\x32\xc0\xa5\x39\ +\x22\x46\x60\x16\x7e\x28\x19\xab\x81\x18\xa0\xd0\x2e\x4d\x36\xe8\ +\xa7\x56\x80\xfb\xef\xdf\x9e\xb3\xac\xc4\x57\x2c\xcb\xfa\xbc\x10\ +\xa2\x00\x4a\x44\xa6\x5a\x44\x47\xb7\x0a\xbf\x63\x56\x68\x85\x2e\ +\x42\xab\x97\x0b\x2a\x7c\x84\x32\x98\x30\xfd\xa2\xea\x79\xf3\x78\ +\x76\xef\xfa\xeb\xaf\x9f\xdf\xb4\x09\xc2\xc9\xa1\xa7\x4e\x9d\xc6\ +\xb2\x6c\x6c\xdb\x62\x74\x74\xd4\x28\xcd\xb6\x84\x4d\x32\x65\x91\ +\x54\x8a\x1b\xb7\x6d\xe3\xc6\x6d\xdb\x00\x45\xb5\x5a\xe3\xa5\x97\ +\x5e\xe2\xb5\xd7\x5f\x63\x7a\x6a\xda\x9b\x3a\x32\x5b\x37\x69\x5b\ +\x06\xcf\x1b\x08\xb2\xa0\x03\x38\x45\x19\xa1\x4d\x30\x46\x7a\x7e\ +\xd2\xd7\x63\x96\x7e\xfe\x14\xe0\xde\x7b\xef\x4d\x25\x93\xc9\x11\ +\xa5\xd4\xbf\x11\x42\xfc\x76\xf8\x25\x55\x34\xd1\x17\xa2\x59\x4a\ +\xe1\x8c\x40\xed\x39\xfa\x00\x48\xb4\x23\x5c\x91\xf3\x4c\x0e\x8d\ +\x03\xb0\xa0\xdf\x5e\x8b\x13\xb3\xd9\xec\xbb\x7a\x37\x41\x30\xf5\ +\x43\x20\x2c\x41\xb5\x5a\x0d\x27\x87\x48\x29\x71\xfd\xd2\xf0\xd1\ +\xe0\x9c\x1f\xff\xbd\xcb\xe5\x21\x1e\x78\x60\x07\x0f\x3c\xf0\x00\ +\xae\xe3\x30\x76\xfa\x14\x67\xce\x9c\x65\xfc\xdc\x38\xfb\xf7\xed\ +\xe3\x27\xfb\x7e\x12\x56\x2a\x2b\x83\xd1\x13\xf3\x9f\x2a\x12\xd2\ +\xd2\xda\x7c\x00\xa9\x38\xef\x2c\x88\x9f\xb7\xee\xe0\xed\xdb\xb7\ +\xdf\xa6\x94\x7a\x50\x4a\xf9\xd5\x60\x67\x05\xb1\x6b\xa0\x07\x02\ +\xbc\xf4\xaf\xaf\x01\xc2\xff\xbf\xf0\xc2\x10\x24\x7f\x44\x34\x40\ +\x01\xcc\xe2\x8d\xf8\x29\xe0\xa1\x9f\x15\xc6\xf0\xa5\x60\x4d\x4e\ +\x4e\xb2\x6c\xd9\xb2\xf9\x13\x51\xc4\xa6\x73\x23\x10\x08\x2c\x21\ +\x10\xb6\x1d\x81\x4d\x21\x38\x77\xee\x2c\x8e\xe3\xe0\xba\x2e\x6b\ +\xd6\xae\xd1\x72\x19\x0a\xcb\xb6\xb9\x6a\xed\x55\xac\x5d\x7b\x15\ +\x4a\x4a\x1e\xfc\xc4\x0e\x94\xab\xa8\xd6\x6a\xfc\xe3\x3f\xfe\x03\ +\xcf\x3e\xfb\x2c\xa7\x4e\x9d\xd2\xe9\xbc\xf3\x14\xad\xa8\xd0\xe2\ +\xbd\x5b\x0f\x68\x7c\x1e\xe2\xcf\x8b\x05\x78\x39\x9b\xcd\xd2\x98\ +\x9b\x43\x08\x48\xd8\x36\x42\x04\xf3\xf4\x22\x73\xe5\x85\x73\xc2\ +\xb7\x07\xc2\x38\x42\x4d\x08\x34\x54\x6d\x86\x81\x88\x58\x99\x98\ +\x1e\x16\xbe\x8b\xaf\x7c\xfd\xf5\xd7\xd9\xbe\x7d\xbb\xdf\xa2\xad\ +\xa7\xa2\x35\x4b\x23\x15\x58\xc1\x7b\x78\xa3\xe9\x55\xac\x31\xc5\ +\x73\x1b\x9e\x82\x9c\x38\x76\x42\x3b\x99\x04\xae\xbe\xea\x2a\xe3\ +\x39\xb6\x65\x83\x05\x23\x23\x4b\xf8\xd4\x27\x3f\xc5\xa7\x3e\xf9\ +\xc9\x30\xd2\x78\xf9\xe5\x97\x39\xfa\xce\x51\xaa\xd5\x1a\x53\x53\ +\x93\x74\xfc\x5a\x41\x63\xfa\xe7\x25\xec\xff\xbf\x98\x0a\xa0\x1e\ +\x7c\xf0\x41\x31\x39\x35\x49\xbd\x56\x67\xfc\xdc\x39\xc6\x27\x26\ +\x68\xb7\xdb\x58\x3e\xd8\xf2\x86\x2c\x0a\x2c\x84\xd6\x2d\xed\x0d\ +\x49\x30\xce\xfb\x21\x1a\xc3\xaa\xab\x7d\xbc\x5a\x46\x3f\xdd\xf3\ +\xbc\x61\x8c\x10\xec\xde\xbd\x9b\xbb\xef\xbe\xdb\x78\xdc\x9b\x36\ +\x26\xfc\xc3\xaa\x24\x42\x4a\x5f\xc0\xc1\x68\x56\xaf\xf7\x5f\xea\ +\x65\xea\xbe\x19\x8b\x7f\xe2\xf1\x13\x27\xc2\xdb\xd5\x6a\x95\xa7\ +\x9e\x7a\x8a\x2f\x3d\xfa\xa8\xef\xe6\xa2\x54\xfe\xf5\xd7\x6f\x65\ +\xeb\xf5\x5b\x41\xeb\xd9\x53\xbf\x00\x00\x13\x02\x49\x44\x41\x54\ +\x41\xb5\x5e\xe5\xcc\xe9\x33\x4c\x4c\x4c\x72\xe4\xc8\x61\x7e\xf4\ +\xa3\x1f\x31\x36\x36\x66\x28\xff\x79\x2f\xf4\x25\x54\x0e\xf1\x3e\ +\x5c\x80\xfc\xed\xaf\x7e\x55\xf4\x7b\x7d\x3a\x9d\x36\x0d\xbf\x03\ +\xb7\x31\x37\xc7\xd9\xb3\x67\x19\x1b\x1b\xf3\x09\x17\xe5\xa3\xef\ +\x84\xe7\x77\xb5\x11\xee\xe7\x9d\x7f\xa7\x11\x41\x66\x4c\xff\xde\ +\x2f\x44\xb1\x58\xe4\xae\xbb\xee\xa2\x52\xa9\x18\x59\x38\xdb\xb2\ +\xb1\x6c\x2b\x3c\x20\xda\xb2\xac\xf0\x3b\x49\xff\xd8\x39\x29\x25\ +\xd2\x75\x71\xa5\x8b\xeb\xb8\xb8\xae\x7b\x5e\xa5\x93\x52\xf2\x9d\ +\xef\x7c\x67\xe0\xf1\x47\xbe\xf8\xc5\x30\xca\x20\x86\x63\xa4\xff\ +\x19\xae\x2b\x39\x70\xe0\x00\xcf\x3c\xfd\x34\xbb\x77\xef\xf6\x32\ +\x9e\xf3\xac\xef\x7d\xef\x7b\x28\xa5\x98\x9e\x9e\xfe\xf9\x0a\x03\ +\xfb\xbd\x1e\xfd\x7e\x1f\xdb\xb6\x29\x57\x2a\x54\x86\x2b\x48\xa9\ +\x58\xbf\x7e\x03\xdd\x6e\x9b\x6e\xb7\x4b\xb5\xea\x0d\x5a\x3c\x7e\ +\xfc\x78\x08\xb8\x82\x8b\x1f\x62\x87\x81\x8a\x01\xd0\x27\x25\xfe\ +\x34\xfa\xdf\x68\x34\x78\xe1\x85\x17\x58\xbb\x76\x2d\x1b\x36\x6c\ +\xa0\x54\x2a\x79\x44\x8d\x3f\x2d\x5c\xe8\xa3\x5a\x02\xa5\x0c\xce\ +\x0b\x94\xde\x59\xc4\x4a\xaa\x81\x53\x49\xe6\xfb\x9c\xf9\xd6\xff\ +\xf9\x07\x7f\x10\xde\xfe\xdf\xfe\xed\xbf\x25\x9b\x49\x6b\x23\xea\ +\x3d\xb7\x61\x09\x9b\x1b\xb7\x6d\x63\xdb\x0d\x37\x80\x80\xea\x4c\ +\x95\x57\x5e\x79\x85\xd7\x5f\x7f\x9d\xa9\xa9\x29\xa6\xa6\xa6\x98\ +\x9e\x9e\x1e\x50\xfc\xed\xdb\xb7\xff\x2e\x30\x06\xbc\xb1\x6b\xd7\ +\xae\xbd\xfe\x63\xd6\xae\x5d\xbb\xe4\x25\xb5\x00\x8f\x3e\xfa\x88\ +\xe8\xf7\xbc\x82\xc9\x6a\xb5\xea\xf7\xc8\xd9\x51\x21\xa6\xf4\x08\ +\x10\xe9\x3a\xb8\xae\xa2\xd3\xeb\x70\xe6\xcc\x19\x8e\x1e\x39\xca\ +\xc9\x93\x27\xe9\x76\xbb\xf3\x28\xc2\xc5\x9f\x89\xb6\x6a\xd5\x2a\ +\xae\xbe\xfa\x6a\x46\x47\x47\xc9\x65\x73\x58\xb6\x4d\xc2\xf6\x66\ +\x00\x0b\x2f\x3e\x34\x14\x42\x2a\x15\x46\x05\xfa\xf4\xb0\xf8\x72\ +\x5d\x97\x97\x5e\x7a\xc9\x03\x7c\x3f\xc5\xfa\xf5\x5f\xff\x82\x16\ +\x42\x46\x16\x51\x01\x4e\xdf\x61\xfc\x9c\x97\x02\x0f\x78\x8d\xc0\ +\x02\xf8\xc7\xd7\x37\x80\x53\xc0\x01\x60\x0e\x78\x1b\xd8\xb9\x6b\ +\xd7\xae\xd7\x7c\xf9\xe4\x76\xed\xda\xd5\x5a\x50\x05\x78\xe4\x8b\ +\x5f\x14\x3d\xa7\x0f\x0a\x5e\x7e\x79\x0f\x4a\x79\x83\x97\x0a\xc5\ +\x22\x43\x43\x43\x94\x86\x86\xc2\xd1\x6c\xc4\x8a\x3f\x85\x10\xd4\ +\xea\x75\xc6\x4e\x9e\xe0\xe8\xd1\x77\x98\x98\x98\x38\xef\x85\xbe\ +\x60\xb3\x96\x48\x50\x2c\x96\x10\x16\xac\x5e\xb5\x9a\xa5\x4b\x97\ +\x51\xae\x0c\x79\xed\xdc\x96\xed\x8f\x7f\x89\x46\x94\x49\x3f\x24\ +\x73\xa5\x34\xa6\x7a\x05\xab\xd7\xeb\xd1\xed\x76\x79\xe3\x8d\x37\ +\x38\x75\xea\xd4\x45\xf1\xd1\x5f\xf8\xc2\x17\xb4\x31\x31\xc1\x61\ +\x58\x26\xfe\x98\x9e\x9e\x0e\x84\x3f\xdf\x6a\x03\x13\xc0\x39\xa0\ +\x0a\xec\x17\x42\xfc\xcd\x33\xcf\x3c\xf3\xb2\x2f\xaf\xfc\xae\x5d\ +\xbb\x9a\x17\x55\x01\xfe\xf7\xdf\xf8\x0d\xe1\xf4\xfb\x28\xa5\xd8\ +\xb3\x67\x4f\x58\x91\x13\x24\x33\x94\x3f\xa2\x25\x97\xcb\x31\x54\ +\x1e\xa2\x32\x54\x21\x5f\xc8\x63\x09\x61\x1c\xf5\xe6\x99\x5f\xc9\ +\xe4\xe4\x14\x27\x4f\x7a\x99\xbc\x46\xa3\x11\x1e\xfd\x72\x41\x8a\ +\x21\x20\x99\x48\x92\x4c\xa6\x48\x25\x13\x24\x53\x29\xd6\xad\x5b\ +\x87\x10\x82\x74\x3a\x4d\x3e\x9f\x27\x9f\xcb\x91\xce\xa4\x11\x96\ +\x17\x0a\xba\x8e\x13\xee\x70\x21\x44\x38\xb4\x6a\x76\xb6\x4e\xb5\ +\x5a\xa3\x39\xd7\xe4\xd0\xa1\x83\xf4\xfd\xe7\x2d\xc4\xfa\xfc\xe7\ +\x3f\x67\x80\xe2\xaf\x7f\xfd\xeb\xef\xf7\x2d\x7a\x40\x0b\x68\x02\ +\x93\x42\x88\xd7\xfa\xfd\xfe\xdf\x3d\xff\xfc\xf3\x8f\x5f\x34\x05\ +\xf8\xf5\x7f\xf7\xef\x84\xe3\x4f\xd7\x0c\x15\x40\xaa\x30\x64\x92\ +\x52\x86\xf7\x55\x60\x56\x95\x22\x9d\x4a\x51\x2a\x15\xa9\x94\x2b\ +\x14\x4b\x43\xa4\x52\xa9\x30\x73\x16\x0c\x6a\xea\x76\xba\x4c\x8c\ +\x8f\x73\xfa\xcc\x69\x26\x27\xa7\xe8\x76\xbb\xf4\xfc\x62\x10\xc7\ +\x71\x42\x97\x21\xfe\x09\x86\x4c\x58\x16\xa9\x64\x92\x44\x22\x41\ +\x2a\x99\x22\x99\x0a\x94\x21\xe9\xdf\xf6\x7f\x52\x29\x92\xc9\x24\ +\x28\x15\xba\x25\x29\x25\x9d\x4e\x87\x6a\xb5\x4a\xbf\xd7\x43\x2a\ +\x45\xad\x5a\xa3\xe7\xf4\xbd\xf1\x70\xa1\xf2\x5e\x98\x05\x58\xdf\ +\x68\xf0\xa7\x7b\xf6\xfc\xd4\xaf\xff\xfa\xe6\xcd\x3c\xb9\x6a\x15\ +\x3d\x9f\xcb\x38\x8f\xbb\x92\xab\x57\xaf\x96\xc9\x64\xca\x3a\x7d\ +\xfa\xd4\xbf\xde\xb9\x73\xe7\x37\x2e\x18\x04\x06\xbb\x3d\x40\xe8\ +\x51\xad\xde\x60\x57\xac\x16\xde\xd3\x69\xb7\x69\xb5\x5a\x9c\x3d\ +\x7b\x0e\xa9\x24\x96\x10\xe4\x0b\x45\x8f\x93\xaf\x54\xc8\xe7\x73\ +\x28\x09\x4b\x97\x2d\x65\xd9\xb2\xe5\x08\x4b\x30\x37\x37\xc7\xe4\ +\xe4\x24\x93\x93\x93\x34\x1a\x0d\x3a\x9d\x0e\xad\x56\x8b\x76\xbb\ +\x1d\x82\xbb\x79\x41\xa5\x94\x74\xbb\xde\x39\x00\xe9\xe1\xb4\x1f\ +\x89\x78\x8a\xe6\x8d\x84\x13\xde\x79\x00\x78\x07\x3e\xf7\x7c\x60\ +\xdb\xef\xf7\xe9\xf5\xfb\x21\xd0\xf5\x7e\x7a\xa1\x7b\x48\x24\x12\ +\x38\x8e\x73\x51\x84\xff\x2f\xdf\x79\xe7\x82\xde\xe3\x57\xfc\xb0\ +\x34\xae\x04\x81\x72\x8e\x8c\x8c\x30\x3c\x3c\xec\x71\x9f\x02\x3e\ +\x74\xd7\x9d\xff\x75\xe7\xce\x9d\x17\x1e\x05\x48\x57\x45\xa9\x4b\ +\xe3\xf4\x4d\xed\x78\xa6\xb0\xb8\x42\x86\xc4\x8b\xc1\x84\x49\x70\ +\x95\x4b\x75\xa6\xca\xcc\xf4\xb4\x8f\xbe\x5d\x72\xd9\x1c\xe5\x4a\ +\x99\x72\x79\x98\xa1\x52\x89\x84\x6d\xb3\x72\xf9\x72\x56\xae\x5c\ +\x81\x92\x8a\xd9\x46\x83\x5a\xad\xc6\xec\xec\x2c\xed\x76\x8b\x46\ +\x63\x8e\x46\xa3\x41\xab\xd5\x32\x94\x41\x57\x88\x99\x99\x19\xe3\ +\xfb\x6f\xd9\xb2\xc5\x33\xf1\x02\xb0\x44\x64\xa9\x02\xbe\x41\x4a\ +\x2d\x9d\xeb\xdd\x6e\xb7\x5a\x17\xcd\xcc\x07\xc2\xff\xd0\xe4\xe4\ +\x05\xd1\xbd\xa3\x42\x0c\x28\x81\x6d\xdb\xe1\x2c\x43\xdb\xb6\x71\ +\x5d\xd7\x53\x7e\x2c\xa6\xab\x35\xfb\xa2\x84\x81\xc1\xc5\x42\x41\ +\x69\x68\x88\xc6\xec\x2c\x7d\xd7\x9d\xe7\xc0\x67\x19\x3b\xb5\x3b\ +\x76\x00\x14\x3a\x65\xea\x3d\x67\xae\xd9\xa4\x31\xd7\xe0\xf8\xf1\ +\x93\x28\x25\x49\x26\x92\x94\x4a\x25\x86\x97\x0c\x87\xa7\x7c\xac\ +\x58\xbe\x9c\x15\xcb\x97\xd3\x77\x1c\x5a\xcd\x26\x73\xcd\x26\x9d\ +\x4e\x87\xb9\xb9\x39\x7f\x44\x7c\x3d\x8c\x34\x02\xb3\xae\xaf\x83\ +\x07\x0f\xfe\xcc\x18\x37\xa1\x14\x9f\x3f\x74\x88\xeb\x6b\x35\x53\ +\xf8\xc2\x23\xcd\x5c\x25\x70\x05\x38\xda\x6d\x57\x08\x1c\xc0\x05\ +\xef\x3e\x82\x75\xfd\x3e\x28\xc5\xa8\x10\x7c\xee\xed\xb7\x21\x99\ +\xe4\xb9\xcd\x9b\x19\x1a\xf2\x5c\x6b\x30\x2a\xcf\x1b\xc4\x81\x3f\ +\xd1\x5c\x72\x91\x14\x40\x86\x27\x7d\x6d\xda\xb4\xd1\xe7\x06\xfa\ +\xd4\x1b\x0d\xea\xb5\x1a\xf5\x5a\x9d\x56\xbb\x35\x78\x80\xb3\x9e\ +\x06\xd5\x0b\x2d\xc2\xdc\x19\x5a\x9a\xd5\xbb\xdd\xed\x75\x99\x98\ +\x9c\xe0\xdc\xf8\x39\xdf\xe4\x43\xa1\x50\xa2\x52\xa9\x30\x3c\x5c\ +\xa1\x50\x28\x30\x92\xcd\xa2\x94\xa2\xd7\xef\xd3\xf5\x67\x00\xf6\ +\x7a\x3d\x6a\xb5\x1a\xd3\xd3\xd3\x34\x1a\x0d\x7f\x27\xcc\xcf\x41\ +\x5c\x4a\xe1\xff\x5f\x7b\xf7\x9e\x5f\xf8\x08\x4f\xf0\x80\xab\x08\ +\x15\x41\x86\xc2\x8f\x14\xe1\x60\x2a\xc5\x96\xa0\x64\x5e\x08\x3e\ +\x77\xe0\x00\x43\x43\x43\x3c\x57\x1e\xa2\xef\xf4\xbd\x6c\x87\xb0\ +\xb0\xfc\xc9\x65\xc2\xe2\x5d\x41\xf5\xfb\x73\x01\xd2\x0d\x0f\x74\ +\xa8\xd5\x67\xc9\xe7\x72\xd8\x89\x04\x95\x4a\x99\xe1\x72\xd9\x03\ +\x1f\x52\xd2\x9c\x9b\xa3\x5a\xab\x31\x33\x33\x43\xa3\x31\x6b\x1e\ +\xfa\x48\xec\xbc\x1d\xad\xc0\x42\xa0\x1d\xb2\xac\x27\x86\x84\xc0\ +\x75\x5d\x6a\xb5\x2a\xd5\xea\x0c\x47\x8e\x78\x58\x24\x93\x49\x53\ +\xae\x94\x59\x52\x59\xc2\xd0\xd0\x10\xc5\x62\x01\x25\x15\xa5\x52\ +\x89\x95\x2b\x57\xe2\x3a\x0e\xad\x56\x8b\x99\x6a\x95\x99\x99\x19\ +\x9a\x4d\x2f\x2a\x9a\xcf\x3a\x2c\xd4\x0a\xcc\xfe\xbc\xc2\x47\xe0\ +\x28\x85\xf4\x77\xbb\xeb\x0b\xd9\xd1\x6e\xbb\x78\xc2\x97\x81\x65\ +\x40\xf0\x46\x2a\xcd\xb6\x5e\x37\x54\x82\x07\x7f\xfc\x63\x84\xe3\ +\xf0\xc2\xe6\xcd\x38\xc9\x24\x42\x78\xf9\x0e\x81\x40\x48\x71\x11\ +\x2d\x80\x8c\xca\xa7\x4e\x9c\xf0\x4c\xb5\x25\x04\xd9\x5c\x8e\x52\ +\xb1\x48\xbe\x50\xf0\x42\xad\x42\x81\x5c\xa1\xc0\xaa\x95\x2b\x91\ +\x4a\xd1\xe9\x74\xa8\xd5\x6b\xcc\x4c\xcf\x50\xad\xd6\xe8\xf5\xba\ +\x61\x04\x01\xf3\x9c\x96\xa5\x88\xb2\x87\x2a\xc8\x9f\x13\x3b\x5c\ +\x59\xd1\x6a\xb5\x68\x36\x9b\x9c\x3e\x75\x3a\x8c\xff\x3f\xf4\xa1\ +\xbb\xb1\x2c\x8b\x44\x32\x81\x6d\xdb\x24\x93\x49\x8a\xa5\x22\x6b\ +\xd6\xac\xc6\x75\x5d\x1a\x8d\x39\xa6\xa7\xa7\x43\x77\xf1\x5e\xa3\ +\x8b\x8b\xea\xf3\x85\xf0\x77\xb7\xf2\x05\x1f\xed\x70\x89\x08\x05\ +\xef\x0a\xbc\xc7\x45\x70\x5f\x84\xee\xe0\xd5\x74\x86\x5b\xba\x5e\ +\xa2\x69\x58\x08\x76\xec\xdf\x0f\x4a\xf1\xc2\x35\xd7\xe0\x24\x93\ +\x7e\xf2\xcd\x02\xa1\x8c\xc4\xd6\x85\x59\x00\xdd\x7c\xfb\x20\xc9\ +\x91\x2e\xf5\x7a\x9d\x5a\xbd\x8e\xf2\x59\xb4\x6c\x36\x4b\xb1\x58\ +\xa4\x58\x2c\x92\xcb\xe5\x48\xa7\xd3\x2c\x5d\xba\x94\xd1\x91\xa5\ +\xa0\x14\x7d\xa7\x4f\x7d\xb6\xce\xcc\xf4\x0c\x33\x33\x55\x1a\x73\ +\x8d\x30\x01\xa4\x82\x23\x66\xe2\xb9\x02\xff\x02\x4a\x35\xcf\x79\ +\x7c\xfe\xf2\x50\xba\x1c\x18\xdd\xa6\x94\x1f\x01\x58\xb6\xf7\xbd\ +\x4a\x45\x94\x54\xf4\xfb\xde\xf7\xf0\x4a\xcb\xbd\x83\x25\x2e\x8d\ +\xf0\x05\xae\x50\x9e\x50\x43\x01\xfb\xbf\x15\xfe\x8e\x57\x38\xbe\ +\x12\x44\xf8\x20\x78\x8d\x77\xff\xc5\x4c\x86\xbb\x3a\x9a\x12\x1c\ +\x38\x80\x82\xd0\x12\x80\x8b\x54\xe2\x62\xba\x00\x69\x1e\x7e\x10\ +\x4c\xc2\x54\xe6\x89\x9f\xcd\x66\x93\xb9\xb9\x39\x4e\x9f\x3e\x8d\ +\x54\x8a\x64\x22\x41\xa1\x58\x60\x68\x68\x88\x42\xbe\x40\x2a\x95\ +\xa2\x52\xae\x50\x2e\x0d\xb1\x6e\xdd\x3a\x94\x52\x34\x1a\xb3\xcc\ +\xcc\x54\x99\x9a\x9a\xa6\x5e\xaf\xe1\xb8\x8e\x76\x0c\xcb\xe0\x29\ +\x3a\x03\x67\xf0\xc5\x6a\x29\xa2\x93\xbd\xa3\x12\xef\x90\x7a\x95\ +\x5e\x24\x63\x5b\x36\xe5\xa1\x32\x95\x72\x05\x21\x04\x9d\x4e\x87\ +\x46\xa3\x41\xbd\x5e\xa7\xd3\xe9\x84\x7f\xef\xfb\x0d\xfd\xde\x0d\ +\xf0\x85\x3b\x3f\x14\xbe\xf0\x05\xad\xa2\x5d\x2e\x4c\xdf\x2f\x2d\ +\x70\x54\x64\x15\x5c\x08\x2d\xc6\x73\xd9\x2c\xf7\xb6\xdb\xa1\x12\ +\xfc\xcb\x57\x5f\xc5\xb5\x2c\x9e\xdf\xb2\xc5\x53\x7c\xa1\x70\xdf\ +\x25\x03\xf9\x3e\x2d\x80\xa9\x00\xef\x95\x07\xe8\x75\xbb\x4c\x75\ +\x3a\x4c\x4e\x4c\x86\x3c\x40\x36\x97\xa7\x5c\xf2\xe8\xe3\x5c\x2e\ +\x4b\x3e\x5f\x20\x9f\xcb\xb3\x6a\xd5\x6a\x40\xd2\x6e\x77\xa8\xd5\ +\x6a\x4c\x4d\x4d\x33\x33\x33\x1d\x85\x63\xc1\x51\x32\xe7\x49\x23\ +\x18\x07\x2f\xf9\xbd\xf7\xc1\x69\xf4\x6a\x20\xa2\x31\x2b\x78\x53\ +\xa9\x14\x23\x23\x23\x8c\x8e\x8e\x02\xd0\x6a\xb5\x68\x34\x1a\xcc\ +\xcd\xcd\xd1\xeb\xf5\x70\x5d\x37\x64\x2a\x95\x52\xe7\x75\x1b\xbf\ +\xf3\x93\x9f\xbc\x8b\xf0\x23\x1f\x2f\x7d\x01\x3b\x42\xf9\xa6\x5f\ +\xe0\xe2\xef\x7c\x1f\xc5\xcb\xc0\x3d\x08\x1f\x1c\x6a\x11\x82\xf7\ +\x5e\xf0\x64\x36\xc7\x03\xed\x56\x88\x09\xfe\xd7\x3d\x7b\x78\x6e\ +\xf3\x66\x0f\x03\x58\xbc\xeb\x59\xc4\xef\xd3\x02\xe8\xe5\xce\x17\ +\xc6\x03\xd4\x6b\x75\x6a\xd5\x6a\xc8\x03\x64\x33\x59\x4a\x43\x25\ +\x86\x86\x2a\x14\x0b\x05\x92\xc9\x14\x23\xa3\xa3\x8c\x8e\x8e\x20\ +\xfd\x43\xa2\x67\xeb\xb3\x4c\x4d\x7b\x59\xb3\xfa\x6c\x7d\xde\x29\ +\x1a\xf1\x83\xc9\x05\x18\x34\x74\x70\x30\xa5\x71\xc8\x8f\xa6\x14\ +\xfa\x6e\xcf\x64\x32\x64\xb3\x59\x96\x2d\x5b\x16\x9e\x3b\x34\x37\ +\x37\x47\xbb\xdd\xd6\xc8\xa2\xbe\x61\x62\x85\x10\xef\xe2\xf3\x3d\ +\xb4\x1f\x01\xba\xc8\xbf\x4b\x5f\x98\xde\x6d\x81\x0c\x42\xc2\x40\ +\x69\xfc\xf9\x8a\x9e\x2b\xf0\xdf\x4f\x44\x56\xe1\x7b\xf9\x3c\x9f\ +\x6c\x36\x0d\xce\x46\x58\x5e\x44\xee\x5c\x2c\x0b\xa0\x7c\xaa\x57\ +\xa1\xc8\xe7\xf3\x34\x9b\x4d\x1c\x29\x2f\x0a\x0f\xd0\x6c\xb5\x98\ +\x6b\xce\x31\x36\x76\x1a\xa5\x24\x09\x3b\x41\xb1\x58\xa4\x52\x29\ +\x53\x2c\x95\xc8\x64\x32\x0c\x95\x87\x28\x0d\x95\x58\xb7\x6e\x1d\ +\x52\x4a\x5a\xad\x16\xd3\xd3\xd3\x21\xa8\xf3\x0e\x81\x52\x10\x8b\ +\x24\xf4\xe3\xdb\x8d\x49\x65\xef\x81\xf7\xd0\x9f\x97\xcb\xe5\xc8\ +\xe7\xf3\x08\x21\xe8\xf7\xfb\xb4\xdb\xed\xb0\x93\xb9\xd7\xeb\xd1\ +\xe9\x74\x06\x73\xfc\xbe\xcf\x8f\x84\x19\x09\xde\x89\x61\x00\x47\ +\xc3\x01\x81\xd0\xdd\x30\x02\x88\x84\x2d\x35\x2b\xe2\x68\x56\x62\ +\xa0\x20\xc6\x4f\x83\xab\x77\xc1\x36\xef\x3b\x0a\x90\x7e\xc9\xf3\ +\xea\x35\x6b\x7c\xe0\xd5\xa7\xd9\x6c\x31\xd7\x68\xd0\x68\xcc\xd1\ +\xe9\x76\x2e\x0a\x0f\xd0\xeb\xf7\x98\x9a\x9e\x62\x62\x32\xca\x1a\ +\xe6\xf3\x05\x2a\x95\x32\xe5\xa1\x21\xef\xfc\x9f\x6c\x96\x55\x2b\ +\x57\xb2\x62\xc5\x0a\x8f\x0f\xf0\xe3\x63\xa3\x93\x58\x6f\x14\x91\ +\xf1\x13\xc3\xdf\x1f\xb0\xd3\x5f\x6b\x59\x16\x85\x82\x77\x5c\x3d\ +\x40\xbf\xdf\x9f\x57\x01\x5c\xe1\x55\x25\x45\x21\x1e\xda\x6e\x37\ +\x43\xbd\x70\x47\x5b\xba\x72\xf8\x82\xb6\xfc\xd7\x61\x86\x88\x12\ +\x15\xbe\x57\x9c\xb3\x21\x70\x83\x17\xc9\x02\x88\xa3\x47\x8f\x32\ +\x3a\x3a\x42\x22\x99\xf0\xd8\x36\xdb\xc6\xb6\x12\x21\xe2\x5f\xe1\ +\x5b\x89\x56\xbb\xcd\xec\xec\x2c\xb3\xb3\xb3\x34\x9b\x73\x17\x85\ +\x07\x90\x7e\x76\xae\x5e\xaf\xf9\xe0\x4c\x91\xc9\xa4\x28\x0d\x79\ +\x35\xfe\xa5\x52\x89\x64\x2a\xe5\xc7\xbc\xe6\x29\x23\x81\xf2\x1a\ +\x1d\x0a\xe7\x0b\x25\x7e\x4a\x85\x08\xa8\xd8\x81\xa4\x8c\x32\x4d\ +\xb5\x2e\x54\x03\x0f\x68\xf1\xbe\xc9\xfe\x05\x04\x91\xe7\x16\x74\ +\xb7\xe1\x04\x61\xe4\x3c\x0a\x10\x90\x67\x08\x0b\x57\x5d\x1c\x05\ +\xd8\xfd\x83\xe7\x7f\x90\x16\x42\x7c\xb0\x54\x2a\xb1\x62\xc5\x0a\ +\x56\xac\x58\x41\xb1\x58\x24\x99\x4c\x92\x4a\xa5\x48\x24\x12\x08\ +\x61\x91\xcb\x65\xc9\x66\xb3\x2c\x5d\xba\x14\xc0\x40\xd7\xb3\xb3\ +\x8d\x8b\xc8\x03\xb4\x69\x36\x5b\x9c\x3d\x73\x26\xe4\x01\x6e\xbb\ +\xed\x36\xcd\xf4\x47\x1c\x7f\x84\x0f\x62\x83\x9a\x2f\xe2\x9a\xcf\ +\xad\x78\x48\x5e\x45\xc2\xd3\xe2\x7c\x47\x68\xca\x41\xb4\xc3\x25\ +\xfa\x73\x85\x89\x05\xc2\xe7\x9b\x1c\x82\x9c\x07\xaf\x79\xb5\x2f\ +\xde\x90\xec\x0b\x56\x80\x5d\xbb\x76\xdd\xe9\xa7\x85\xff\xb6\xd9\ +\x6c\xb6\x0e\x1e\x3c\xe8\xbe\xf5\xd6\x5b\x77\x27\x93\xc9\x75\xe5\ +\x4a\x99\xa5\xa3\x4b\x19\x19\x19\x21\x9d\x49\x93\xcb\x66\xc9\x66\ +\x73\xde\x21\x0b\x4a\x79\xc7\xad\xa6\x52\x54\x86\x87\xbd\xb0\xa4\ +\xef\xd2\x68\x34\xa8\xd5\xaa\xd4\xea\xb3\x21\x43\x77\x31\x78\x00\ +\x88\x0e\xdf\x3c\x4f\x6c\x08\x0b\x22\xfe\xf3\xa4\x65\xf5\x1d\x2f\ +\xe6\x13\xbe\xee\xff\x35\xf3\x2e\x74\xb7\x10\x23\x84\x82\xff\x37\ +\x18\xc3\x79\x5c\x80\x02\x25\x2e\x22\x0f\xe0\x2b\xc2\x3f\xd3\x6a\ +\x04\x7e\x59\x29\xf5\xb1\x99\xe9\x19\x77\x62\x7c\xa2\x6f\xdb\xf6\ +\xef\xa7\xd3\x69\xca\xe5\x32\xe5\x72\x99\x52\xb1\xa4\x72\xb9\x9c\ +\x28\x96\x8a\xe4\xf3\x79\xaf\x84\x5c\x49\xb0\x6d\x4a\xa5\x22\xa5\ +\x52\x91\x35\xfe\xee\x6f\x36\x9b\xd4\xaa\x35\x66\xaa\x55\x1a\x8d\ +\xd9\x9f\x9a\x07\x90\xb1\xf6\x6f\xfd\xb0\x06\xbd\xd1\xe4\x52\x8d\ +\xe0\x70\x44\x9c\xd5\x3b\x0f\xcd\x1b\xb2\x81\x11\xd0\x73\x35\xa0\ +\xe7\x99\x7a\x61\x72\x08\xda\x6d\x27\x16\x92\x4a\x57\xfa\xa5\x6f\ +\xea\xe2\x2a\x40\xb0\x3e\xf6\xb1\x8f\x89\x9d\x3b\x77\xbe\x00\xbc\ +\xa0\x29\xc4\x51\xc7\x71\xec\xf1\xf1\x71\x71\xee\xdc\xb9\x1b\x12\ +\x89\xc4\x6f\x64\xd2\x19\xf2\x85\x3c\x85\x42\x81\x5c\x3e\xef\x9d\ +\xc9\x5b\x2e\x93\xcf\xe7\x51\xca\x2b\xc3\x42\x79\xec\x61\x26\x93\ +\x61\xf9\x8a\xe5\x48\xa5\xe8\x75\xbb\xd4\x6b\x35\xaa\xd5\x1a\xd5\ +\x5a\x95\x4e\xbb\xfd\x9e\x78\x00\x7f\xa2\x43\xd4\x41\xa4\x45\x27\ +\x0a\x6d\x22\xf9\x02\x2c\xa5\xd4\x00\x9b\x68\x80\xbd\x01\x53\x8e\ +\x69\x11\x30\xdd\x44\x80\xf0\xc3\x9d\xaf\x94\x17\x02\x0a\x2f\x87\ +\xe0\x0a\xcb\xc0\x0b\x03\x51\x00\x5e\xbe\x41\x5e\x24\x0c\x60\xac\ +\x9d\x3b\x77\xaa\x79\xac\xc3\xb7\x82\xdb\xf7\xdd\x77\x5f\x56\x29\ +\xf5\x78\xbb\xd3\x96\xb3\x8d\xd9\x46\x32\x99\xfc\x6b\xdb\xb6\xd7\ +\xa7\xd3\x69\x32\x99\x0c\x99\x4c\x46\x15\x0a\x05\xb1\x64\x64\x09\ +\xc3\x95\x0a\xa9\x54\x06\xa5\xa4\x7f\x7e\xa0\x24\x91\x48\x30\x3c\ +\x32\xc2\xf0\x92\x25\x1e\xe5\xec\xba\xcc\x35\x1a\xcc\xcc\x4c\x33\ +\x3d\xe3\x59\x89\x79\x79\x00\x7d\xf0\xe4\x3c\xcd\x24\x0b\x79\x28\ +\xa3\x94\x92\x5c\x2e\x67\x3e\xa6\xd3\xb9\x0a\x1c\xcb\x8f\xe7\xf5\ +\xc7\x7d\x21\x05\x3e\xdd\x15\x2a\x8c\xf5\x75\x01\x3b\x31\x17\x11\ +\xe0\x86\xe0\x7d\xe6\x03\xa8\x42\x5c\xc4\x64\xd0\xfb\x59\xcf\x3c\ +\xf3\x4c\x1b\x78\x5e\x53\x88\x3b\xa4\x94\xf9\x56\xab\x25\x1a\x8d\ +\x46\x22\x99\x4c\x1e\xb2\x2c\x8b\xb1\xb1\x31\x12\x09\x9b\x74\x3a\ +\xa3\x86\x87\x87\xc5\xe8\xe8\xa8\x7f\xea\xa7\x15\x35\x6e\x28\x85\ +\x25\x04\xc5\x62\x91\x42\xa1\xc0\x9a\x35\x6b\x51\xca\x03\x81\xb5\ +\x9a\x97\xe9\x9b\x9d\x9d\x0d\x31\x80\x31\x72\x59\xdb\xfd\x3a\x91\ +\xb5\x50\x2b\x6e\x6e\x1d\x3c\x1a\x37\x40\xf7\xd2\xdf\xc5\x7a\x62\ +\xc7\x11\xba\x29\xf7\x18\x42\x2f\x7a\xd0\xea\x01\xfc\x88\xc2\xd1\ +\x70\x84\x61\x31\xac\x79\x38\x1b\x21\xbc\x9e\x5b\xa9\x2e\xbd\x02\ +\xcc\xa3\x10\x13\xfa\xfd\xed\xdb\xb7\xe7\xa5\x94\xe2\xd4\xa9\x53\ +\xdd\xa5\x4b\x97\x7e\xa1\xd5\x6a\xff\x41\xad\x56\xe3\xf8\xf1\xe3\ +\x08\x21\xc8\xe7\xf3\x8c\xfa\x4c\x60\xa1\x50\xf2\xce\xfb\x31\xfa\ +\xef\x25\x99\x4c\x9a\x65\xcb\x96\x31\xba\x74\x29\x4a\x2a\x1c\xb7\ +\x3f\x4f\x22\xc8\x1c\x26\xb9\x90\xab\xef\xf7\x16\x9a\x2e\x40\xdb\ +\xc9\x21\x6a\xf7\xc0\xac\xa7\x08\xa6\x1f\x0f\x42\xbe\x90\x28\xd2\ +\x42\x3f\x47\xe9\x0c\xa0\xe6\x4a\xe6\xb1\x00\x6e\x30\xbc\x42\x80\ +\x94\xe2\x67\xaf\x00\xf3\xb8\x0b\xbd\xd6\xea\x0f\xfd\x9f\x40\x39\ +\x8e\xd4\xeb\xf5\xf5\xf5\x7a\x5d\x1c\x39\x72\x04\xcb\xb2\x18\x1a\ +\x1a\x62\xe9\xd2\xa5\x0c\x0f\x57\xbc\x43\x1f\x95\x79\x38\x13\x80\ +\x6d\x25\x8c\x79\x7f\xc6\xa0\x49\xe4\x82\xf7\xe3\x35\xe7\x9a\xd1\ +\x49\xa4\x7a\x14\x10\xa2\x76\x93\xd1\x0b\x84\xef\xc4\xd1\x7d\x28\ +\xe4\x28\x41\x34\x10\x05\x04\x0a\xa3\x65\x0b\xe3\x16\xc0\xaf\x7a\ +\xde\x2f\xdf\x65\xd8\xc0\xcf\x4c\x01\xce\xb7\xee\xbf\xff\x7e\xf1\ +\xf4\xd3\x4f\x6f\x0c\xee\x7f\xe2\x13\x9f\x48\x77\x3a\x9d\xe6\xcc\ +\xcc\x4c\x7d\x7a\x7a\x5a\x28\xa5\x72\xa9\x54\x2a\x3d\x3c\x5c\x61\ +\xc9\xc8\x08\xc5\x42\xc9\x3b\xc0\x49\xf9\x5d\x40\x61\x0e\x22\xca\ +\x4d\x84\x73\x7f\x17\x78\xa5\x52\x49\x66\xeb\xf5\x79\x78\x00\xbd\ +\xba\xc7\x8f\xf5\xf5\x74\x70\x2c\xde\x97\x71\xbe\x40\xc7\x0c\xf1\ +\x82\x11\xad\x82\x28\x46\x41\xff\xd0\xb2\xc4\x2e\x2b\x61\x7f\x17\ +\x41\xf7\xbc\xec\x1e\x97\xd9\xba\xef\xbe\xfb\xfe\x95\x52\xea\xb7\ +\xa4\x94\x1d\x7f\xb7\x5f\x9b\xcb\xe5\x43\x8a\x38\x9b\xcb\x85\x8d\ +\x28\x02\xcb\x3f\x91\x44\x5d\x92\x86\xcb\x6a\xb5\x0a\xc0\x37\xfe\ +\xe2\x2f\xc2\xe8\xe3\x60\x2a\x65\x50\xbf\x91\x4b\x10\xe7\x65\x05\ +\x23\xa6\x4f\x73\x01\x61\x22\x29\xc2\x05\x7a\xf2\xe8\x4b\xf5\x5a\ +\xc8\x9a\x02\x3c\xfc\xd0\x43\xeb\x1e\x7b\xec\xb1\xe3\xff\x24\xbd\ +\x7b\x39\x09\xff\x81\x07\x1e\x10\x4f\x3e\xf9\xa4\x8a\x61\x89\xef\ +\x28\xa5\xca\x52\x4a\x5b\x29\x55\xb0\x2c\xeb\xb6\x7c\x3e\x4f\xa9\ +\x54\xa2\x50\x28\x90\x48\x78\xb4\x75\xf0\xfb\x7c\x8c\xdd\xc5\x5a\ +\x53\x93\x93\x7c\xf3\x2f\xff\xd2\xc8\x06\xfe\x24\x95\xf2\x04\x68\ +\xe9\xe9\x5d\x61\xe4\xf5\x75\x50\x18\xd6\x08\x30\xcf\x8e\x1f\x20\ +\x93\x04\x5f\xae\x99\xc2\x07\xfe\x4e\xc0\x3f\x7b\x4f\xfc\x3e\x97\ +\xf1\xba\xef\xbe\xfb\xc4\x33\xcf\x3c\x13\x4a\xf3\xe1\x87\x1f\x4e\ +\xb6\x5a\xad\x6f\x4a\x29\x5b\x52\x4a\x17\xb8\x2f\x91\x48\xac\x0b\ +\xb2\x78\xb9\x9c\xc7\x4e\x06\xcd\x21\xb6\x6d\x0f\x64\xfc\x2e\xc6\ +\xba\xe3\x8d\x37\xf8\xcc\xb3\xcf\x1a\x4a\xf0\xa3\x4c\x3a\x22\x7a\ +\x02\x0b\x60\x61\xa0\x7f\x4f\xb0\xd6\xbc\xec\x5f\x98\xf5\x13\x68\ +\xd9\x45\xc1\x97\xeb\x03\xc2\xff\x47\xe0\x1e\xf1\x1e\xe9\x8e\xcb\ +\x5a\x01\xde\x83\x82\xdc\x23\xa5\xbc\x57\x29\xe5\xba\xae\xdb\xb7\ +\x2c\xeb\xff\x48\xa5\x52\x61\x9e\x3f\x9d\x4e\xab\x74\x3a\x2d\xd2\ +\xe9\xb4\x07\x2c\xc3\x8e\xe1\x0b\x53\x88\x44\xbf\xcf\xed\xfb\xf7\ +\xf3\x91\x57\x5f\xa5\x3c\x37\x17\x2a\xc1\x8b\x99\x8c\x49\xfa\x08\ +\x4d\x19\x44\x9c\x0a\xc6\x54\x98\x80\x23\x00\x4f\x71\xd4\xbc\xc2\ +\xff\x3b\xe0\xdf\x0b\x78\xe3\x3d\x67\xf8\xae\x54\xe1\x7f\xfc\xe3\ +\x1f\x17\x4f\x3d\xf5\x54\xdc\x5d\xfc\x8a\x52\x2a\x2d\xa5\xb4\x94\ +\x52\x6b\x6d\xdb\xfe\xf7\xc9\x64\x92\x74\x3a\x1d\xfc\xa8\x4c\x26\ +\x23\x72\xb9\x9c\xdf\xbe\xa6\x7e\x6a\x85\x38\x9f\x12\x3c\x97\xcd\ +\x9a\x60\x10\xe1\xf1\x00\xc2\xd2\x5c\xc2\x60\x59\x98\x4e\x27\x4b\ +\x01\x5f\xae\xd5\x2f\x58\xf8\x57\xbc\x05\xf8\x27\x14\xc4\x76\x1c\ +\xe7\x5e\x29\xa5\xeb\xba\x6e\xdb\xb6\xed\xff\x60\x59\xd6\x47\x03\ +\xf7\x90\x48\x24\xc8\x66\xb3\x1e\x85\x9d\xcb\x91\x4c\x26\xc3\x52\ +\xb0\xf7\xaa\x10\xe7\x53\x82\xa7\x72\x59\x0d\xe0\xc5\x81\x9f\x19\ +\xee\x39\x41\x18\xa8\x45\x08\x5f\xae\x5f\x1c\xe1\xff\x42\x2b\x40\ +\x7c\x6d\xdf\xbe\x7d\x44\x29\x35\xaa\x94\x12\xfd\x7e\xbf\x95\x4a\ +\xa5\x8e\x05\xe0\xd1\x2f\x2f\x57\xf9\x7c\x5e\x04\x95\xce\x5e\xe8\ +\xf9\xde\x2c\xc4\x7c\x98\xe0\x7b\xf9\xfc\x3c\xe8\x3f\x12\xba\x14\ +\xf1\x9c\x81\xa7\x04\xbf\x39\xb8\xf3\xdf\x97\xcf\x5f\x54\x80\xf7\ +\xae\x10\x65\xa5\x94\xed\x38\x8e\x95\x48\x24\xd6\x0b\x21\x5e\x0e\ +\x5a\xc7\x2d\xcb\x22\x93\xc9\xa8\x62\xb1\x28\x4a\x7e\xb9\x9a\xce\ +\xbf\xbf\x57\x25\xf8\x6e\xbe\x60\x96\x8a\x85\x26\xde\x2f\x16\x0d\ +\x6a\x03\x7d\x6b\xf0\x9b\x17\x08\xf8\x16\x15\xe0\xc2\x14\xc2\x02\ +\xac\x5d\xbb\x76\x39\xdb\xb7\x6f\xff\x03\xe0\x37\x82\xaa\x60\xcb\ +\xb2\xc8\xfb\x99\xce\x62\xb1\x18\xe2\x07\x3d\xe4\x3c\x9f\x3b\x78\ +\xff\x12\xbb\x70\xb3\xbf\xa8\x00\x17\x5f\x39\x8e\x03\xab\xfc\xeb\ +\x29\x2c\xcb\xb2\x4a\xa5\x12\xe5\x72\x99\x42\xa1\xe0\x1d\x19\x03\ +\xd8\xbd\x1e\x77\x1c\x38\xc0\x87\x5e\x7a\x89\x91\x4e\xe7\x42\x3e\ +\xf2\xa2\x08\x7f\x51\x01\x16\x80\x8b\xd8\xb1\x63\x47\xa2\xd7\xeb\ +\x35\x95\x52\xb3\x4a\x29\x0b\xc8\xa6\xd3\xe9\xec\xd0\xd0\x10\x43\ +\x43\x43\x94\xd3\x69\xae\x7a\xe6\x19\xfe\xcd\x5b\x6f\x5d\xc8\xc7\ +\xde\x78\x31\x84\xbf\xa8\x00\x97\xc6\x3a\x7c\x0a\xf8\xba\x94\xb2\ +\xa9\x94\xb2\x2c\xcb\xb2\x84\x10\x25\xcb\xb2\xb6\x3d\xfd\xf4\xd3\ +\x67\x16\xaf\xd0\xe2\x5a\x5c\x8b\x6b\x71\x2d\xae\xc5\xb5\xb8\x34\ +\xdc\x90\x58\xbc\x0a\x8b\x6b\x71\x2d\xae\x85\x5f\xff\x3f\xa5\x0f\ +\x64\x57\x3b\xb6\xe3\xb5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x3f\x66\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x09\x17\ +\x0b\x29\x38\x14\xe2\x83\x8f\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x79\x94\x26\x57\x75\x27\xf8\xbb\ +\x2f\xe2\x5b\x73\x5f\x2a\x6b\xcb\x52\x55\xa9\xaa\xb4\x22\x23\x81\ +\x04\x36\xc8\xd8\x83\x05\xc6\x67\x38\x80\x30\xb8\x51\x23\x10\xb8\ +\x25\xc1\xcc\xe0\xe6\x9c\xc6\xd0\x3e\x9e\x71\x6b\xe8\xb1\x4f\x43\ +\xab\xe9\x31\x63\x18\x23\x64\x70\x7b\xc0\x56\x43\xd3\x60\x1b\x68\ +\x99\xc5\x3d\x0d\x36\x8b\x40\x42\x08\x0b\x24\x95\x84\xaa\x24\xd5\ +\x9e\x55\x95\x4b\x65\x7e\x5b\xc4\x7b\x77\xfe\x88\x88\x17\xf7\xbe\ +\x88\xa4\x67\x00\x37\x16\x53\x1f\x47\x48\x99\xf9\x2d\xf1\xc5\xbb\ +\xeb\xef\xfe\xee\xbd\xc0\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\ +\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\ +\xf9\xc7\xf9\xc7\xff\x5f\x1e\x74\xfe\x16\xfc\xd7\x1f\xef\x7f\xff\ +\xfb\x77\x5a\x6b\xff\x37\x10\xfd\x05\x81\xbe\xfe\x1b\xbf\xf1\x96\ +\x93\x77\x7c\xf0\x83\xf4\xa6\x5b\x6f\xe5\xa7\xfb\x77\x33\xe7\x8f\ +\xb7\xfa\x78\xcf\x7b\xde\x43\x00\xf0\x67\x1f\xfd\x33\xfa\xfd\xdf\ +\xff\xfd\x77\xac\xad\xad\x3d\xb2\xba\xba\xfa\xc6\x7e\xaf\xff\xe7\ +\x69\x9a\x9e\xf8\x83\xf7\xbd\xef\x03\x6f\xba\xf5\x56\xbe\xe3\x8e\ +\x3b\xe8\xbc\x05\xf8\x29\x7b\xdc\x7e\xfb\xed\xf4\xf6\xb7\xbf\x9d\ +\x6f\xbf\xfd\xf6\xe7\x02\xf8\x93\x8d\xde\xc6\xc5\xa3\xe1\x08\x69\ +\x9a\xb2\x63\x26\x76\x8e\x17\x16\x16\x68\x6e\x6e\xee\x79\x37\xdf\ +\x7c\xf3\xd7\xce\x0b\xc0\x4f\xe1\xe3\x5d\xef\x7a\xd7\x1f\x38\xe7\ +\xde\xd2\xeb\xf5\xc0\xcc\x60\x66\x38\xe7\x60\x22\x03\x9b\xa4\x00\ +\x01\x3b\x77\xee\xfc\xda\x8e\x6d\x5b\x7e\xe1\x55\xbf\xf6\x8f\x93\ +\xa7\xf3\x77\x8d\xcf\x1f\x37\xf0\x3b\xff\xeb\xbf\xe8\x36\xe3\xc6\ +\x2b\x0d\x99\x8f\x00\x78\x78\x34\x1a\x5d\x32\x1c\x8d\x98\x08\x04\ +\x26\x80\x00\x63\x0c\x26\x3a\x5d\xac\xd8\x73\x60\xe7\xb0\xbc\xbc\ +\xfc\x73\x71\xa3\xf9\x3a\x00\x1f\x3e\x6f\x01\x9e\x26\x8f\x77\xbe\ +\xf3\x9d\x74\xdb\x6d\xb7\xf9\xc0\xed\xb6\xdb\x6e\x7b\x3b\x80\xcb\ +\xa3\x38\xda\x0e\xe0\xc5\xcc\xc8\xb4\xdd\x3a\x66\x30\x21\xd7\x7e\ +\x76\x0e\x26\x8a\xd0\x6a\x34\xb0\xb6\xbe\x01\x02\x83\x01\x6c\xd9\ +\xb2\x90\x4c\x4f\x4d\xce\xdc\x72\xeb\xad\x1b\xe7\x05\xe0\x69\xf2\ +\xf8\xed\xdf\xfe\xed\x7f\xfc\xe8\xa3\x8f\x0e\x0f\x1c\xb8\xe8\x7f\ +\xef\x74\x3b\x8b\x00\x13\x18\xc8\x0e\xdf\x79\x93\xaf\xff\x71\x68\ +\xc6\x0d\x30\x03\xfd\xe1\x00\x00\xc3\x5a\xc7\xed\x56\x9b\xb6\x6d\ +\xdf\xf6\xb9\xb7\xbc\xe5\x2d\x2f\xb9\xf3\xce\x3b\xe9\x96\x5b\x6e\ +\xe1\xf3\x02\xf0\x0f\xec\x71\xe5\x95\x57\x4d\xbc\xe4\x25\xbf\x3c\ +\xc3\xcc\xf7\x11\xd1\x7f\x69\x77\xda\xaf\x62\xc7\x68\xb7\xdb\xe0\ +\xec\xd4\x61\x5d\x76\xd0\x80\x03\x33\xe0\x72\xad\x07\x73\xf6\xdf\ +\xec\xd0\x6a\x34\x30\x4a\x12\x24\x36\xfb\x3d\x33\x23\x49\x12\x5e\ +\x58\x58\xa0\xf9\xf9\xf9\x1b\x6f\xb9\xe5\x96\x3f\x3d\x6f\x01\x7e\ +\x42\x8f\xb7\xbd\xed\x6d\xf4\x9e\xf7\xbc\x87\xf3\x00\x2e\xfe\xad\ +\xdf\xfa\x2d\x7a\xed\x8d\xaf\x7d\xcd\xd4\xe4\xd4\x01\x66\x3e\xb0\ +\x65\xcb\x96\xd7\x8c\x8f\x8f\x23\x49\x12\x34\x5b\x4d\x76\xa9\x23\ +\x66\x86\xdb\x44\xe3\x5d\xfe\x6f\x38\x86\x83\x03\x18\x88\x8d\xc1\ +\x30\x49\x94\x55\x80\x23\x24\x36\xe1\xdd\xbb\x77\x2f\x77\xbb\xdd\ +\x6f\xc5\xad\xf8\xfa\x5f\xbf\xe9\xd7\xd7\xcf\x0b\xc0\xdf\xe3\xe3\ +\xd6\x37\xbd\x89\x3e\x78\xc7\x1d\x0c\x00\x7b\xf6\xec\xe9\x1c\x3e\ +\x7c\xb8\x0f\x00\x6f\x7e\xf3\x9b\xdf\x30\x1a\x25\x0f\x4e\x4f\x4f\ +\xdd\x6e\xad\xbd\x66\x6a\x7a\x8a\x0d\x99\xf1\x76\xbb\x8d\x66\xb3\ +\x09\xe7\x5c\xc5\xcc\x67\x9a\xce\x42\xd3\x59\xfc\xbd\x78\x2e\xc0\ +\x60\x18\x66\x24\xce\x01\xec\xe0\x5c\x16\x03\x14\x02\x12\x99\x08\ +\xed\x76\x1b\x8b\x8b\x8b\xff\xd3\xd7\xbe\xf6\xf5\xcf\x7e\xf8\xc3\ +\x1f\x7a\xe2\xbc\x00\xfc\x3d\x3e\xde\xf0\xc6\x37\xfe\x21\x11\x3e\ +\x7f\xe4\xa9\x23\xcf\x3b\xb0\x7f\xff\x2d\xa9\xb5\xf7\x6d\xdf\xbe\ +\xed\x85\xbd\xde\x00\x3b\x17\x77\x80\x9d\x03\x91\x81\x21\x83\xd4\ +\xd9\xc0\x9c\x8b\x7f\x1c\x83\xe1\xf2\x34\x0f\xb9\x4b\x70\x70\xc8\ +\x05\xc0\x49\x6d\x77\x70\x80\x4f\x09\xb3\xf3\xcf\xac\x84\x65\x07\ +\x93\x05\x85\x38\x74\xf8\xf0\x3d\x1f\xf8\xc0\x1f\xfe\xec\x5d\x77\ +\xdd\x45\x37\xdc\x70\x03\x9f\x17\x80\xff\x0f\x8f\x1b\x6f\x7c\x1d\ +\x7d\xf4\xa3\x1f\x61\x00\xb8\xf1\x75\x37\x46\x1f\xfd\xc8\x47\xed\ +\x0d\x37\xdc\xf0\x33\xd6\xda\x67\xcd\xce\xce\x76\x47\xa3\xd1\xfb\ +\xc7\xc7\x26\x1e\xdd\xb2\x30\x7f\xe0\xdc\xfa\x39\xb4\x5b\x1d\x6c\ +\xdb\xb6\x15\x1b\x1b\x1b\x98\x9c\x9c\x64\x6b\x2d\x59\x6b\xcb\xc3\ +\x65\xce\x0e\xd3\xb9\xdc\xc7\x23\xb7\x04\x75\x82\x10\x98\x7e\xce\ +\x7d\x3d\x00\x9b\x24\x00\x08\x4c\x54\xfe\x3e\x70\x19\xce\x5a\x44\ +\xc6\x60\xcb\xc2\x02\xe6\xe6\xe6\xfe\xc3\xcd\x37\xdf\xfc\x6b\x00\ +\xf0\x47\x77\xfe\x11\xdd\x7c\xcb\xcd\x7c\x5e\x00\x82\xc7\xeb\x6e\ +\xbc\x91\x3e\xf2\xd1\x8f\xb2\xb8\x0e\x06\x80\x5f\xfd\xd5\x57\xbd\ +\xec\xdc\xb9\xb5\x07\x77\xec\xd8\xf1\x6f\x7b\x1b\xbd\xab\xf6\x1f\ +\xd8\x4f\xc3\xe1\x70\xd7\x96\xf9\x2d\x58\xd8\xba\x80\xfe\xa0\x8f\ +\xb1\xee\x18\x5b\x6b\x29\x4d\xd3\xcc\x84\x13\xc3\xda\xcd\x22\xf8\ +\xea\x61\xbb\x3c\xf8\x93\xc2\x21\x0f\xd3\xfb\xfe\x5c\x30\x46\x83\ +\x21\x4c\x1c\x7b\xad\x2f\x82\xc7\x22\x58\xe4\x5c\x50\xd8\x39\x8c\ +\x92\x11\xef\x5a\x5c\x1c\x6d\xdf\xb6\xfd\x5b\x44\xe6\x9f\xbe\xfe\ +\xa6\xd7\xdf\x7b\xde\x02\x6c\xf2\x78\xf9\xcb\x5e\xf6\x2f\x01\x7c\ +\xf1\xd8\xf1\xe3\xdd\xbd\x7b\xf7\xdc\x31\x1a\x8d\xee\xb9\xf8\xe2\ +\x4b\x5e\x7d\xf6\xec\x59\x3c\xe7\x39\xcf\xc1\x68\x34\x42\xa7\xdb\ +\x41\xab\xd1\xc4\x28\x49\xc0\xec\xbc\xdf\x2e\xfd\x35\x44\xe0\xe6\ +\x72\xed\xcd\x0e\x0e\x0e\xe5\x6b\x36\x0b\xf6\x8a\xf7\xca\x0f\xdc\ +\xe6\x87\xeb\x85\x81\x1d\xfa\x1b\x7d\x34\xdb\xad\xec\x3d\x39\xb7\ +\x22\x2e\x17\xa0\x22\x8e\x40\x19\x3f\x10\x19\xb4\xdb\x6d\xec\x5a\ +\x5c\xfc\xc8\xaf\xbc\xe8\x85\x6f\xd8\x73\xe0\x12\xf7\x53\x2b\x00\ +\xaf\xbf\xe9\x26\xfa\xbf\xfe\xe4\x4f\x18\x00\x6e\xb8\xe1\x86\xf8\ +\xae\xbb\xee\x4a\x01\xa0\xdb\x6a\xcd\x5c\xf3\xdc\xe7\x4c\x7d\xe9\ +\xcb\x7f\x73\xf8\xe5\xaf\x78\xc5\x0b\x9c\x73\xaf\x1f\x0d\x07\x1f\ +\x9f\x9f\x5f\x98\xed\xf5\x7b\x77\xcd\xcc\x4c\xdf\xb7\xb8\x63\xf1\ +\xd9\xa7\x4f\x2f\xa1\xd1\x6a\xe1\xca\x2b\xaf\xc4\x99\xd3\x4b\xd8\ +\xb3\x67\x2f\x27\x69\x42\x69\x6e\x76\xad\xb3\xd9\x41\x82\xf3\xe0\ +\x8b\x33\x7f\x5c\x93\xab\x67\x87\x86\xfc\x40\x9c\xd7\x76\xff\x1c\ +\xe4\x87\xe5\x90\x65\x00\x90\xef\x53\x06\x88\x10\x56\x22\x49\x12\ +\x0c\x87\x03\xb4\xbb\x63\x60\xeb\xf2\xeb\x70\xb5\x58\x81\x13\x96\ +\xc1\xa5\x16\x3b\x77\xee\xc4\xd6\x6d\xdb\x9e\xf7\xc6\x37\xbe\xf1\ +\x6b\x3f\xd5\x16\xe0\xf5\x37\xdd\xf4\xc6\x33\x4b\x67\xbe\x32\x37\ +\x3f\xfb\xa7\x83\xfe\x60\xfb\x70\x34\xfc\x2b\x6b\xdd\xd4\xe4\xe4\ +\xc4\xcb\xfa\x83\x7e\xf4\xcc\x2b\xaf\x3c\x17\x99\x68\xfa\xe8\x91\ +\x23\xd8\xbd\x7b\x37\xf6\x5e\x78\x21\x7a\x1b\x1b\xd8\x32\xbf\x85\ +\x93\x34\xa5\x51\x32\x02\x31\x00\x30\x52\x9b\xe6\xe6\xb4\x3c\x30\ +\x27\xb4\xb2\x40\xe6\xd4\xc1\xc1\xe5\xa6\x18\xca\xa7\xfb\xe7\xf9\ +\xa0\xce\x95\x56\xc3\xe5\x42\xe3\xcd\xba\xf3\xd6\xa0\x38\x44\x00\ +\xe8\xf7\x36\xe0\x98\xd1\x6a\xb7\xc1\x96\xbd\x00\x54\x83\xca\xc0\ +\x1a\x39\x0b\x66\xe0\xb2\xcb\x2e\x43\xb3\xd9\x3a\xf3\x4f\xfe\xc9\ +\xaf\xcf\xff\x54\x0a\xc0\xeb\x6e\xbc\x31\x22\x63\xd2\x6e\xa7\x8b\ +\x6b\x5f\xf0\xf3\xe8\x6f\x6c\x60\xe9\xcc\x19\x10\x11\xf6\x5d\xb8\ +\x0f\xce\x59\x44\x91\x41\xab\xd5\x06\x11\x61\x34\x1a\x01\x22\x9a\ +\x2e\xb5\xaf\x00\x62\xca\x43\x67\x61\x62\xfd\xa1\x7a\xf3\x5c\x1c\ +\x58\x21\x00\xc2\xaf\x5b\xf8\xe8\xbe\x78\x6e\x61\xba\x21\x84\xca\ +\x6b\x6e\x6e\xc2\xb5\x7b\xc9\x04\x60\x75\x65\x05\xad\x56\x0b\x71\ +\xa3\xe1\x0f\xd9\x03\x45\xe1\x75\xaa\x80\xd2\xc1\x5a\x87\x34\x49\ +\x78\x6e\x6e\x0e\xcf\x78\xc6\x15\xdf\x62\x76\x77\xbe\xf6\xb5\xaf\ +\xbd\xe3\x1f\x92\x00\xfc\xc8\xc5\xa0\xc1\x70\x78\xc5\x96\xf9\x79\ +\x5c\xf7\xa2\x17\x63\x30\xe8\x63\x6a\x6a\x1a\xb3\x73\x73\x00\x01\ +\xce\x3a\xc4\x51\x0c\x10\x21\x49\xcb\xa2\x59\x11\xf9\x19\x02\x1c\ +\x13\x72\xf5\x07\xb3\x94\x47\xd6\x4f\x26\x00\xcc\x1e\x87\xa7\xfc\ +\xbf\x28\x7f\x82\xff\x0b\x17\xcf\x2d\xe2\x4a\x02\x81\xe0\x20\x3e\ +\x83\x58\xbc\x3d\xe5\x11\x28\xfb\xd7\x14\xaf\x64\x06\x92\x24\x41\ +\x77\x6c\xcc\x5f\x0a\x33\x83\xb2\x4a\x01\xfc\xe5\xe6\xd6\x2b\x0c\ +\xf5\x0d\x11\x1a\xcd\x06\xad\xad\xad\xe1\xdb\xdf\xbe\xff\xd9\x3b\ +\xb6\xef\xe0\x4f\xfe\xc7\x4f\xde\xdf\xeb\xf7\x1e\xb0\xd6\x8e\x6e\ +\xba\xe9\xa6\x9f\x78\x76\xf0\x23\x13\x42\x98\xf9\x17\xa7\xa6\xa7\ +\xe1\xd2\x04\x44\x99\x6f\x4d\xd3\x14\x36\xb5\xfe\x30\x88\x08\x44\ +\x26\x3b\x0a\x22\x98\xfc\x77\xd9\x1f\xcb\xf3\x25\x71\xfe\x44\xe4\ +\x9f\x2f\x7e\x99\x1f\x4f\x79\xce\xd9\x0f\x04\x22\xd6\xc2\x43\x79\ +\x64\x9e\x45\x82\x20\x66\x80\x48\x7d\x86\xff\xf8\xe2\x5a\xf2\xcf\ +\x65\x64\xcf\xb3\x2e\x85\x73\x0e\x51\x14\xe5\x4f\x0f\xae\xa7\xc6\ +\x84\x72\x21\xa0\x5c\x5e\x0a\x33\x63\x75\x75\x95\x97\x57\x96\xaf\ +\x3e\x71\xf2\xc4\x3d\x49\x92\x5c\x5f\x1c\xfe\xa7\x3e\xf5\x17\xf4\ +\xb4\x16\x00\x43\xe6\x97\xe6\xe6\xe6\xb2\xe8\xb9\xbc\xa3\xfe\xdd\ +\x29\xbf\x99\x94\x6b\x04\x89\x9b\xcd\xc5\xcf\xb9\x36\xb1\x97\x84\ +\x4d\x1c\x15\x97\x3f\xf8\x83\x23\x02\x53\x8d\x67\xcb\x64\xc0\x3f\ +\x2f\x13\xa8\xa2\xe8\x53\x63\x64\x18\x5e\x88\xb2\xb7\x35\x18\x0d\ +\x87\xd9\xe1\x57\xae\x87\xd4\x7b\x17\x17\x5d\x08\xb1\x30\x30\xfe\ +\xa5\x51\x14\xd1\xf1\xe3\xc7\x71\xef\xbd\xf7\x72\x9a\xda\xbb\xee\ +\xba\xeb\xdf\x9f\xfc\xde\x43\x0f\x37\xae\xbf\xfe\xe5\xfc\xb4\x16\ +\x80\x38\x8e\x7e\x76\x66\x66\x26\xf3\xaf\x24\xee\xa6\x3a\x3c\xf6\ +\xa0\x4a\xa6\x96\x94\x6b\xb0\x3c\x0d\x71\x28\x1c\x38\x02\xce\xad\ +\x81\x3c\x7c\x84\xee\x22\xff\x3b\x89\xcf\x17\xc2\x58\xbe\x2d\x57\ +\x84\xac\x70\x2b\x85\x89\x2f\xfc\xff\xa0\xd7\x47\xb3\xd9\xf4\xc2\ +\x84\x22\xbd\xe4\xc2\xe5\x50\xfe\x5c\x69\x8f\xf4\xbf\x39\x17\x70\ +\xca\x84\x00\xcd\x66\x93\xbe\xf1\xcd\x6f\xe0\x9b\xdf\xfc\xc6\xc2\ +\xf7\xbe\xfb\xdd\xff\xe3\x93\x9f\xfc\xe4\xab\x9e\xb6\x02\xf0\x9a\ +\x1b\x6e\x98\x6f\xb5\xdb\xf3\x9d\x6e\xd7\x47\xcf\xe1\x61\x16\x41\ +\x9e\xf3\xe6\x31\x4b\xbf\x50\x44\xe6\xa5\xc5\x46\xe1\xc2\x33\x6b\ +\x90\xfd\x8f\x98\x83\x23\x2c\x7c\xad\xab\x1a\x08\xe9\x4e\x50\x95\ +\x2b\xaf\xa7\x4c\x20\xae\x31\x32\x81\xdc\xf6\xfb\x7d\x34\x5b\xad\ +\xf2\x3a\x51\x5e\xa3\x0e\x50\xd8\x0b\x16\x83\x0b\x0e\x89\x17\xd8\ +\xe0\xad\x61\x88\xd0\xeb\xf5\xf0\xd0\x43\x0f\xbd\xf9\xf8\xf1\x63\ +\x1f\xfc\xd2\x97\xbe\xdc\x04\x80\x8f\x7d\xec\xe3\xf4\xb4\x12\x80\ +\x74\x94\xfc\xec\xe4\xc4\x24\x62\x63\xa0\xef\x92\x8f\x0f\xbc\x00\ +\xc0\xe7\xd7\x79\xc4\xef\x20\x75\xd2\xff\x48\x90\x92\x50\x1e\xb9\ +\x7c\x7b\xae\xf3\xbe\xac\x4f\x87\x6b\xbd\x08\x57\x42\x35\xaa\x73\ +\xe6\x04\xa4\xd6\x22\x49\x53\x34\x1a\x0d\x2f\x74\xec\x63\x97\xc0\ +\x4c\x15\xef\x5e\xb8\x85\x22\x33\x28\x7e\xc9\x55\x69\xb4\xd6\xe2\ +\xd1\x47\x0f\xf2\x93\x4f\x3e\x35\x73\xec\xd8\xd1\xe1\x27\x3e\xf1\ +\x1f\x7f\xff\x1f\xfd\xa3\x5f\xe3\xa7\x95\x00\x90\xa1\x5f\x9a\x9d\ +\x9d\xf5\xda\x2a\x9d\x2c\xb3\x8a\x82\x04\xb2\xc6\xa5\x25\x28\x84\ +\xc1\x5b\x8f\x42\x58\x6a\x74\x98\x64\x7c\xc7\x28\xbd\x07\xfb\x8a\ +\x5d\x78\xf8\x2c\x7c\x7e\x06\x04\x91\x8c\xf9\x03\x6d\x86\x77\x33\ +\x44\x84\xe1\x70\x80\xc8\x18\x18\x63\xbc\x9b\xa0\xc2\xe4\xe7\xb1\ +\x47\x55\x0e\xd9\x07\x90\xb4\xa9\x2e\x97\x22\xd8\x6a\xb5\xe8\xe4\ +\xc9\x93\xf8\xcc\xa7\x3f\xcd\xc7\x8e\x1e\x7d\xc3\x67\x3f\xf3\xd9\ +\xbb\xef\xfe\x4f\x9f\x3d\xf0\xb4\x11\x00\x63\xa2\x5f\x9c\x9d\x9b\ +\x45\x6a\x1d\x00\xca\xb4\xdb\x6b\x6c\x6e\xfa\x0b\xd4\x2d\x2c\xbe\ +\xf8\x52\x2c\x6a\xcc\x64\xa8\x61\xe2\x90\xa5\x40\x10\x2b\xaf\xc3\ +\xf2\xff\x73\x81\x22\xef\x5f\x0a\xcd\x74\xc1\x5b\x07\x48\x61\x7e\ +\xd0\x1b\xeb\x1b\x68\xb6\x5a\xe2\x24\xa9\x0c\x2d\x58\xb8\x26\x0e\ +\x05\x28\x77\x36\x3e\x0d\x0d\xc3\x9b\x22\x63\xc9\xde\x2f\x8a\x22\ +\xb4\xda\x6d\x7a\xe8\xe1\xef\x4d\x7d\xe5\x2b\x7f\xfb\x92\x95\x95\ +\xb5\x1b\x3f\xf3\x99\xcf\xec\x7f\x5a\x08\x40\xb3\xd9\xbc\x62\x62\ +\x62\x02\xce\xba\x5c\x73\x9d\x30\xf9\x19\xb4\x0a\xce\x51\x3a\x32\ +\x65\xf1\x24\x6e\x82\x1b\x6d\x70\x64\xb2\xe7\x44\x31\xb8\xd5\x01\ +\x47\x0d\x9f\xd9\x17\x01\x99\x03\xf9\xdc\x9d\x64\x10\xe7\xf3\x76\ +\xa1\x86\xec\x43\x4b\x14\x96\x9a\x89\x02\xcb\x50\x06\x8a\x5c\xe3\ +\x2a\x8a\xc7\xfa\xfa\x06\x3a\xdd\xb1\xb2\xd0\x53\x08\x07\x15\x2e\ +\x8b\x4a\x0b\x14\x98\x2a\x29\x48\xa1\x11\x23\xf1\x2c\x79\xed\xfd\ +\xfe\x00\x4f\x3d\xf5\x14\x4e\x2d\x9d\xfa\x17\xcb\xcb\xcb\x8f\x32\ +\xf3\x7f\x93\x9e\x8d\x1f\x1a\x08\x7a\xcd\x6b\x5e\x73\x79\xb7\xdb\ +\x89\x9a\xcd\x26\xd2\xd4\xfa\xf4\x08\xcd\x36\xe0\x2c\x60\x2d\x28\ +\x8e\xc1\x71\x33\xbb\xf9\x87\x1f\x02\xb6\xec\x04\x26\x67\x61\xff\ +\xfc\x43\xc0\xd6\x45\xd0\xe2\x3e\xf0\xf6\xdd\xc0\x27\x3e\x00\x6e\ +\x8f\x81\x77\x5f\x04\xde\xb6\x1b\x3c\x31\x05\x8e\x62\x30\x19\x98\ +\xe3\x4f\x80\xbb\xe3\xe0\x76\x37\xbb\xe9\x69\x0a\xa4\x23\xaf\xb1\ +\x65\xac\x01\xa5\xf9\x3e\x65\x64\xae\x31\xc2\x12\x2f\x40\x69\xda\ +\xf3\x87\x63\x87\x7e\xbf\x87\x1d\x9d\x1d\x70\x36\x07\x7e\x8a\x63\ +\x63\x2e\x8f\x99\xf2\xe0\x25\x40\x03\x51\x2a\x38\x98\x49\x89\x5a\ +\xe6\x8e\xa8\x8c\x47\x88\x41\x9c\xe3\x23\x51\x84\xaf\x7e\xed\xab\ +\x98\x18\x9f\xc4\xec\xec\xec\xfa\x5f\xdd\x7d\xf7\xdd\x2f\xf9\x95\ +\x5f\xf9\xd5\x7f\x90\x02\xc0\xcc\xbf\x30\x3d\x35\x05\x44\x31\x30\ +\x18\x80\xbb\xe3\xa0\x93\x4f\xc2\x3c\x78\x0f\xdc\xfe\x67\x64\xf2\ +\xff\xe7\x77\x82\x76\x5f\x0c\xcc\x6d\x85\xfd\xeb\x4f\x82\xc6\x26\ +\x81\xa9\x79\xf0\xd2\x11\xd8\x24\x85\x89\x22\xd0\xd8\x04\x90\x8e\ +\x60\x7b\x3d\x98\xaf\xfe\x15\xa8\xd9\x02\x4d\xce\x00\xdb\x76\x81\ +\x77\x5f\x8a\xe8\xeb\x77\x03\xc3\x01\x30\xbb\x00\xbb\x6d\x37\xec\ +\x8e\xbd\x48\x17\x76\xc1\x8d\x4f\x83\x1b\x8d\xcc\xa2\xa4\x09\x60\ +\xd3\x4a\x50\x0e\x30\x58\x24\xe5\xe4\x83\x4d\xf6\x01\x5b\x9d\x15\ +\x48\x46\x09\x1c\x33\x1a\xcd\x06\x6c\xea\x32\xc1\x66\xae\x38\x29\ +\x6f\x6a\xb8\x26\xec\xe4\x02\xb9\x2c\xc8\x23\x94\x59\x3b\x95\xc9\ +\x88\x4c\x29\x07\xa1\xda\xad\x36\xfa\x83\x3e\x3e\xf6\xb1\x8f\x75\ +\x2e\xbe\xf8\xe2\x17\xfe\xcd\x97\xbf\xfc\x4f\xfb\x83\xc1\xbd\xa3\ +\xd1\xe8\x9b\xd6\xda\xf4\xe5\x2f\xff\xf1\xe2\x06\x3f\x74\xda\xf1\ +\xaa\xd7\xbe\xf6\x93\x57\x3d\xf7\x79\xd7\xef\x89\x52\x98\xaf\xff\ +\x15\xcc\xf7\x1f\x04\x77\x27\xc1\xa7\x8e\x66\x00\x4f\x2b\x23\x5d\ +\xa6\xfd\x01\xc0\x0e\x8d\xc9\x69\xb8\x24\x41\xd2\xeb\xa1\x3d\x3b\ +\x8d\xb1\xf9\x79\xf4\x96\x4e\x63\xb8\xbe\x8e\xb8\xdd\xc6\xc2\x25\ +\x17\xe1\xdc\x89\x53\xe8\xaf\xac\xc2\xf6\xfb\x70\x36\x81\x61\x86\ +\x19\x9b\x00\x45\x06\x6e\x34\x04\xa5\x16\x26\x02\x4c\xdc\x02\x8f\ +\x8d\xc3\xce\x6d\x47\xb2\xed\x02\x24\x0b\x17\x20\x99\x59\x40\xda\ +\xec\xc0\xc1\x00\x2e\x05\xd2\x04\x6c\xad\x2f\x28\x71\x4d\xd5\xaf\ +\xfa\x37\x06\x11\x61\x69\xe9\x34\x1e\x5e\xf8\x2e\x9e\x6f\xaf\x45\ +\x9a\xa4\x25\xfe\xaf\x62\x19\x07\xf6\xe5\x66\x51\x49\x14\xa5\x69\ +\x76\x28\xeb\x16\x35\x9f\x55\x32\x92\x20\xea\x13\xd9\xfb\x58\xe7\ +\x30\x3d\x35\x89\x03\x07\x0e\x60\x66\x66\x16\x53\x53\x53\xbf\x7b\ +\xfd\xf5\xd7\xff\x0e\x00\x7c\xee\x73\x9f\xa3\x5f\xfe\xe5\x5f\xe6\ +\x9f\xa8\x00\x7c\xf8\x45\x57\x1c\x8f\xf7\x5e\xb6\xad\xfd\xe8\xb7\ +\xc0\xc3\x01\x1c\x80\x74\x30\xc4\xec\xee\xdd\x48\xfa\x03\x6c\x9c\ +\x39\x8d\x6d\x57\x5c\x8e\xb8\xd5\xc4\xb9\x63\x27\x30\xb9\x73\x07\ +\x26\x77\x6e\x47\xff\xec\x32\xc8\x18\x4c\x6c\xdb\x9a\x09\x44\x7f\ +\x80\x74\x38\xc0\xd8\x96\x79\x38\xeb\xe0\x92\x14\xc9\xc6\x3a\x36\ +\xce\x2e\x63\xfd\xd4\x12\x5c\xea\xb0\xeb\x39\xcf\x46\xef\xcc\x59\ +\xf4\x97\x97\xd1\x3b\x7b\x16\x83\xb5\x75\xa4\x83\x21\x60\x53\x10\ +\x3b\x44\x11\x01\xad\x0e\xec\xc4\x2c\x92\xf9\x1d\x18\x6c\x59\xc4\ +\x68\x76\x07\x46\xdd\x49\xd8\x28\xce\x6e\xb4\x4d\x41\x2e\x85\xb3\ +\xb6\x0c\x2a\xd9\x79\x2a\x58\x71\xe3\xa3\x28\xc2\xa3\x8f\x3e\x8a\ +\xe5\x2b\xce\xe2\x59\xeb\xcf\x46\x9a\xa6\xfe\x90\x21\x8b\x41\x79\ +\x84\xcb\x41\x86\x53\xa9\x10\x16\xc5\x21\xc7\xf5\xb4\x34\x51\xc6\ +\x96\x65\x6e\xc7\x9c\x43\xea\x09\x86\xc3\x11\xbf\xec\x65\x2f\xa3\ +\xdd\xbb\x77\x1f\x6d\xb7\xdb\xd7\xbe\xe0\x05\x2f\x38\xfc\x13\xb5\ +\x00\x7f\xf9\xc2\x8b\xa6\x47\x69\xba\xec\x46\x43\xb8\x38\x46\xdc\ +\x68\x62\xd7\x35\xcf\xc2\xf0\xdc\x39\x8c\x6f\xd9\x02\x8a\x22\xb0\ +\xb3\x00\x08\xa6\x11\xc1\x98\x08\x2e\x4d\xb3\x38\x39\x32\xde\x57\ +\x17\x78\xbf\x0a\xa5\xf2\x34\xcb\x18\x03\x98\xac\x15\x8b\xad\xcd\ +\x11\xd7\x2c\x8c\x72\x36\x45\x32\x18\x60\xb8\x7a\x0e\xbd\xe5\x15\ +\x0c\xd6\xd6\x90\xf4\xfa\xe0\x34\x01\x39\x8b\x88\x08\x88\x63\x70\ +\x7b\x0c\xa3\xa9\x2d\x18\xcc\x6d\x47\x6f\x66\x3b\xfa\x13\x73\x48\ +\x9a\x6d\x38\x10\x60\x6d\x66\x29\xac\x15\x56\xc1\xc1\x50\x84\x2f\ +\x8c\x3e\x8f\xed\x3b\x76\xe0\xe2\x13\x17\xc3\xba\x92\x02\xe6\x9c\ +\xb6\x02\x10\xa4\x92\x82\x3d\x5c\x4f\x38\xd9\xbc\xdf\x20\x13\x28\ +\xa7\xb3\xa3\x1a\xeb\xc0\x00\xa6\xa6\x26\xf1\xd2\x97\xbe\xf4\x83\ +\x9d\x4e\xe7\x3f\x4d\x4d\x4d\xfd\xe5\x35\xd7\x5c\xc3\x3f\x91\x18\ +\x60\xc4\xfc\x1c\x07\x42\x34\x3e\x81\xc9\xb9\x59\x6c\xb9\xe4\x00\ +\x38\x49\x31\x36\x3f\x97\x69\x18\xbb\xbc\x00\x44\x70\xa9\x05\x93\ +\xcb\x31\xff\xd2\x5f\xfa\x9f\x73\xff\x4a\x41\xf4\xee\xac\x2d\xfd\ +\x3a\x41\xdd\x20\x30\x23\x6e\x34\xd1\xd8\x32\x8f\xf1\x2d\x5b\x32\ +\x62\xc7\x28\xc1\xa8\xd7\xc7\x60\xed\x1c\x06\x6b\xe7\x30\xea\x6d\ +\x80\x93\x11\x9a\xa7\x9e\x42\xfb\xd4\x13\x98\x35\x06\x68\x34\x91\ +\x76\x27\xd0\x9b\x5a\xc0\xc6\xf4\x36\x6c\x4c\xcc\x63\xd0\x19\x87\ +\x35\x59\xa9\x17\xd6\xc2\xb9\x14\xa3\xe1\x10\xed\x56\x0b\xec\xb2\ +\x9c\xc4\x79\x90\x87\x95\xbb\x67\x1f\x1c\x16\xf0\x70\x18\x0c\x56\ +\x71\xed\x2a\x0c\xc5\x25\x60\x01\x5d\x0c\x63\x89\x8c\x32\x63\x65\ +\x79\x19\x0f\x3c\xf0\xc0\xad\x0b\x0b\x0b\xb7\x6e\xdb\xb6\x6d\x1c\ +\xc0\xc6\x4f\xc4\x02\x7c\xe2\x17\xf6\xbd\xdb\x5a\xfb\x8e\x99\x3d\ +\x17\x60\xfe\xc2\x3d\x48\x93\xc4\x57\xfc\xe0\x0b\x3c\xf9\xbf\x0d\ +\x95\x9a\x6e\x00\x82\xd1\x55\xb9\xe2\xbf\x59\xc6\x52\xec\xcd\x2d\ +\x73\x10\x65\xbb\x02\xd9\x29\x48\x19\x45\xba\x99\x17\x7f\x8a\x34\ +\xcd\x39\xd8\xe1\x08\xa3\x5e\x0f\xc3\xf5\x0d\x24\xbd\x1e\xec\x68\ +\x04\x4e\x2d\x0c\xbb\xac\x22\x19\x47\xb0\x8d\x36\x06\x63\x33\x58\ +\x9f\x98\xc7\xda\xc4\x3c\x36\xba\xd3\x78\x78\xf7\x53\xa0\x28\xc6\ +\xe2\xa1\xdd\x20\x97\x80\x02\x06\x52\x68\xee\xeb\x19\x4a\x05\xef\ +\x20\x0b\x02\x4b\xee\x60\x95\x77\x10\x12\x53\x21\xc8\x25\x3e\xc6\ +\x70\x0e\xce\x39\x0c\x06\x03\xcc\xcf\xcf\xe3\xfa\xeb\xaf\x47\x1c\ +\xc7\xa7\x9b\xcd\xe6\xbf\xbb\xee\xba\xeb\xde\xfe\xdf\x3a\x0b\xf8\ +\xef\xd8\x31\xda\xe3\xe3\x70\xa9\x55\x19\xae\x3a\x7c\x51\xf9\x2b\ +\x2a\x83\xf0\x8a\x4f\x65\xea\x48\x21\x5c\x4b\x00\x9b\xb2\x40\x20\ +\xeb\x3b\x3e\xe5\xcf\xab\x80\xbe\x56\x80\x92\x41\x94\xd3\xb6\x29\ +\x8e\xd0\x9a\x9c\x40\x6b\x72\x22\xbb\x99\xd6\x22\x1d\x0c\x91\xf4\ +\x07\x48\x06\x03\xd8\xd1\x08\x64\x2d\xba\x6b\x4b\x98\x58\x3b\x85\ +\x1d\x04\x70\xdc\x00\x45\x09\x7a\xad\x71\x6c\x3f\x63\xb1\xda\x99\ +\xc1\x46\xb3\x8b\xd4\xc4\x70\x8e\x41\xb0\x20\xb6\x1e\x03\x00\x73\ +\x86\x35\xc8\xd4\xb3\x44\x8c\x40\x5c\xd8\x10\x01\x55\x70\x95\x47\ +\xc0\x14\x20\x9b\x22\x68\x2d\xd2\x50\x02\xd0\x6e\xb7\xb1\xb2\xbc\ +\x8c\x3f\xfe\xe3\x0f\xa3\xdd\xe9\xcc\x5f\x75\xe5\x55\xaf\xfe\xc6\ +\x37\xbe\x71\xef\xc1\x83\x07\xef\xb9\xf1\xc6\x1b\x0f\xbf\xf5\xad\ +\x6f\xa5\xf7\xbe\xf7\xbd\xff\xaf\x5d\x43\xf4\xc3\x9c\xfe\xab\xf7\ +\xce\xbe\x0f\x40\x34\x77\xe1\x9e\x4c\xc3\x61\xb2\x03\x2e\xb4\xb9\ +\xd0\x7a\xf1\x0f\x6a\x7e\x86\x31\xde\x0d\xf8\x32\x31\x0b\x34\xcd\ +\x43\xb0\x39\x0e\xcf\x81\xe9\x44\xa9\xf5\x1e\x89\xf6\xce\x24\x7f\ +\x07\x97\x03\x51\xb9\x2f\xa7\x38\x42\xa3\xdd\x42\x73\xac\x8b\xd6\ +\xc4\x04\x1a\xe3\x63\x88\xdb\x6d\xa0\xd1\x80\x33\x11\x18\xc0\x99\ +\xd9\x0d\x74\x46\x7d\x5c\x7e\x68\x15\x8b\x2b\x4f\x61\xd7\xea\x11\ +\x2c\x6c\x2c\x61\x22\xd9\x80\x61\x87\x94\x22\x24\x51\x8c\x14\x26\ +\x8b\x27\x0a\xbe\x41\x4d\x15\x82\x2b\xc5\x09\x0a\xa0\x23\x2e\xdd\ +\x0b\xd7\x10\x61\x82\xf7\x28\x62\x27\x80\x30\x1a\x8e\xe0\x9c\x9b\ +\x1e\x8d\x46\xaf\x3a\x7d\xfa\xf4\xab\xe7\xe7\xe7\xbf\xfa\xa1\x0f\ +\x7d\xe8\xc8\xdf\xab\x0b\xf8\xd4\x0b\x0f\x5c\x94\x5a\xf7\x88\x69\ +\x36\xb1\xfb\x9a\x67\x65\xda\x66\x0c\x4c\x61\xe2\x89\x40\xc6\x64\ +\x01\x5f\xa1\xe9\xc6\x08\x01\x30\x5e\x48\x00\xe3\xf9\x00\x65\x1d\ +\x40\xf2\xff\x4a\x92\x26\xb8\x6c\xdc\x90\x3e\xb6\xe4\xfa\xe5\x80\ +\x4d\x10\xa0\x21\xe7\x0a\x7a\xd6\xae\x63\x8f\x5a\x16\x68\x25\x17\ +\x80\x91\x73\xf8\xf6\xfe\xd3\xb8\xe2\xa1\x29\x3c\xb0\xef\x34\x2e\ +\xff\xee\x64\xc6\xed\x03\x60\x88\x11\xe7\xb1\x8b\x33\x31\x86\x71\ +\x0b\xab\x8d\x31\x9c\x6e\x4c\xe0\x4c\x3c\x8e\x55\xd3\xc2\x10\x26\ +\xbf\x0e\x07\x62\x9b\x5d\x9f\xfb\x41\x34\x75\x1d\xfc\x49\xd7\x22\ +\x03\xcc\x82\x62\x56\x32\x98\xcb\x8c\x21\x23\xad\x0e\x71\xf5\xd5\ +\x57\xe3\xea\xab\xaf\xee\x4d\x4e\x4e\x3e\x32\x39\x39\xf9\x8b\xcf\ +\x7d\xee\x73\xd7\xfe\x5e\x5c\x80\x63\x7a\x01\x3b\x46\x7b\x62\xcc\ +\xdb\x63\xaf\xa1\x12\x33\xa7\xa2\x30\x92\x6b\x08\x69\x26\x0f\x73\ +\x76\x53\x51\x10\x35\x3c\xc9\x4b\xe2\xfb\x94\x93\x2b\x54\x35\x3f\ +\xa8\x0a\xb2\x06\x74\x2a\x4c\x32\xca\x6b\x06\xa1\x89\x96\x56\x24\ +\x17\x12\x97\xbb\x13\x63\x60\x1a\x31\xe2\x76\xab\x14\x1a\xe7\x90\ +\xb2\xf3\x82\xdd\x72\x09\xb6\x0d\x57\xb0\x73\xb4\x02\x22\x20\x8d\ +\x1a\x38\x67\xda\x38\x1d\x77\x71\xca\x74\x71\x1a\x6d\x9c\xe3\x08\ +\x29\x13\xc0\x0e\xa6\x00\xb9\xb9\xac\x95\x94\x2c\x98\xfa\x02\xb3\ +\xbf\x9d\x0e\x20\x2e\x8b\x58\xc4\x0c\x97\x5f\x7e\x1c\xc7\x88\xa2\ +\x08\x0f\x3c\xf0\x1d\x1c\x3c\x78\xb0\xbb\xb0\x65\xe1\xaa\x57\xfe\ +\xea\x2b\xdf\xf2\x85\x2f\x7c\xe1\x8b\xc3\xe1\xf0\x81\x97\xbe\xf4\ +\xa5\xc3\x1f\xab\x00\x30\xbb\xeb\x98\x19\xed\xa9\xc9\x32\x9a\xaf\ +\xa5\xee\xe4\x6c\x9d\x82\xbf\x57\x94\x7a\x49\x72\xfa\xe0\x99\x7d\ +\x92\xd6\x01\x92\x85\x22\xae\x9a\x7d\x19\x34\x33\xab\x7f\xcb\x82\ +\x2f\x15\xf7\x38\x2b\x49\x94\x34\x30\x0f\x23\x17\x15\xc8\x4c\x10\ +\xd3\x33\x03\x8c\x0e\xaf\x81\xe2\x59\x41\xf4\xf0\x45\x7c\x10\x9b\ +\x5c\xab\x1d\x52\xce\xac\x9b\x35\x06\x14\x45\x20\x30\xa6\x30\xc0\ +\x5c\x3a\xc4\xa5\xb4\x0c\x4b\x40\x9f\x9a\x58\xa6\x16\x4e\x50\x1b\ +\x27\xb8\x85\xb3\xdc\xc0\x00\x80\x65\x82\x01\x60\xe0\x80\x2c\x81\ +\x14\x09\x41\x19\xf0\x96\xd7\x96\x1b\x46\xaa\x89\x23\x0a\x5f\x1e\ +\x1b\x0c\x07\x43\x1c\x3d\x7a\x04\xf7\xdf\x7f\xff\xef\xcd\xcf\xcf\ +\xff\xde\xec\xec\xec\x69\x00\x5b\x7e\xbc\x02\x40\xf4\x7c\x10\xd0\ +\x9a\x9c\x80\x73\x0e\x52\x7f\xcb\x34\x9e\x44\xe9\x14\xb9\x09\x95\ +\x6c\x9d\xec\x6f\x04\xca\xcc\x3b\x05\x65\x94\xf0\x04\x3d\x01\xa4\ +\xb4\x13\xf0\x65\xdd\x22\x00\x08\x71\xff\x52\x14\x88\x18\x30\x00\ +\x5b\x54\xb8\x06\x65\x90\x4a\xb0\x6b\x43\x98\x7d\x0d\xd0\x1a\xe9\ +\x4a\x9f\x64\x89\xba\x52\x47\xd9\x66\xfc\x47\x97\x9f\x88\x31\x06\ +\x51\x14\xc3\x34\x1a\x30\xcd\x06\xda\x86\xb1\x68\x86\xd8\x43\x99\ +\x12\x26\x64\xb0\xca\x0d\x9c\xe4\x06\x8e\xa5\x31\x4e\xd8\x18\xab\ +\x96\x3c\xd9\x55\x5e\x9b\x3e\x68\x16\xc1\xa1\xf8\x3d\x0b\xbe\x41\ +\x6e\x82\x13\x6b\xf1\xb9\xcf\x7d\x0e\xd6\x5a\xbe\xec\xb2\xcb\xe6\ +\xbf\xf4\xa5\x2f\x7d\x7b\x30\x18\xdc\xd3\xef\xf7\xff\xf4\x15\xaf\ +\x78\xc5\x97\x7f\x24\x01\xf8\xd4\x2f\x5d\x34\x91\x3a\x5e\x8c\x1a\ +\x31\x1a\xed\x76\x96\x27\x93\x57\x2b\x15\xc7\xa3\x64\xc9\x09\x8d\ +\xa5\xd2\x00\x4b\xbf\x2f\x78\x03\x2a\x40\x09\xcc\x3f\x0a\x3c\x9d\ +\x35\x2d\x84\x03\xbe\x5e\x51\x15\x54\x37\x54\xb2\x81\x49\xbc\xbf\ +\xf8\xfc\xef\xec\x3b\x83\xab\x8e\xec\x04\x8f\x33\x82\x7b\xaf\x84\ +\x81\x1d\x09\xf6\x47\x11\x6c\x02\x2e\xb5\xb0\xa3\x04\xdc\xdb\x28\ +\xf8\x92\x30\xcd\x06\xa2\x56\x0b\x8d\x76\x0b\x71\xa3\x89\x99\xd8\ +\x61\xc1\x8c\xf0\xcc\xf6\x10\x8e\x09\xcb\x2e\xc2\x07\xcf\x8c\xc3\ +\xe4\x11\xb9\xa9\x7c\x23\x16\xd6\x51\x58\x86\x92\x85\x01\x87\xd2\ +\xa2\x19\x22\xb4\xdb\x6d\x00\xa0\x27\x9f\x7c\x12\x77\xde\x79\xe7\ +\x33\xaf\xbd\xf6\xda\x67\x2e\x2e\x2e\x9e\x03\xf0\xa3\x09\x00\x03\ +\xd7\x80\x81\xe6\xf8\x18\xa2\x66\x33\xfb\xb2\xa2\xf4\x95\x29\x39\ +\xe7\x9c\xbf\x5c\xc3\xb9\xb8\xf7\xc5\x5d\x34\xfe\xee\x8b\x7b\xe8\ +\x39\x83\x2c\x4c\xba\xa4\x99\xf9\xdf\x13\x34\xbf\x30\x50\x52\x0a\ +\x58\x82\x5c\x57\xf6\xad\x63\x0d\xa5\x0c\x97\x3a\x98\xb1\xa6\xf0\ +\x17\x21\x3f\x21\x28\x1f\x15\xa0\x16\x8b\x63\x32\x04\x38\x93\xb3\ +\x7e\x1c\xd2\x8d\x1e\xf8\xdc\x86\xb7\x52\x71\xb3\x81\xb8\xdd\x41\ +\xb3\xdb\x41\x73\xac\x8b\x6e\x44\x78\xe5\x74\x1f\xc7\x13\x83\xa3\ +\x23\xc2\xd2\x88\xd0\xb3\x19\xdc\x6c\x00\xc4\x3e\x06\x60\xaf\x44\ +\x35\xd4\x2b\x50\x0e\x51\x87\x8c\xac\xa3\x47\x8f\x82\x88\x30\x36\ +\x36\xf6\x69\xce\xca\x90\x11\x11\xa5\x3f\x94\x00\x38\xe0\xd9\x64\ +\x08\xc9\x60\xc0\xbd\xd3\x67\xa8\x35\x35\xe9\x19\x30\xfe\x90\xf2\ +\x1f\x4c\xe1\xe3\x99\xb5\x7f\x2f\x6e\x95\x83\xb2\x1a\x10\x84\x0f\ +\x56\x9a\x0b\x1f\xc0\x95\xbe\x31\x50\x4d\xe1\xd3\x4b\x52\x27\x6b\ +\x7a\xae\xa2\x8b\xe8\x3f\x13\x01\x76\x3d\x01\xba\x00\x19\x02\xa7\ +\x14\x10\x5a\xa1\x5c\x4f\x51\x0a\x2e\x0e\x44\x11\xcd\x02\xa2\x63\ +\x96\x05\x95\xdf\x23\xe9\x0f\x30\x5c\xef\xe1\x9c\x4d\x31\xb5\x63\ +\x3b\xa6\x76\x6c\xc7\xc5\x4d\xe0\x52\xca\xd2\xd4\x11\x13\xce\x5a\ +\x83\x93\x43\xc2\xb7\xd7\x18\x47\xfa\x08\x3a\x20\x9c\x12\x82\x22\ +\x2d\xe4\x4d\xb8\x70\xed\x76\x1b\xf3\xf3\xf3\x68\x34\x1a\xf7\x51\ +\xc6\x44\x49\x7f\x28\x42\xc8\x67\x5f\x7c\x09\xbd\xea\xaf\x0f\xde\ +\x4e\xc0\xdf\xa4\xfd\x01\xd9\x24\xcd\xb9\xfe\x0c\x72\x2c\xb9\x57\ +\xb9\x92\x0a\x23\xc5\x25\x11\x83\x21\x9c\x98\xe7\x07\x66\x51\x1a\ +\xe5\x69\x8f\x7f\xbf\x3a\x8a\xb0\x84\x4d\x59\xd4\xff\x5d\x90\x0a\ +\x14\x97\x23\xe3\x6a\x49\x0e\x92\x87\x66\x08\xe9\xca\x00\xa6\x13\ +\x6b\xb6\x30\x0b\xfe\x89\x10\x4e\x45\x32\x29\xe3\x5d\x41\x3b\x65\ +\x6c\x4a\x4f\xcd\xeb\x1c\x51\xa3\x81\x73\x27\x4e\xe1\xf8\xdf\x7d\ +\x0f\x27\x1e\x3b\x84\x33\x27\x96\xb0\xde\x1b\x00\x04\x2c\x74\x22\ +\x5c\x3d\x6d\xf0\x33\x93\x84\xa6\x21\xa4\x0e\xe8\xa5\x45\x16\xc2\ +\xf5\x58\x01\x0b\x56\x6c\xa1\xb0\xce\x61\x66\x66\x06\xdd\x6e\xf7\ +\xa9\x6b\xaf\xbd\x76\xfd\x47\x0a\x02\xff\xfb\xcf\x3f\x5c\x18\xbc\ +\x2b\x29\x8e\xd1\x9c\x18\xcf\x8b\x34\x24\x58\xb0\xc2\x56\xc0\x94\ +\xc0\x0d\xe5\x95\x34\x47\xf9\xf3\xb3\x03\x23\xaa\x92\x3c\xbd\x9f\ +\x53\x81\x90\x0b\x12\x25\xf2\x79\x7c\x79\x08\x65\x97\x6e\x85\xb9\ +\xcb\xa5\x5b\x52\xa0\xbc\xb7\x14\x84\xfb\xf7\x2c\xe1\xaa\x27\xb7\ +\x02\x0b\x10\x3d\x87\xec\xc9\x1b\x1a\x3c\x29\xaf\x47\x81\x80\x92\ +\xb1\xe4\x24\x09\x2c\x63\x10\xc9\x94\xb5\x30\x3d\x36\x49\x90\x2c\ +\x0f\xb0\xb1\x74\x06\x8c\x6c\x1a\x59\xdc\x6a\x62\xc7\x33\x7f\x06\ +\xd7\xcc\x36\xf0\xac\x19\x87\x73\x29\xe1\xec\x08\xf8\xf8\x93\x7d\ +\x9c\x4b\x18\x06\xac\x09\x31\x0e\xb5\xcc\x06\x6b\x2d\xb6\x6f\xdf\ +\x8e\x46\xa3\xf1\x95\x1f\x0b\x25\xec\xd3\x2f\xbe\x64\x91\x08\x13\ +\x71\xb3\x81\xb8\xd9\x50\x66\x4f\x51\xa7\x1c\x94\x69\xe6\xbc\x1e\ +\x0e\x05\xe0\x70\xd9\xdb\xe7\x41\x11\x17\xfc\xdd\x79\xb0\xa7\xc4\ +\xff\x4b\x33\xeb\x0f\x88\x64\xde\x4c\x9b\x04\x95\xd2\x65\x94\x1a\ +\xcb\x00\xd8\x32\x6c\x3f\x45\x34\xd9\xcc\x3e\xb3\xc2\x34\x96\xd7\ +\x29\x5a\xd8\x48\xc4\x2a\x4e\xa6\xa2\x24\x9b\x9e\xf2\xb3\x16\x2e\ +\x28\xec\x4e\x22\x03\x8a\x23\x98\x28\x06\x18\x18\xf5\x06\x58\x39\ +\x72\x0c\xcb\x4b\xcb\x18\x26\x0e\xe3\xad\x08\x7b\xc7\x23\x3c\x73\ +\x26\xc6\xb6\x8e\x11\x91\x48\x01\x23\x73\x4d\x63\x5a\x66\x01\x76\ +\xee\xdc\x09\x22\xfa\xeb\x1f\x4b\x1a\x98\x32\x3d\x9f\xd9\xa1\x35\ +\x36\x96\xc1\xbf\x6c\xf3\x2f\x54\x7e\x55\x2a\x0e\x24\xc7\xc8\x4b\ +\x1c\x3b\xd3\x7c\xe2\x52\x0f\xca\xe0\x90\x34\xcc\xc3\x22\x27\x66\ +\x91\xb7\x0b\x16\x31\x07\x07\x5a\x16\x93\x58\xab\xa4\xcc\x02\xa4\ +\x86\x32\x3c\x5b\x88\x47\x16\x80\x83\x69\xc5\x79\x6a\xcb\xfa\xb9\ +\xb2\x16\x11\xb0\x79\xfc\x67\x17\xe6\xce\x15\xd6\x2e\xe0\x09\xb2\ +\x14\x10\x78\x8e\xa3\x8a\x6d\x3d\x97\x10\x38\x73\xe8\x70\x3e\xea\ +\x86\xd0\x9d\x99\xc2\xde\xe7\xff\x1c\x5e\xb6\x27\x02\x5b\xc6\xf2\ +\x88\xf1\x3b\xf7\x9d\x81\x81\x43\x44\x40\xec\xf9\x89\xa8\x54\x14\ +\x17\x16\x16\xc0\xcc\x5f\xfe\x31\xe1\x00\x7c\x1d\xd8\xa1\x35\x31\ +\x5e\x6a\x6b\x7e\xc8\xc5\x97\x67\xd2\xa6\xd2\x3b\x48\xc7\x28\x68\ +\x8e\x0a\x02\xf2\xa9\xbe\x08\x6a\x64\xc7\x8d\x3c\x4b\x66\x5d\x35\ +\x64\x0d\x1f\x93\x64\xfd\x38\x99\x5d\xb0\xd0\xd6\xfc\x3a\x8b\xe8\ +\xd9\x00\xa3\xb5\x21\x68\x3e\xce\xdc\x98\x0b\x30\x79\xfd\x81\x92\ +\x58\xa6\xd5\x98\x59\xa1\x8f\x4c\x4e\xfc\x4e\xe8\xab\xa4\xb4\xb3\ +\x06\x7c\xe4\x21\x46\x51\x04\x8e\x0c\xe0\x18\x83\xb5\x0d\x1c\xbd\ +\xff\x3b\x68\x4f\x4d\x61\x6c\x61\x1e\xed\x76\x0b\x6f\x7d\xc6\x0c\ +\x9e\xda\x48\xf0\xe0\xd9\x01\x9e\x58\x1d\xd5\xe5\x06\xe8\x76\xbb\ +\x98\x9c\x9c\x1c\x5d\x77\xdd\x75\x07\x37\x15\x80\x03\xbb\xfe\xf5\ +\x6d\x4a\x6b\x0c\x95\xb8\xae\xaf\xd8\x65\x27\xf7\xd9\xd3\xdf\xb9\ +\x3e\xc6\x08\x63\xf1\x3c\xcc\xe9\x86\x87\x4d\x75\x55\x4f\xe2\xfb\ +\xc5\xfb\x98\xb2\x52\x88\xf0\x6f\xa4\x92\xb8\x32\x5b\x10\xbc\x4e\ +\x40\x75\xf2\x14\xed\x62\x4c\x3e\xc7\x04\x33\x21\xf0\xf2\xaa\x6e\ +\xef\x83\x50\x2e\xbb\x80\x39\x2f\x5e\x0d\xcf\xf4\x71\x62\xe7\x53\ +\x38\xf1\xd4\x45\x9e\x7c\x71\xec\xdc\x61\x1c\x5a\xd9\x53\x7e\x86\ +\xcc\x4e\x0a\x1b\xc1\xac\xe0\x05\xe6\xba\xda\x7f\x51\xdd\x2c\x6e\ +\x6b\xf6\xb9\x8c\x2a\x25\x9e\x6b\xb8\x85\x3e\xc6\x5d\x61\xf0\x69\ +\x8b\xb1\x73\xf3\x98\xd8\xb6\x00\x43\x84\xb8\x09\x0c\x27\x12\x1c\ +\xef\x0f\x60\x73\xc5\x89\x4c\x76\x4f\x9d\x63\x4c\x4d\x4d\xe1\x53\ +\x0f\xee\x5d\xda\xf9\xfa\x13\xb7\x15\x33\x8e\xc2\xb4\x39\x56\xb8\ +\xa2\xc2\x58\xa9\xac\x3c\x31\x23\x22\x1b\x35\x28\x9d\x03\x32\x9c\ +\xbc\xac\xd0\xb1\x2f\x06\x90\x44\x57\x88\x3c\x53\xbe\x28\x99\x72\ +\xd1\x80\x29\x5b\xb8\x25\x18\x40\x5c\xad\x96\xb1\x04\x8d\xa1\x40\ +\x91\x50\x43\xb9\x4a\xfb\xcd\xa9\xdc\xa4\xe1\xd3\xf2\xc4\xc0\x44\ +\x38\x7a\xc9\x21\x5c\x70\xf0\x22\xa0\x5d\xc3\x1e\x96\xf8\x6b\x2e\ +\xb0\x92\xf9\x4b\x32\xeb\x53\xd7\x5e\x22\x95\x5e\x4e\x5d\x50\xbf\ +\xa0\x7a\x2c\xa3\x8e\xcd\x6c\x88\xc0\xcd\x18\xbd\x33\x67\x31\x58\ +\x5d\x83\x69\x34\x30\xbd\x6b\x27\xb6\x8e\x35\xf1\xe2\xdd\x0d\xa4\ +\x0e\xb8\xef\x54\x0f\x67\x06\x29\xe2\x88\xe0\x9c\xc3\xc4\xe4\x04\ +\xd6\x06\xf1\xe1\x1f\x54\xf9\x33\xaa\x9b\x37\xe8\xe6\x21\x91\xd6\ +\xce\x36\xd7\xe7\x73\x5a\x16\x27\x1b\x3d\x15\xa9\x97\xc5\x9f\xb0\ +\x28\x23\xaa\x57\xcc\x2a\xf9\x52\x58\x3b\xb3\x90\x76\xae\x32\x7b\ +\x83\x0e\x22\x42\x09\xc0\x84\xb9\x3d\xd7\x74\xfb\x54\x12\x4a\x56\ +\xd5\x2d\xb0\x75\x30\x4d\xa3\x30\x84\xb0\x49\x45\xba\x9d\xe0\xb2\ +\xc5\x77\xab\x9a\x1f\x42\x11\x6b\xf0\x0f\xac\xc7\x06\x2d\xa5\x1a\ +\x0b\x24\x01\xf8\x18\x03\x67\x1d\x92\x5e\x1f\xfd\x95\x55\xf4\x37\ +\xfa\x70\xcc\x88\x63\x83\x3d\x53\x2d\x5c\x30\xd9\xf2\x91\xfd\xc4\ +\xc4\x04\x96\xce\x35\x1f\x0f\x15\x44\xbe\x77\xfc\xc2\xb7\xbd\xbe\ +\xac\xe4\x69\x5c\x46\xc4\x4b\x8e\x88\xcc\xc9\xb9\x13\x7f\xfb\x85\ +\x89\xd5\xc7\x5e\x14\xb7\x5b\xe8\x4c\x4f\xfb\xf4\xac\x30\xed\x65\ +\x7a\x4c\x02\x22\x86\x4a\xf2\xaa\x5f\x9e\x6a\xeb\xe8\xf2\xa2\x29\ +\x34\x8f\x2a\xe0\x83\x07\x9c\x18\x01\xb5\x8a\xab\xfe\x9c\x83\x9e\ +\x30\x3b\x4a\x31\x9c\x99\xc5\xfe\x2d\x5b\xcb\x18\x83\x19\xd8\xb5\ +\x82\x7d\xe9\x9c\x12\xc2\xea\xeb\x59\x05\xab\x32\xf3\x28\x99\x4c\ +\xd5\xdf\xeb\xa0\xb6\xc6\x8a\x31\xd7\xd4\x00\xb8\x22\xe9\xce\x9e\ +\x01\xf7\x4f\x23\x4a\x62\x6c\xbb\xe2\x72\x5c\x16\x35\x01\xeb\xf0\ +\x9f\x9f\x5c\x45\x3f\x01\x9e\xb9\xaf\x8b\x99\x8d\xd6\xd1\x4b\xf6\ +\x14\x5d\x4c\x56\x0f\xb5\x20\x91\x06\x4a\x56\x0a\x87\x36\x83\x0c\ +\x03\x40\x7b\x78\xf6\x02\x00\x88\x5a\x2d\x71\x73\x49\x74\x02\x69\ +\xad\x55\xd5\x0b\x51\xe9\x0a\xc2\xf6\x4a\xaa\x85\x1a\xb0\x0f\xa8\ +\xd3\xba\x90\x32\x51\xf3\x44\x12\x00\x8e\x4a\x21\xb3\xef\xe7\xfa\ +\x29\x28\x8e\x4a\x2e\x59\xd8\xd8\x4f\xf5\x98\x78\x2d\xfd\xa3\x9e\ +\x13\x92\x03\x4a\xc1\xfb\x33\xe9\x21\x17\xc1\xe1\xfb\xa7\x73\x10\ +\x7f\x8a\x3b\x48\x26\x4b\x1d\x9d\x63\x9c\x7a\xf8\x20\x96\x8f\x9d\ +\x84\x33\x84\xe7\x6c\x1f\x87\x69\x34\x61\x9a\x9d\x73\x89\x8b\x06\ +\xb2\x01\x96\xa4\xde\x31\x60\x2a\x71\x07\x05\x3e\x49\x00\x1d\x8d\ +\x64\x7d\x11\x44\x88\xe2\x38\x07\x5d\xf2\x3e\x39\x75\x52\xba\x8c\ +\xcb\x02\x79\x2b\x2b\x57\x32\x8a\x2f\xe1\x5d\xaa\x85\x7c\xa5\xf9\ +\xaf\x60\x78\xa5\xc0\x28\x80\x4c\xfc\xc2\xa1\x1a\x70\x09\x57\xf3\ +\xe8\x05\x8f\xe0\xc0\x53\x17\x65\xae\x40\x47\x8e\x41\x70\xb6\x79\ +\x1b\x19\x07\x98\x9f\x8c\x51\x28\xcc\xfd\x29\x48\x03\xc5\xbb\xaa\ +\x36\x77\xe6\x00\x2b\xa8\x73\x8f\xe5\x77\x4d\xfa\x7d\xf4\xce\x9c\ +\x45\x32\x18\xa1\x13\x47\xf8\xc5\xc5\x71\x34\x56\x4e\x1f\x41\xfd\ +\xcb\x7c\xdc\x6e\x40\xd5\x94\x37\x84\xd1\x89\x80\xe6\x68\xad\x4b\ +\x9c\x8e\x11\x65\xf5\x6f\xdd\x31\x17\x62\x2f\xe5\x41\x86\xc8\x9e\ +\xaa\x64\xe5\x45\x0c\x52\xe7\xcb\xea\xcb\x31\x4b\xbb\xc1\x08\xcb\ +\x74\x95\x0e\x7c\x41\xfc\x60\xae\xaf\x9d\x78\x9a\x19\x33\x5c\xe2\ +\x60\xda\x51\xbd\x8f\xe6\x32\xf8\xe3\x40\xb0\x09\x55\x46\x70\x18\ +\xbd\x17\xad\xe2\x24\x6a\x22\x14\x92\x3f\xa8\x7a\x38\xc4\x08\x5c\ +\x16\x94\xf4\x90\xec\x8f\xf4\x46\xda\x60\xd4\xeb\x63\x7d\xe9\x34\ +\x18\x84\x06\x18\x83\x24\x7a\x9c\x6a\xe2\x0c\x4d\xca\x11\x19\x1c\ +\x4b\x8e\x5d\x00\xef\x76\x7b\x47\x77\x80\x08\x64\x88\xad\x9f\xf4\ +\x15\xb6\x37\xc9\x8e\x59\x56\x60\x9c\xf2\x79\x81\x04\x2b\xd7\x40\ +\x50\x3d\x76\x5e\x93\x54\xf0\x55\xe3\x62\x74\x88\xe9\x2d\x08\x07\ +\xaa\xaf\x32\xf3\x34\xa7\x92\xc5\x11\x54\xfe\x21\x04\x39\x04\x6b\ +\xd4\xc1\x30\x87\x35\xa3\x20\xa2\x2f\xf9\x10\x15\xcf\x55\x3d\xc3\ +\x5a\x01\xdc\xc4\x03\x21\xc4\xaa\x98\x01\x13\x47\x58\x3d\x7a\x0c\ +\xe9\x68\x08\x10\xe1\x2c\xcd\x1f\x66\x4d\x81\x50\x4a\x0e\x02\x0c\ +\x87\x7f\x0c\xda\xe0\xb2\xef\xe9\x68\x65\xea\xd2\xc7\xfa\x9d\xad\ +\xf7\xb1\xb5\x64\x47\xa3\x72\x60\x4b\xc0\xd1\x62\x55\xaa\x65\x15\ +\x9a\x7b\x8b\x10\x04\x53\x3e\x30\x92\x19\x29\x73\xf0\x5e\xe5\x01\ +\x92\x90\x60\x09\xb4\x50\xc5\x9f\xb1\xbe\xf3\x01\x48\x68\x87\x16\ +\x14\x91\xa2\x0e\x84\xee\x8b\x03\xe8\x19\x1c\xd8\x1d\x61\x25\x20\ +\x84\x56\x1f\x38\x57\x4f\x5f\xa4\x83\xde\x4a\xa0\x26\x4d\x21\xdd\ +\x7f\xa0\xeb\x3d\xa4\x0b\x52\x0c\xc4\xad\x36\xe2\x56\x2b\x83\x0e\ +\x30\xbb\xb4\xa9\xf0\x14\x31\x40\xe8\x9b\x8a\x14\x9e\x65\x2a\x4a\ +\x86\x89\x80\x66\xba\xbe\x15\x44\x88\x1a\x0d\xa5\xb7\xe5\x21\xb3\ +\x22\x78\x56\x7a\x23\xc4\xcf\x24\xcd\xba\xd0\x28\x9d\x86\x95\x3f\ +\x3b\x5f\x64\x09\xf8\x01\xd2\x10\xa8\x32\xb2\x9e\x4c\xa2\x86\x56\ +\x14\xfe\x7f\xf1\x61\xec\x7f\xe2\x22\x51\xa3\xa8\x0a\x41\x45\x80\ +\xf2\xd4\xb1\x52\x94\x73\x55\xf0\x86\xb9\xaa\x71\xf5\x0d\x22\x81\ +\xf2\xd4\x59\x86\xca\x8c\x9a\x00\xbf\x01\xe0\x1c\xa3\xd9\x6d\xc3\ +\x44\x06\x09\x9a\x27\xeb\x5f\x2f\xeb\x13\x19\xdf\xa0\x12\xf8\x72\ +\x5d\x44\x4b\x40\x94\xf6\xb7\x81\x08\x26\x0f\x02\x89\x04\xf9\x53\ +\x04\x8c\x24\x2f\x34\xc0\x51\x74\x9a\x49\x55\xd1\xa4\xaa\xc2\x94\ +\x3e\x2b\xa4\x83\xd6\x0f\x98\x62\xed\x7b\xf4\x79\xba\xd2\x6c\xdb\ +\x91\x85\x69\xc5\xa2\x94\xcc\x02\x2d\x44\x65\xec\x4c\xe5\xc6\x7b\ +\xd8\x7a\x93\x14\x51\xc6\x2d\xa4\x63\x21\x4f\x03\x0f\xb8\xaa\x8a\ +\x5c\x22\x83\x5c\x84\x37\x43\xb4\x9d\xfb\xeb\x73\x68\x8d\x8f\x83\ +\x19\xe8\xd1\xf8\x61\xa9\xdc\x84\x60\x84\x62\x81\x03\x54\x78\x2e\ +\x35\x2f\x02\x03\x9d\xde\x89\x39\x22\x8e\x41\x86\x9d\xb5\x64\xa2\ +\xa8\x52\x60\x21\x47\x79\x65\x0a\x62\x62\x97\x28\xd7\xfa\x20\x06\ +\x12\x24\xd5\x52\xc9\x21\x75\x43\xf0\xfc\x29\x30\xcb\x01\x09\x43\ +\x64\x4a\x25\x92\xc9\x75\x52\x00\xfc\xc6\xbf\xfa\x1f\xfc\xcb\xdf\ +\xfb\x8e\x3f\x28\xc3\x33\xc7\xa8\x86\xff\x41\x89\x99\xb5\x79\x67\ +\x39\xc8\x8a\xeb\x53\xc2\xca\x19\xd6\xa0\x92\x00\x54\x3b\x3b\x18\ +\xb5\x88\x61\x5d\xba\x59\x04\xdb\xcd\xf1\x71\xb0\x73\x58\xa3\xa9\ +\x43\x84\x0a\x56\xa7\x06\x69\x15\xc8\x7f\x2d\xf7\x42\x07\x21\x8e\ +\x7a\xdd\x6d\x67\xd6\xc7\x76\x7d\x19\xec\x28\x1d\x0c\xf2\xc3\x08\ +\x06\x1f\x50\xd8\xf0\xc0\x41\x0e\x22\x4a\xbd\x92\x60\xe1\xab\x60\ +\x5c\xc5\xc3\x8b\x51\x33\x45\x57\x2e\xaa\xf3\x87\xa4\xd6\x7b\x53\ +\xee\x58\x8d\x75\x03\x38\x20\x59\x02\xb7\xfe\xde\x2d\xe2\xd2\xaa\ +\x44\x0b\x86\xe6\x06\x78\xac\x42\x99\xf9\x9a\xe0\x56\x80\x52\xfa\ +\xb6\x52\x2d\x04\x52\xc1\x0c\x44\x3a\xc8\xa8\x77\x05\x2c\x34\x89\ +\xcb\x0a\x12\x1a\xdd\x36\xc0\x8c\xb3\x34\x7f\x44\x59\x76\x0e\xac\ +\x4c\xfe\xf2\x98\x35\x60\x07\x39\xef\xb1\x9c\xb6\x9a\xc1\x05\x8d\ +\xb4\x37\x9b\x31\x5a\x22\x61\xd6\xb2\x99\x37\xd9\x8f\xd2\x07\x68\ +\xaa\x17\x85\xb8\x67\x5d\xe1\xa3\xe2\x20\x79\x13\x89\xe7\x60\x74\ +\x1b\x57\xfd\x74\x98\x96\xca\xd7\x9b\xec\x3a\x3e\xf8\x3f\xdf\xa9\ +\xc9\xa1\xa1\x9f\x54\xaa\x17\x1f\x00\x00\x1e\xb5\x49\x44\x41\x54\ +\x95\x83\x24\x78\x33\x0d\xa7\xca\x35\xeb\x48\x3f\x20\xbe\xd6\x61\ +\x12\xe0\x8a\x55\xd9\x0c\x78\x02\xe9\x0c\x42\x92\x45\xe3\x56\x13\ +\x51\xa3\x81\xd4\xd2\xc6\x10\x9d\x9e\xe2\x4a\x52\x80\xed\xc8\x34\ +\x10\x35\x29\x0a\xd7\x58\x82\x33\x53\x97\x7d\x95\x4d\xdc\x4f\x86\ +\x43\xd8\xbc\xdd\x5b\x69\x56\xa1\xf1\x4e\xd6\xed\x43\xaf\x2d\x2d\ +\x00\x87\x7f\x51\xa9\x1d\x73\x4d\x74\x1e\x68\x3c\x04\x7c\xcb\x21\ +\x9c\x1a\xd6\xed\x51\x6e\x04\x79\xd3\xbb\xde\x94\x99\xff\xb7\xbf\ +\x0f\x92\x69\xa5\x4a\xc9\x4e\xd2\xce\x50\x8d\x05\x6a\x60\x5c\x7d\ +\x0f\x49\x8d\xae\xf1\x64\x92\x42\xb8\x42\x86\x57\x40\xf8\x27\x66\ +\xed\x2a\x59\x5b\x33\x25\xeb\x8e\xd1\x1a\xeb\x02\x44\x18\x52\xfb\ +\x08\x07\x61\x18\x97\xc4\x28\x2f\x3c\xe4\xa1\x60\xae\xfa\xff\x70\ +\xd8\x26\x03\xd8\x18\xdf\x7d\xcc\xb0\xeb\x90\x31\x20\x63\x2a\x35\ +\x6c\x0e\x80\x59\x85\xe2\x09\xb2\x43\x98\x38\x88\x49\x92\x9a\xf6\ +\xe7\x39\x83\xac\x70\xfa\x92\xff\x56\x6a\xaa\xef\x9c\xf1\xe6\xbf\ +\xdc\xf9\x83\x00\x85\x64\x06\x6c\x62\x75\x21\x27\xac\x25\x48\x21\ +\x2d\x9b\x91\x95\x65\x60\xae\xf1\xcd\x1c\x7e\xb9\x00\xe7\x63\x0e\ +\x28\xaa\x61\x8a\x48\xe0\x00\x18\x0b\x81\x41\x55\x34\xca\x9f\xe7\ +\x6c\x8a\xe6\xf8\x38\xe0\x18\xeb\x98\x38\xa4\x62\xad\x00\xaa\x94\ +\xf2\x1c\x87\xe8\x13\x07\xfc\x6a\x19\x80\x8c\x6f\x1c\xde\x99\x51\ +\x00\x8c\xe8\xeb\x0f\x81\x2a\xd1\xe3\xeb\xd9\x41\x12\xe6\x0c\x25\ +\x26\xaf\xeb\x53\x35\xc0\x51\x94\xf3\x5a\xe6\x6d\x40\x32\x45\xd5\ +\x0c\x13\xd7\x40\xd2\x96\x7d\xda\xc6\x0e\xb5\x8c\x5e\x0e\x6a\xfa\ +\x15\x13\x4f\x35\xc5\x1f\xc5\xd1\xd3\xe6\x80\x24\xeb\xb9\x06\xaa\ +\xa0\xfa\x51\xa4\xf5\xf0\x81\xea\xbd\xc8\xba\xa1\x27\xb6\x6d\xcd\ +\x89\x3a\x8c\x15\x9a\x3d\xac\x94\x98\x74\x80\x2c\x63\x77\xa3\xf1\ +\xe9\x9a\xa9\xdd\x02\x29\x4c\xa3\x6e\x2f\x8d\x3b\xa7\x1c\x3b\xd8\ +\xc1\x30\xa0\x72\x55\xcb\xb9\xc5\xa8\x57\x5d\x06\x16\x79\x34\x02\ +\xc4\x90\x11\x00\x30\x14\x34\x8b\x6a\xd4\x51\x05\x5a\xc5\xeb\x5d\ +\xe9\x82\xb8\xa6\xee\x40\x0c\xa4\xc3\x14\x14\xa1\x86\x82\x5e\x4f\ +\x4b\x47\x80\x66\x86\x58\x40\x08\x6a\x69\x1c\x42\xe3\x21\x1c\x40\ +\x73\xfe\x3b\xe4\xdf\xd5\xb7\xd0\x31\xd7\x07\xe6\x41\x1c\xc2\x00\ +\x4c\x1c\x63\x6e\xef\x1e\xc4\xcd\x26\x33\xb3\x5d\xc1\xdc\xc9\xba\ +\x2a\x3f\x07\x2e\x9d\x08\x88\xc1\xba\x8d\x1f\xc2\x3f\xb0\x94\x18\ +\x02\x06\xed\x85\xe5\x34\xee\x9e\x8a\xd3\xfe\x42\x36\xea\x25\x94\ +\x7e\x52\x85\x8c\x32\xe0\xa0\x80\xf7\x2f\x4c\x5b\x4d\x50\x23\xa9\ +\x61\x9a\x16\xc6\x01\xd7\x40\x47\xcf\x1c\x04\x60\x0a\x12\xf6\x53\ +\xc3\x08\x8f\xee\x7a\x04\xfb\x1e\xb9\x48\x65\x27\x3a\xa0\xa4\x4a\ +\xcf\x61\xa5\x41\x45\xfc\x37\x2b\x33\x2d\x88\xa7\xea\x39\xd5\xc0\ +\x56\xe7\xf1\xae\xa6\xe8\x54\xcd\x8a\x2a\x89\x9a\x63\xb4\xc6\x3a\ +\x00\x33\x86\x68\x1d\xbb\x3f\x7a\xee\x9d\x8a\xdb\x43\x35\x00\x94\ +\xb0\xf2\xb1\xfc\xae\x14\xa4\x15\x95\xbc\x91\x80\x4e\xb2\x7a\x20\ +\x9b\x80\x6d\xca\xfc\x57\x91\x42\xc5\x70\xc6\x4d\xa2\xfd\x92\x9e\ +\x05\x35\xdc\x31\xbc\xb1\xe0\x7a\x92\x85\x8e\xee\x29\xdf\x14\x12\ +\x80\xde\x90\x9d\x83\x7a\x7e\xbb\x1d\x59\x44\xad\x38\x88\x51\x48\ +\x58\x2d\x0d\x1a\x85\xc2\x56\x6a\xa9\xf8\x0c\x55\x44\x20\x3d\x91\ +\x94\x59\x09\xaa\x2b\xf8\x92\x4c\x55\x33\x8f\xaa\x1b\xd2\xf3\xcc\ +\x83\x42\x95\x73\x68\x8e\x8f\x81\x01\xf4\xa8\xfb\xa4\xaa\x59\xd4\ +\x00\x40\xe1\x60\x6d\x23\xfa\x19\x6a\xc1\x20\x45\x1f\x72\xa3\x38\ +\x89\xba\xc7\x89\x00\x3b\x1a\x6a\x13\xa6\x46\xc2\x6b\x22\x03\x73\ +\xc8\x16\xd2\x11\xbc\x82\x6b\x1d\x97\xa3\xd9\x83\x82\xcf\x66\xcd\ +\x91\xaa\xd4\x1c\xd8\xc7\x72\x30\x75\xfe\x5e\xd6\xc1\x59\x87\xa8\ +\x69\x02\xce\x81\x53\xcc\xe3\xf7\xbd\xf5\xfd\xda\x1d\x81\x6b\xcd\ +\x3a\x15\x93\xae\x05\x58\xa4\x39\x0d\x1a\x07\x71\xbe\xce\xb1\xc9\ +\x7c\x20\x85\x33\xc8\x9a\x01\x57\x1a\x42\x8b\xff\x6c\x8d\x8f\x03\ +\xce\xe1\x1c\x66\x1e\xaf\x65\xc4\xff\x00\xc6\x94\x09\x53\xd4\x9a\ +\x44\xa0\xfc\xb3\x69\xa6\xa7\x67\x7e\xe6\xf3\x84\x6c\x08\x04\xc9\ +\x3e\x3d\x57\x03\x51\x8b\x2f\x4f\xe2\xb0\x25\xf0\x52\xd9\xe8\x25\ +\xa7\x6d\x06\x91\x7b\x45\x02\xb8\x86\x0f\x50\xc1\xff\xa1\x62\x08\ +\x9b\x38\xcf\xc5\x57\x28\x5f\x2d\xf9\x24\xcc\x1e\x38\x10\x5e\x0e\ +\xfc\x3b\xfb\xb8\x85\x5d\x10\x9f\x54\xfc\x3e\xd4\xda\x1a\x65\xf1\ +\x6a\x58\x4d\x1c\x80\x4c\xc5\x7b\x18\x63\xd0\xe8\x64\x33\x19\x97\ +\xcd\xfc\x11\xaa\x41\xd8\xa9\x8e\xb4\x50\x69\x0c\xa1\x1a\x9c\x46\ +\x06\x0c\xf9\x8f\xad\xe1\x99\xad\xf9\xd4\x2a\xb6\xa9\x55\x52\xae\ +\x02\x3e\x89\xda\x51\x50\xeb\x0f\x6e\x3a\x33\x54\x6b\x17\xb3\x2e\ +\xf9\x32\xd7\x68\x5f\x90\x1a\xfa\xb4\xcf\x95\x9a\xc6\x41\x30\x46\ +\x94\x05\x80\x26\x32\xd5\x98\x4a\xd4\x11\xde\xf6\xbe\x7f\x06\x00\ +\xf8\xcd\xf7\xbf\x4d\x53\xcb\x38\x08\x09\x38\xe8\x43\xe0\x32\x05\ +\xa0\xe0\x39\xec\xb4\x40\xb1\xd8\x66\x26\x85\xb5\x96\x3d\x14\x62\ +\x59\x42\x51\xa2\x56\x13\x51\x23\x86\x45\xb4\xd1\xe7\x56\x5f\x7e\ +\x57\x84\x55\xd3\x70\xd6\x36\x00\x13\x6a\x7e\x50\xd4\x0b\xd2\x5b\ +\x47\x4b\x33\x57\xdd\x3f\x6a\x4c\x3e\x2e\xe7\x3c\x41\xc1\x9e\xac\ +\x08\x1e\xa4\xc3\xfa\x20\xaa\x67\xd5\xe8\x51\x19\xfd\x52\xe7\x06\ +\x9c\x76\x35\x45\x64\xcf\xcc\x8a\x43\x27\xcd\xb2\xd4\xd6\x47\x77\ +\x1f\xc4\xfe\xc7\x0f\x64\xfd\x88\x08\xca\xbd\xcc\xf8\xcd\xfc\xf0\ +\x8b\xc7\x6f\xfe\x9f\x6f\xd3\x8d\x21\x5c\xf5\xd7\x12\xda\x96\x02\ +\x5c\x03\xfc\x69\x60\x49\x76\x13\x29\xd0\x49\xcf\x03\x08\xbf\x87\ +\xb7\x32\xd6\x21\x6e\x77\x00\x18\x0c\xb8\x7d\x44\xb7\x48\x05\xa4\ +\x13\xaa\x69\x9a\x62\x20\x96\xfb\x0f\x88\xaa\x2c\x68\x5d\x7f\xce\ +\x3c\x46\xd3\xf6\x76\x4a\x9e\xbd\x62\x9a\xb0\xee\x54\xe5\x5a\x20\ +\x84\x82\xf2\xa8\xf8\x5d\x08\x1c\x6f\x52\xa2\xa5\x9a\xcc\xa0\x1e\ +\x01\x2c\x9a\x39\x33\x3f\x6a\x93\x2c\x00\x94\xdc\x42\x16\x83\x83\ +\xff\xcd\xff\xf8\x1e\x80\x81\xdf\xfc\xc3\xb7\xe1\xf6\x37\xff\x9b\ +\x20\x18\x0c\x2a\x92\x1c\x0c\x70\x0a\x6b\x09\x1c\x36\xbc\x84\xcc\ +\x25\xd9\x64\x12\x04\xa2\x61\x4d\x25\x38\x56\x9b\x5a\xcc\x5d\xb8\ +\x07\xed\xa9\x49\x66\x6b\x69\x03\xe3\x87\x25\xa6\xa0\xc6\x18\x87\ +\xf9\x3f\x49\x20\x88\xeb\xc9\xba\x6a\x7c\x8d\x00\x85\xda\xc9\xea\ +\xb8\x61\xdb\x62\x43\xcc\x8e\xb3\xb6\x81\x62\x56\x10\x4b\x80\x02\ +\xc1\xc0\xf4\x60\x1e\x00\x58\xd7\xd0\x2b\x8d\x9b\xa8\x64\x00\x61\ +\x01\xad\x8a\xd1\xe8\xcf\x50\x9d\xc3\x80\x9f\x16\x66\xa2\x9a\x34\ +\xcf\xd5\x11\x37\x50\x03\xf4\x70\xa5\xb8\x58\x4d\xb6\x59\x1d\x28\ +\xea\x14\x42\x94\xe7\xe4\xca\xba\xac\x17\x03\x9b\x4f\x0c\xf3\x19\ +\x1b\xa1\x35\x36\x06\x13\x47\xb4\xca\x93\xf7\x2f\xd1\xd6\x87\x15\ +\x5d\x8c\x49\xd7\x0f\x02\xe6\x77\xf1\x3e\xa6\xb8\xa1\x9b\x2d\xea\ +\xd2\x53\x30\x1c\x0d\x1a\x53\xeb\x4b\x53\xcf\xf8\x38\x31\x88\xb3\ +\x87\xc6\xee\xd5\xf7\xd3\x00\x4e\x19\x58\x89\x85\xcb\x72\x10\x84\ +\x63\x05\xda\x94\x91\xb7\x53\x81\xa1\x1e\x1a\x09\xfd\xda\x60\x6c\ +\x3b\x71\xd9\x66\x96\x8e\xac\x9f\x60\x56\xa0\x75\x1c\x10\x3e\x98\ +\xab\x88\xa3\x76\x43\x08\xfc\xb6\xa8\x7d\x48\x01\x09\x5c\x4f\xe1\ +\xa6\x24\x8b\xaa\x8c\x0b\xe4\xb5\x90\xa6\xd4\x39\x1d\x74\x50\x9e\ +\x14\x46\x71\x8c\xb8\xd5\x04\x3b\xb6\xdf\xe3\x67\xfe\xc5\x1a\xa6\ +\x97\x51\x01\xbf\x6a\xd0\x55\x52\x7d\x3b\x39\x23\x88\x6a\x8a\x55\ +\x75\x19\x81\x31\x4c\xec\x68\x69\xf2\xf2\xef\xf5\x9b\x33\xdf\x45\ +\xdd\xe2\x1e\xe6\xda\x1b\xc7\x95\xdf\xeb\x9b\x2e\x09\x1b\xb2\xc4\ +\xca\x95\x72\x32\x7c\xa0\x07\x35\x01\x3c\x4c\x93\xc4\xe4\xcd\xfc\ +\xf1\xe8\xee\x83\xb8\xf0\xfb\xfb\xab\x9c\x41\xc7\x55\x86\x71\x25\ +\xb7\xaf\x1f\xce\xa4\x4c\xbf\x0b\xaf\x39\x98\x63\x20\xaf\x3d\x08\ +\x8a\x95\x22\x85\xe5\xbf\xa0\xe3\xc6\x59\x87\xb8\xd3\x01\x99\x08\ +\x09\x5a\x27\xe5\x67\xd7\xf5\x50\x78\xa8\xbf\xba\xfc\x24\x6b\x0e\ +\xe5\x1a\xe0\x80\xa9\xca\x22\xcd\xdc\x40\x1e\x07\xb8\xde\x36\xbf\ +\x81\xa7\x40\xc2\x84\xef\x2e\x4c\x59\xc5\x7c\x07\xcb\x19\x34\xbd\ +\x19\xa8\xe7\x62\xd7\xf4\xe9\x7b\x5f\x49\x22\xe8\xe4\x7a\xdc\x33\ +\xff\xe4\x74\x64\x11\x37\x23\xaf\xbd\x50\x0d\x25\xa8\x2d\x43\x73\ +\xa5\x36\xc0\xf5\x81\x9d\xbf\xc9\x5c\xc6\x0d\x54\xf3\x3d\x02\x57\ +\x59\xe9\x60\x27\x39\xa1\x26\x28\xaf\xe5\x16\x21\x6a\x34\xd0\x9e\ +\x98\x00\x98\xd1\xe3\xb1\xc3\xaa\xfd\xbc\x52\xc6\x25\x11\x07\xe9\ +\xba\x40\x39\xb0\x87\xeb\xa9\x67\x35\xdd\xd1\xfe\x87\x53\x13\x97\ +\x7f\x16\x44\x4e\x29\x49\x25\x5d\x0b\xb5\xb3\x86\x24\x82\x00\xd4\ +\x71\x22\xaa\x76\xac\xca\xbc\xfe\x79\xf9\x73\xc8\x41\x8f\x84\x71\ +\x55\x9a\x89\xaf\x32\xba\x6c\x06\x50\xdc\x88\x7c\x03\x68\x59\x9b\ +\x40\xd5\x7d\x20\xc0\x2c\x14\xdd\xbd\xae\xf4\x2d\x6b\x08\xb9\x70\ +\xb9\x10\x9f\xa0\x00\xbb\x60\x4d\xfd\x82\x00\x97\x02\x4e\x6d\xe9\ +\x36\x2c\xe6\x0f\xec\xc7\xc4\xb6\x05\x38\x6b\xb1\xca\x53\x4f\xf8\ +\x7b\xa2\x52\x69\x12\xa5\x67\x6c\xba\x4d\x2d\xae\x4c\xcd\xa2\x6a\ +\xdf\xa6\xda\xc5\x98\x67\x0a\xc3\xe6\xdc\x69\xf2\x8d\x25\x45\x97\ +\xac\xe8\xc0\x0d\x80\x20\x39\xe4\x90\x05\x6c\x5c\x76\xc9\x54\x03\ +\x30\x56\xe0\x08\xea\x03\x22\x05\xe3\x42\xc5\x22\x52\xbb\x39\xcd\ +\xae\xd1\x90\x98\xf4\x56\xc7\xd1\xe0\x2a\x85\x96\xc3\xd2\xaa\x10\ +\x04\x0a\x37\x89\x88\x37\x72\x08\xd3\x69\xae\x5a\x3c\xd6\xec\x60\ +\x3f\x13\x50\x05\x83\x05\x84\xcc\x20\x13\x23\x6e\x36\x00\xc7\x78\ +\xc4\x5d\x7a\xc7\x0a\x66\x4f\x91\x29\xad\x21\xfb\x35\xba\xec\x4b\ +\xcb\x44\x41\xf3\x81\x68\x00\xd7\x84\x10\xaa\xb2\x4f\x94\xf0\x0a\ +\xdf\x61\xc9\xb8\x51\xa3\xfb\x14\xa1\x1c\x03\xcf\xb5\x50\xae\x6e\ +\xcb\x52\xb0\xaa\x63\xbf\x75\xa3\x8e\xda\xc5\xa2\x9f\xbf\x42\xc4\ +\x50\x78\x81\x13\x81\x64\xb8\xaf\x30\x0b\x9a\x0e\xee\x3d\x88\xbd\ +\x8f\xec\xd3\x4d\x9e\x28\xd7\xd4\x87\x64\x0b\xdd\xcd\x44\x15\x74\ +\x92\x15\x73\x84\x6a\x51\x4a\x0a\xe6\x00\xa8\xcd\xe4\x22\x90\xd4\ +\xd6\x31\x10\x08\xd9\xf3\xe0\x1c\xe2\x46\x0c\x8a\x62\xa4\x1c\xaf\ +\x9d\xe5\x2d\xc7\x19\xe4\x58\x81\x47\xae\x16\xa4\xe2\x60\x8c\x4d\ +\x21\x98\xb1\xf4\xf5\x21\x51\x57\x69\x3d\xeb\x8c\x60\x18\x4f\xad\ +\xa7\x66\x6c\xa9\x49\xbd\x5d\x3e\x0a\x2f\xc6\xc1\x8a\x1b\xc3\x75\ +\x9c\x78\xae\x65\x81\x06\x1d\x45\xc1\xcb\x9c\x98\x43\x58\x59\x0c\ +\x15\x44\x11\xac\xf1\x05\x26\x20\x1d\xa5\x88\x9b\x91\x36\xf1\x2a\ +\xda\xa7\x4a\xf5\x8d\x9d\x9e\x37\x28\x35\xb8\xb8\x6c\xa7\x86\x60\ +\x71\xd5\x74\x53\xcd\x10\x68\x11\x68\x31\x71\xa5\x7f\x81\xc5\xfe\ +\x04\x1f\x5f\x5a\x8b\xf6\xe4\x24\xba\xf3\xb3\x4c\x00\xf5\xd1\x7e\ +\x32\x8f\x8d\xfc\xd4\x6c\x96\xfb\x4a\x6b\xd6\xe9\x91\xe0\xfa\x71\ +\x1e\x00\xc4\xc1\x48\x00\x1d\xf5\x53\x7d\x3a\xe8\xad\x80\x69\xf6\ +\xb2\x4e\x60\x03\x86\x15\xdd\x3c\xa8\x04\x2f\x72\x61\x63\x08\x16\ +\x61\xb3\x7e\x0e\xae\x07\x5f\xc2\xc3\xab\x7b\x2f\x96\x8d\x22\x2e\ +\xab\x01\x34\x9a\x51\x36\x9c\x2a\xc4\x0e\x02\x01\x65\x46\x05\xd7\ +\x00\xd7\x81\x41\x75\x55\xca\x82\xdc\x4a\x25\x06\xe1\x0f\x39\xbf\ +\x07\x4e\xd4\x3f\xb9\x9a\x9b\x4b\xeb\x53\xe8\x88\x4b\x2d\xc6\xb6\ +\xcc\x63\x6c\x6e\x86\x6c\x6a\xdd\x3a\x4f\x1e\x2e\xf9\x9b\x65\x37\ +\x29\x51\x20\x8f\x9c\xe1\x77\x24\x69\xef\x86\xf2\xe9\x6e\x94\x75\ +\x06\x85\x24\x10\x84\x14\xfd\xc0\x07\x16\x82\xfe\xe4\xf4\xcf\x7d\ +\xd1\x51\xe3\x1c\x40\x19\xbe\x2e\x9a\x3a\x58\x0e\x4f\x82\x58\xff\ +\x1a\x22\x66\x35\xff\x68\x78\xb8\x5e\x30\xd4\x06\x11\x57\xc2\xaa\ +\xa5\x49\x87\x9f\xc0\xed\x6c\x36\xf0\xd9\x44\x24\xa6\x85\x07\x24\ +\x16\x85\x45\xb0\x2a\x06\xf1\xa6\xd0\x75\x50\xb0\xf2\xd8\x82\x56\ +\x01\x66\x39\x38\x4b\x13\x68\x48\xb9\x83\x30\x87\xcf\x5d\xab\x75\ +\xd8\x7a\xe9\x25\x68\x4d\x8c\xb3\x4b\x2d\x1e\x48\x9f\xfd\x9e\x43\ +\x6e\xff\xbd\x54\xe0\x1c\x4e\xb8\xda\x1f\x40\x8e\xe5\x82\xb1\x25\ +\x16\x78\xc7\x95\x6e\xe0\xb0\x87\x2c\x14\x82\x40\x52\x0f\xcd\xbc\ +\xe0\xce\x7d\x67\xff\xf3\x3f\x03\x45\x4c\xc4\x94\x4d\xd9\x12\x5a\ +\x24\x24\x5f\x0b\x15\xd5\xb7\xab\x70\xc8\x10\xe6\xea\x88\x98\xda\ +\x80\x50\xbc\xd8\xe9\xef\x94\x24\x16\x94\xef\x30\x60\x66\xbc\xe3\ +\x43\xe5\x82\x8d\x7f\xfe\xe1\x77\x00\x00\xde\xfd\x86\x77\xd7\x8e\ +\xa2\x21\x09\x3b\x93\x8e\x6d\x2a\xcd\x20\xb2\x73\x29\xac\xcb\x72\ +\x6d\xef\x4b\xcd\x6a\x61\xae\x70\x22\x4c\xb3\x89\xf6\xd4\x04\x9c\ +\x75\x76\xc3\x8d\x1d\xec\x73\x77\xa3\x24\xcc\x95\xf3\x93\x09\x01\ +\x05\x18\x5c\x31\xdd\xbe\xb7\x22\x5f\x66\x61\x36\x8d\x80\x83\xd9\ +\x3c\x25\x7b\x47\xf4\x01\x38\x4b\x83\x78\x6a\x6d\xa5\xb5\xeb\x0b\ +\x59\x80\x1a\xb1\x04\x42\x48\x56\xf6\x1c\x2a\x29\xa1\xfa\xb7\x0c\ +\x88\x64\x29\x17\x54\x02\x2c\x01\x97\x40\x4d\xd6\x0e\x4a\xc7\x2c\ +\x40\x97\xc7\x2e\x7c\x0c\x7b\x1f\xd9\xe7\xff\xf0\xee\x5f\xff\xd7\ +\xea\x96\xbf\xfb\xa6\x77\x97\x3b\x06\x6a\x00\x1c\x6f\x8e\x5d\xb5\ +\x1f\x40\x69\x88\x0b\x4a\xb7\xae\xa6\x3c\xce\x55\x9e\x44\x05\x10\ +\x73\xf9\xcd\x76\xd9\xb1\x36\x3a\xed\x6c\x9b\x39\x77\x9e\x78\x20\ +\xb9\xea\xe3\x80\x23\xdd\x76\xc9\x1a\x0b\xf1\x42\x44\xfa\x6c\x1d\ +\x89\x95\x3b\x99\xd0\x18\xc5\x02\xaa\x01\x7f\xb8\x82\xf5\x91\x70\ +\x03\x86\xc1\x8e\x8e\x4c\x5e\xf3\x95\x34\xea\x9c\x20\x22\x32\x51\ +\xa4\xf6\xfc\xd4\x45\xc7\x15\x42\x88\xbc\x71\xd0\x1c\xbf\xc2\xa2\ +\x14\x37\xb8\x5a\x6d\x63\x55\x23\x97\x33\x0a\x8b\xcf\x4b\x47\x16\ +\x8d\xa6\x01\xdb\x1c\x3e\x76\x99\xc6\x03\xc0\xbb\x6e\x7a\x97\xe0\ +\x26\xe8\x34\x52\x2e\xaa\x50\xe6\x3e\x68\x6a\x55\x66\xbf\x06\xef\ +\xf0\x2e\xd1\xa1\xda\xa3\xe8\xaa\x10\xb2\xef\x87\xb4\x16\xb3\x17\ +\x2c\x62\x7e\xff\x3e\x76\xa9\xc3\xc0\x75\x8f\xe6\xa9\x1e\xd7\x76\ +\x0a\x81\xb2\x54\x9c\x49\x0b\x9f\xab\x61\x66\xe5\x55\x54\xa3\xfc\ +\x7d\x85\x63\x07\x39\xa8\x5b\x34\x3c\x96\x41\x0d\xc3\x30\xc0\x38\ +\xd5\x39\xf0\x79\x07\x33\x8c\x1a\x71\x86\x2f\x3b\xf1\xe5\xa4\x84\ +\x03\xc1\xd0\x45\xcd\xf1\x77\x1c\xf8\xde\x4a\xc9\xb6\x8e\x57\xc0\ +\xc1\xe7\x95\x9f\xe1\x1c\xc3\x5a\x87\x28\x8e\x02\x6a\xb9\xc6\xd8\ +\xfd\x04\x70\x57\xd7\xcd\xa4\xad\x8f\x86\xa2\x35\x03\xaa\x6e\xca\ +\x57\x65\xf4\x5c\xcd\xb0\x4b\x76\x3a\x75\x2b\x62\x9c\x46\xa7\x03\ +\x76\x8e\x4e\xd8\xad\x77\x3f\x65\x77\xdd\x5b\x80\x5b\x5c\x89\x3b\ +\x8a\xcf\x09\xe9\xed\x80\x92\x97\x60\x1e\x98\x91\x3e\x89\x82\x72\ +\x32\xd5\xcc\xcb\x27\x96\x28\x61\x69\xb2\xce\xb4\xf7\x3d\x6e\xc0\ +\xad\xac\x4f\x3d\x2e\x0f\xcf\xe9\xce\x5d\xae\x09\xb2\xb4\x43\x74\ +\xe5\xdf\x9c\x66\xf6\xc8\x66\x93\x70\xb1\x92\x22\xa2\x14\x3b\x7c\ +\xf2\x00\x30\x2b\x63\x50\x65\x08\xc5\xbb\x5e\xf7\xae\x1c\x31\x0b\ +\x2d\x89\xd8\x49\xac\x82\x41\x9d\x9b\x23\x0c\x44\x65\x20\xe9\x58\ +\x37\xc7\x70\x48\x2f\x93\x33\xa5\x35\xdc\x57\xf4\x56\x76\x67\x67\ +\xb2\x7d\x46\xcc\x78\x3c\x39\x70\xcf\x86\x1b\x5f\xd3\x0d\xc1\x5c\ +\x4b\x6c\xf5\xc3\x38\xc5\x2e\x01\xc5\x63\x10\x74\x45\xc3\xa4\xeb\ +\xc3\x92\x3b\x2e\xf7\xf8\xe9\xf4\x84\xca\x5c\x32\x7f\x71\x2b\x5d\ +\xef\x8e\xcc\xf8\x61\x10\xa5\x26\x8e\x10\xb5\xf2\xb1\xab\x8a\x4f\ +\xc7\x4a\x93\x88\xeb\x1a\x3e\x74\x33\x49\xc8\x10\xe2\x3a\x3a\x56\ +\x71\x23\x43\x1f\x0d\xc2\x63\xfb\x1e\xc3\xee\x87\x2e\x0c\xc9\x76\ +\x82\xc4\xe1\x2a\x34\xee\x32\x73\x11\xe6\xd3\xb1\x06\x89\x98\x2b\ +\x69\xa7\x6a\x31\x0f\x4d\x3a\x73\xa5\xa9\x84\x02\xcb\xe8\x21\xdc\ +\xd4\xf9\x75\xba\x60\x86\xe5\x78\x15\x41\x0f\x27\x0b\x2a\xb9\xcc\ +\x18\x28\x84\xe4\x29\xa8\x61\xb0\xfe\x5e\xa6\x52\xec\xa9\x21\x83\ +\xca\x8b\x93\x75\x6b\x19\xc6\x0e\xa3\xf1\xde\xf7\x27\x9e\xff\xef\ +\x07\xd1\xcc\xc3\xc8\xb8\xea\x9c\xc5\x03\xce\x5b\x01\xe2\x72\x13\ +\xb7\x2c\x85\x72\x2d\xef\xae\xc0\xb3\x03\xc2\xa7\xf0\x9b\xa4\xb4\ +\x4d\x68\xaa\x58\x22\x95\x24\x99\xff\x57\x68\x9c\x34\xb7\x8e\x2a\ +\x6c\x25\x35\xa4\x22\x2c\x30\x09\x0a\x9b\x4a\xb9\x1c\x36\x75\x51\ +\x75\x43\xaf\xa8\x12\x54\xe6\x97\x93\xa6\x18\x9b\x9f\xc5\xd4\xce\ +\xed\xec\x52\x8b\x65\x37\xf3\xb5\x7b\xfa\xd7\xbc\x97\x25\xb2\x18\ +\xb0\x78\x6b\x7b\x2a\x0a\x4b\xe0\xa0\x47\xe5\xfa\x2e\x64\x12\x7c\ +\x80\xb0\x8b\x14\x1a\xe1\x94\x60\x09\x71\xb5\x31\x21\xf3\x4b\x8e\ +\x12\x6a\x0f\x0e\x8e\xff\xfc\x27\x7a\xd1\xcc\x83\x06\x44\x51\xa3\ +\xa9\xaf\x4a\xfa\xeb\xf0\x8a\x45\xfe\x5e\x29\xb8\x54\xa0\xdf\xd0\ +\x12\xeb\x12\xb2\x8c\xe0\x6d\xea\x70\xf4\x8a\x27\xf0\xf8\x45\x8f\ +\xd7\xfb\x76\xbf\x0c\x32\xc0\x21\x8a\x80\xd2\xc9\xcf\xd4\x1b\x41\ +\xb5\x00\x73\x5d\x45\x3c\xfc\x21\x88\x17\x84\x1b\x15\x50\xf6\xf8\ +\xfc\x3c\xda\x93\x13\x94\x5a\xde\x58\x4b\xa7\x0f\x81\x62\x47\xec\ +\x88\xc5\x6c\x23\x15\xab\x84\x13\x9b\x2a\x38\x40\x80\xef\xbb\xd2\ +\xfa\xc4\x95\x7a\x2f\xd5\x0c\x8a\xa8\x4c\xeb\x94\x51\x70\x61\x35\ +\xc8\x77\x2c\xb7\x78\x7d\x0f\x83\x10\x35\x62\xb8\x24\x46\x3a\x4a\ +\xfc\x84\x5d\x85\x02\xaa\xad\x60\xa2\x5a\x06\xdd\x55\xab\x3a\x6c\ +\x0b\x5c\xc0\xd5\x30\x86\x58\xb3\x20\x9d\x03\x76\x7c\x67\x37\x66\ +\x67\x3a\x00\x31\x0e\x5f\xfc\xb8\x42\x27\xf7\x3c\xbc\x57\xf5\x49\ +\xd5\x36\x66\x84\x68\x1f\x34\x2e\xc1\x41\xa5\x88\x6b\x72\xea\x4a\ +\x70\xe8\x2a\x1d\x94\x8a\xb5\x1b\xb5\x5b\x60\xeb\x70\x4f\xef\xe7\ +\x6f\x2f\xd4\x94\x43\xda\x8e\x2f\xd6\x89\x31\xf4\xb9\xcf\x2e\xca\ +\xc3\x5c\xe9\xba\x21\xf1\xda\x6c\x82\x6a\xac\x96\x32\x92\xf6\xf5\ +\xc5\x61\x29\x8c\x39\xec\x3a\xa5\xdc\x8c\xfa\xc3\x21\x1c\xea\xfc\ +\xec\x1f\x4d\xa6\x27\x2f\x58\x18\x3e\xf6\xca\x46\xa7\x83\x34\x49\ +\x3c\xae\x1e\xf2\x05\xfd\x2e\x0c\x26\xcf\x2b\xa0\x0a\x9f\x4e\x9f\ +\x01\x55\x3a\x80\x04\x66\x21\xae\x2d\x4d\x9d\x5c\x4f\x8c\xdd\x0f\ +\xed\x55\x02\x73\xe8\x92\x43\x1e\xa0\xde\xf3\xd0\x5e\x7f\xfd\xd5\ +\x56\xb7\xea\x28\x8b\x3a\x5e\xbf\xae\xf6\xd5\xb5\x86\xd7\xa5\x6e\ +\xf0\xc3\x36\xe3\x76\x0b\x5b\x2e\xda\x97\x2d\xdb\x66\x8c\x58\x2c\ +\xc7\x54\xf3\x80\x8c\x18\xe5\xc3\x72\x20\x55\x01\x07\x97\x65\x5d\ +\x0a\x2d\x81\x81\xaf\x1a\xc2\x37\x87\x72\x0d\x97\xbc\x00\x11\xf2\ +\x19\xc0\xec\xea\xc6\xb8\x49\xdf\x52\x46\x9e\x1b\x66\x76\xa5\xd7\ +\x98\x5a\x9b\x1e\x1d\x7b\x76\x93\x37\x76\xb7\x27\x26\x60\x93\x14\ +\xa3\xf5\x0d\xb1\x21\xb4\x5c\x82\xc2\xc5\x9c\x61\xe6\xea\xe0\xc5\ +\x70\x4c\xfb\x26\x75\x82\xca\xa4\x2e\x02\x46\x23\x8b\x38\x36\x65\ +\xea\x26\x8c\x25\x31\xf9\x43\x07\x80\xc3\x97\x1e\xf2\x37\xe9\xce\ +\x77\x7e\x18\x00\xf0\xbf\x7c\xfc\x77\xf0\xbb\xaf\xfe\x97\xc1\x20\ +\x6a\x0e\x16\x49\x73\x30\x0c\xb0\xa6\xab\x09\xd5\x06\xd2\x82\xa4\ +\x41\x60\xb8\x51\x8a\xc9\x1d\xdb\x30\xb3\x67\x11\x6c\x2d\x12\x17\ +\x9f\x5e\xb2\xf3\x5f\x97\x35\x02\x22\x19\xd1\x91\x9e\xcd\xc0\x62\ +\x8e\x60\xd8\xdc\x5b\xa8\x6e\x7e\xf8\x61\x27\xb8\x91\x66\x9f\x18\ +\x95\x46\x0c\x35\x3d\x23\x68\x71\x52\x7d\xf7\x81\xef\x61\x44\xee\ +\x44\xeb\xe2\x2f\x00\x26\x05\x08\x51\xa3\xc1\x51\xa3\xa9\x52\x37\ +\x09\x7a\x84\xfe\x94\x1d\x2a\x34\x71\x19\x91\x73\x25\x7a\x86\x62\ +\xcd\x80\x33\x01\x68\xc4\x91\xd8\xfe\x51\x13\x6c\xe6\x87\xb1\xfb\ +\x7b\x7b\xfc\x3f\x00\x70\xf3\x6d\x6f\x54\x10\xb3\x14\x7e\x0a\xda\ +\xde\xe1\x04\x5d\xdd\x89\xf6\xf4\x0a\x65\x4d\x5f\x2f\x71\x06\xf6\ +\x74\x66\xa6\xd0\x9e\x9a\x04\x3b\xc6\xa9\x64\xcb\x17\xbf\xb3\x71\ +\xf9\xbf\x3b\x34\xd8\x77\x2f\x38\x9f\xb8\xaf\xf6\x65\x87\x4b\x04\ +\xa5\xb2\x50\xd9\xc8\x19\x66\x0c\x92\x73\x28\xdc\x95\x0a\x02\xcb\ +\xd2\x30\xab\x1e\xb8\x82\x76\x05\x55\x62\x0e\xaa\x67\x79\xae\x59\ +\x0a\xb8\xa3\xb3\xd1\xe2\x91\x6f\x77\x5f\xfa\xbb\x7d\x33\xfd\x20\ +\x91\xa1\xb8\xdd\x62\x3f\x5d\x44\x06\x86\x02\x2b\xd8\x7c\x2e\x30\ +\x54\x2a\x29\x5b\xa5\x58\xf4\x0c\xb0\xa8\xf3\xa7\xa9\x43\x23\x22\ +\xb0\x75\x02\x6a\xae\x92\x3b\x2b\xd0\x2d\x80\x3f\x7a\xe7\x1f\x0b\ +\x08\x15\x9a\xb0\xea\x36\xe9\x1e\xde\x74\x59\x85\x64\x33\xe9\xbd\ +\x4a\x2e\xb5\x98\xdb\xb7\x17\xad\xf1\x31\xb0\xb5\x38\x91\x6c\xff\ +\xbb\xbe\x1b\x5f\x2f\xf5\x8f\x02\x00\x87\x05\x76\x81\xea\x2c\x65\ +\x0e\xe7\x16\x6b\x2a\x7d\xa9\x20\x39\x7d\xef\xd6\xf7\x1e\xbf\xad\ +\xd2\x0d\xe4\x82\x06\x48\xd1\xaa\xed\xad\x8c\x13\x5d\xbc\xa1\x70\ +\xc8\x1b\xe3\x2c\x01\xc0\x95\x83\xcf\xff\x73\x03\xd7\x06\x11\xfa\ +\x2b\xab\xb0\xc3\x91\x6e\x4b\x0e\x47\xa5\x40\x7e\x0e\xd7\xf4\x15\ +\x70\xa5\xf4\x4f\xc2\x42\x39\x07\x2c\xaf\xf4\x31\x37\xd3\x2e\xb5\ +\x46\x8f\x83\x54\xd3\x3c\xa5\xc0\xeb\x0e\x65\x54\x78\x7c\xb5\x26\ +\xbe\xe2\xe2\x39\x68\xb0\x60\x4d\x05\x70\x8c\xb8\x11\x63\xea\x82\ +\x45\x74\x67\x26\x61\x1d\x0d\xbf\xba\xfe\xbc\x7f\x55\x34\xdb\x92\ +\xec\xdb\x22\xdd\xc7\x45\x79\x55\x8f\x88\xcb\xde\x7d\x19\xc4\xe7\ +\x55\x3b\x32\x41\x1b\x90\x58\xd5\x50\xbc\xce\xa8\x36\x26\xcd\xa1\ +\x54\x65\x4d\x3d\xb9\x5b\xb7\x0e\xc9\x51\x28\x85\xa4\xf9\x5a\x3c\ +\x19\x06\x22\x3e\x11\xed\xfb\xcb\x73\x34\x7b\x2f\x3b\x87\xf6\xc4\ +\x04\x3a\xb3\x33\xf5\x75\x01\x51\x72\x66\x27\x97\x2c\x69\x04\x51\ +\x22\x74\x70\x5c\xe9\xc3\x4b\x53\x8b\xc8\x90\x16\x96\x4a\xc1\x45\ +\xee\x2d\x0a\xc0\xa0\xb0\xed\x4c\x06\xa4\x2e\x60\x20\xbb\xb0\xa5\ +\x2d\x00\xab\x9c\x1e\x86\xc9\xce\x01\xce\xa2\xd1\xed\x60\x6c\x7e\ +\x16\x69\x4a\xbd\x0d\x3b\xf6\x88\xcc\xef\x25\x17\xb1\x6e\x89\xa5\ +\xe7\x1c\x6c\x4a\x03\x0f\x67\x2a\x84\xee\x22\xfb\x65\x1c\x8e\x89\ +\xf7\x3e\xde\x03\x64\x54\x9d\xb2\x59\x6c\xd0\x60\x0a\x72\xf5\xb0\ +\x5c\x5b\x6a\xed\xf1\xf8\xc0\xf7\x4e\xf2\xde\x47\xae\x18\xfe\xf5\ +\xa5\x11\xd2\x31\x13\x45\xdc\xe8\x76\xa8\x08\x0c\x6b\xb7\xb4\x78\ +\xc0\x89\x36\xef\xfc\xa9\x61\x2f\x6d\xf4\x52\xf4\x07\x29\xda\xcd\ +\x38\xa8\x2c\xe2\x07\xb7\x9d\x57\xc8\x1e\x5c\x61\x38\xa9\x72\x2d\ +\xe9\x09\xe9\x14\x72\xfd\xd4\x9c\xd9\x3c\x35\xb5\x29\x4c\x1c\x63\ +\x7a\xcf\x05\xe8\xce\x4e\xb3\x4b\x52\x3a\x95\x6e\xfd\xbf\xbf\x3f\ +\xd8\xff\x4d\x92\x93\x1b\x04\x9b\x89\x5c\x98\xa1\xe5\xab\x38\x88\ +\xc3\x1d\x3d\xc5\xc2\x36\x0f\xd8\x91\x1c\xdb\xa7\x37\xf8\x81\xb3\ +\xcd\x4f\x7a\x70\x50\x2d\x72\x85\xfa\x92\x31\xb1\xda\xbe\x5b\xb3\ +\xf6\x44\xd0\xaf\x9d\x23\xe6\xd8\x7e\xbb\xf9\xe2\xdb\x8f\x47\xfb\ +\x3f\x41\x20\x6a\x74\x3a\x6c\x1a\x8d\xec\x8b\xda\xd0\x0a\x70\x09\ +\x37\x33\x57\x27\x79\xa8\x52\xb3\xf6\xef\xfd\x81\x45\xab\x11\xa1\ +\xdd\x34\x39\x5f\x50\xd3\xad\x54\x61\xa7\xd2\x77\x28\xe1\x60\xaa\ +\xa2\x68\x21\x01\xa4\x66\xb4\x6c\x09\xb7\x0a\xc1\x72\x40\x3a\x4a\ +\xd0\x99\x9e\xc6\xf6\x2b\x2e\x43\x77\x6e\x06\x20\xa2\x95\x64\xf2\ +\x9b\x4b\xc3\x2d\x8f\x55\xc8\x2e\x61\xcf\x65\x05\xdb\x51\x83\x77\ +\x2b\xb8\x83\x5f\xab\xe3\x99\xc8\xba\xed\x27\xdb\x64\xc2\x79\x6b\ +\x58\x85\x0e\xbe\x09\x51\x43\x91\xd4\xa8\x82\x7c\x95\x1d\xb1\x72\ +\x5d\x4a\xa1\xcb\x59\xd5\x90\x1c\xd3\x31\x73\xd1\x83\x33\x7c\xea\ +\xca\x0e\xad\xef\x1f\x9b\x9d\xcd\xa6\x8f\xac\x9e\xc3\x70\x6d\x3d\ +\xf3\x7f\x44\x8a\xdc\x4d\x5c\xc7\xd0\x65\x41\xc1\x2a\x13\x45\xc7\ +\xd9\xba\xb4\xf1\x4e\xb3\xe4\x21\xd4\xb4\x9d\x55\x58\xc7\xaa\x81\ +\xae\xa0\x94\xeb\x4d\xa7\x14\x12\x3d\xea\x76\x06\x86\xad\x6c\x39\ +\xc2\x49\x64\x30\x7f\x60\x3f\xc6\xe6\x67\xe1\xd2\x14\x60\xf0\x23\ +\x1b\x07\x3e\x74\x3a\x5d\x38\xa2\x96\x6a\x43\xaf\xd3\xf5\xf1\x00\ +\xe5\x15\x4b\xd5\xad\x23\x06\x74\x04\x85\xbb\x52\xf3\x83\x4e\x10\ +\xd2\x70\x70\xac\x48\x9f\xde\x72\x93\xea\x5c\x2d\xdf\x57\xf6\x16\ +\xe9\x36\x24\x52\x8c\x1f\x52\x93\xbe\xfd\xcd\xcb\x21\x2a\x62\xe0\ +\x38\xf6\xfd\x97\x39\x3a\xba\xd4\xe6\x8d\xc5\x26\xf7\x17\x9b\x63\ +\x63\x30\x51\x44\x36\x49\x90\xf4\x06\x41\x50\x48\x55\x98\x58\x15\ +\x66\xca\x9b\x9f\xa6\x2e\x23\x39\x30\x57\xda\xbe\x00\x6c\x6e\xea\ +\x39\x98\xd3\x2f\x04\x41\x01\x69\x01\x95\x8c\xe4\xcd\x0b\xdc\x89\ +\x73\x59\x2b\x5a\x67\x7a\x1a\x33\x17\x2c\x72\xd4\x6c\x90\x4d\xd2\ +\x74\xc3\x8e\x3f\xf2\xed\xf5\x2b\xff\x43\x16\x84\x39\x62\x09\xd7\ +\x88\x31\xb0\x44\x50\x3c\x4a\x3f\x96\x57\x8e\x8b\x25\x31\x55\x3d\ +\xe8\xfa\xa0\x70\x44\x88\x10\xaa\xe2\x5a\xe3\xb0\x83\x54\xf1\xe9\ +\x2b\xae\x8c\x34\x14\xca\x21\xf6\x41\x08\x77\xec\x90\xef\x76\x11\ +\xa0\x0f\x03\xcb\xb4\xfd\xc8\x59\x6c\x3f\x02\x00\xcf\xe2\x2f\xbc\ +\xc3\x18\xd7\x6d\x8e\x75\x41\x64\xb0\x9e\x9c\x46\x3a\x18\x96\x51\ +\x79\x58\xa7\x56\xf1\x80\xa0\x9b\x11\x30\x4a\x2c\xe2\x98\xaa\x08\ +\x9d\xef\x4a\x42\x85\xe5\xab\x03\xcd\x12\x3e\x63\xb9\x08\x52\x6e\ +\x2a\x55\xf1\x01\x07\xe8\x69\x76\x49\x69\x92\xa0\x3d\x31\x8e\xc9\ +\x9d\xdb\xd1\x9e\x9c\x04\xc0\xb4\x3e\x68\x7e\xff\xf8\x68\xfb\x57\ +\x8f\x0d\xb7\x7f\x3f\xe7\xee\x13\x93\x61\xb5\x4c\xab\x78\x9f\x00\ +\xea\xf5\x9e\x9c\xf4\x39\xca\xb6\xaf\xb2\x1b\x8b\xfc\x7c\x4f\xd9\ +\x17\xe0\x81\x3d\x39\x2b\x38\x18\x00\x50\x56\xfd\xc0\x41\x3f\x7c\ +\xa9\x8d\x24\xfe\x56\x36\x3f\xe4\xd2\xe6\x48\xe5\xf3\x72\xce\x4d\ +\x65\x20\x53\xfe\xe5\xbe\x85\x5f\xba\x7d\x92\x97\x16\x66\xf9\xd4\ +\xbe\x79\x3a\xf6\xe2\xb1\xf9\x39\xb0\xb5\x48\x93\x14\x76\x30\xc4\ +\xe0\xdc\x3a\xf4\x96\x6e\x79\xcd\xae\x6c\x49\x63\x60\x94\x38\x74\ +\xf2\x05\x50\x92\x1d\xcc\x08\xc0\x20\xd4\x04\x9c\xa2\xa1\x55\xfb\ +\x45\x57\xb5\x10\x35\x1a\x5f\xfc\x64\x47\x09\x66\x2e\x58\xc4\xf8\ +\xd6\x2d\x99\x38\xb9\x6c\x71\xec\xf7\xfb\x17\xde\xbd\x92\x4c\x9f\ +\x2e\x4b\xec\xc4\xe5\xf2\xe7\x80\x97\x21\x0e\x15\x01\xcd\xaf\x5c\ +\x55\xc7\xea\x35\x24\xd6\xd0\xa8\x32\x7e\x29\x21\x7e\x83\x1a\x15\ +\xe3\xe5\x6b\xf7\xf1\x6c\xd2\x29\x2d\x73\x7d\xe2\x2a\xfe\x2e\xd7\ +\xa9\x43\x60\xd4\xcc\x35\x54\x70\x35\xbf\xd7\xf0\x2a\xb6\x9e\xec\ +\xf3\xe4\xea\x38\x96\x2f\x6d\x60\x38\x1f\x19\xd3\x69\xb4\xdb\x88\ +\x9b\x4d\x4e\xfa\x7d\x72\x49\x0a\xe7\x44\x05\x88\x8c\xf6\xe9\x94\ +\xf1\xf9\x52\xeb\x10\x9b\x48\xa7\x40\xd0\x96\x42\xb3\x72\x83\xec\ +\x5d\x4e\x3c\x2b\x7c\x69\xd8\xae\x15\x72\x27\xc0\x60\x6b\x81\x28\ +\x42\x14\xc7\xd8\x7a\xe9\x45\x68\x74\xda\x70\xd6\x71\xca\xd1\xea\ +\x37\x56\x9e\xf5\xfe\xf9\xd6\xd9\x1d\xab\xc3\xa9\x33\xb2\xd5\x9e\ +\x7c\xf1\x46\x44\xfc\x90\x1d\x47\xc5\x32\x2e\x56\xa3\x79\x2b\x2c\ +\xde\x22\x65\xa7\x1a\xb9\x94\x6d\x5e\xa6\x3a\x2f\x20\xae\xe6\x54\ +\x84\xda\x19\xbd\x2c\x97\x1f\x93\x30\x8f\xf0\x2b\x51\x54\xc4\x29\ +\x52\x41\x92\x4d\x91\xd2\x95\x04\xac\xde\x21\xda\x83\xef\xb8\x9f\ +\xff\x10\x31\x60\x78\xd4\xb8\xc8\x7c\xe7\x25\x13\xd1\xca\xb3\x27\ +\xb7\x6f\x87\x73\x0e\x2e\x4d\x91\x0e\x86\xf9\x3f\x03\x38\x2b\x26\ +\x75\x33\xc3\xe6\xfd\x71\x91\x21\xc1\x0d\xa4\xea\xf8\xf5\x0a\x0d\ +\x2e\x94\x72\x01\x16\x39\x11\x1f\x38\xb1\x2b\x31\xc7\xf2\x5d\x9a\ +\xa2\x35\x31\x8e\xb8\xdd\x42\x14\xc7\x98\x5a\xdc\x99\xf1\xf9\x52\ +\x8b\x81\x6b\x1f\xb9\x77\xf9\xea\x0f\x33\x31\x4e\x0c\xb6\x3d\x61\ +\xe0\x48\x4d\x06\xa3\xea\x80\x48\xf6\x41\x1f\xa9\xc2\x17\xe5\xd6\ +\x55\x6d\x7b\xf6\x19\x72\x39\x29\x95\x6a\x88\x9d\x7e\xff\x23\x82\ +\xc0\x51\x16\x83\x4a\x33\xcd\x35\xfd\x7a\xba\xb9\x5c\x30\xc4\x3c\ +\x21\x99\xea\x10\x31\x2e\xd9\x43\x54\x33\x01\x9c\xe4\x60\x25\x41\ +\x61\x62\x00\x96\x9b\xc9\x49\xb7\x78\x1f\xc0\x71\x1b\xbd\x9d\x0d\ +\x4a\xe6\xa3\x46\x03\x71\xa3\x01\x9a\x9a\x44\x7f\x65\x0d\x1b\x27\ +\x97\xb2\x2d\x99\xf9\x17\x32\x20\xcc\x8e\x37\xbc\xf6\x13\x82\x8e\ +\xe1\xa0\x8c\xab\x50\xc4\x10\xe8\xaa\xed\xe9\x23\xb8\xd4\x02\xce\ +\xa1\xd1\xed\x20\xed\x0f\x30\xbd\x6b\x11\x9d\x99\x69\x6e\xb4\x5b\ +\xe4\xac\x05\x3b\x8b\xd5\xd1\xd4\xbd\x03\x6e\x2d\x27\xae\xb1\x5e\ +\x1e\x4e\x96\x09\x71\xd0\x8a\xaf\xca\xb0\xa4\xe3\x2f\xd9\x71\x5d\ +\xb2\xb3\xb8\x52\xb7\x27\xf1\x3e\x5c\x53\x0d\x64\x2a\x15\xce\x04\ +\x09\x41\x5c\x5d\x16\xa8\x61\xe0\xd2\xd9\x97\xf9\x87\xda\xe7\xe3\ +\x21\x62\xaa\x69\xf5\xd2\x6b\xb2\x39\x64\xd6\x88\x53\x21\x47\x72\ +\x66\x22\x00\xe0\xac\xdb\x76\xec\xac\xdd\xfa\x29\x66\x20\xe2\x34\ +\x9a\x32\x67\xb7\x4e\x9a\xb3\x3b\xb7\x44\xc7\x5e\xd4\x9a\x18\x6f\ +\x36\xba\x5d\xd8\xe1\x10\xa3\xde\x00\xe9\x60\x98\x8f\xae\x73\x70\ +\x29\x4b\x4c\x54\xf5\xe7\x95\xd3\xc1\x04\x3b\x56\xee\x21\x65\xa1\ +\x31\x9c\x47\xf2\xf9\x7b\x39\x6b\x31\x7b\xe1\x2e\x0c\xcf\x6d\x60\ +\x7a\xd7\x4e\xd9\x31\x41\xe7\xfa\xcd\x47\x3b\x71\x7f\xf7\xc1\x73\ +\x17\xfd\xc9\xd2\x70\xee\x58\x31\x61\x9d\x02\xd3\xee\x3f\xdb\xe8\ +\x41\x1a\x65\x54\x4f\x7a\x21\xa6\x9a\xec\xc1\x4a\xeb\x33\x8b\xc0\ +\x2a\x0d\x54\x9b\x59\x03\x0b\xa7\x77\x0f\x64\x67\x17\x43\xd1\xbc\ +\x79\xd3\x36\x71\x9f\x83\x57\x06\x26\x86\x08\x59\x4d\xdf\xbf\x1c\ +\x4e\x13\x60\xe2\xc8\x19\xc4\xf5\xf3\x70\xcb\xa0\xd3\x52\xc3\x9e\ +\x75\x0b\xc7\xce\xa6\x0b\xc7\x26\xda\xab\x07\xda\xe8\xed\x31\x06\ +\xcd\xa8\x3b\x86\xe6\xd8\x58\x26\x60\xce\xc1\x8e\x12\x24\xfd\x3e\ +\x92\xde\x00\xe9\x60\x00\x9b\xa4\xb0\x49\x8a\xce\xd4\x24\x98\x39\ +\x73\x1d\xa9\xf5\x6b\xe2\xa3\x46\x03\xce\x3a\x38\x9b\x69\x76\xd4\ +\x6e\x83\x60\x60\x87\x23\x34\xda\x2d\x8c\xcd\xcc\xe7\xf8\x04\x30\ +\xb7\x77\x37\x4c\x23\x46\x67\x66\x06\xb0\xce\x83\xee\x47\xfb\xdb\ +\x3e\xfd\xf8\xfa\xbe\xfb\x8a\x54\x44\xd3\xeb\x38\x40\xe0\xb4\xa3\ +\xf6\x01\xa0\x38\xe0\x92\xb7\x41\xd5\x7e\x42\x88\xec\x80\x44\x29\ +\x1d\x65\x1f\xa2\xcf\x06\xc3\x35\x2d\xd0\x4a\xca\x7e\x54\x6c\xe1\ +\x3d\x02\x36\x8e\x84\x36\x6b\x07\x7f\x12\x95\xe8\x19\xb4\xcf\x2a\ +\x53\x4a\xaa\x21\x4a\xe8\x21\x19\x55\x86\xab\x0e\x26\x39\x00\x81\ +\xfe\xae\xff\xdc\x3f\x63\x00\x63\xb4\x3a\x35\x13\x9d\xde\x35\x69\ +\x56\x2e\xec\x46\xbd\xdd\x0d\xe2\xb9\xb8\xd5\x44\xdc\x6a\xa1\x3b\ +\x93\x09\x96\xb5\x16\xc9\x60\x80\x66\xa7\xc3\x26\x8e\x89\xad\x85\ +\x4d\x52\x24\xfd\x01\x86\xe7\xd6\x31\x36\x37\x83\xb8\xd3\x46\xda\ +\x1f\x62\xb8\xbe\x81\xe6\xd8\x18\xb7\x26\xc6\xc9\x8e\x86\x60\xc7\ +\xdc\xe8\x74\x88\xb7\xb2\x87\x83\x07\xa3\xf8\xc4\xc0\xb6\x4f\x3a\ +\x98\xc1\x83\xcb\x97\xdf\x3d\xd5\x5c\x99\x5b\x4d\xa7\xcf\x64\xea\ +\xa8\xd0\x97\x20\x07\x27\x31\x46\x2f\xff\x99\xf2\x58\x45\xc4\xb3\ +\x44\x3a\x0e\x51\x3e\x3d\x6c\x59\x92\x08\x0d\x91\x08\xf6\xe5\xa5\ +\x90\x8a\x75\x4a\x61\xc9\x14\x2b\x96\x34\x64\x19\x55\x97\xfb\x9c\ +\x45\x94\x0a\x9d\x5b\x53\xb8\xda\x1d\x2a\x38\xd0\x33\xca\xc2\x3e\ +\x3c\x89\x4e\xc9\x46\x4a\x15\x13\x51\x05\x99\x94\xb5\x81\x0d\x37\ +\xb5\xba\x91\x4e\xad\x32\xf8\xc1\xec\x9a\x6d\x34\x17\x9d\xde\x36\ +\x13\x9f\xd9\x3b\x16\xaf\xef\x6d\xd3\x60\x27\x19\xd3\x6e\x8f\x8f\ +\x81\x1d\xd3\x20\x89\x8f\x37\x89\xb7\x46\xcd\x86\xc9\x84\x64\x3a\ +\xd3\x7c\x26\x34\x3a\x1d\x34\xba\x5d\x30\x33\xd9\xd4\x8d\x4c\x14\ +\x37\x11\x83\xd6\xfa\xad\x87\x1b\x51\x3a\xdd\x8a\x46\xdb\x96\x06\ +\x5b\xbe\xf8\xc4\xfa\xae\x6f\xf5\x6d\xb6\x8c\x01\x04\xac\x8c\xa6\ +\xcf\x64\x8a\x6d\x3c\xa8\x20\xad\x9e\xe8\x69\x56\x7b\x18\x7d\xb5\ +\x31\x07\xdd\x98\x74\x70\x4c\x26\x10\x02\x7f\x3b\xab\xd2\x50\x58\ +\x01\x55\xce\xe7\x60\x07\x19\x85\x35\xdf\xec\xca\x62\xff\xe2\xda\ +\x16\xd5\x62\xcf\x4f\x2e\xbd\x9c\xf9\x33\x76\x81\xc6\x87\x15\x45\ +\xe1\x56\xb8\xa6\x26\x2e\x23\x21\x62\xaa\x61\x01\x71\x65\xbd\x19\ +\xd7\x0d\x2d\x08\x9b\x73\x39\xb2\xa7\x93\xad\x47\x97\x46\x5b\x8f\ +\x12\xf3\xdf\x32\x80\x6e\xb4\x31\x31\xd7\x58\xba\xa0\x45\xc3\xa9\ +\xc7\xd6\x2f\xfe\x2a\x00\x4c\x37\xce\x2c\xcc\x36\x97\x77\x4f\x36\ +\xd6\x2e\x6c\x46\xa3\xb9\x6f\x2c\x3d\xe7\x03\x5b\xdb\x27\x2f\x98\ +\x6e\xad\xec\x1d\x8f\x37\xf6\xdc\x7b\xfa\xea\x3f\x1e\x6f\xac\x4f\ +\xce\xb5\xce\x5c\xf0\xc4\xfa\xee\x07\xf3\x2f\x47\x0a\xad\x21\x15\ +\xee\x84\x68\x82\x32\xcb\x41\x05\xa6\xe4\xec\x93\xe4\xe2\x09\xa0\ +\xcc\xb0\xda\xb2\xa5\xa2\x78\x39\x58\xa3\x98\xf4\x60\x82\xf4\x10\ +\x92\x41\x24\x0d\x91\x04\x11\xb2\x7f\xd3\xad\xff\xf6\xf8\x6d\xde\ +\x3c\x14\x34\xec\x60\xe0\x90\x2f\xcb\x8a\xca\x20\xd7\xd0\x9e\xd5\ +\x00\xa4\x1c\x10\x92\xc3\x1d\xf4\x28\x75\xd2\x40\x93\xe3\xea\xf3\ +\x7c\xf3\x05\x69\xd7\xa2\xc6\xb1\x50\x4d\x66\xa1\x05\x98\xbc\x20\ +\x33\x11\xd7\x0e\xee\xae\xb4\x8c\xfb\x9b\x47\x59\x1b\x65\xdd\x7c\ +\x1d\xaa\x9b\xa9\x9c\xd7\xd9\x89\x74\x47\x2d\x91\xae\xcb\xeb\xda\ +\xbd\x7e\x1d\xcb\x9a\xbe\x78\x4d\x31\xe1\xc4\xff\x5d\x10\x40\xd5\ +\xe7\x0a\x24\x88\x8c\xa4\x7c\x09\x5e\x80\xc9\x9e\x13\x7b\x71\x92\ +\x3b\x76\x49\xb3\x57\x15\xfc\xc9\xd5\x7e\xb4\xd2\x0c\x65\x2f\x76\ +\x72\xe3\xa7\x1a\x7a\x24\x7a\xd8\x64\x5d\x21\xa8\x63\x93\xc0\xfe\ +\x15\xb9\x92\x39\x70\x0d\x65\xff\xbf\x4e\xe1\x48\xb0\x99\x75\x99\ +\x92\xc3\x4c\xa7\xf8\x34\x26\x0d\x79\x97\xc1\x1b\x57\x58\xc7\xa0\ +\xea\x30\x65\x0a\xb9\x8b\x54\x1a\x6f\x12\x23\x1a\x38\x44\x5b\x08\ +\xe1\x90\x0e\x0a\xb6\x78\xb0\x44\xf1\xa0\xe7\x50\x10\xe9\x19\x70\ +\x2a\x5d\xa4\x00\xb1\x2a\xb6\xbc\x8b\x98\x2c\x96\x15\xaf\x90\x30\ +\x10\x6e\x9d\xe2\xc0\xa7\x10\x07\x5b\x2d\x6b\xaa\x62\x9e\xaa\xec\ +\x58\xc3\xca\xb5\x44\x1a\x69\xca\x6a\x26\x7f\x08\x72\x3a\xb3\x1e\ +\xb0\x4c\xb2\x9b\xb8\x86\x13\xaf\xd3\xb0\x52\x90\x28\x68\xd9\xd6\ +\x41\x2c\x89\xdd\x07\xa4\x97\x6b\x16\xa4\x4e\xd2\x3b\x11\x59\x4d\ +\xfe\x20\x75\xdd\xaa\x2b\x9e\x82\x03\x27\xe1\x72\xa9\x52\xb8\x53\ +\x09\x3c\x57\xb6\x51\x96\x8a\x4b\xf2\xfd\x83\x58\x83\x1c\xca\xf1\ +\xe0\xe5\xa0\x48\x19\x90\x51\x75\x49\x05\x53\xb5\x63\xc8\x9b\x5a\ +\xd2\x45\x1f\x48\xda\x95\xb8\x02\xc9\xec\xa9\x43\xdb\x42\x61\xd8\ +\x74\x69\x63\x58\x9b\xe0\x60\xe2\x36\x05\xad\x53\x95\x8e\x30\xd5\ +\x4a\x45\xc2\x4d\x70\x58\xe3\x0f\xe6\xfd\x39\x94\x3d\x80\xbe\xda\ +\x21\xc9\x9e\xae\xca\x0f\xa8\x8e\x86\x85\x9f\x50\xa2\xc9\xac\x2c\ +\xd6\xcc\x48\x2a\xbf\x1e\xee\xcb\x75\x43\x35\x50\x37\x62\x47\x77\ +\x73\x91\x1f\x15\x17\x7a\x38\x86\x51\x01\x49\xd1\x7e\x20\x57\x4d\ +\x70\x1d\x45\x5b\x92\xc1\x64\xfd\x9a\xea\x2f\x8e\x50\x3f\xe6\x43\ +\x09\x0f\xc2\x93\xaa\x5a\x1f\x75\x13\x48\x0f\xaf\x08\x16\x3d\x52\ +\xed\xda\x96\xa0\xc1\xa4\xb2\x08\x4a\xa7\xa2\x24\xa6\x62\xf9\xbe\ +\x43\xd9\x49\x1c\x96\xab\xa1\x67\x03\xa8\xe1\x58\x08\xb3\x19\x68\ +\x9a\xb7\x56\xed\xb2\x75\x0e\xba\x90\x86\xc0\xeb\xa8\xe0\x8f\xf5\ +\x8c\x65\xa8\xb8\x95\xf4\x3a\x5b\x6f\x01\x82\x2a\x87\x1f\x23\x82\ +\x72\x93\x25\x73\x38\x31\x84\xf5\xb6\xd1\x0a\x74\xa3\x0f\x9f\xb9\ +\xba\x98\x91\x6b\x37\x6c\x92\xba\xf8\x60\xd1\x47\x40\x35\x0b\xc7\ +\xc1\xb1\x02\x9a\x58\x1c\x9e\x9c\xf4\x51\xb2\x8c\x48\xad\x7c\x91\ +\xac\x59\x04\x1c\x41\x0e\x7a\xed\x8b\x96\x6e\xd9\x83\x4f\xaa\xd3\ +\xb7\x5a\x50\x23\x96\xe9\x70\xd0\x3b\x58\xd7\x06\x17\x2a\x15\x28\ +\xe8\xd6\x0a\x48\xac\x21\x4d\x5c\xb8\x54\x46\x75\x3d\xb0\x2f\x07\ +\x53\x40\xb6\x50\x03\x0f\x3c\xe3\x97\x2a\xac\x1a\xdd\x39\x84\xc0\ +\xd7\x55\xb0\xc8\xb2\x16\xaf\xc6\xa0\x89\xb9\x03\x54\x6a\x19\x57\ +\x4c\x27\x95\x04\x87\x10\x2b\x77\x21\x4f\x11\x35\xcb\x9f\x39\x48\ +\x17\xa9\xb4\x72\x8e\xf5\xf4\x52\x75\xef\xb9\x62\x69\x64\x5e\x2f\ +\x27\x68\x30\xd7\x03\x6e\x52\x25\x65\xac\xa0\xe7\x2f\x15\x1b\x1c\ +\xeb\x8e\xc9\x4f\x00\xd4\x33\xfe\xe4\x7e\x07\x59\x0b\xd0\xc9\x07\ +\xd4\xfc\x56\x66\x05\x35\x67\x84\x94\xa0\x1d\x98\xbd\xff\xae\xb9\ +\x18\x2e\x8d\x7e\xf1\xa1\x04\x6d\xc2\x29\x38\x80\x4d\x86\x80\xa9\ +\xf5\x31\x65\x8f\x61\x29\x2c\xd2\xad\x70\xb0\x6d\x24\x74\x49\xb2\ +\xe7\x8e\xea\xba\x8a\x98\x2a\xbc\x3e\xbd\xb2\x7e\xb3\x6e\x5e\x12\ +\x7d\x01\x5a\xf3\xf4\x4a\x5a\x69\x7d\xa8\xc2\x72\xae\x5e\x2b\xd5\ +\x6c\xba\x63\xa0\x2e\xb1\xa8\x58\x15\xae\x58\x2a\x0e\x17\x41\x04\ +\x0b\xa1\x19\xda\x8a\x94\xde\x9d\x60\x7c\x6f\x5e\x25\x5e\x2d\x35\ +\x9f\x6b\xb7\x59\x52\xd0\x91\x53\x12\x05\x28\x18\x28\x41\x0a\xee\ +\x0d\x76\x0d\x72\xe8\x4c\x28\x58\x48\x59\x6e\x17\x63\x22\x15\xa8\ +\xb2\x12\x92\x2a\x75\x5a\xed\x33\x52\xbe\x5d\x73\x1d\xd4\xc4\x51\ +\x40\xb7\x91\x07\x23\x5c\x4a\x41\xa1\xca\x7c\x02\xe9\xd3\x29\x40\ +\x37\x59\x36\xce\x04\x56\x10\x95\x14\x90\x95\xf1\x93\xa7\x46\x7a\ +\x83\xa2\x62\x09\x95\x2d\x67\x41\x6a\x1a\x2c\xc1\x94\x7d\x14\xff\ +\x0f\x36\x86\x77\xb7\x57\xe9\x33\x5f\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x35\x8c\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\x18\x00\xec\x00\xe0\xa9\x21\xac\x80\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x08\x06\ +\x10\x1f\x13\xe9\xf1\x8e\xd9\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x79\x94\x5c\xd5\x7d\xef\xfb\xd9\ +\xe7\xd4\x3c\x75\x55\xab\x5b\x52\x77\x4b\x02\x8d\x08\x09\x4b\x60\ +\x06\x81\x04\x66\x92\x19\xc4\xe0\x64\xe1\x9b\xfb\x5e\xec\xb5\xbc\ +\x3c\xdc\xf5\xd6\xbb\x4e\x96\x7d\x1d\x03\xef\x05\x3b\xce\xf0\x9c\ +\xf7\xb2\xae\x7d\xf3\x92\x38\xc9\x8b\x6f\xe2\xbb\x6c\x5f\x3b\x76\ +\x62\x48\x1c\x04\x66\x36\x10\x83\x24\x30\x60\x90\x00\xcd\x53\x4b\ +\x3d\x77\x57\x55\xd7\x5c\x75\xce\xde\xef\x8f\x33\xd4\x3e\xd5\x2d\ +\x06\xa3\x96\x91\xdc\x9b\xa5\xd5\xd5\x45\xf5\xa9\xaa\xb3\xbf\xfb\ +\x37\x7c\x7f\x13\xcc\xaf\xf9\x35\xbf\xe6\xd7\xfc\x9a\x5f\xf3\x6b\ +\x7e\xcd\xaf\xf9\x35\xbf\xe6\xd7\xfc\x9a\x5f\xf3\x6b\x7e\xcd\xaf\ +\x5f\x8b\x25\xce\xd4\x1b\xdd\x77\xdf\x7d\xca\x7b\xfc\xd5\xaf\x7e\ +\x55\xcc\xdf\xfa\x5f\x13\x00\x8c\x8d\x8d\xf9\x1b\xff\x17\x7f\xf1\ +\x17\xa7\x7c\xdd\x3c\x28\xce\x41\x00\xe8\x9b\xef\x2d\x85\x02\xd5\ +\xfe\xed\x2f\xff\xf2\xaf\xe6\x01\x71\xae\x03\x20\x9f\xcf\x93\xcb\ +\xe5\x9c\xed\x57\x0e\x08\x84\x8f\x03\xe7\x39\xdc\xe7\xff\xfa\xaf\ +\xff\x7a\x1e\x0c\xe7\x1a\x00\xee\xbe\xfb\x6e\x84\x10\xac\x59\xb3\ +\x86\xb5\x6b\xd7\xd2\xdb\xd3\x43\xa6\xab\x8b\x05\xdd\xdd\x98\xa1\ +\x10\x4a\xa9\x80\x84\x10\x0a\x94\x82\xbf\xf9\xdb\xbf\x79\xcb\xeb\ +\xcf\x03\xe3\x2c\x02\x40\xe7\x4a\xa5\x52\x64\xbb\xba\x48\x67\xba\ +\x58\xb9\x72\x05\xeb\xd6\xad\x23\x9b\xcb\x39\x3b\xdf\xa1\x2a\x94\ +\x2b\x22\x3c\x9c\xfc\xdd\xdf\xfd\xdd\x3c\x18\xce\x16\x00\x28\xa5\ +\xb8\xe7\x9e\x7b\x66\xfc\x3f\xa5\x94\xf6\xcf\xd9\x70\xd3\x30\x58\ +\x73\xc1\x05\x6c\xba\xe2\x0a\x56\xad\x5a\x45\x28\x14\x72\x3e\xa4\ +\x70\xb1\xa0\xf4\x9f\x12\x81\xe0\x9b\xdf\xfc\xe6\xbc\x74\x78\xdf\ +\x02\x60\x74\x54\x29\x08\x00\x40\x01\x48\x85\xff\x9f\x52\xee\xef\ +\xee\x49\x57\xde\xf3\x90\xcb\xe5\x58\xbb\x76\x2d\xcb\x96\x2d\x23\ +\x9b\xcd\xd2\xdb\xd3\x4b\xa6\x2b\xa3\x49\x05\x7c\x44\x48\xf7\xe7\ +\x3f\xfc\xc3\x3f\xcc\xab\x8c\xf7\x0b\x00\x46\x47\x47\x15\x3a\x00\ +\xbc\x13\x1f\xd8\x6c\x50\x4a\xba\xc0\x68\x3f\xd6\xa5\x03\x28\x42\ +\x21\x93\xae\x4c\x17\x89\x54\x8a\xfe\xbe\xc5\x5c\x74\xd1\x06\x2e\ +\xbc\x70\xad\x0f\x84\x80\x1d\xe1\xab\x11\x10\x4a\xf1\xad\xff\xf1\ +\x3f\xe6\x01\xf1\xab\x00\xc0\xc8\xe8\xa8\x12\x28\xee\xb9\xe7\x5e\ +\x9c\x83\xaf\x10\xde\xe6\xca\xb6\x04\x70\xf4\xbd\xb3\xd9\x52\xb6\ +\x37\x54\x21\x11\x8e\x80\x40\x29\xe9\xd8\x01\x52\x21\x69\x7b\x0d\ +\xdd\xb9\x1c\x97\x5f\x7e\x39\x97\x5f\x76\x19\x5d\xd9\x1c\xc2\x00\ +\x43\x18\x8e\xda\x50\x9d\xb6\x84\xf3\x87\xdf\xfe\xf6\xb7\xe7\xc1\ +\x70\x46\x00\x30\x32\xaa\x40\x71\xef\xbd\xf7\xfa\x27\x1a\x40\x4a\ +\xe9\xbc\xb3\x04\xa9\xa4\x26\x09\x54\xe0\x44\xfb\xf6\x81\xbb\xf9\ +\x52\xb5\xa5\x08\xd0\x06\x91\x26\x5d\x56\xaf\x5e\xcd\xea\xd5\x6b\ +\xe8\xed\xed\xa1\xb7\xa7\x97\xc5\x7d\x8b\x08\x85\xc2\xee\xdf\x38\ +\x6f\xaa\x10\xfe\x7b\x7e\xf7\x3b\xdf\xf9\xb5\xf6\x34\xe6\x18\x00\ +\x23\x0a\x4f\x02\x28\x67\xb3\xfd\xcd\x42\xb5\x6d\x01\xdf\x10\x04\ +\x25\x65\x00\x00\xde\x49\xf7\x40\xe3\x49\x8f\xe0\x6b\x9c\xcd\x74\ +\xc0\xe4\x9e\x76\x29\x49\x24\x93\xa4\xd3\x69\xd2\xe9\x34\x17\x5e\ +\x78\x21\x1f\xfc\xe0\x07\x59\xd0\xdd\xed\x4b\x82\xb6\xbf\x21\x82\ +\xc0\x52\xf0\xfd\xef\x7f\xef\xd7\x02\x0c\x73\x0c\x80\x61\xa5\x14\ +\xdc\x7b\xef\x3d\xee\x49\x6e\x6f\x98\xd4\x6d\x82\xc0\x26\x3a\x6a\ +\x42\x4a\xd9\x96\x18\x6d\xa6\x08\x25\xa5\x2b\xd6\x05\x12\x77\xc3\ +\x75\x70\xb9\xff\x5f\xb9\xd2\x42\x2a\x35\x03\x50\xeb\xd6\xaf\x63\ +\xf3\x96\xcd\x5c\xb8\xf6\x42\x84\x10\x98\xa6\x89\x61\x18\x6d\x3b\ +\xc5\x51\x54\xfe\xdf\xfd\xe3\x3f\xfe\xe3\x39\x2b\x1d\xe6\xf4\x0b\ +\x0c\x8f\x8c\x28\x5c\x37\x50\x37\xe8\x1c\x3d\xaf\xfc\x93\x2a\x5d\ +\x63\x4d\x6a\x46\xa2\x27\x1d\x02\xea\xc0\xb5\x01\x74\x5e\x40\x79\ +\x9b\xec\x6f\xb4\xc4\xff\x55\xc9\x00\xd0\x3c\x69\xa2\xbb\x9e\xb9\ +\x5c\x96\xb5\x17\x38\x9e\x46\x2e\x97\x63\xc9\x92\x01\xba\x73\x0b\ +\x34\xe9\xe0\x1b\x0f\xbe\x61\xf9\xc3\x1f\xfc\xe0\x9c\x51\x19\x73\ +\x0b\x80\xe1\x61\xa5\x50\xdc\x73\xf7\x3d\xae\x78\x57\x2e\xd3\xa7\ +\xdc\x13\x2b\x40\x2a\x47\x2b\xfb\x00\x70\x37\x4c\x28\x94\xdd\xde\ +\x06\xe9\xab\x06\x77\x63\x03\xd6\xbf\x6b\x40\xea\x9e\x85\xf7\x7a\ +\x3c\x95\xa1\x40\x82\x8d\xaf\x6b\x02\x1e\x89\x52\x8a\x50\x28\x44\ +\x32\x99\x24\x91\x48\x30\x30\xb0\x84\xcb\x2e\xbf\x8c\x8b\x37\x6c\ +\xd0\xd4\x16\x01\x42\xca\xf9\x9c\xce\xdf\xff\xe8\x9f\x7f\x74\x56\ +\x02\x62\x6e\x01\x30\xe4\x00\xe0\xee\x7b\xee\x99\x45\xdc\xab\xa0\ +\x5a\x40\x3b\xcd\xee\x66\x49\x25\xfd\x1b\xed\x6f\xb8\x94\x33\xdc\ +\x48\x4f\xaa\x04\x0d\x48\xe9\xaa\x06\xdd\x48\xc4\x7f\xbe\x2d\x09\ +\x94\xef\x29\xb4\x3f\x8b\x0a\x78\x23\xd9\x5c\x96\x2b\x37\x5d\xc9\ +\xa6\x4d\x9b\xe8\x5e\xd0\x8d\x69\x98\x84\xc2\x61\xf7\xe6\x39\xea\ +\x48\x97\x56\x28\xb8\xff\x81\xfb\xcf\x0a\x29\x31\xa7\x1f\x64\x68\ +\x68\xc8\xa1\x82\xbf\x78\x77\x5b\x2f\xa3\xfc\x4d\xf4\x3d\x82\x80\ +\xe8\xee\xb0\x11\x74\xe2\x48\x67\x0f\x67\x79\xde\xc1\x8d\xb6\xc1\ +\x72\x16\x60\xf9\x1b\xed\x0a\x78\x29\xdb\xaa\xc9\x7b\x6f\xef\x73\ +\xea\xaf\xd3\xde\x7b\xf5\xea\xd5\xac\x5c\xb9\x8a\x85\x0b\x7b\x18\ +\x18\x18\x60\xe9\xd2\x65\x84\x23\x61\x9f\x94\x52\x5a\xb4\xd3\xbb\ +\xf6\xa3\x8f\x3e\x46\xb5\x5a\x7d\xdf\x01\x62\x6e\x01\x70\x72\xc8\ +\x91\x00\x77\xdf\x1d\xb0\x01\xbc\x0d\x11\x9e\x6b\xa7\xb9\x73\x3e\ +\x38\x3a\x4e\xa7\x54\x9a\xe8\xee\x94\x1e\x9d\x27\x5a\x3b\xed\x42\ +\xb4\xb9\x05\x5f\x45\x9c\xe2\xef\xd0\x36\x7c\x76\x63\xd5\xa1\xa0\ +\x7d\x10\x01\xb1\x58\x8c\x64\x3c\x41\x3a\x93\x62\xc3\xc6\x8d\x5c\ +\x79\xe5\x95\x2c\x5a\xb8\x28\x00\x04\xef\x7b\x07\xd5\x07\xfc\xf8\ +\xdf\x7e\xfc\x2b\x07\xc3\x9c\xbe\xd9\xc9\x93\x27\xfd\x60\x50\xd0\ +\x90\xd3\x74\xb7\xa6\xaf\x1d\x69\xe0\x6d\xb8\xb7\xd9\xed\x8d\xf3\ +\x81\x40\xdb\x7e\x50\x1e\x20\xa4\xc0\xb1\x26\x34\xf5\x10\x60\x1b\ +\x75\x60\xa8\xf6\x09\xd7\x49\x28\xff\x7d\x74\x09\xd4\xb6\x21\x94\ +\x44\x03\xae\x6e\x8c\x0a\x07\xb8\x02\xff\x73\xae\x5b\xbf\x8e\x6b\ +\xae\xb9\x86\x35\x17\xac\x21\x1a\x89\x12\x8d\x44\x31\x43\xa6\xc7\ +\x4f\x06\xfe\x16\x14\x0f\x3e\xf8\xe0\xaf\x44\x3a\xcc\x39\x00\x14\ +\x8a\xbb\xbf\xf8\x45\xa4\xc2\x65\xf5\xa4\xc6\xe3\x3b\x37\x5a\x49\ +\x97\xf1\x43\x17\xe5\xda\x26\xd2\x3e\x7d\x01\xf0\xc8\xb6\x78\x96\ +\x04\xf5\x3b\xb6\x42\x8a\xa0\xc8\xc7\x65\x17\x95\x14\x28\xe1\xda\ +\x08\x1d\xbc\x43\xdb\x95\xd4\x6c\x0f\x8f\x8b\xd0\x81\x05\xb3\xa8\ +\x24\x9d\xc6\x6e\x4b\xbb\x6c\x2e\xcb\xea\xd5\xab\x59\x3a\xb0\x94\ +\x45\x8b\x17\xb1\x62\xf9\x0a\x7a\x17\xf5\xfa\x2e\x2c\xa8\x36\xc7\ +\xa1\x1c\xb2\xea\xa1\x87\x1e\x66\xc5\x8a\x15\x00\x7c\xfa\xd3\x9f\ +\x9e\xb3\x7d\x0a\xcd\x25\x00\x02\x22\x50\xe9\xba\xb1\x2d\x42\xd1\ +\x36\x5c\x05\x82\x3c\x41\x62\x46\x2a\xe9\xa0\xb5\xad\x09\x34\x3d\ +\xad\xff\x8d\x7b\x4f\x45\xd0\xb0\x6b\x73\x0a\x6e\xd0\x41\x12\xdc\ +\x48\xda\xa0\x62\x16\x23\x53\xf9\x2a\x88\x0e\xa9\x42\x1b\x2c\xee\ +\x89\x72\x7e\x97\xbe\x87\x30\x35\x39\xc5\xae\xc9\x5d\xec\x50\x3b\ +\x30\x0d\x93\x78\x3c\x4e\x24\x12\x65\xc5\x8a\xf3\xb9\xea\xaa\xcd\ +\x5c\x71\xc5\x15\xe8\xba\x41\x29\xd8\xb6\xed\x36\xf6\xee\x7d\x73\ +\xce\x55\x40\x68\x6e\x2f\xaf\x3a\x92\x3d\xa4\x0f\x06\x66\xd1\xf3\ +\x9e\x08\xd7\x8d\xb5\xb6\xee\xa6\xcd\xf6\x05\x36\x65\xa6\xff\x3f\ +\xdb\x09\xd5\x0d\x32\xe8\x0c\x3a\xb5\x81\xd5\x09\x08\xe1\xab\x1d\ +\x07\x38\x41\x10\x7b\x48\x14\x41\xc0\xf8\x3f\xdb\x6a\x44\xb8\xef\ +\x61\xd9\x16\xd3\xd3\x25\x60\x9a\xf1\xf1\x31\x76\xed\x7a\x01\x29\ +\x15\xb9\x5c\x17\x9b\xaf\xda\xc2\x15\x9b\x2e\x67\xf5\x9a\x35\x01\ +\xee\x61\x2e\x97\x31\xb7\xdb\xdf\xb6\xf4\x75\x9f\x5b\xba\x6e\x5a\ +\xc0\xed\xf2\x68\x5c\xa5\x66\x90\x40\xc2\x17\xf9\x3a\x33\xe8\x6d\ +\x89\x07\x24\x11\x24\x6d\x54\xfb\x1a\xde\xc9\x77\xcd\x07\xcd\x95\ +\xd4\x0c\x34\x1d\x28\xae\x1b\x8a\x12\x78\x14\x82\xf2\xdf\x43\xf9\ +\x6e\xa6\xff\x9d\x08\xda\x1a\x04\x62\x15\xb4\x55\x9a\x6f\xdc\x10\ +\x30\x64\x41\x31\x35\x55\x60\xfb\xf6\x07\xf9\xf2\x97\xfe\x20\x00\ +\xe2\xb3\x5a\x02\x08\xf4\x53\xa5\xe5\x82\x82\x7f\x33\xbd\x7b\x22\ +\xfc\x4d\x0a\x5a\xe7\xfe\x5e\x48\x85\x70\x4f\x9a\xd0\x8c\x34\x47\ +\xf4\x2a\x7f\x97\xfd\x6b\x7a\x5c\x02\x3e\x2d\xd8\x36\x3a\x35\x02\ +\x29\x70\xe2\x75\xe9\x21\x5c\xc0\xcd\xd8\x58\x45\x50\x88\x29\x8f\ +\x0a\x00\xdb\x21\xb0\xda\x7c\x85\xf0\xbd\x06\x1d\xb8\xca\xb7\x83\ +\x3a\x40\x45\xdb\x5b\x38\x53\x6b\x8e\x6d\x00\xfd\x34\x7a\xec\x5b\ +\xfb\xc4\xf9\x06\x1b\x12\xe9\x1a\x3f\xfe\xcd\x0c\x9c\x14\xed\x71\ +\xe7\xf5\x15\x33\x36\xd1\xe7\x02\x84\x42\x48\x57\x4a\xc8\xf6\xc6\ +\x77\x9e\xd8\x40\x58\x9a\xa0\xbd\xa2\x3a\x54\x82\x54\x0a\xe1\x5a\ +\xee\xbe\xa1\x27\xda\x2c\xa7\xee\x22\xd2\xa9\x5e\x74\x33\xc2\x17\ +\x91\xd2\x4f\x88\x11\x1e\x07\xa1\x38\x63\x20\x08\xcd\xb1\x09\x10\ +\x24\x80\x94\x76\xc3\x09\x92\x2d\x9e\xcb\xa7\x07\x72\xfc\x0c\x62\ +\xd4\x8c\x00\x8f\x08\x5c\x5f\xcd\x3c\x65\x1d\xc0\x71\xf4\xb7\xd0\ +\x72\x0e\x3b\x52\xd4\x85\xa7\x4f\x3c\xa9\xa1\x5f\x43\xf9\x00\x42\ +\xb7\x09\x3a\x40\x34\xd3\xee\x20\xf0\x59\x94\xea\xa0\x91\xb5\xa8\ +\x64\x40\x75\x9c\xb9\xfd\x9f\x63\x09\xd0\xb6\xad\x3b\xbe\x3c\x9a\ +\x58\xd6\x6e\x64\x40\x14\x6a\x01\x5b\x2d\x51\x04\x1f\x04\x8e\xa5\ +\xaf\xa4\x13\x27\xb0\x6d\x1b\x21\x04\x42\x08\x9f\x25\xf4\xfd\x6c\ +\x37\xc2\xa7\xbb\x67\xa8\x4e\xf1\xee\xb1\x81\x6d\x60\xb5\xff\xbf\ +\xce\xea\x79\xf9\x04\xa0\x44\xd0\x28\x44\x0f\x47\x7b\xc9\x2f\x68\ +\xa1\x6e\x3a\xb3\x96\x34\xb5\xe3\x45\x43\xa5\x3a\x93\x1a\x60\xae\ +\x25\x80\x9b\x84\xe1\x7f\xa7\x20\xcb\xa7\xab\x09\xe5\x9f\x32\x57\ +\x07\x74\xf8\xd2\x6d\xde\x40\xbb\x89\x52\x61\x59\x16\x27\x4f\x9e\ +\xa4\xd9\x6c\x92\x4a\xa7\x48\xa7\xd3\xc4\x22\x31\x4d\x93\x4a\xed\ +\xa4\x6b\xec\x23\xc1\xcd\xf7\x6c\x86\xd9\x5c\x4b\x1d\xb9\x52\xb5\ +\x33\x54\x95\x14\x9e\x3f\x1a\x00\xb8\x4f\x41\xfb\xd6\xa7\x26\x11\ +\x3b\xdc\xdb\xce\xf4\x35\xe1\xc4\xbc\xcf\x11\x00\xf8\x99\x37\x32\ +\xe0\xbf\x2b\x8f\xf8\x90\xba\x5a\x20\x60\x94\xcd\x3c\x85\x4a\xbb\ +\x89\x6d\xf1\x6d\x59\x36\xb5\x5a\x8d\x64\x32\x49\x2a\x99\xa2\x56\ +\xa9\x32\x39\x31\x49\x57\x36\x4b\x2c\x1a\x45\x08\xa1\x01\xcb\x23\ +\x8c\x3a\x72\x04\x74\xaf\x41\x0f\x5b\x2b\xdd\x25\xd5\xc2\xd6\x3e\ +\x5f\xa0\x66\xa5\xad\x75\x23\x53\x77\x5d\x75\xe9\x86\x16\x14\x73\ +\x5f\xe4\x10\x57\x81\x3b\x71\x96\x03\x40\xa2\x10\x22\x58\xf9\xe3\ +\x6f\xa2\xee\xea\xcd\x76\x3a\x02\xae\x83\x66\xec\x05\x18\x3f\x30\ +\x0c\x81\xd5\x6a\x91\x4a\xa5\x58\xb6\x6c\x19\x57\x5e\x79\x25\x2f\ +\xbf\xfc\x32\x7b\xf6\xec\xa1\x90\xcf\x93\x49\xa7\x89\x44\xa3\x18\ +\xa6\xd1\xa1\x1a\x34\x05\xa5\x59\x66\xfa\x67\x14\x5a\x25\x93\x4b\ +\xe0\x6a\xba\xdd\x73\x05\x83\xee\x67\x40\x12\x74\x1a\xf4\x9a\x72\ +\x97\x1a\x57\xa0\x94\x4b\x93\xea\x99\x51\xe7\x82\x0d\x20\x66\x89\ +\xa1\xab\x59\x18\x41\xcf\xe2\xd7\xef\x91\x4f\xf8\xb8\x79\x01\xaa\ +\x93\x29\x04\x2c\xab\x45\xb3\xd5\xa4\x65\x59\xc4\x62\x31\xea\xf5\ +\x3a\xc5\x62\x91\x4f\x7d\xea\x53\x1c\x38\x70\x90\x5d\xbb\x9e\x63\ +\xcf\x9e\xdd\xe4\xf3\x79\x12\x89\x38\xb1\x58\x3c\xe8\x4b\x68\xd2\ +\x44\x4a\x27\x37\x11\x61\x68\x6e\x1a\x7e\x8c\x40\xa3\xf9\xb5\xdc\ +\x44\x82\xd2\x4d\xb7\x5e\x3a\x49\x2c\xa1\x02\x86\x69\x50\xbd\xa8\ +\x19\x24\xd6\xb9\xe1\x06\x06\x6c\xa3\xb6\x88\x6d\xeb\x5f\xa9\xf1\ +\x03\x5e\x0c\xdf\x31\xdc\x04\xed\x1c\xbf\x20\xbb\xd6\xd6\xd1\x85\ +\x42\x91\xc9\xb1\x51\xb2\xa1\x10\xe5\xe9\x69\x6e\xba\xe9\x26\x9e\ +\x7c\xf2\x49\x96\x2e\x5d\xca\xd2\xa5\xcb\xa8\x54\x06\xc8\x66\x3f\ +\xc0\x81\x03\xcf\xb3\x7f\xff\x1e\xc6\xc6\xc6\xc9\x76\x65\x89\xc5\ +\x63\x80\xa0\xd9\x6c\xd0\x68\x34\x90\x52\x62\x08\x03\x33\x64\x62\ +\x1a\x06\xc2\x30\xfc\x14\xb1\x40\xe0\x48\x53\x25\x3e\x7a\x3a\x0c\ +\x3d\x3a\xd8\x47\x8f\x01\x45\x8a\x80\xeb\xdb\xc9\x50\x2a\xe9\xb8\ +\x93\x74\x18\xc2\x67\xb9\x0d\x40\xc0\xb5\xd3\xa5\x81\xce\x92\x29\ +\x3a\x09\x96\x60\xb8\x56\x27\xf8\xfc\x1b\x2c\x15\xd5\x4a\x99\xb5\ +\x89\x04\x0b\x52\x29\x8e\x85\xc3\x2c\x5f\xbe\x9c\x45\x8b\x16\xf1\ +\xe2\x8b\x2f\x72\xf3\xcd\xbd\x8c\x8d\xf5\x31\x39\xb9\x92\x0d\x1b\ +\x2e\xe3\x92\x4b\x5e\xe5\xd0\xa1\x1d\xec\xdd\xbb\x8f\xb1\xb1\x31\ +\x7f\x73\x97\x2e\x5d\x4a\x22\x91\xa0\x56\xab\x51\x28\x14\xa8\x54\ +\xab\x58\x96\x85\x21\x04\xd1\x58\x8c\x68\x34\xda\x56\x41\x22\x98\ +\x62\xee\x78\x03\x92\xa0\x38\x09\xf2\x0c\x48\xa5\x05\x96\x34\xd6\ +\x91\x0e\x15\xa0\x07\x93\xce\x19\x37\xb0\xd3\xc0\x72\xa3\x25\xfe\ +\xe6\xeb\x62\x53\x57\x05\x1d\x3e\xb3\xce\x1d\xe8\x04\x8d\xd5\x6c\ +\xd2\x1d\x8b\x51\x6b\xd4\x59\xb1\xee\x42\x62\xb1\x18\x2b\x57\xae\ +\xe2\xa5\x97\x7e\xce\xf4\x74\x81\xde\x5e\xc5\xc9\x93\x36\x4f\x3f\ +\xdd\x8f\x65\x2d\xa1\xa7\x67\x23\x2b\x57\x3e\xc4\xd0\xd0\xff\xe4\ +\xe2\x8b\x2f\xe6\xfa\x1b\x6e\x60\xe9\x92\x25\x98\x86\x41\x3c\x91\ +\x40\x08\x41\xa1\x50\xe0\xc8\x91\x23\xec\xde\xbd\x9b\xd7\x5f\x7f\ +\x9d\xb1\xb1\x31\xe2\xb1\x38\xf1\x44\x1c\x43\x18\xae\xee\x3e\xc5\ +\x26\xea\x7a\xdd\xa7\x80\x5d\xec\x88\x60\x26\x54\x80\x15\x42\x21\ +\x35\xad\x20\xce\x25\x09\xd0\x0e\xf9\x6a\xa7\x1f\x8d\xb4\x51\x41\ +\xe3\x47\x2a\x27\x34\xac\x07\x5f\x82\xc4\x4a\xdb\xf7\x6f\xb5\x5a\ +\x44\x43\x21\x4e\x36\x1b\xac\xea\xeb\xc7\xb2\x6c\x72\xd9\x2c\x85\ +\x42\x81\x62\xb1\x40\x2e\xd7\xe4\xda\x6b\x87\xd9\xb0\x21\xc4\x89\ +\xc1\x2c\x83\x27\x7a\xb1\xed\x3e\x56\xac\x58\xc1\x6f\xff\xf6\x6f\ +\xb3\x6a\xf5\x2a\x22\xe1\x08\x21\xd3\x74\x7d\x70\xc9\xe2\xc5\x8b\ +\x58\xb5\x6a\x35\x9b\x37\x6f\x66\x70\x70\x90\x97\x5e\x7a\x89\x17\ +\x5f\x78\x81\xc1\x13\x27\x30\x4d\x93\x68\x34\x4a\x38\x14\xf6\xf3\ +\x17\xbd\x1c\xc7\xc0\xa9\x57\x33\x03\x55\xa8\x99\x11\x4e\xfd\x71\ +\x30\x16\x01\xea\x9c\x60\x02\xb5\x9c\xfb\x00\xeb\xe7\x05\x76\x84\ +\xf2\x03\x3a\x42\x3b\x11\xca\xf3\xb7\xa5\x4b\x0b\xeb\x92\xc0\x7d\ +\xce\xb6\x5b\x88\x56\x8b\x08\x50\xb3\x6d\xe2\xae\x11\x28\x0c\x41\ +\xb3\xd9\x64\x7a\x7a\x1a\xc3\x30\x1c\xfd\x6e\x54\xe8\x1f\x28\x90\ +\xcd\x0d\xb3\x6b\xd7\xab\x74\x77\x77\xb3\x78\xf1\x62\x50\xd0\x6c\ +\x36\x69\x81\x53\x81\xea\xfe\x30\x0c\x83\xae\xae\x2e\x27\x63\x78\ +\xed\x5a\xae\xbb\xf6\x5a\xfe\xf1\x07\x3f\x60\xe7\xce\x9d\x54\xab\ +\x55\x0c\xd3\x20\x99\x48\x22\x84\x93\x9f\x20\x3b\xdc\xbe\x40\x4c\ +\x41\xe3\x04\x24\x1d\xf4\xb2\x6a\xe7\x01\xf8\xea\xce\x8b\x5a\x89\ +\x73\x45\x02\x68\x37\x45\x27\x70\x66\xb0\x60\x4a\x0b\x17\x7b\x71\ +\x03\x82\xc9\x21\x1e\xfb\x86\x02\xdb\x96\x60\xdb\x54\x5b\x2d\x6a\ +\x40\xad\x56\xa3\xd1\xa8\xd3\x6a\xb5\x10\x42\x50\x29\x97\x89\x46\ +\xa3\x94\xcb\x65\x6c\xdb\xe1\x0a\x26\x27\xc7\x29\x14\xf6\x71\xf1\ +\xc5\x1f\x24\x14\x0a\xd1\x6a\xb5\xdc\x4d\x6f\xdf\x6d\xfd\x31\x02\ +\x04\x82\xbe\xbe\x3e\xd6\xaf\x5f\x4f\xa9\x54\x62\xf5\xea\xd5\x6c\ +\xdf\xfe\x10\x95\x4a\x85\x44\x3c\xd1\x36\x0a\x75\x62\xd3\xff\x45\ +\x38\xc1\xa1\x8e\xef\x19\x60\x0c\x65\xdb\x50\xf4\xd8\x68\x1d\xf4\ +\x67\xb9\x0d\x40\x30\x97\xdf\xd3\x81\x33\x6e\x8a\xf2\xe3\x22\xbe\ +\x3c\x98\x61\x04\xb6\x95\xbf\x94\x4e\x62\x69\x15\x78\x51\x4a\x64\ +\x36\xcb\xee\x3d\x7b\x48\x67\xd2\x54\x2a\x55\x4c\xd3\xe4\x95\x57\ +\x5f\x25\x1e\x8b\xa1\x94\x62\x7a\x7a\x9a\x72\xb9\x4c\x36\x9b\x65\ +\xe9\xd2\xf3\x58\xb5\x6a\x15\x52\x4a\x3f\x1b\xc8\xd9\x73\xe1\xff\ +\xec\x04\x83\x65\x5b\x8c\x4f\x4c\xd0\xd7\xd7\xc7\x47\x3f\xfa\x51\ +\x72\xb9\x1c\xdf\xfa\xd6\xb7\x68\xb6\x9a\x84\xcc\xd0\x29\xca\xda\ +\xda\x11\xa8\x40\xd6\x11\x3a\x45\xdc\xa9\x12\xda\x86\x83\x12\xe7\ +\x04\x00\x02\xe4\x7f\x90\x0f\xf0\xdc\x1e\xed\x8b\x07\xbc\x00\x34\ +\x16\x0e\x19\x60\xcd\x94\x52\xd4\xea\x35\xa2\x89\x04\x1b\x36\x6d\ +\xe2\x92\x4b\x2e\xe1\xb1\xc7\x1e\xe3\xb9\xe7\x76\xa0\x94\xa4\x58\ +\x2c\x12\x8f\xc7\x49\xc4\x13\xc4\x62\x11\xfa\x16\xf7\xb1\x72\xe5\ +\x0a\x92\xa9\x14\xb1\x58\x8c\xee\xee\x6e\x9a\xcd\xa6\xbb\xc1\xca\ +\xfd\x29\x34\x10\x38\xa8\xf0\x1e\x56\x2a\x15\x8e\x1f\x3f\xce\x07\ +\x2e\xba\x08\xdb\xb6\xd9\xb2\x65\x0b\x6f\xbe\xf9\x26\xcf\x3c\xf3\ +\x2c\x5d\x99\x8c\x1f\xf7\x76\xec\x01\xd1\xf1\x3d\x65\x50\x16\x2a\ +\xe7\xac\xb7\x6d\x04\x81\x52\x76\x90\x7d\x14\x67\x8e\x09\x3a\x43\ +\x6e\x20\x33\x22\x80\x5e\x02\x80\x16\x06\xd2\x4e\x84\x5e\xab\x27\ +\x02\xe4\x88\x54\x8e\xfe\x9f\x9a\xca\x73\xf1\xc6\x8d\x6c\xdb\xb6\ +\x8d\x74\x3a\x8d\x94\x92\xd7\x5e\xdb\x4d\x36\x9b\xe5\xba\xeb\xae\ +\x23\x9b\xcd\x62\x9a\x21\xba\xbb\x73\xc4\xe3\x71\x6c\x29\x31\x0d\ +\x03\xd3\x34\x7d\x03\xd2\xa9\x20\x16\x18\xc6\xec\x2a\xc0\x7b\x7c\ +\xe2\xc4\x20\xd3\xc5\x22\x03\x03\x03\xb4\x9a\x4d\x10\x82\x6b\xaf\ +\xbd\x96\x17\x5f\x7c\x91\x66\xab\x49\x24\x1c\xf6\x63\x18\x0a\xa9\ +\x05\x74\x14\xca\x2f\x53\x56\x6d\xb0\x7b\xd4\x30\x5e\x16\x54\x3b\ +\x37\xa2\xd3\x80\x3c\xeb\x55\x80\x10\x2a\xe0\x0b\xeb\x99\xc1\xde\ +\x49\x31\x0c\x03\xdb\xb6\xdb\x46\xa0\x90\x01\xab\x38\xe0\x2b\xa3\ +\x68\x59\x36\xad\x56\x8b\x35\x6b\xd6\x90\x4c\x26\x91\x52\xb2\x66\ +\xcd\x1a\x56\xac\x58\x41\x2c\x16\x43\xda\x36\x08\x41\x28\x64\xa2\ +\x94\xa2\xd1\x68\x38\xe0\x31\x0c\x9a\xcd\xa6\x93\x06\x25\x0c\x57\ +\xda\x6b\xa7\x7e\x16\x00\x48\x29\x79\xfd\x8d\x37\x48\xa5\x52\x2c\ +\x58\xb0\x80\xa6\x6b\x63\x0c\x0c\xf4\x73\xc1\xda\x0b\x78\xf5\x95\ +\x57\xdd\x4e\x26\x6a\x46\x5b\x1b\x1f\xf2\xb2\x5d\x41\x34\x23\x4b\ +\x79\x06\x3d\xad\x91\x5e\x67\xbd\x04\x08\xd4\xe8\x07\x03\x26\xde\ +\x0d\x5b\xb0\x6c\x29\xe1\x54\x37\x56\xbd\x84\x55\x2a\xd2\xac\x54\ +\xa9\x37\x1a\x34\x9b\x2d\xb0\xed\x0e\x22\xc8\xf9\x9b\xb0\x69\x12\ +\x0e\x85\x19\x1c\x1c\x64\xe3\xc6\x8d\x84\xc3\x11\x40\x61\x18\x06\ +\x8d\x46\xd3\xb7\xa0\x2c\xcb\xc2\x30\xdc\xec\x23\xa5\x30\x4d\x13\ +\x84\xc0\x56\x0a\x25\x2d\x84\x21\x02\x45\xa1\x3a\x12\x84\x63\x01\ +\x52\x2a\x95\x38\x78\xf0\x20\x6b\x56\xaf\x21\x1c\x0e\xfb\x46\xa6\ +\x10\x06\x17\x5e\x78\x21\x2f\xfd\xfc\x25\x97\xb1\x14\x01\x1a\xb8\ +\x9d\x19\xa4\x3a\x4e\x37\x3e\x18\xbc\x18\x40\x20\x31\x45\x0f\x7b\ +\x9f\x0b\xe1\xe0\x40\xa0\x27\x40\x9a\x38\xdb\x79\xc1\x75\xb7\xd3\ +\x34\x3e\xc4\xd0\x01\x45\xbe\x3e\x8a\x8a\x1f\x25\xd1\x73\x98\x5c\ +\xf8\x38\x76\x7d\x9c\xd1\xc3\x47\x7c\xaf\x41\x08\x90\xb6\x42\x98\ +\x26\x0b\x7a\x7b\xd9\xb9\x73\x17\xb6\x6d\x73\xe3\x8d\x37\xd2\xdd\ +\xdd\x1d\xa8\x28\x36\x0c\x83\x56\xab\x45\xa3\xd9\xf0\x0d\xb5\x7a\ +\xa3\x4e\xb3\xd1\x24\x1c\x0a\x11\x89\x44\x10\x86\xe1\xf3\xfc\xa1\ +\x50\x88\x68\x38\x82\x61\x1a\x01\x1b\xe6\xcd\x37\xde\xa0\x52\xae\ +\xb0\x72\xe5\x4a\x6c\xcb\xf6\x81\x2d\xa5\xa2\x52\xae\x38\x92\xc5\ +\x96\x08\x07\x69\x9a\xed\xa2\x3a\x1a\x54\xa8\x76\xb6\xb2\x4e\x84\ +\x49\x66\x0d\x78\x9d\x13\x6e\xa0\x9e\xed\x1b\x48\x98\xd0\x98\xc1\ +\x56\x13\x8e\x1e\x8a\xd3\x6c\x84\x58\xf6\x81\x1c\xb5\xf2\x5a\x2a\ +\x45\x85\x1d\x6e\xb2\xec\x83\x45\xce\xbb\xfc\xa7\x4c\x1c\xdd\x4d\ +\x39\x5f\x22\x14\x82\xfa\xf4\x14\xf5\xe2\x34\x91\x70\x98\x70\xc4\ +\x64\xe7\xce\x9d\x4c\x8c\x8f\x73\xc7\x9d\x77\x92\x48\x26\x09\x19\ +\x06\xd3\xd3\xd3\x94\x4a\x25\x0c\x29\x09\x21\xa8\xd5\x6b\x34\xaa\ +\x55\x92\xd1\x08\xf1\x70\x84\x42\xb3\x49\xbd\xd1\x40\x49\x49\x34\ +\x1a\x25\x12\x8d\x42\x24\x02\x91\x08\xd1\x54\x8a\x74\x26\x43\x22\ +\x1e\xa7\x5e\xab\xb1\xe7\xf5\xd7\x19\x18\x18\x20\x97\xcb\x61\x59\ +\x96\xef\xb7\xef\xd9\xb3\x87\x17\x5e\x78\x41\x53\x1b\x33\x2d\xfa\ +\x40\x4d\xa2\xa0\x5d\x14\xd3\x41\x16\xb5\x03\x4c\xc1\x80\xd2\x39\ +\x20\x01\xe8\x60\xba\xda\x40\xf7\x8c\xe3\x63\x2f\x3c\xc2\xf9\x97\ +\x57\xb0\x5b\x4d\x1a\x55\x83\x4b\xee\xfc\x0d\x8e\xec\x49\xf1\xc6\ +\x8e\x28\x3f\xf8\xfa\x22\xfa\x57\x7c\x84\x55\x17\x7f\x88\xde\x0b\ +\x05\x99\xde\x0c\xc5\x89\x3c\xe5\xb1\x41\x5a\xb5\xc3\x2c\x6c\xee\ +\x67\x60\xed\x20\x43\xc7\xf7\xf3\xf0\xf6\x7f\xe5\x83\x17\x6d\x24\ +\x2e\x0c\xc2\x52\xd2\x9f\xcd\x12\x33\x4d\x84\x6d\x93\xe9\xea\xa2\ +\xab\xaf\x0f\x69\xdb\x34\x1a\x0d\x42\x40\x2c\x1c\x06\x29\x29\x55\ +\xab\x14\x4a\x25\x2a\xc5\x22\x95\x66\x93\x92\x6d\x33\x15\x8d\x92\ +\xec\xeb\xa3\x50\xab\x31\x3e\x3e\xce\x15\x57\x5c\x41\x28\x14\x42\ +\xa1\x68\x35\x5b\x1c\x3a\x74\x88\xc7\x1f\x7f\x9c\x93\x27\x4f\x12\ +\x8f\xc7\x1d\x63\x52\x76\x90\x3c\xde\x26\x4b\x02\x31\x7f\xed\x45\ +\x81\x10\x32\x1d\x25\xef\xe7\x88\x0a\x20\x58\xdb\xa7\xf9\xbf\x9e\ +\xab\x33\x7c\xe0\x20\x43\xfb\x0e\x20\xc2\x21\xd2\xdd\x39\x2e\xba\ +\xf1\x0a\x6a\xe5\x0b\xa8\x95\x61\xe5\x06\x45\xcf\x40\x0c\xa5\x7a\ +\x39\xf2\x7a\x93\x56\x2b\x42\x22\xb3\x88\x54\x76\x80\x50\x66\x13\ +\x66\x08\xba\x57\x95\x59\x75\xf5\x09\x7e\xf6\xc0\x57\x99\x38\x74\ +\x90\x8f\x5d\x73\x0d\xd9\x44\x0a\xdb\xb2\x08\x09\x41\x34\x14\xc2\ +\x6a\x36\xb1\x1a\x0d\x27\xe3\x46\x08\x6c\xcb\x42\x36\x1a\xd8\x96\ +\x45\x4e\x49\x72\x91\x08\x52\x08\xac\x48\x84\x6a\xbd\xce\x64\xa5\ +\xcc\x1b\x2f\xbe\xc8\xd3\x43\x43\x2c\x59\xb9\x92\x25\x4b\x96\x20\ +\x84\xc3\x30\x1e\x3e\x7c\x98\xc7\x1e\x7b\x8c\x63\xc7\x8e\x11\x8b\ +\xc5\x30\xcd\x90\x5f\x78\xaa\x82\x47\x3f\x00\x04\x39\x43\x2a\x12\ +\x4c\x47\xeb\x28\x94\x51\x42\x9d\x43\x2a\x40\x6b\x0d\xa3\x5b\xcb\ +\x81\xd6\x30\xcd\x26\xc5\xd1\x51\xf6\x3e\xfb\x2c\xc9\x6c\x17\x9b\ +\x6e\x95\xa4\x92\x83\x9c\x78\x63\x1f\x60\xb1\x78\x51\x8b\x54\x36\ +\xc9\xe0\xde\x11\xea\xc5\x0c\xc4\x56\x60\x71\x3e\x93\x43\x7d\xb4\ +\x9a\xeb\xc0\xbc\x8f\x3d\x87\xbe\xc9\xf4\x7a\x83\x64\x75\x02\x61\ +\xb7\x68\x4a\x87\x26\x96\xb6\x0d\xb6\x8d\x94\x36\xca\xb2\x51\xb6\ +\xf3\x4f\x4a\x89\xb4\x2c\x94\xf4\x9e\x93\x28\xdb\x26\x27\x6d\x8c\ +\xc9\x49\x1a\x63\x63\xa4\x37\x6e\x24\x1a\x8d\xd2\x68\x34\xd8\xb3\ +\x67\x0f\x4f\x3f\xfd\x34\x47\x8e\x1c\x21\x99\x4a\x11\x76\xbd\x8c\ +\x19\xc1\x2b\x37\xe0\x15\x54\x7f\xed\xda\x86\xd9\xc2\xc6\x81\x22\ +\xd4\x73\xc6\x08\x44\x0f\x78\x69\x91\x30\x9f\xf1\x6b\xfb\xc2\x9e\ +\xc5\xfc\xc6\x53\x8f\x70\xfe\xc6\x61\x6a\xa5\x69\x86\xf6\x1f\x40\ +\xb5\x6c\x9a\xf5\x1a\xcd\x66\xd3\xb1\xe4\xc3\x61\x42\xa6\x41\x24\ +\x16\x27\x96\x4c\xb2\x78\xdd\x45\x2c\x5e\x73\x3d\x93\xe3\x17\xf2\ +\xb2\xf9\x3b\x3c\x70\x64\x92\xab\x7a\xdf\x60\x79\xe2\x00\xd1\xc9\ +\xc3\x48\x5b\x62\x5b\xca\xd9\x5c\x69\x23\x3b\x00\xe0\x3f\xb6\xdb\ +\xcf\x8f\x37\x1a\xbc\x32\x36\xc6\xfa\x68\x94\xf4\xe0\x20\x27\x06\ +\x07\x39\x78\xe8\x10\x3b\x76\xec\x60\x78\x78\x98\x74\x3a\x8d\x61\ +\x18\x6d\xf6\x52\x10\xb0\x6d\x02\x29\x6e\x5a\xf1\x87\x94\xc1\x90\ +\xb6\x9e\x00\x23\x3a\xd3\xd2\xc5\xb9\x62\x03\x88\x60\x10\x48\x20\ +\xdc\x22\xd0\x99\x6d\xdc\x40\x51\x9e\x98\x64\xf7\x93\x4f\x75\x74\ +\x15\x6b\x27\x60\x58\x8d\x06\x2d\xa0\x5a\xa9\xc2\xc4\x04\x43\x47\ +\x8f\x92\xdc\xf5\x3c\x4b\x2e\xdc\xc8\xe6\x5b\xb6\x31\x36\x76\x29\ +\xff\xba\xe7\x12\x92\x43\x43\xac\x2a\x3f\xc5\xca\xcc\x5e\xb2\x85\ +\xd7\x88\x58\x05\x94\xd5\x44\x5a\x36\xd2\x76\x82\x4d\xed\x93\xef\ +\x02\x40\xda\xb4\x5a\x16\xbb\x6a\x35\xaa\x8d\x06\x57\x2d\x58\xc0\ +\xe8\xd1\xa3\xfc\xf3\xf7\xbf\xcf\x78\xa1\x40\xad\x5e\x27\x9d\x4a\ +\x23\x4c\xc3\x37\x64\x02\x29\xe4\x9d\x01\xaf\xf6\xc1\x6f\xc3\xbd\ +\x23\xcc\x3d\x5b\x84\x50\x09\x75\x0e\xa5\x85\x07\x74\xa2\xae\x0e\ +\xe8\x88\x12\xb6\x23\x83\x74\xdc\x18\x2f\xa4\xaa\xbc\x9e\x1c\x6e\ +\x08\xce\xbb\xe9\xa5\x89\x49\xde\x7c\xf6\x49\xc6\xf7\xbf\xce\x9a\ +\xcd\x57\xb1\xf4\x8e\x4b\x51\xe6\x66\x4e\xfe\xe2\x2e\x86\xc7\x0a\ +\xa4\xf3\xcf\xd2\x33\xbd\x8b\x5c\x64\x84\xa4\x3d\x8e\x59\x99\x44\ +\x55\x0a\x88\xda\x34\x42\x5a\x6e\x4a\x98\xc0\x92\xb0\x4f\xda\x1c\ +\xb2\x2d\x16\x0b\xc1\x58\x71\x9a\xd7\xc2\x61\xaa\x0b\x32\x24\xba\ +\x53\x24\x55\x9a\x66\xa5\xe1\x04\xa2\x54\xbb\xbc\x4c\xcc\x56\xd8\ +\xaa\xf9\xfe\x81\xa6\x15\x01\x69\xa0\x02\xad\x6f\x95\x9e\x6c\x74\ +\xce\xe4\x03\xf8\x34\xa7\x96\x7c\x19\xa8\x18\x68\x2b\x3c\xd9\x69\ +\x19\xd3\xae\xb4\xf5\x53\xc5\x85\x96\xb5\xeb\x22\xc6\x93\xc0\x63\ +\x43\xc3\x8c\xfd\xe8\x7e\x8c\xd0\x8f\x39\xff\x83\x57\x12\x4d\xaf\ +\x85\xc5\x17\x93\xef\xf9\x28\x27\x46\xee\x22\x54\x1a\xa1\xab\x7e\ +\x88\xee\xd6\x9b\x64\xaa\xfb\x88\x4c\x9f\x40\x4d\x8d\x42\x7e\x9c\ +\x90\xd1\x62\x4a\x4e\xf3\xef\x76\x95\x09\x0c\xc2\xc9\x2c\x23\xfd\ +\xfd\x24\x2e\xfe\x5f\x39\x3f\x76\x03\x21\x63\x14\xec\x7d\xb4\xea\ +\x07\xa8\x97\x4f\x72\xf2\xcd\xbd\x2e\xe9\x24\xdb\x35\x07\xfe\xb7\ +\xd5\x45\xbc\x0c\x96\x02\xe9\x99\x51\x1d\xaa\xd1\x3f\x02\x5e\xf6\ +\xd1\xb9\x12\x0c\xea\xd4\x8b\xc1\xee\x1b\x32\x98\x2a\xa5\x55\x02\ +\xeb\xfc\xb9\xea\xa4\x5a\x3b\x8c\x4a\xbd\x78\xc3\x6a\xb5\x38\xf4\ +\xe2\x73\x84\x8c\xe7\xe9\xe9\x1f\x60\xf5\xd5\x5b\x10\xe7\xf5\x53\ +\x29\xf7\x93\x9f\xea\x67\xdf\xf4\xc5\x34\xa7\xb3\x98\x8d\x0a\x89\ +\xda\x71\x22\x13\x07\x50\x76\x83\xc3\x45\x38\x3c\xda\x44\x98\x05\ +\x86\x96\xb4\xb8\xec\x23\x17\x71\xc1\x65\xd7\x71\xe8\x95\x28\xe1\ +\x88\x81\xe2\x36\xe2\x49\x8b\xae\xde\x22\xf9\x13\x3f\x65\xe4\xf0\ +\xbf\x33\x35\xb8\x8f\xc1\x03\x07\x91\xf5\xba\x56\xb7\x30\x4b\x86\ +\x30\x1d\xaa\x21\x60\x08\xea\xf6\x42\xa7\x5a\x3c\x17\x8c\x40\xa5\ +\x71\x01\x1d\xe1\x5d\xd5\x51\x25\xa4\x17\x6e\xcd\x5a\xe6\xa5\xda\ +\xe9\xd8\x7e\x5f\x01\x15\xb4\xaa\x05\x20\x2d\x8b\x86\x52\x9c\x38\ +\x7c\x84\x13\x87\x0e\x21\x42\x21\x92\xdd\x0b\xc8\xf4\x2c\x26\xd3\ +\x3b\x40\x62\x45\x3f\xa1\xd8\x22\x6c\xfa\xb1\xd4\x45\x48\x7b\x01\ +\xd9\x03\xbf\xe0\x3f\xac\xef\xa7\x56\x12\x4c\x0e\x85\x98\x3a\xd9\ +\xc7\x33\x87\xa3\x28\x29\x48\x66\x14\x5d\x3d\x82\x7a\x39\xcc\xd1\ +\xd7\x7b\x68\x35\xef\x24\xd7\xbb\x85\x4b\xee\x18\xe1\xbc\xc1\x87\ +\x79\xe3\xd9\x87\x19\x3e\x72\x84\x36\xb5\xaf\x3a\x24\x5b\xb0\x1a\ +\xa8\xdd\x84\xa2\xa3\x28\x26\x98\x45\x71\xf6\x53\xc1\x81\x76\x28\ +\x1a\x0d\x1a\x30\x8a\xbc\x30\x78\x67\x23\x27\x5d\x0a\x68\x1b\x3d\ +\x9b\x9f\xad\x07\xcf\x64\xc0\x95\x72\x4f\x5c\xcb\xa2\x38\x32\x42\ +\x71\x64\x18\xa5\x5e\x76\x3c\x8a\x48\x94\x4c\x4f\x2f\xbd\x4b\xfa\ +\xc9\xf6\x74\x23\x8b\xfb\x39\xfe\xf3\x34\x91\x64\x9a\x68\x28\x42\ +\x66\xe1\x32\xa2\xa9\x01\x6c\xab\x9f\x70\xe2\x52\xaa\xa5\x0c\x99\ +\x9c\x60\xc3\x75\x8a\x50\x38\xc2\x2b\x4f\xf6\xf1\xe2\xa3\xfd\xf4\ +\xaf\xda\xc0\x8d\xff\xe9\x2e\x8a\x23\x8f\x33\x7a\x6c\x2f\xc3\x07\ +\xf7\x71\x72\xdf\x7e\x5a\x8d\x46\x30\xb2\x17\xa8\x25\xf4\xc2\xbf\ +\x02\xcd\x84\xf4\xa9\x61\x71\x6e\x50\xc1\x4e\x8e\x8b\x50\xc1\x26\ +\x0f\x81\xaa\x5e\x57\x0d\xe8\x25\x7b\x78\x35\x77\x0a\x2d\x1f\x80\ +\x8e\x72\x31\x97\x2c\xe9\xa0\x56\x95\xd0\xd3\xb5\xe5\x0c\xc9\xa3\ +\xdb\x19\x56\xa3\xce\xe4\x89\xe3\x4c\x0e\x1e\xf3\xdb\xd3\x18\xc2\ +\xc4\xb6\xac\xc0\x09\x8c\x67\xba\xb9\x60\xf3\x4d\x64\x16\x6e\xa6\ +\x56\xde\xc2\x4f\xbf\x9f\xc3\x30\xa1\x5c\x00\x69\xc3\x4b\x8f\x86\ +\xd9\xfd\xcc\x3a\xd6\x5c\xbe\x8a\x9e\xfe\x69\x56\x5f\x36\xce\xd8\ +\xb1\x9f\x70\xe4\x17\x4f\x32\x71\xec\x38\xe3\x43\x43\x1d\x7d\x0d\ +\xdb\xcc\xb8\xc0\x6e\xd7\x19\xa0\xd9\x47\xf2\x9c\x00\x80\x93\x20\ +\xe1\xb7\x71\x25\xd8\xa8\x49\x37\x0e\xd5\x8c\x53\xe2\x35\x89\xf6\ +\xa2\x79\xda\x35\xa4\x0a\xc6\xd3\xa5\x76\x8a\xe4\xcc\xae\x22\x7a\ +\xa3\x69\x66\xed\xef\xd3\xa6\xe6\x6c\x69\x05\x3b\x85\x28\x45\x39\ +\x3f\xce\xab\x8f\xfe\x13\xe9\xec\x23\xac\xbf\xf6\x5a\xd6\x6d\xba\ +\x8a\x66\xf3\x06\x5e\x7a\xbc\x97\x74\x4e\xf1\x9b\x7f\x2e\x99\x1e\ +\x3f\xca\xa1\x57\x4e\x32\x35\xdc\xc7\xe8\xb1\x95\x08\xe3\x73\xac\ +\xba\xe2\xe3\x5c\x76\xdb\x2f\x78\xe5\xd1\xbf\x61\xff\x0b\x2f\x50\ +\xab\x54\x3b\x0a\x5c\xdc\x1c\x82\xd9\x02\x65\xe7\x82\x11\x18\x48\ +\x6f\xf6\x3a\x84\xfb\x5b\xe7\x35\x86\x22\xb8\x29\xfe\xae\xe9\xe4\ +\xba\xec\x78\x4d\x67\xe9\x98\x9c\x59\x6d\xa4\xa5\x65\x05\xb2\x6e\ +\x67\xb4\x8b\x25\x18\xaa\xa5\xb3\x51\x94\x9b\x83\xd0\x6a\x32\x35\ +\x36\xc1\x33\xff\xf4\xcf\x18\xa1\x7f\x61\xe3\x8d\xb7\x73\xd5\x1d\ +\x9f\x61\xf4\xf8\xc5\x14\xc7\x40\xa8\x9d\xbc\xfe\xcc\x37\xc8\xf4\ +\xf6\xb3\xfa\xb2\x9b\xc8\xf5\xdd\xc8\xe4\xd0\x72\x8e\xbe\xf1\x61\ +\xd6\x5c\xb1\x98\x5c\xff\xdf\xf3\xf4\xf7\xbf\xeb\xb7\x94\xe9\x78\ +\xf3\x19\x4d\x2c\xce\x54\x4e\xd8\xdc\x57\x06\x29\xb8\xeb\xae\xbb\ +\x98\x98\x98\xe0\xd8\xb1\xe3\x1c\x3b\x76\x94\x56\xab\x15\x90\x02\ +\x82\xa0\x44\x90\x7a\x08\xb9\x43\x75\x04\xeb\x07\x55\x20\x97\xae\ +\xb3\xff\x5f\xa0\x2f\xd0\x0c\xb5\xe0\xc9\xe0\x99\x65\x59\x7e\x07\ +\x12\x82\x21\x5d\x4f\x7d\xd8\xad\x16\xbb\x9f\x7a\x88\xca\xe4\x71\ +\xae\xfa\xad\xff\x93\x64\xd7\x85\x8c\x1c\x9e\x64\xec\xd8\x01\x46\ +\x8f\xee\xe7\xe8\x2f\x9e\xa3\x77\xe9\x7f\x67\xdd\xb5\xb7\x73\xfe\ +\xfa\x4f\x51\xaf\x5c\xc4\xf5\x1f\xff\x5d\x0e\xbc\xb4\x83\xe3\x6f\ +\xec\x0f\xe4\x02\x75\x1a\xc4\x3a\xaf\x70\x0e\x78\x01\xce\x17\xb9\ +\xe1\x86\x1b\x80\x76\xe6\xee\xf4\x74\x89\x97\x5e\x7a\x89\x5d\x3b\ +\x77\x31\x31\x39\xa1\x35\x5c\x68\x1b\x87\x8a\x60\xc3\x84\x4e\xea\ +\x54\x69\x04\x91\xc7\x04\xe8\x00\x08\xb6\x91\xd5\x6c\x52\x08\x82\ +\x4a\x76\x34\x67\xd0\xd3\xb7\x20\xd0\xc6\x46\xff\x2c\x8d\x46\x83\ +\x37\x77\xbd\x48\x6d\xfa\xf7\xe9\x5f\x7b\x01\xc7\xdf\xdc\xe7\x7f\ +\xc6\x56\xb3\xc9\x89\x83\x87\x18\x3d\xfe\xb7\xac\xbf\xe6\x4d\x7a\ +\xce\xbb\x8a\xfd\xbb\xc2\x54\x0a\x25\xbc\x52\x11\xa5\x82\x64\x98\ +\xf4\xfa\x17\x05\xdc\xda\x33\xc1\xd2\xcc\xf1\x7a\xfd\xf5\xd7\xd5\ +\x8c\x8a\x5f\xed\x74\x01\xec\xd9\xb3\x87\x1d\x3b\x76\x70\xf0\xe0\ +\x21\x1a\x8d\x3a\xb5\x9a\xc3\xfd\x7b\x5e\x84\xdf\x1c\x52\xcd\x96\ +\x7d\xdb\x66\xe4\x1c\x0f\x23\xd8\x2d\x3c\x98\xb1\xdb\x6e\x08\x29\ +\x34\x1e\xa2\xb3\x95\x7d\x30\x65\x2b\x98\xa5\x13\x28\xf5\x96\x2e\ +\x31\x25\x9d\xd4\x37\xdb\x9e\xc9\x6c\x02\x4e\x26\x92\x21\x68\xd6\ +\xea\xc1\xfe\x83\x1d\x7d\x8c\xbc\x8d\xff\xb7\x07\xff\x0d\x14\x0c\ +\x0f\x0f\x03\x67\x71\x9f\x40\x80\xf5\xeb\xd7\xfb\x1f\x7e\xcf\xee\ +\xdd\x2a\x58\x43\xef\xdc\xd5\xf5\xeb\xd7\xb3\x6e\xfd\x3a\x50\x30\ +\x35\x35\xc5\x91\x23\x47\x18\x19\x1e\x66\x68\x78\x98\x03\x07\x0e\ +\x30\x3e\x3e\x1e\xd8\xa4\x19\x24\x8a\xc6\x2e\xaa\x0e\xf1\xaf\x98\ +\xe9\x82\x75\x76\x06\x51\xb3\xb4\x6b\x51\x2a\x78\x12\x67\x14\x73\ +\x76\xf4\x2d\xf0\xe2\x15\x81\x72\x31\x57\xd0\xdb\x4d\x5b\xb3\x7c\ +\xdc\x96\x71\xee\xa9\xf7\x5a\xc8\xe9\x6a\x4f\xcf\x18\x3a\x07\xa8\ +\xe0\xf6\xba\xe8\x03\x1f\x10\x77\xdc\x79\xa7\xe8\xed\xe9\x31\x26\ +\x27\x26\xfe\x17\x33\x14\xfa\xab\xaf\x7c\xe5\x2b\x39\x1d\x14\xb9\ +\x5c\x8e\x5c\x36\x07\x97\x28\x5a\x96\x45\xa3\xd9\x74\xe2\xf0\x87\ +\x0e\xf1\xdc\x73\xcf\xf1\xf2\xcb\x2f\x77\x6c\xbe\xea\x98\x09\xd0\ +\xd1\x4a\xce\x6b\x1a\xd5\x99\x78\xa1\x77\x03\x61\xb6\x64\x8c\xa0\ +\x47\x21\x74\x3d\xdd\xd1\x57\x60\x46\xe9\xb7\xd4\x8d\xc9\x8e\x3e\ +\x08\x6e\x7b\x7c\x3d\x41\xc4\x1f\x9b\x23\xce\x7c\x79\xf8\x19\x6b\ +\x4c\x7c\xdb\xb6\x6d\x51\xc3\x34\xd3\x86\x69\xfe\x47\xd3\x10\x5f\ +\x37\x0c\x33\x2a\x84\x08\x10\x41\xf7\x7d\xe9\xbe\x0e\xbe\x7c\x96\ +\x4e\x63\xc0\xe4\xe4\x24\xbb\x76\xed\xe2\xa5\x97\x5f\xa2\x90\x2f\ +\x50\x2e\x57\xa8\x54\xcb\xb3\x74\x06\x0d\xce\x19\x0a\x76\x05\xd7\ +\xdd\x4c\x0d\x08\xae\x4d\x20\xe9\x9c\x52\xd2\x61\x94\x7a\x9c\x83\ +\xdb\x1a\xce\x6b\x57\xef\x35\xa7\x9e\x61\x98\x6a\xb9\x00\x81\x9e\ +\xc9\x5a\x55\xb1\x27\x11\xb6\x3f\xf8\x20\x4a\xc1\xe8\xe8\xc8\x9c\ +\xab\x80\x39\xbb\xf0\x6d\xb7\xdd\x66\x3c\xf4\xd0\x43\xf2\xe6\x9b\ +\x6e\x8e\x45\xe3\xd1\x95\x86\x30\xee\x12\x42\xfc\x7e\x28\x64\x46\ +\x67\x18\x64\x1d\xf5\xf5\xba\x15\xff\xe5\x2f\xff\x41\xb0\xdb\xb6\ +\x0e\x06\x05\xad\x96\xc5\xe0\xe0\x71\x06\x07\x07\x19\x1b\x1b\xe3\ +\xc0\x81\x83\xec\xdb\xbf\x0f\xab\xd5\x0a\x76\x07\xf7\x73\x11\x54\ +\x20\xae\xe0\xc7\x25\xd4\xec\x89\x1a\xc1\x49\x27\xce\xf1\xd6\x41\ +\xe5\x48\x07\xcf\x23\x91\xae\x5f\x1f\xec\x68\x1e\x88\x04\xba\x12\ +\x20\xd8\x40\x22\x68\xd7\x6c\x7f\x70\x3b\x4a\x28\x46\x47\x46\xcf\ +\x3e\x00\x6c\xbb\xed\x36\xe3\xe1\x87\x1e\x92\x00\x77\xdc\x71\xc7\ +\xf5\x86\x69\xdc\x21\x84\xf8\x94\x61\x98\x5d\x86\x98\x59\xef\x10\ +\x20\x3e\x3a\x8c\x3c\xbf\x33\xb7\xd6\xf7\xff\x0f\xff\xf0\x0f\x67\ +\xb4\x91\xf1\x82\x67\x52\x39\x05\x1f\x96\x65\x51\x28\x14\xd8\xf5\ +\xc2\x2e\x9e\x7d\xe6\x59\x46\x47\x47\x03\xf3\x08\x3a\x09\xa8\x53\ +\x6f\x46\x70\x86\x81\x3f\xf5\x44\xc8\x60\xdf\xc1\xc0\x74\xb3\x8e\ +\x99\x87\x4a\x06\x6a\x1b\x65\xc7\xc4\x33\x7f\xd8\x85\x1b\x49\x94\ +\x52\xb1\xfd\xa1\xed\xa0\x60\x74\xf4\x2c\x02\xc0\xb6\x6d\xdb\x32\ +\x0f\x3f\xfc\xf0\xb4\x7b\xfa\x7f\x27\x14\x36\x2f\x07\xe3\x16\x43\ +\x88\x85\xc2\xd0\xbb\x63\x78\xc1\x5b\xc1\x8c\x72\xb1\x00\x29\xa4\ +\x5b\xe7\x9d\x2c\xa2\xf4\x7f\xff\xe3\x3f\xfe\x93\x80\x7a\x38\x95\ +\xb4\xd8\xb3\x7b\x0f\x3b\x76\x3c\xcf\xc1\x83\x87\xa9\x54\xca\x14\ +\xa7\x8b\x34\xdd\x1a\x02\x5d\x34\x77\x02\xc1\xdb\x74\xb4\xcd\x6a\ +\xb7\x74\x73\xc6\xd7\xfa\xd5\x40\xb3\x71\x15\x32\xd8\x64\x52\x69\ +\x8c\xa4\xd2\x73\x24\x34\x3e\xe3\xc1\xed\xdb\x41\x29\xbf\x91\xc5\ +\xfb\x1a\x00\xb7\xde\x72\x6b\xf4\x27\x8f\xfc\xa4\x01\x70\xeb\x6d\ +\xdb\xfe\x8f\x90\x61\xde\x64\x18\xc6\x26\x84\x48\xb8\xd9\xd2\x04\ +\x8b\x5d\xdb\x1b\x3f\xc3\xaf\x57\xc1\x18\xf9\x4c\x0b\x3d\xd8\xbe\ +\x55\x2a\x85\x21\x0c\x56\xac\x58\xce\x25\x97\x5c\xe2\xbb\x5c\xeb\ +\xd6\xad\x6b\x77\xef\x56\xcc\xe8\xcd\x33\x95\xcf\x73\xfc\xd8\x31\ +\xc6\xc6\xc6\x38\x76\xec\x18\xbb\x77\xef\x66\x64\x78\xb8\xdd\xaa\ +\xb6\x23\x86\xd0\xe6\x11\x3a\x12\x3b\x94\x0a\xb4\xb8\x0f\xd8\x10\ +\x9d\xf3\x10\x7c\x42\xc9\xb9\xf6\xcc\x28\x66\x3b\x16\xfa\xe0\x83\ +\xdb\x01\x18\x1b\x9b\x7b\x09\xf0\x9e\xbd\x80\x9f\x3c\xf2\x93\xc6\ +\xad\xb7\x6e\xfb\xaa\x69\x1a\xbf\x65\x08\x31\xa0\x84\x88\xfb\xd6\ +\xb6\x10\x5a\x88\x37\x18\xec\x15\x7a\xff\xc0\xce\x40\x88\x0a\x56\ +\x14\xe9\x19\x33\x81\x4d\x51\x8a\xf3\x56\x2c\xe3\xb2\xcb\x2e\x0b\ +\x7c\xa6\x37\xde\x78\x03\xc3\xad\x03\x34\x4d\x93\xf3\xcf\x3f\xaf\ +\xdd\xe4\x49\x40\x2e\x9b\x25\x97\xcd\xba\x0d\x28\x2d\xac\x96\x85\ +\x65\xdb\xec\xdd\xb7\x8f\x9f\x3e\xf5\x14\x2f\xec\xda\x45\x4b\xca\ +\x36\x95\x2d\xb4\xa1\x11\x9a\x6a\x52\x1d\x2d\x4b\x54\xc0\xb8\x0c\ +\xb6\x88\x11\x04\x13\x3f\x94\xec\xc8\x81\x98\x41\xa1\x9d\x99\x68\ +\xd0\x2f\x0d\x80\x9b\x6e\xda\x9a\x30\x8c\xd0\x7d\x86\x61\xfc\xae\ +\x10\x22\x05\x4a\xb4\x45\xb5\x68\x8f\x6e\x15\x6e\xc5\xac\xd0\x12\ +\x5d\x84\x96\x2f\xe7\x65\xf8\x08\x15\x60\xc2\xf4\x9b\xaa\xc7\xcd\ +\x3b\xa3\x7b\x17\x5d\x74\xd1\xec\xa2\x4d\xe0\x77\x0e\x3d\x71\xe2\ +\x24\x86\x61\x62\x9a\x06\xbd\xbd\xbd\x81\xd4\x6c\x43\x98\x84\x23\ +\x06\x61\xa5\xb8\x78\xe3\x46\x2e\xde\xb8\x11\x50\xe4\xf3\x05\x9e\ +\x7f\xfe\x79\x5e\x7e\xe5\x65\x26\x27\x26\x9d\xae\x23\xd3\xc5\x20\ +\x6d\xcb\xcc\x79\x03\x5e\x14\x74\x86\x9d\xa2\x02\xae\x8d\xd7\x46\ +\x7a\x76\xd2\xd7\x61\x96\xde\x7f\x00\xb8\xe1\x86\x1b\x22\xe1\x70\ +\xb8\x47\x29\xf5\xbf\x0b\x21\xbe\xe4\x7f\x48\xd5\xee\xe8\x0b\xed\ +\x5e\x4a\x7e\x8f\x40\xed\x35\x7a\x03\x48\xb4\x11\xae\xc8\x59\x3a\ +\x87\x76\x1a\x60\x5e\xbd\xbd\xe6\x27\xc6\xe3\xf1\xb7\xd4\x6e\x02\ +\xaf\xeb\x87\x40\x18\x82\x7c\x3e\xef\x77\x0e\x91\x52\x62\xbb\xa9\ +\xe1\xbd\xde\x9c\x1f\xf7\xda\xd9\x6c\x17\xb7\xde\xba\x8d\x5b\x6f\ +\xbd\x15\xdb\xb2\x18\x3c\x79\x82\xa1\xa1\x61\x46\x47\x46\xd9\xb3\ +\x7b\x37\xaf\xed\x7e\xcd\xcf\x54\x56\x01\x46\x4f\xcc\x3e\x55\xc4\ +\xa7\xa5\xb5\xfe\x00\x52\x71\xca\x5e\x10\xef\xb7\xea\xe0\xad\x5b\ +\xb7\x6e\x52\x4a\xdd\x26\xa5\xfc\xb2\x77\xb2\x3c\xdf\xd5\xc3\x81\ +\x00\x27\xfc\xeb\x22\x40\xb8\xff\xcf\xbf\x31\x78\xc1\x1f\xd1\x6e\ +\xa0\x00\xc1\xe4\x8d\xce\x29\xe0\xbe\x9e\x15\x81\xe6\x4b\xde\x1a\ +\x1f\x1f\x67\xd1\xa2\x45\xb3\x07\xa2\xe8\xe8\xce\x8d\x40\x20\x30\ +\x84\x40\x98\x66\xdb\xd8\x14\x82\x91\x91\x61\x2c\xcb\xc2\xb6\x6d\ +\x96\x2e\x5b\xaa\xc5\x32\x14\x86\x69\x72\xde\xb2\xf3\x58\xb6\xec\ +\x3c\x94\x94\xdc\x76\xfb\x36\x94\xad\xc8\x17\x0a\xfc\xec\x67\xff\ +\xce\x93\x4f\x3e\xc9\x89\x13\x27\x74\x3a\xef\x14\x49\x2b\xca\x97\ +\x78\x6f\x55\x03\xda\xd9\x0f\xf1\xfd\x22\x01\x76\xc6\xe3\x71\x4a\ +\xe5\x32\x42\x40\xc8\x34\x11\xc2\xeb\xa7\xd7\x16\x57\x8e\x3b\x27\ +\x5c\x79\x20\x02\x23\xd4\x84\x40\xb3\xaa\x83\x6e\x20\xa2\x23\x4d\ +\x4c\x77\x0b\xdf\x42\x57\xbe\xf2\xca\x2b\x6c\xdd\xba\xd5\x2d\xd1\ +\xd6\x43\xd1\x9a\xa4\x91\x0a\x0c\xef\x1a\x4e\x6b\x7a\xd5\x51\x98\ +\xe2\xa8\x0d\x07\x20\xc7\x8e\x1c\xd3\x26\x93\xc0\xf9\xe7\x9d\x17\ +\x78\x8d\x69\x98\x60\x40\x4f\xcf\x02\x7e\xe3\x23\xbf\xc1\x6f\x7c\ +\xe4\x23\xbe\xa7\xb1\x73\xe7\x4e\x0e\x1d\x3e\x44\x3e\x5f\x60\x62\ +\x62\x9c\xba\x9b\x2b\x18\xe8\xfe\x79\x06\xeb\xff\x4f\x27\x00\xd4\ +\x6d\xb7\xdd\x26\xc6\x27\xc6\x29\x16\x8a\x8c\x8e\x8c\x30\x3a\x36\ +\x46\xad\x56\xc3\x70\x8d\x2d\xa7\xc9\xa2\xc0\x40\x68\xd5\xd2\x4e\ +\x93\x84\xc0\xbc\x1f\xda\x6d\x58\x75\xd8\x77\x66\xcb\xe8\xd3\x3d\ +\x4f\xe9\xc6\x08\xc1\x8e\x1d\x3b\xb8\xe6\x9a\x6b\x02\xcf\x3b\xdd\ +\xc6\x84\x3b\xac\x4a\x22\xa4\x74\x37\xd8\x6b\xcd\xea\xd4\xfe\x4b\ +\x3d\x4d\xdd\x15\x63\x9d\xef\x78\xf4\xd8\x31\xff\x71\x3e\x9f\xe7\ +\x91\x47\x1e\xe1\x58\x10\x58\x17\x00\x00\x14\xdb\x49\x44\x41\x54\ +\xde\x7b\xee\x71\xd5\x5c\x3b\x94\x7f\xd1\x45\xeb\x59\x7f\xd1\x7a\ +\x50\x90\x2f\xe6\x19\x3a\x39\xc4\xd8\xd8\x38\x07\x0f\x1e\xe0\xe7\ +\x3f\xff\x39\x83\x83\x83\x01\xf0\x9f\xf2\x46\x9f\x41\x70\x88\x77\ +\xa1\x02\xe4\x97\xbe\xfc\x65\xd1\x6a\xb6\xa8\xd7\x6b\x94\xdc\x0a\ +\xdc\x52\xb9\xcc\xf0\xf0\x30\x83\x83\x83\x2e\xe1\xa2\x5c\xeb\x3b\ +\xe4\xe8\x5d\xad\x85\xfb\x29\xfb\xdf\x69\x44\x50\xd0\xa7\x7f\xe7\ +\x37\x22\x9d\x4e\xb3\x65\xcb\x16\x72\xb9\x5c\x20\x0a\x67\x1a\x26\ +\x86\x69\xf8\x03\xa2\x0d\xc3\xf0\x3f\x93\x74\xc7\xce\x49\x29\x91\ +\xb6\x8d\x2d\x6d\x6c\xcb\xc6\xb6\xed\x53\x82\x4e\x4a\xc9\x0f\x7f\ +\xf8\xc3\x19\xcf\xdf\xfd\xc5\x2f\xfa\x5e\x06\x1d\x76\x8c\x74\xdf\ +\xc3\xb6\x25\xaf\xbf\xfe\x3a\x8f\x3f\xf6\x18\x3b\x76\xec\x70\x22\ +\x9e\xb3\xac\x1f\xff\xf8\xc7\x28\xa5\x98\x9c\x9c\x7c\x7f\xb9\x81\ +\xad\x66\x93\x56\xab\x85\x69\x9a\x64\x73\x39\x72\xdd\x39\xa4\x54\ +\xac\x58\xb1\x92\x46\xa3\x46\xa3\xd1\x20\x9f\x77\x1a\x2d\x1e\x3d\ +\x7a\xd4\x37\xb8\xbc\x9b\xef\xdb\x0e\x33\x32\x06\x40\xef\x94\xf8\ +\xcb\xe0\xbf\x54\x2a\xf1\xec\xb3\xcf\xb2\x6c\xd9\x32\x56\xae\x5c\ +\x49\x26\x93\x71\x88\x1a\xb7\x5b\xb8\xd0\x5b\xb5\x78\xa0\xf4\xe6\ +\x05\x4a\x67\x16\xb1\x92\x6a\xc6\x54\x92\xd9\xde\x67\xb6\xf5\x5f\ +\xbf\xf6\x35\xff\xf1\x7f\xfe\xec\x67\x89\xc7\xa2\x5a\x8b\x7a\x47\ +\x6d\x18\xc2\xe4\xe2\x8d\x1b\xd9\xb8\x61\x03\x08\xc8\x4f\xe5\x79\ +\xe1\x85\x17\x78\xe5\x95\x57\x98\x98\x98\x60\x62\x62\x82\xc9\xc9\ +\xc9\x19\xc0\xdf\xba\x75\xeb\x57\x80\x41\xe0\xd5\x27\x9e\x78\xe2\ +\x25\xf7\x39\xe3\x89\x27\x9e\x90\x67\x54\x02\xdc\x73\xcf\xdd\xa2\ +\xd5\x74\x12\x26\xf3\xf9\xbc\x5b\x23\x67\xb6\x13\x31\xa5\x43\x80\ +\x48\xdb\xc2\xb6\x15\xf5\x66\x9d\xa1\xa1\x21\x0e\x1d\x3c\xc4\xf1\ +\xe3\xc7\x69\x34\x1a\xb3\x00\xe1\xf4\xf7\x44\x1b\x18\x18\xe0\xfc\ +\xf3\xcf\xa7\xb7\xb7\x97\x44\x3c\x81\x61\x9a\x84\x4c\xa7\x07\xb0\ +\x70\xfc\xc3\x00\x20\xa4\x52\xbe\x57\xa0\x77\x0f\xeb\x5c\xb6\x6d\ +\xf3\xfc\xf3\xcf\x3b\x06\xdf\x2f\xb1\x3e\xff\xf9\xcf\x69\x2e\x64\ +\x5b\x22\x2a\xc0\x6a\x59\x8c\x8e\x38\x21\x70\x8f\xd7\xf0\x24\x80\ +\x3b\xbe\xbe\x04\x9c\x00\x5e\x07\xca\xc0\x7e\xe0\xd1\x27\x9e\x78\ +\xe2\x65\x77\x7f\x12\x4f\x3c\xf1\x44\x75\x4e\x01\x70\xf7\x17\xbf\ +\x28\x9a\x56\x0b\x14\xec\xdc\xb9\x0b\xa5\x9c\xc6\x4b\xa9\x74\x9a\ +\xae\xae\x2e\x32\x5d\x5d\x7e\x6b\x36\x3a\x92\x3f\x85\x10\x14\x8a\ +\x45\x06\x8f\x1f\xe3\xd0\xa1\xc3\x8c\x8d\x8d\x9d\xf2\x46\xbf\x67\ +\xb1\x16\x0a\x91\x4e\x67\x10\x06\x2c\x19\x58\xc2\xc2\x85\x8b\xc8\ +\xe6\xba\x9c\x72\x6e\xc3\x74\xdb\xbf\xb4\x5b\x94\x49\xd7\x25\xb3\ +\xa5\x0c\x74\xf5\xf2\x56\xb3\xd9\xa4\xd1\x68\xf0\xea\xab\xaf\x72\ +\xe2\xc4\x89\xd3\xa2\xa3\x3f\xf7\xb9\xcf\x69\x6d\x62\xbc\x61\x58\ +\x41\xfb\x63\x72\x72\xd2\xdb\xfc\xd9\x56\x0d\x18\x03\x46\x80\x3c\ +\xb0\x47\x08\x71\xff\xe3\x8f\x3f\xbe\xd3\xdd\xaf\xe4\x13\x4f\x3c\ +\x51\x39\xad\x00\xf8\xc2\xef\xfd\x9e\xb0\x5a\x2d\x94\x52\xec\xda\ +\xb5\xcb\xcf\xc8\xf1\x82\x19\xca\x6d\xd1\x92\x48\x24\xe8\xca\x76\ +\x91\xeb\xca\x91\x4c\x25\x31\x84\x08\x8c\x7a\x73\xc4\xaf\x64\x7c\ +\x7c\x82\xe3\xc7\x9d\x48\x5e\xa9\x54\xf2\x47\xbf\xbc\x27\x60\x08\ +\x08\x87\xc2\x84\xc3\x11\x22\xe1\x10\xe1\x48\x84\xe5\xcb\x97\x23\ +\x84\x20\x1a\x8d\x92\x4c\x26\x49\x26\x12\x44\x63\x51\x84\xe1\xb8\ +\x82\xb6\x65\xf9\x27\x5c\x08\xe1\x37\xad\x9a\x9e\x2e\x92\xcf\x17\ +\xa8\x94\x2b\xec\xdb\xb7\x97\x96\xfb\xba\xb9\x58\xbf\xfb\xbb\xbf\ +\x13\x30\x8a\xbf\xf1\x8d\x6f\xbc\xdb\x4b\x34\x81\x2a\x50\x01\xc6\ +\x85\x10\x2f\xb7\x5a\xad\x7f\x79\xfa\xe9\xa7\xb7\x9f\x36\x00\x7c\ +\xfe\xbf\xfc\x17\x61\xb9\xdd\x35\x7d\x00\x48\xe5\xbb\x4c\x52\x4a\ +\xff\x77\xe5\x89\x55\xa5\x88\x46\x22\x64\x32\x69\x72\xd9\x1c\xe9\ +\x4c\x17\x91\x48\xc4\x8f\x9c\x79\x8d\x9a\x1a\xf5\x06\x63\xa3\xa3\ +\x9c\x1c\x3a\xc9\xf8\xf8\x04\x8d\x46\x83\xa6\x9b\x0c\x62\x59\x96\ +\xaf\x32\xc4\xdb\x30\x64\xc2\x30\x88\x84\xc3\x84\x42\x21\x22\xe1\ +\x08\xe1\x88\x07\x86\xb0\xfb\xd8\xfd\x17\x89\x10\x0e\x87\x41\x29\ +\x5f\x2d\x49\x29\xa9\xd7\xeb\xe4\xf3\x79\x5a\xcd\x26\x52\x29\x0a\ +\xf9\x02\x4d\xab\xe5\xb4\x87\xf3\xc1\xfb\xfe\x70\xe1\xde\x6a\xd9\ +\xb6\x2d\x97\x2c\x59\x22\xc3\xe1\x88\x71\xf2\xe4\x89\xff\xf4\xe8\ +\xa3\x8f\x7e\xeb\x3d\x1b\x81\xde\x69\xf7\x2c\xf4\x76\xae\xde\xcc\ +\xaa\x58\xcd\xbd\xa7\x5e\xab\x51\xad\x56\x19\x1e\x1e\x41\x2a\x89\ +\x21\x04\xc9\x54\xda\xe1\xe4\x73\x39\x92\xc9\x04\x4a\xc2\xc2\x45\ +\x0b\x59\xb4\x68\x31\xc2\x10\x94\xcb\x65\xc6\xc7\xc7\x19\x1f\x1f\ +\xa7\x54\x2a\x51\xaf\xd7\xa9\x56\xab\xd4\x6a\x35\xdf\xb8\x9b\xd5\ +\xa8\x94\x92\x46\xc3\x99\x03\x10\xed\x8e\xba\x9e\x88\x03\x34\xa7\ +\x25\x9c\x70\xe6\x01\xe0\x0c\x7c\x6e\xba\x86\x6d\xab\xd5\xa2\xd9\ +\x6a\xf9\x86\xae\xf3\xaf\xe9\xab\x87\x50\x28\x84\x65\x59\xef\xeb\ +\xcd\xf7\xc0\xd9\xd3\xd3\x43\x77\x77\xb7\xc3\x7d\x0a\xb8\x7a\xcb\ +\xe6\xef\x3d\xfa\xe8\xa3\xef\xdd\x0b\x90\xb6\x6a\x87\x2e\x03\xd3\ +\x37\xb5\xf1\x4c\x7e\x72\x85\xf4\x89\x97\x00\x13\x26\xc1\x56\x36\ +\xf9\xa9\x3c\x53\x93\x93\xae\xf5\x6d\x93\x88\x27\xc8\xe6\xb2\x64\ +\xb3\xdd\x74\x65\x32\x84\x4c\x93\xfe\xc5\x8b\xe9\xef\xef\x43\x49\ +\xc5\x74\xa9\x44\xa1\x50\x60\x7a\x7a\x9a\x5a\xad\x4a\xa9\x54\xa6\ +\x54\x2a\x51\xad\x56\x03\x60\xd0\x01\x31\x35\x35\x15\xf8\xfc\x6b\ +\xd7\xae\x75\x44\xbc\x00\x0c\xd1\x96\x54\x1e\xdf\x20\xa5\x16\xce\ +\x75\x1e\xd7\xaa\x55\xce\x86\x65\x9a\xa6\xdf\xcb\xd0\x34\x4d\x6c\ +\xdb\x76\xc0\x8f\xc1\x64\xbe\x60\x9e\x16\x37\xd0\xbb\x59\x28\xc8\ +\x74\x75\x51\x9a\x9e\xa6\x65\xdb\xb3\x0c\x7c\x96\x1d\x53\xbb\x3b\ +\x06\x40\xa1\x53\xa6\xce\x6b\xca\x95\x0a\xa5\x72\x89\xa3\x47\x8f\ +\xa3\x94\x24\x1c\x0a\x93\xc9\x64\xe8\x5e\xd0\xed\x4f\xf9\xe8\x5b\ +\xbc\x98\xbe\xc5\x8b\x69\x59\x16\xd5\x4a\x85\x72\xa5\x42\xbd\x5e\ +\xa7\x5c\x2e\xbb\x2d\xe2\x8b\xbe\xa7\xe1\x89\x75\x7d\xed\xdd\xbb\ +\x97\x73\x65\x29\xb7\xdf\x51\x38\x1c\x26\x16\x8b\xd1\xd5\xe5\xa8\ +\x56\xaf\x55\x9e\xd3\x88\x03\xb7\xa3\xb9\xe4\x34\x01\x40\xfa\x93\ +\xbe\x56\xaf\x5e\xe5\x72\x03\x2d\x8a\xa5\x12\xc5\x42\x81\x62\xa1\ +\x48\xb5\x56\x9d\x39\xc0\x59\x0f\x83\xea\x89\x16\x7e\xec\x0c\x2d\ +\xcc\xea\x3c\x6e\x34\x1b\x8c\x8d\x8f\x31\x32\x3a\xe2\x8a\x7c\x48\ +\xa5\x32\xe4\x72\x39\xba\xbb\x73\xa4\x52\x29\x7a\xe2\x71\x94\x52\ +\x34\x5b\x2d\x1a\x6e\x0f\xc0\x66\xb3\x49\xa1\x50\x60\x72\x72\x92\ +\x52\xa9\xe4\x9e\x84\xd9\x39\x88\xb3\x79\xf3\x23\x91\x08\xb1\x58\ +\x9c\x44\x22\x4e\x34\x1a\x75\xb2\xa1\xac\x96\x13\xed\x10\x06\x86\ +\xdb\xb9\x4c\x18\xbc\xa5\x51\xfd\xee\x54\x80\xb4\xfd\x81\x0e\x85\ +\xe2\x34\xc9\x44\x02\x33\x14\x22\x97\xcb\xd2\x9d\xcd\x3a\xc6\x87\ +\x94\x54\xca\x65\xf2\x85\x02\x53\x53\x53\x94\x4a\xd3\xc1\xa1\x8f\ +\x74\xcc\xdb\xd1\x12\x2c\x04\xda\x90\x65\x3d\x30\x24\x04\xb6\x6d\ +\x53\x28\xe4\xc9\xe7\xa7\x38\x78\xd0\xb1\x45\x62\xb1\x28\xd9\x5c\ +\x96\x05\xb9\x05\x74\x75\x75\x91\x4e\xa7\x50\x52\x91\xc9\x64\xe8\ +\xef\xef\xc7\xb6\x2c\xaa\xd5\x2a\x53\xf9\x3c\x53\x53\x53\x54\x2a\ +\x8e\x57\x34\x9b\x74\x38\x5b\x36\x3e\x14\x0a\x91\x4a\x25\x31\x43\ +\x61\x62\xd1\x88\xd3\x0f\xc1\x33\x92\xdd\x9e\xd7\x42\x38\xf1\x0e\ +\x81\x40\x48\x71\x1a\x25\x80\x6c\xa7\x4f\x1d\x3b\xe6\x88\x6a\x43\ +\x08\xe2\x89\x04\x99\x74\x9a\x64\x2a\xe5\xb8\x5a\xa9\x14\x89\x54\ +\x8a\x81\xfe\x7e\xa4\x52\xd4\xeb\x75\x0a\xc5\x02\x53\x93\x53\xe4\ +\xf3\x05\x9a\xcd\x86\xef\x41\xc0\x2c\xd3\xb2\x14\xed\xe8\xa1\xf2\ +\xe2\xe7\x74\x0c\x57\x56\x54\xab\x55\x2a\x95\x0a\x27\x4f\x9c\xf4\ +\xfd\xff\xab\xaf\xbe\x06\xc3\x30\x08\x85\x43\x98\xa6\x49\x38\x1c\ +\x26\x9d\x49\xb3\x74\xe9\x12\x6c\xdb\xa6\x54\x2a\x33\x39\x39\xe9\ +\xab\x8b\x77\xea\x5d\xfc\xaa\x37\xde\x30\x0c\x32\xe9\x8c\xe3\xe5\ +\x44\x23\x4e\xbf\x24\xcb\x42\x08\xc3\x3d\xf1\xca\x8b\x7b\xfb\xed\ +\x67\x84\x30\x40\xa8\x40\x60\xeb\xbd\x49\x00\x5d\x7c\xbb\x46\x92\ +\x25\x6d\x8a\xc5\x22\x85\x62\x11\xe5\xb2\x68\xf1\x78\x9c\x74\x3a\ +\x4d\x3a\x9d\x26\x91\x48\x10\x8d\x46\x59\xb8\x70\x21\xbd\x3d\x0b\ +\x41\x29\x5a\x56\x8b\xe2\x74\x91\xa9\xc9\x29\xa6\xa6\xf2\x94\xca\ +\x25\x3f\x00\xa4\xbc\x11\x33\x9d\xb1\x02\x17\x29\x52\xcd\x32\x8f\ +\xcf\x5d\x8e\x95\x2e\x67\xb4\x6e\x53\xca\xf5\x00\x0c\xd3\xf9\x5c\ +\x99\x34\x4a\x2a\x5a\x2d\xe7\x73\x38\xa9\xe5\xce\x60\x89\xf7\xa3\ +\x9e\x4f\xa5\xd2\x18\xa6\xc0\x34\x0c\x47\x1a\xba\x43\xad\x10\x06\ +\x18\xae\xc1\x8d\x77\xe2\xa5\xa6\xee\x6c\xa4\x12\xa7\x53\x05\xc8\ +\xe0\xf0\x03\xaf\x13\xa6\x0a\x4e\xfc\xac\x54\x2a\x94\xcb\x65\x4e\ +\x9e\x3c\x89\x54\x8a\x70\x28\x44\x2a\x9d\xa2\xab\xab\x8b\x54\x32\ +\x45\x24\x12\x21\x97\xcd\x91\xcd\x74\xb1\x7c\xf9\x72\x94\x52\x94\ +\x4a\xd3\x4c\x4d\xe5\x99\x98\x98\xa4\x58\x2c\x60\xd9\x96\x36\x86\ +\x65\xe6\x14\x9d\x19\x33\xf8\x02\x37\x4e\x2b\x18\x15\xed\x14\x6f\ +\x9f\x7a\x95\x8e\x27\x63\x1a\x26\xd9\xae\x2c\xb9\x6c\x0e\x21\x04\ +\xf5\x7a\x9d\x52\xa9\x44\xb1\x58\xa4\x5e\xaf\xfb\xdf\x77\xae\x5d\ +\xbf\xbe\xbe\x3e\xaa\xd5\x2a\xc5\x62\x31\xf0\x7c\x3c\x1e\x57\x6e\ +\x98\x5b\xd4\xaa\x35\xa2\xd1\x18\xe1\x70\xc8\x0f\x9d\x08\x24\x86\ +\x74\x12\x5d\x14\x06\x60\xbb\x8e\xb7\x37\xf2\x4e\x80\x50\xd8\x6f\ +\x11\x81\x7c\x97\x12\x20\x08\x80\x77\xca\x03\x34\x1b\x0d\x26\xea\ +\x75\xc6\xc7\xc6\x7d\x1e\x20\x9e\x48\x92\xcd\x38\xf4\x71\x22\x11\ +\x27\x99\x4c\x91\x4c\x24\x19\x18\x58\x02\x48\x6a\xb5\x3a\x85\x42\ +\x81\x89\x89\x49\xa6\xa6\x26\xdb\xee\x98\x37\x4a\xe6\x14\x61\x84\ +\xc0\xe0\x25\xb7\xf6\xde\x9b\x46\xaf\x66\x78\x34\xc1\x0c\xde\x48\ +\x24\x42\x4f\x4f\x0f\xbd\xbd\xbd\x00\x54\xab\x55\x4a\xa5\x12\xe5\ +\x72\x99\x66\xb3\x89\x6d\xdb\x3e\x53\xe9\x9d\xce\xd3\xb1\xea\xf5\ +\x3a\x89\x44\xc2\x07\x40\x28\x14\x56\x91\x48\x18\xa9\x94\xb0\xa4\ +\xc4\xf0\xa5\x41\xdb\xa8\x36\xdc\x4d\x96\x80\x90\x2e\x18\x84\xe1\ +\xa4\xe0\x19\xd2\xcf\x6d\x10\x06\x6f\x39\x8b\xf8\x5d\x4a\x00\x3d\ +\xdd\xf9\xbd\xf1\x00\xc5\x42\x91\x42\x3e\xef\xf3\x00\xf1\x58\x9c\ +\x4c\x57\x86\xae\xae\x1c\xe9\x54\x8a\x70\x38\x42\x4f\x6f\x2f\xbd\ +\xbd\x3d\x48\x77\x48\xf4\x74\x71\x9a\x89\x49\x27\x6a\x56\x9c\x2e\ +\xce\xda\x45\xa3\x73\x30\xb9\x80\x00\x0d\xed\x0d\xa6\x0c\x0c\xf9\ +\xd1\x40\xa1\x9f\xf6\x58\x2c\x46\x3c\x1e\x67\xd1\xa2\x45\xfe\xdc\ +\xa1\x72\xb9\x4c\xad\x56\xd3\xc8\xa2\x56\x40\xc4\xfe\x32\xa0\xa8\ +\xd5\x6a\xe4\x72\x39\x0c\xc3\x50\xa1\x70\x08\x25\x11\x56\xcb\x69\ +\x67\x2f\xbc\x86\x94\x1a\xd1\x85\x70\xb2\xae\x9c\xb8\x96\x93\x19\ +\x6d\x49\x9b\x52\x69\x9a\xee\xee\x6e\x84\x74\xfc\x7f\x61\x38\x08\ +\xb1\x4e\x97\x04\x50\x2e\xd5\xab\x50\x24\x93\x49\x2a\x95\x0a\x96\ +\x94\xa7\x85\x07\xa8\x54\xab\x94\x2b\x65\x06\x07\x4f\xa2\x94\x24\ +\x64\x86\x48\xa7\xd3\xe4\x72\x59\xd2\x99\x8c\xe3\xeb\x66\xbb\xc8\ +\x74\x65\x58\xbe\x7c\x39\x52\x4a\xaa\xd5\x2a\x93\x93\x93\xbe\x51\ +\xe7\x0c\x81\x52\xd0\xe1\x49\xe8\xe3\xdb\x03\x9d\xca\xde\x81\x0e\ +\xd6\x5f\x97\x48\x24\x48\x26\x93\x08\x21\x68\xb5\x5a\xd4\x6a\x35\ +\xbf\x92\xb9\xd9\x6c\x52\xaf\xd7\x69\x36\x9b\xed\x30\xf4\x2c\x80\ +\x88\xc7\xe3\xae\x14\xb1\xb1\x6d\x89\x6d\xd9\x4c\x97\xa6\xb1\x8e\ +\x5b\x94\x4a\x25\x21\x6d\x1b\x4b\xda\x48\x5b\x62\xb9\x0d\x2c\x85\ +\x10\x64\x32\x19\xa2\xb1\x98\x63\xe5\xeb\x2d\x4a\x85\x43\x68\xed\ +\xdf\xbf\x8f\x5c\x2e\x17\x68\x4f\x27\xdc\x30\xb8\x7a\x0b\xdb\xe6\ +\x5d\x7b\x01\xd2\x4d\x79\x5e\xb2\x74\xa9\x6b\x78\xb5\xa8\x54\xaa\ +\x94\x4b\x25\x4a\xa5\x32\xf5\x46\xfd\xb4\xf0\x00\xcd\x56\x93\x89\ +\xc9\x09\xc6\xc6\xdb\x51\xc3\x64\x32\x45\x2e\x97\x25\xdb\xd5\xe5\ +\xcc\xff\x89\xc7\x19\xe8\xef\xa7\xaf\xaf\xcf\xe1\x03\xdc\x92\xf2\ +\x40\x25\xb1\x5e\x28\x22\x3b\x27\x86\xbf\x7b\xa3\x4c\x9f\x47\x90\ +\x4a\x39\xe3\xea\x01\x5a\xad\x96\x0f\x00\x0f\x0c\xd5\x6a\x95\x46\ +\xa3\x41\x6f\x6f\xaf\xaf\x3e\x10\x82\xde\x85\x0b\x59\xb6\x74\x19\ +\xab\x56\xad\x60\xc5\x8a\x95\x2c\x5d\xba\x94\xee\xee\x6e\x7f\xfe\ +\xf1\xc4\xc4\x04\x47\x8f\x1e\x65\xef\xde\xbd\xbc\xbe\x67\x0f\x6f\ +\xbc\xb9\x97\xe1\xe1\x21\x46\xc7\x46\x9d\xd6\xb7\xb6\xcd\x07\x2f\ +\xbd\x14\x43\x29\xc0\xa0\x5c\x29\x93\x9f\x9a\x72\x86\x61\xb9\x99\ +\x50\x1e\xf0\x94\x12\x6f\x99\x85\xf4\x6e\x82\x41\x6a\xcb\xe6\x2d\ +\xf4\xf6\xf6\x10\x0a\x87\x1c\xb6\xcd\x34\x11\x2a\xd8\xcf\x42\x49\ +\x49\xb5\x56\x63\x7a\x7a\x9a\xe9\xe9\x69\x2a\x95\x32\xb6\x2d\x03\ +\x81\x23\x3f\x82\xe8\x06\x8c\xda\xbf\xcb\x60\x96\x8e\x6c\xab\x14\ +\xe9\x32\x8e\x7e\x90\x49\x2a\x62\xb1\x08\x99\x2e\x27\xc7\x3f\x93\ +\xc9\x10\x8e\x44\x02\x74\xae\x77\xad\xf6\xfb\xa8\xc0\x35\x4e\xf7\ +\x68\x16\xfd\xb4\xb7\x5a\x2d\x0a\x85\x22\xd2\xb6\x30\x43\x61\xd6\ +\xae\xbd\x80\x1b\xb7\x6e\xe5\xf2\x8e\x1a\x86\x77\xb3\x9e\x7a\xea\ +\x29\xbe\xf7\xbd\xef\xf1\xfc\xf3\x3b\xa8\x54\x4a\xd8\xb6\x64\xd3\ +\xa6\x4d\xec\xdd\xbb\x97\xae\xae\x2e\xbf\xab\xb9\xf7\x59\x9c\x59\ +\x58\x06\xe1\x70\x24\xf9\x3f\xbf\xfb\x9d\xea\x7b\x05\xc0\xf3\xcd\ +\x66\x33\x2a\x84\xf8\x60\x26\x93\xa1\xaf\xaf\x8f\xbe\xbe\x3e\xd2\ +\xe9\x34\xe1\x70\x98\x48\x24\x42\x28\x14\xf2\x4b\xa5\x74\x29\xa0\ +\x5b\xd7\xd3\xd3\x25\x9a\xcd\x86\x1f\x39\xf4\x26\x77\x3b\xa7\x5c\ +\xf9\x23\xe1\xa4\x0b\x16\x7f\x13\xbd\xac\x1d\x0d\x1c\x9d\x16\x7a\ +\x28\x14\x62\xd3\xa6\x4d\xfe\x75\xfc\x4d\x77\xed\x15\x39\x83\xef\ +\x9f\x1b\xeb\xbe\x5c\x2e\x61\xd9\x36\xb9\x6c\x37\xb7\xdc\x72\x33\ +\x5b\xb7\x6e\x3d\xed\xef\xf1\x9d\xef\x7c\x87\xbf\xfd\xff\xfe\x96\ +\x23\x87\x8f\xa0\x94\xe2\xaa\xab\xae\x74\x13\x63\x85\x3f\x05\xcd\ +\xab\x8d\x08\x87\xc3\xc9\xef\x7d\xef\x7b\xef\x0d\x00\x1a\x10\x1e\ +\x90\x52\x56\x2d\xcb\xb2\x95\x52\xd7\x84\xc3\xe1\xe5\xd9\x5c\x96\ +\x85\xbd\x0b\xe9\xe9\xe9\x21\x1a\x8b\x92\x88\xc7\x89\xc7\x13\xce\ +\x90\x05\xad\x8a\xd6\x4b\x8b\xb6\x5b\x36\xa5\x52\x89\x42\x21\x4f\ +\xa1\x38\x4d\xa5\x52\xf1\xed\x0b\xa9\xb4\xf4\x2c\x0f\x00\x5e\xf2\ +\xa6\x94\xee\xbc\x9f\x60\xd8\x59\x5f\x5b\xb6\x6c\x09\xfc\xbd\x1e\ +\xe4\xd1\xad\x7e\x2f\xa8\x75\x3a\x57\xb3\xd9\xc2\xb6\x2d\xba\xba\ +\xba\xb8\xeb\xae\xbb\x66\x54\x2c\xcd\xc5\xda\xbe\x7d\x3b\x5f\xf9\ +\x83\xaf\x70\x7c\xf0\x38\xb6\x6d\x73\xdd\x75\xd7\xb7\x8b\x62\x5c\ +\x16\xf5\x81\x07\x1e\xf8\xae\x94\xf2\xcf\x81\x57\xde\x33\x00\x3a\ +\xc0\xf0\x21\xa5\xd4\xcd\xb6\x6d\xdb\x96\x65\xb5\x4c\xd3\xfc\xe3\ +\x68\x34\x4a\x36\x9b\x25\x9b\xcd\x92\x49\x67\x54\x22\x91\x10\xe9\ +\x4c\xda\x31\x9e\x0c\xc3\xa9\x96\x95\x0a\x29\xed\x00\x0b\x58\xa9\ +\x54\x28\xe4\x0b\x4c\xe5\xf3\x94\x4a\xd3\x58\x2d\x2b\x90\x57\xe0\ +\x81\xc1\x3b\xc5\xa7\x4a\xdd\xba\xea\xaa\xcd\x81\x52\x6c\xa5\x1c\ +\xd0\xa0\xe7\x2e\xa8\xd3\x3f\xa2\xdd\xd3\xb3\xd7\xdf\x70\x3d\x77\ +\xdc\x71\xc7\x19\x27\x8d\xfe\xf4\xff\xfe\x53\xfe\xea\x2f\xff\x92\ +\x5a\xbd\xc1\xf5\xd7\x5d\xe7\x67\x3d\x0d\x0f\x0f\xb1\x73\xe7\xce\ +\x31\x60\x35\x30\x7d\xda\x00\x70\xf3\xcd\x37\x8b\x47\x1f\x7d\x54\ +\x75\x00\xe2\xb7\xa5\x94\xa6\x6d\xdb\x42\x29\xb5\x21\x14\x0a\xfd\ +\x5e\x2c\x1a\x23\x99\x4a\x92\x4a\xa5\x48\x24\x93\xce\x4c\xde\x6c\ +\x96\x64\x32\x89\x52\x5e\x1a\x96\x1d\x70\x31\xa5\x52\x34\x1b\x0d\ +\x8a\x85\x02\xf9\x7c\x81\x7c\x21\x4f\xbd\x56\x73\x73\xf7\x6c\xff\ +\x84\x4b\x6d\x04\x6b\x1b\x00\x57\xf9\xa7\xdb\xab\xf2\x9d\xa1\xff\ +\x4f\x73\x5e\xbe\x69\x9a\x2c\x58\xb0\x80\xcf\x7f\xfe\xf3\xee\xb8\ +\xf9\x5f\xcd\x2a\x97\xcb\xdc\x78\xe3\x8d\xec\xdd\xbb\x97\xeb\xaf\ +\xbf\x9e\xa3\x47\x8f\xb2\x7f\xff\x7e\x0c\xc3\xb8\xa6\x52\xa9\xfc\ +\xec\xb4\xa8\x80\x77\xba\x3e\xfc\xe1\x0f\xc7\x95\x52\x9b\x6c\xdb\ +\x96\xad\x56\xab\x14\x0e\x87\x7f\x64\x9a\xe6\x8a\x68\x34\x4a\x2c\ +\x16\x23\x16\x8b\xa9\x54\x2a\x25\x16\xf4\x2c\xa0\x3b\x97\x23\x12\ +\x89\x39\xa7\xd5\x75\x91\x64\xc7\x64\x0d\xcb\xb6\x29\x97\x4a\x4c\ +\x4d\x4d\x32\x39\xe5\x48\x09\x69\xcf\x94\x00\x57\x5e\x79\x65\xb0\ +\x09\x64\xc7\xbf\xd3\xcd\xec\x45\xa3\x51\xd6\xad\x5b\xc7\xc7\x3f\ +\xfe\xf1\xf7\x0d\x85\xfc\x89\x4f\x7c\x82\x1f\xfe\xd3\x0f\x09\x99\ +\x21\x36\x6f\xde\x4c\x57\x57\x57\xf2\x47\x3f\xfa\x51\xf5\x3d\xbb\ +\x81\xef\x66\x3d\xfe\xf8\xe3\x35\xe0\x69\x0d\x10\x57\x49\x29\x93\ +\xd5\x6a\x55\x94\x4a\xa5\x50\x38\x1c\xde\x67\x18\x06\x83\x83\x83\ +\x84\x42\x26\xd1\x68\x4c\x75\x77\x77\x8b\xde\xde\x5e\x77\xea\xa7\ +\xd1\x2e\xdc\x50\x0a\x43\x08\xd2\xe9\x34\xa9\x54\x8a\xa5\x4b\x97\ +\xa1\x94\xa2\x5a\xad\x51\x28\x38\x91\xbe\xe9\xe9\x69\x67\xaa\x17\ +\xc1\x6a\x64\xbd\xfd\x8b\x2e\x65\x4e\xc7\x4a\x26\x93\x6c\xde\xbc\ +\x99\x5b\x6e\xb9\xe5\x7d\x15\x43\xf8\xf6\xb7\xbf\xcd\xb2\x65\xcb\ +\xf8\xfa\xd7\xbf\x4e\x2c\x16\x6f\x47\x63\xcf\xa4\x04\x78\x07\xf6\ +\x43\x42\x29\x25\xc6\xc7\xc7\x1b\x0b\x17\x2e\xfc\x1c\xf0\x35\x2f\ +\x21\x53\x08\x41\x32\x99\xa4\xd7\x65\x02\x53\xa9\x8c\x1f\x8a\x56\ +\xb6\x67\x28\xb6\xc9\x26\x4f\x25\x58\x76\x0b\xd3\x30\x67\x39\xf1\ +\x04\xb2\x7c\x4e\xc7\xca\x76\x75\xf1\xa1\x0f\x5d\xcb\xb5\xd7\x5d\ +\x3b\x27\xf7\x67\xd8\x6a\xf1\x0f\xe5\x29\x9e\xaa\x95\x79\xb3\x56\ +\x21\x66\x4b\x96\x0b\x93\x1b\x12\x19\x3e\xdd\xb3\x98\xbe\xc8\xdb\ +\xab\x9a\x3f\xfb\x7f\xfe\x8c\x3f\xfa\xe3\x3f\xe2\xe6\x9b\x6f\x4a\ +\xfe\xeb\xbf\xfe\xb8\xfa\xbe\x02\xc0\xdb\x80\xe3\x20\xb0\xc2\xfb\ +\x7c\x86\x61\xd0\xd5\xd5\xc5\xc2\x85\x0b\xe9\xee\xce\xb5\x33\x5f\ +\x70\x86\x36\xaa\x8e\xe6\x50\x4a\x33\xf4\xa4\x1f\x41\xb4\x4f\x5b\ +\xfb\xb5\x9e\x9e\x1e\x2e\xbf\xfc\xf2\x39\x71\xef\x00\xbe\x57\xca\ +\xf3\xa5\xd2\x04\x0d\xc3\x8d\xe5\xb7\x5a\xd0\xb2\xa0\xd5\x42\xb4\ +\x5a\xc4\x2c\x9b\x3f\x19\x58\xce\xc7\x16\x0d\xbc\xed\xb5\xee\xbb\ +\xef\x3e\xfe\xdb\x9f\xff\x37\xea\xb5\xba\xb7\xd7\x26\xb0\x07\xf8\ +\x34\xf0\xfc\xfb\x0e\x00\x37\xdd\x74\x93\x78\xec\xb1\xc7\xfc\x7d\ +\xba\xfd\xf6\xdb\xa3\xf5\x7a\xbd\xa2\x94\x2a\x2a\xa5\x84\x52\x2a\ +\x11\x89\x44\xa2\xdd\xdd\x39\x16\xf4\xf4\x90\x4e\x65\x9c\x01\x4e\ +\x4a\xfa\xe9\xe6\x5e\xd6\x92\xc4\x7d\x2c\x65\xa0\x27\xf1\x7b\x59\ +\x8b\x17\x2f\x66\xd5\xaa\x55\xfc\xe6\x6f\xfe\xe6\xdc\x6c\xfe\xf4\ +\x24\x5f\x2c\x8c\x41\x24\x04\xe1\xb0\xb3\xf9\x4d\x0b\xac\x16\x34\ +\x5b\xee\xef\x2d\x68\x35\xf9\xda\x79\x17\xf0\xb1\xbe\x25\x6f\x7b\ +\xcd\x8f\x7d\xec\x63\xdc\xff\xa3\xfb\x69\x34\x1b\x02\xf8\x02\x70\ +\x1b\x70\xe3\xfb\x56\x02\xbc\x8d\x71\xf9\x19\xa5\xd4\xef\x4b\x29\ +\xeb\xee\x89\xbf\x30\x91\x48\xfa\x14\x71\x3c\x91\xf0\x0b\x51\x04\ +\xae\xdb\x79\x9a\x48\x9f\xfe\xfe\x7e\xba\xbb\xbb\xf9\xe4\x27\x3f\ +\x39\x37\x62\xbf\xd5\x64\xf3\xf1\xbd\xd4\x43\x26\x84\xc2\x60\x18\ +\x4e\x93\x6d\xab\x05\x96\x2b\x01\x9a\x8e\x34\x50\xae\x24\x78\xfe\ +\xb2\xab\xe9\x8b\xc5\xdf\xf6\xda\x1b\x36\x6c\x60\xcf\x9e\x3d\x28\ +\xa5\x0e\x01\x37\x01\x87\xe7\xd4\x08\x9c\x8b\x75\xeb\xad\xb7\x8a\ +\x9f\xfc\xe4\x27\x7f\x0f\xfc\xbd\xa6\x2e\x7e\xd8\x68\xd4\xb3\x43\ +\x43\x43\xe6\xc9\x93\x27\x53\x86\x61\x6c\x4a\x26\x93\x64\x32\x19\ +\x52\xa9\x14\xa1\x90\x43\x5b\x7b\x3f\xdb\x21\xe3\x5f\x6e\x79\x69\ +\x65\x73\xb1\xbe\x35\x35\x4a\xc3\xb6\x9d\x18\x8f\x5b\x61\xad\x6c\ +\x8b\xe6\x4f\x7f\x06\xb6\x24\x72\xe5\xa5\x2e\x71\xe2\xa8\xb8\x86\ +\x6d\xf1\xad\xc1\x23\xdc\xb7\x7a\xdd\xdb\x5e\x7b\x6c\x6c\x14\xd3\ +\x34\xb0\x2c\xfb\x12\x9c\x32\x33\xce\x4a\x09\xd0\x21\x0d\xc4\xe3\ +\x8f\x3f\xee\xef\xe6\x9d\x77\xde\x19\xae\x56\xab\xdf\x96\x52\x56\ +\xa5\xc3\x34\x7d\x38\x14\x0a\x2d\xf7\xa2\x78\x89\x84\xc3\x4e\x7a\ +\xc5\x21\xa6\x69\xbe\x6b\x4a\xb8\xbf\xbf\x9f\x9e\x9e\x1e\x3e\xf1\ +\x89\x4f\x9c\xf6\xef\x73\xc3\x81\x57\xd9\xdb\x6a\xa2\x42\x26\x18\ +\x26\x4a\x4a\xc6\xae\xb8\x0e\x55\x74\xf8\x1b\x91\x49\xb3\xe8\xc9\ +\x7f\x73\x92\x1b\x5a\x16\xa2\xd5\x62\x6d\x34\xce\x53\x57\x5d\xff\ +\x96\xd7\xdd\x72\xf5\xd5\xbc\xfa\x8b\x5f\x50\xa9\x54\xc4\x59\x61\ +\x04\x9e\x46\x80\x5c\x2b\xa5\xbc\x41\x29\x65\xdb\xb6\xdd\x32\x0c\ +\xe3\x4f\x9d\x6c\x5a\x27\xce\x1f\x8d\x46\x55\x34\x1a\x15\xd1\x68\ +\xd4\x99\x26\xee\x57\x0c\xab\xb7\x05\xc1\x8a\x15\x2b\x4e\xbb\x1d\ +\x70\xfe\x2f\x9e\xa3\x61\x18\x10\x72\x9a\x6f\xd4\xff\xfd\x39\xf2\ +\xff\xdb\xe7\x03\xaf\xc9\xfd\xbf\x7f\x46\xf4\x8a\x4b\x7d\xc3\x30\ +\x2a\x6d\x8e\x7e\xf8\x23\xa7\xd6\xff\x1f\xff\x38\x0f\x6d\xdf\x4e\ +\xb1\x58\x14\x67\x94\x07\xf8\x55\xaf\x5b\x6e\xb9\x45\x3c\xf2\xc8\ +\x23\xcf\x00\xcf\x68\xea\xe2\xb0\x65\x59\xd1\xe9\xe9\x69\xa3\x58\ +\x2c\x2e\x33\x4d\xf3\x8f\xc2\xe1\x30\xd1\x68\xd4\xfb\xa7\x62\xb1\ +\x98\x48\x24\x12\x6e\xf9\xda\xec\x41\xa3\xa1\xa1\x21\xa7\xa3\xe7\ +\xf6\x87\xb8\xfd\xf6\xdb\x4e\xdb\x67\x16\x96\x8d\x30\xdc\x38\x86\ +\x21\xc0\x9a\x25\xe3\xc5\xb6\x11\xb6\xed\x0c\xb4\x50\x12\x61\x9f\ +\x3a\xdb\xe7\x77\x3e\xfb\x59\x1e\x7b\xe4\x91\x53\x6e\xfe\x39\x2f\ +\x01\xde\x06\x20\xa6\x65\x59\x37\x48\x29\x6d\xdb\xb6\x6b\xa6\x69\ +\xfe\x89\x61\x18\x37\x7a\xea\x21\x14\x0a\x11\x8f\xc7\x1d\x0a\x3b\ +\x91\x20\x1c\x0e\x07\x28\x65\x80\xc5\x8b\x16\xb3\x62\xe5\x72\xee\ +\xba\xeb\xa3\xa7\x47\x05\xbc\xba\x8b\xbd\xf5\xaa\x63\xfc\xb9\x2e\ +\xe0\xe8\xd6\x3b\x51\xd3\x8e\xca\x16\xe9\x34\x0b\x1f\xfc\x21\x86\ +\x52\x28\xdb\x46\x58\x2d\x2e\x8c\xa5\x78\xf2\xda\x9b\x66\x5c\xeb\ +\x53\x9f\xfc\x24\x0f\xff\xe4\x11\x46\x47\x47\xde\x72\x8f\x7f\x6d\ +\x01\x30\x0b\xf7\xd0\xa3\x94\xea\x55\x4a\x89\x56\xab\x55\x8d\x44\ +\x22\x47\x3c\xe3\xd1\x4d\x2f\x57\xc9\x64\x52\x78\x99\xce\x8e\xeb\ +\xe9\xd4\xe1\x2d\x58\xb0\x80\xcf\x7c\xe6\x33\xef\xf9\x33\xfc\x5f\ +\x87\xf7\xf3\x37\xc3\xc7\x50\xc2\x00\xc3\x31\x04\xa5\x65\xd1\xdc\ +\xf5\x73\x50\x8a\xe8\x65\x97\x38\xd9\x40\xb6\x05\xb6\x0d\x2d\x9b\ +\xff\xbc\x72\x0d\x5f\xba\x70\x43\xd0\x58\xde\xb6\x8d\x3d\xaf\xbd\ +\xc6\x89\x93\x27\xdf\x76\x7f\xe7\x01\x70\x6a\x40\x64\x95\x52\xa6\ +\x65\x59\x46\x28\x14\x5a\x21\x84\xd8\xe9\x31\x95\x86\x61\x10\x8b\ +\xc5\x54\x3a\x9d\x16\x99\x4c\x86\x81\x81\x7e\x42\xa1\x30\x9f\xfd\ +\xec\x67\xdf\xa2\x6d\xdd\x3b\x70\x03\x1b\x35\xb6\xec\x7a\x86\x1a\ +\xe0\x77\xd4\x72\xe7\x09\x28\x25\xc1\x56\xce\x98\x32\x77\x1a\x7a\ +\x5c\x18\x3c\x77\xfd\xad\xf4\xb9\xef\x59\x28\x14\xb8\xfe\xfa\xeb\ +\x29\x14\x8a\x1c\x3d\x7a\xe4\x1d\xed\xed\x3c\x00\xde\x39\x20\x0c\ +\xc0\x78\xe2\x89\x27\xac\xad\x5b\xb7\x7e\x0d\xf8\x3d\x2f\xfb\xc6\ +\x30\x0c\x3e\xf4\xa1\x0f\x21\x6d\xc9\x05\x17\xac\xe1\x3f\xfc\xd6\ +\x6f\xfd\xf2\x44\xd0\x89\x63\xdc\xbd\xf7\x35\xb7\xd3\x25\xda\x40\ +\x2b\xe9\x58\xff\xb6\x8d\x90\x4e\xfa\xf7\x7f\xdd\x70\x29\x1f\x5b\ +\xb6\x02\x80\x2f\x7c\xe1\x0b\x3c\xfc\xf0\xc3\xd8\xb6\xcd\xc1\x83\ +\x07\xdf\xf1\xbe\xce\x03\xe0\xf4\x80\xe3\x28\x30\x70\xed\x75\xd7\ +\x85\xa4\x5b\x8b\x78\xdd\x75\xd7\x71\xf5\xd5\x57\xff\x72\x20\x18\ +\x3c\xc2\x97\xdf\x7c\x8d\x9a\x5b\x86\xa7\x94\x42\xb8\xb9\x0d\x02\ +\x88\x19\x26\x7f\x72\xd1\xc5\x7c\x6c\xd9\x0a\xbe\xfb\xdd\xef\xf2\ +\x8d\x6f\x7c\x83\x4a\xb5\x8a\xb4\x2c\xde\xdc\xbb\xf7\x5d\xed\xe9\ +\x3c\x00\x4e\x33\x17\xb1\x6d\xdb\xb6\xd0\xe5\x97\x5f\xd1\x72\x72\ +\x01\x43\x5c\x7a\xe9\xa5\xdc\x7e\xfb\xed\xef\x5e\x1d\xd4\x6a\x7c\ +\xeb\xe8\x01\x9e\x1c\x1b\xe1\xcd\x52\x91\x98\x61\xb0\x3c\x99\xe6\ +\xc6\x85\x8b\xf9\xd4\xf9\xab\xf9\xa7\x6f\x7e\x93\x07\xfe\xe5\x01\ +\x2a\xa5\x32\x96\xb4\x79\xf5\x17\xaf\xfe\x52\x7b\x39\x0f\x80\x39\ +\x5c\xf7\xdd\x77\x9f\xf2\x5a\xd0\xe5\xba\xbb\xd9\xb2\x65\xcb\x2f\ +\x2d\x15\xc0\x69\x1f\x77\xff\xfd\xf7\x73\xec\xe8\x51\x2c\xdb\xc2\ +\xb6\x25\xbb\x76\xed\x7a\x4f\x7b\x38\x0f\x80\x33\xb0\xee\xbd\xf7\ +\x5e\xe5\xa5\x85\xdb\xd2\x69\xac\x95\xcb\xe5\x18\x18\x18\x60\xf9\ +\xf2\xf3\x39\xef\xbc\xf3\x59\xb8\x70\x21\x89\x44\x82\x6a\xb5\xca\ +\xc8\xc8\x08\x07\x0e\x1e\x64\xdf\xde\xbd\x1c\x38\x70\x80\x91\xe1\ +\x11\x3f\xbb\xda\xa9\x19\xb0\x79\xf6\xd9\x67\x4f\xcb\xde\xcd\x03\ +\xe0\x0c\xaf\xcf\x7d\xfe\x73\x4a\xda\x4e\x51\x88\xb4\x6d\xbf\xf8\ +\xc3\x2b\x06\xb1\xdd\x93\xdd\x2e\x43\x73\x81\x63\x4b\x1e\x79\xe4\ +\x91\xf9\xfd\x9a\x5f\xf3\xeb\xd7\xc1\xab\x08\xcd\xdf\x85\xf9\x35\ +\xbf\xe6\xd7\xdc\xaf\xff\x1f\x80\x04\x7a\xb0\xf1\xda\x3e\x93\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x17\x83\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x09\x02\ +\x0c\x06\x0c\x45\xc2\xfe\x7f\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x16\xde\ +\x49\x44\x41\x54\x78\xda\xed\x5d\x5d\x6c\x5d\xd5\x95\xfe\xd6\xb9\ +\xf7\xfa\x2f\x71\x70\x1d\xff\x74\x4a\xe2\x49\x9c\x26\x40\x02\xc4\ +\x49\x4d\x1c\xe3\xc4\x49\x48\xd2\x24\xa8\xc4\x76\x30\x8a\x31\x8e\ +\x9d\x21\x29\x43\x1d\xc2\x9f\xd4\x32\x40\xa1\x9d\x91\x8a\x2a\x0d\ +\x30\x52\x2b\xf0\x54\xa4\x14\x1e\xa0\x45\x43\x63\x5b\x33\x0f\xe4\ +\x61\x2a\x21\xe5\x69\x2a\x8d\x34\xaf\x23\x34\x0f\x23\xa1\x99\x4a\ +\x10\x53\x75\x04\x52\x8b\xf6\x9a\x87\xb3\x7f\xd6\xda\xe7\x86\xda\ +\xc4\x76\x6c\xdf\xb3\x23\xcb\xb9\xbe\xe7\x9c\x7b\xee\xd9\x6b\xaf\ +\x9f\x6f\x7d\x6b\x6d\x20\x1f\xf9\xc8\x47\x3e\xf2\x91\x8f\x7c\xe4\ +\x23\x1f\xf9\xc8\x47\x3e\xf2\x91\x8f\x7c\xe4\x23\x1f\xf9\xc8\x47\ +\x3e\xfc\x98\x9e\x9e\xe6\xe9\xe9\x69\xce\x9f\xc4\xca\x1a\x49\xfe\ +\x08\x2a\x7b\xd0\x6c\x57\xbf\x7c\xdd\xd7\xd7\x47\xf9\xa3\xab\x30\ +\x0d\xd0\xd7\xd7\x8f\xbe\xbe\xbe\xfc\x89\x55\x9a\x00\xb8\xd5\x4f\ +\x04\x10\x51\x59\x8d\x90\x8f\x15\xae\x01\x06\x06\x06\x40\x44\x20\ +\x22\x0c\x0c\x0c\xe4\x4f\xad\x52\x04\x60\x6a\x6a\x8a\x99\xd9\x4f\ +\xbe\xfb\x01\x18\xd3\xd3\x53\xb9\x16\x58\xe9\x02\xc0\xcc\x60\x66\ +\xbc\xfb\xee\xbb\x7e\xf2\xdf\xfd\xf5\xaf\xc1\x86\xc1\x26\x7f\x78\ +\x15\x33\x2e\x4e\x5e\xe4\x52\xa9\xc4\xa5\x52\x89\x27\x2f\x5e\xcc\ +\x57\xfe\x0a\x1a\xc5\x59\x1d\xc5\xc1\x01\xcc\x67\xbf\x02\x05\x80\ +\x8d\xf1\xb6\x9f\x39\x17\x81\x8a\x8b\x02\x18\x00\x81\x00\x50\xae\ +\x01\x2a\xd3\x04\x30\x28\xa1\x54\x08\x72\x0d\x50\x79\x02\x60\xac\ +\x0e\x00\x01\x26\x17\x80\x4a\xf4\x01\x2c\x12\x98\x6b\x80\x0a\x35\ +\x01\x60\x24\x09\x01\x9c\xcf\x7f\x65\x6a\x00\x66\x80\x12\x10\x31\ +\x38\x47\x80\x2a\x31\x0a\x60\x24\x94\x1e\x9e\x2b\x80\x0a\xf5\x01\ +\x52\x0d\x00\xb0\xc9\x45\xa0\xe2\x34\x00\x60\x90\xc0\xb1\x47\x72\ +\x01\xa8\x40\x1f\x00\x36\x19\x84\xdc\x0b\xac\x5c\x27\x90\x04\x26\ +\x90\x8f\x8a\x13\x80\xc4\x25\x83\x72\x1f\xa0\x02\x05\x00\xa9\x13\ +\x98\x02\x01\xf9\x43\xab\x38\x01\x00\xb3\xb5\x00\x04\xce\x25\xa0\ +\x32\x4d\x80\xe7\x03\xe4\xf3\x5f\xd9\x02\x90\x73\xc1\x2a\xd5\x09\ +\x04\x81\x29\x77\x01\x2a\xd3\x07\x00\x80\x24\xa5\x84\xe4\x8c\xa0\ +\x8a\xd4\x00\x96\x12\xc6\xb9\x00\x54\xa8\x00\x58\x2e\x40\x92\x0b\ +\x40\xe5\x86\x81\x89\x0d\x03\x73\x01\xa8\x3c\x01\x30\x60\x50\x2a\ +\x01\xb9\x00\xac\xb0\x31\x3b\x3e\x80\x49\x73\x01\x94\xb3\x82\x2b\ +\x53\x00\x52\xe5\x6f\x8b\x43\x72\x0d\x50\x81\x26\x80\x0d\x12\x4a\ +\xd9\x40\x4b\xdc\x04\x14\x01\xb4\x03\x58\x6f\x85\xfb\x73\x00\xff\ +\x05\xe0\xbf\x91\x43\x18\xd7\xe2\x04\xba\xfe\x00\x58\x8a\x1a\x60\ +\x13\x80\x07\x00\x1c\x6b\x68\x68\xd8\xb9\x6d\xdb\xb6\xaa\x52\xa9\ +\x94\x86\xac\xc4\xf8\xdd\xff\xfe\x0e\x1f\x7c\xf0\xc1\xa7\x9f\x7f\ +\xfe\xf9\xbf\x01\xf8\x17\x00\x6f\x03\xf8\x9f\x7c\xea\xe7\x1c\x05\ +\x24\x00\xf3\x52\xaa\x0b\xd8\x00\xe0\xc7\xcd\xcd\xcd\x83\x83\x83\ +\x83\x85\xfb\x87\x86\x70\xdb\xf6\xdb\x03\x75\xdd\xfe\x62\x00\xff\ +\xf7\x87\x3f\xd4\xfd\xe6\x5f\x7f\xb3\xff\xbd\x4b\xef\xed\xbf\x74\ +\xe9\xd2\x8f\x67\x66\x66\xde\x01\xf0\x77\x00\xfe\x33\x17\x81\x59\ +\x8c\x57\x5f\x7d\x95\x37\x6e\x6c\xe7\x8d\xed\x1b\xf9\xd5\x89\x89\ +\xa5\x20\x01\x8f\x34\x36\x36\x7e\xfa\xd3\x9f\xfc\x84\x3f\xfa\xe8\ +\x23\xfe\xfd\x27\xbf\xe7\x4f\x3e\xf9\xc4\xff\xcc\xcc\xcc\xf0\xcc\ +\xcc\x0c\x5f\x99\x99\xe1\x2b\x57\xae\xa4\x3f\x1f\x5f\xe1\x2b\x1f\ +\x7f\xcc\x1f\x7e\xf8\x21\xbf\xf4\xd2\x4b\xdc\xd4\xd4\xf4\x27\x00\ +\x7f\x0b\xa0\x94\x3b\x81\x7f\xd6\x02\xd8\xd2\xb0\xeb\xef\x04\xd6\ +\x00\xf8\xe5\xf6\xed\xdb\x7f\x7a\xf9\xf2\xe5\xda\xd1\xb1\x51\x94\ +\x8a\xc5\x34\x45\xcd\x69\xa2\xda\xa5\xab\x99\xd9\xab\x00\xb6\xff\ +\x0c\x80\xea\x9a\x6a\x8c\x8d\x8d\xe1\xf2\xe5\xcb\xc5\x7b\xee\xb9\ +\xe7\x79\x00\xbf\xb5\x7e\x43\x2e\x00\x5f\xe4\x03\x24\x00\x12\x24\ +\xd7\x93\x0f\x50\x02\x70\x71\x68\xe8\xfe\xa1\x4b\x97\x2e\xf1\x8d\ +\x37\x7e\x0d\x2c\xc2\x52\xb6\xa6\x8a\x8d\xf6\xf6\x98\xfc\x9b\xc1\ +\x26\x00\x58\xbb\xb6\x09\xaf\xbf\xfe\x3a\x5e\x7b\xed\xb5\xed\x6b\ +\xd7\xae\xfd\x2d\x80\x03\xb9\x00\x5c\xd5\x05\x60\x4f\x0a\xbd\x4e\ +\x94\xb0\x04\xc0\xdb\xa7\x4f\x9f\x3e\xf6\xb3\x9f\xfd\x23\x6a\x6b\ +\x6b\x89\x99\x00\x36\xbe\x8b\x89\x9d\xff\x94\xb2\xc2\x76\xcd\x33\ +\x82\x16\x60\x52\x1a\xc1\x49\x42\x5f\x7f\x1f\xde\x7f\xff\xfd\xc6\ +\x9d\x3b\x77\xbe\x07\xe0\x58\x2e\x00\x57\x73\x02\x43\x18\x70\x3d\ +\xee\xf3\xfb\x7b\xf7\xee\x1d\x7c\xf9\xa5\x97\xd3\x55\xce\x4e\xd9\ +\x93\x6f\x74\xe8\x84\xc0\x38\x49\xf0\x4b\xdf\x1b\x05\xa5\x29\x7c\ +\xaf\x03\x06\x5a\x5a\x9a\xf1\xd6\x5b\x6f\x55\xdd\x72\xcb\x2d\x93\ +\x00\xbe\x99\x0b\x40\x39\x1f\xc0\xf6\x08\xba\x0e\x2e\x40\x6f\x73\ +\x73\xf3\xf3\x17\x2e\x5c\x40\x52\x28\xf8\x29\x75\x36\x9e\x55\x64\ +\x6a\xc2\x0b\x36\x56\x58\xa0\xb4\x04\x84\xb6\x70\x82\xc3\x0c\x34\ +\x36\x36\xe2\x9d\x77\x7e\x55\xdd\xde\xde\x3e\x09\xa0\x2b\x17\x00\ +\xad\x00\x00\x22\x24\xb4\xe8\xc9\xa0\xda\x24\x49\x7e\x71\xe1\xc2\ +\x6b\x85\xd6\xaf\xb6\xba\xa9\x57\x37\xc6\xd6\xbe\x73\x54\xb8\xea\ +\x94\xbc\x7b\xdf\x2b\x06\xc8\x73\xd8\x1f\xcc\x60\xb4\xb4\xb4\xe2\ +\x8d\x5f\xbc\x51\x57\x5b\x5b\x3b\x6d\xc1\xa4\x5c\x00\xa4\x0f\x00\ +\x5a\x74\x52\xe8\xf7\x47\x47\xc7\xda\xf7\xed\x3b\x10\x2c\x0f\x93\ +\xd3\xf3\x5e\xa9\x3b\x93\x00\xe1\xeb\x85\x23\x58\x88\x4d\x78\x2d\ +\x0e\x0f\xaf\x99\xb1\xf9\xa6\x2d\x78\xe1\x85\x17\x5a\x01\xfc\x12\ +\x73\x21\xcc\x54\x82\x00\x24\x44\xc0\xe2\x39\x81\x6d\xab\x57\xaf\ +\x7e\xe2\xd9\x67\x9f\x41\x9a\x8f\x74\x2b\xd7\xf8\x15\xef\x66\x9b\ +\x84\xa6\xf2\x21\x21\x4b\x0a\x3b\x09\x73\x41\x81\xdd\x1e\xa9\x8d\ +\xf4\xf2\x06\x43\x27\x4f\xe2\xc8\x91\x23\x3d\x16\x2c\xca\x05\xc0\ +\x15\x86\x10\x2d\x6a\x36\xf0\xe9\x87\x1f\xfe\x4e\x6d\x73\x53\xb3\ +\x8f\xe2\x1c\x21\x35\xf8\x01\xf0\xf9\x09\xa5\xea\x49\x6a\x03\xa9\ +\x12\x38\x9c\x2d\xe5\x23\x12\x18\x06\xf0\xe2\x8b\x2f\xa2\xb5\xb5\ +\xf5\x29\x00\x77\xe5\x51\x00\x87\x64\xc0\x22\xf9\x00\xed\x4d\x4d\ +\x4d\x67\x1e\x7f\xfc\x31\xa5\x9e\x63\x9b\x1e\x56\x3d\xc5\xba\x5f\ +\x4c\xb6\x10\x12\xe1\x1b\x04\xbf\x81\x03\x4c\x80\xf0\x19\x8d\x8d\ +\x8d\x98\x98\x98\x48\x0a\x85\xc2\x9b\x00\xea\x2b\x5a\x00\x0c\x10\ +\x34\xc0\xe2\x08\xc0\x53\xe7\x1e\x39\x57\x5a\xb5\x6a\x95\x56\xcf\ +\x7a\x11\xa7\x49\x2a\xf7\x1f\x66\xe1\xd5\x8b\xc9\xf6\x88\xa0\xfc\ +\x91\xf1\x8d\xfd\x4d\x2c\x22\x9e\xf4\xff\xbb\xba\x76\x61\x7c\x7c\ +\x7c\x1d\x52\xc8\xb8\x82\x35\x80\xb1\x8d\xe2\x16\x47\x00\xd6\xae\ +\x5d\xbb\x76\xf4\xcc\x83\x67\xc4\xa4\x87\x55\x0a\xe5\xd2\x85\x15\ +\xcb\xd0\x00\x4f\x10\x1a\x5b\xd0\xe2\xcd\x57\x10\x18\x96\xe8\xa0\ +\x61\x2f\x5c\x12\x40\x7a\xfc\x89\x27\x70\xd3\x4d\x37\x3d\x06\xa0\ +\xa3\xa2\x71\x80\x64\xf1\xda\xc4\x8d\x3c\xf8\xe0\x83\x35\xab\x57\ +\xd7\x0b\x1b\x8e\x30\x61\xb6\x63\x99\x5a\xd9\xc8\x4e\x5e\x98\x44\ +\xa3\xf3\x02\x52\x09\x30\x09\x41\x92\x20\x57\xf8\xa4\xaa\x52\x15\ +\x9e\x7b\xee\xb9\x04\xc0\x3f\x54\xbc\x0f\x40\x09\x2d\x78\x3a\x98\ +\x88\x4e\x8f\x8c\x8c\x58\x35\xcc\x5a\x51\xfb\x09\xe4\xc8\xdc\x73\ +\xa4\xce\x29\xc2\xff\xe0\xe1\x61\x28\xe4\xd0\x41\xc6\xa4\x42\xc4\ +\x14\x43\x0a\xc2\xb0\xaf\x77\x1f\x0e\x1d\x3a\xb4\x1f\xc0\x89\xca\ +\xd5\x00\x20\xd7\x22\x60\x21\xc7\x8e\x5d\xbb\x76\x75\xac\x6f\x6b\ +\x83\x61\x69\xc3\xdd\xc2\x67\x88\x90\x20\x84\x72\x14\x3c\x79\x66\ +\x8d\x02\x3a\xc9\x21\xe5\x43\xb0\xbc\x8c\xd2\x22\x0e\x45\x26\x11\ +\x1d\x30\x18\xcf\x3e\xfb\x0c\x4a\xa5\xd2\xdf\x23\xcd\x48\x56\x20\ +\x12\x98\x60\x31\x7c\x80\xd3\x83\x83\x83\x80\x31\xa9\x73\xc7\x52\ +\x25\x73\x6a\xa7\x49\x4c\x2c\x84\x07\x4f\x52\x60\x9d\x6a\x37\xde\ +\x7f\x30\x1c\xfb\x10\x01\x10\x92\xc0\x10\xc5\x02\xe2\xc2\x92\xf6\ +\x4d\xe8\xef\xef\x6f\x07\x30\x5e\xa1\x40\x50\x02\xa2\x05\x4d\x07\ +\x27\x85\x42\xe1\xbe\xe3\x7d\xc7\x6d\xb8\x19\x50\x3e\xa9\xe0\xc1\ +\x31\x0e\xc0\x32\xe2\x13\x12\xab\xc0\x41\x80\x42\x86\x30\x02\x0e\ +\xbd\x9f\xcb\x52\x38\x58\x1e\x9f\x1e\x75\xfe\xd1\xf3\x28\x14\x0a\ +\x4f\x01\x58\x5d\x79\x02\x00\x2c\x74\x3a\x78\xcf\xce\x1d\x3b\xff\ +\xa2\xa9\xa9\xc9\xab\x72\xe9\x01\x90\x8c\xe1\x95\x7a\xa7\xe0\xb4\ +\x79\x33\xa0\x53\xc4\x6a\xa6\x15\x83\x40\xc6\x93\xc2\xd9\x54\x79\ +\xa3\xf0\xa2\x6d\x7d\x1b\x06\x06\x06\x5a\x00\x9c\xab\x38\x13\x40\ +\x49\x02\x42\xb2\x90\x41\xc0\xf1\x23\x47\x8f\x04\x4f\x9e\x38\xf2\ +\xea\x35\x20\x14\xea\x14\xd9\xce\x1f\x5f\xe5\xc6\xc3\xb9\x41\xb0\ +\xd8\x05\x08\x41\x23\x18\x11\x0d\xb0\x13\x7a\x0e\x1a\xc7\x9a\x98\ +\xf3\xe7\x1f\x41\xa1\x50\x78\x02\x40\x6d\x05\x39\x81\x69\x71\x28\ +\x25\x0b\x1a\x06\x1e\x3f\x7c\xf8\xb0\xc0\xf8\x21\x56\x71\x98\x38\ +\x78\x1e\x50\x44\xf7\x52\x19\x3e\x61\x3a\x0c\x94\xbd\x27\x81\x27\ +\x80\x38\x72\x28\x53\xd8\x2b\x05\x85\xd2\x48\x82\x89\x45\x5a\x19\ +\x68\x6b\xfb\x4b\x1c\x39\x72\xa4\x15\xc0\x43\x95\xe5\x04\x92\x53\ +\xc3\x0b\x22\x00\x37\xaf\x5b\xb7\x6e\xf3\xb6\x5b\x6f\x0d\x1e\xb9\ +\x0a\xe3\x42\x02\x27\xb6\xe1\x6e\xe5\x92\xca\x0d\x90\x56\xf3\x2c\ +\xb4\x01\x22\x8f\x5f\x40\xc7\x2a\x59\xc4\x06\x60\x8a\x4c\x48\x7a\ +\xc2\xf8\xf8\x38\x00\x7c\x6f\x25\x44\x04\xb3\xc6\x01\x12\x10\x90\ +\x2c\x18\x21\xe4\x9e\xa3\x47\x8f\x0a\xe7\x2d\xcd\x3a\x72\x99\xd5\ +\x2a\x0f\x61\xe9\xc9\xb3\x9f\x63\xb8\xec\x61\x00\xfd\x58\xe3\x05\ +\x32\x5d\xec\x9c\x3d\x0a\x9a\xc2\xc1\x42\x86\xb5\x43\xe8\xde\xdf\ +\xba\x75\x2b\x0e\x1f\x3e\xfc\x35\x00\x23\x15\xe3\x04\xa6\x84\x90\ +\x64\xa1\x4c\xc0\x91\x54\x00\x54\xc6\x1e\x12\xde\xf3\x8b\xd8\xaa\ +\x64\x2f\x20\x52\x48\xc0\x2a\x2a\x48\x6d\xb7\xbc\x5f\x12\x5a\x42\ +\xfa\x11\x94\xfa\x10\x26\x58\x05\x16\x21\x87\x37\x08\x4c\xde\x14\ +\x9d\x3f\x7f\x1e\x44\xf4\x5d\x2c\xf3\xfd\x97\xe7\x46\x0b\x5f\x98\ +\xf2\xf0\x55\xab\x56\xad\xda\xb3\x7b\xf7\xee\x0c\x96\xaf\xc8\x1c\ +\xd6\xd1\xb3\x73\x2f\xf2\xfe\x32\xb2\x17\x7e\x43\xe4\xf4\xeb\xe8\ +\x40\xd8\x7d\x8b\x6d\xc8\x50\x11\x1c\xed\x8d\xc4\x82\x8b\x60\x9d\ +\xd3\xad\x5b\xb7\xa2\xab\xab\x6b\x0b\x96\x39\x91\x74\xd6\xd5\xc1\ +\x09\x6c\xb3\xe8\xf9\x17\x80\x9e\x9e\x9e\x9e\xea\xea\xea\x6a\x61\ +\xae\x35\x8a\xa7\xf3\xf7\x3a\x88\x57\xc4\xf0\xcc\xa4\xb1\x40\xf3\ +\xdc\xdb\xa4\x79\x02\x2c\x12\x4b\x0a\x1b\xd0\x18\x00\x20\x98\xc5\ +\xf6\x88\xb1\xb1\x31\x00\x78\x6c\xe5\xfb\x00\xb0\x7d\x22\x93\x05\ +\x01\x82\x0e\xf5\xf4\xf4\x08\x4f\x3d\xac\x50\x63\xe3\x2f\x16\xde\ +\x9f\xca\x01\x20\x4a\xfe\x40\x46\x02\xf0\x31\x83\x9d\x76\xfb\x19\ +\x26\xab\xdf\x7c\x48\x28\xf1\x03\x51\x0c\x2f\x73\xd0\x1c\x44\xee\ +\xe0\xc1\x43\xd8\xb0\x61\xc3\x21\x00\xb7\xad\x7c\x1f\x00\x94\x1e\ +\x3c\xff\x1a\xe0\x60\x4f\x4f\x8f\x02\x5f\x98\x11\x65\x00\x23\x08\ +\x47\x0a\x04\x62\x66\x0f\x22\x26\x10\x2b\x8e\x00\x31\x45\xef\xc1\ +\xe6\x0a\x34\x6b\x50\xc6\x3b\xbe\xa4\x40\xc0\xc6\x6c\x17\xc5\xf0\ +\xf0\x30\x2d\x67\x2d\x30\x47\x52\x68\x32\xdf\xcd\xa2\x1b\x57\xaf\ +\x5e\xdd\xb1\x75\xeb\x56\x81\xba\xe9\x30\x50\x26\x64\x04\x32\x94\ +\x41\x05\x25\x09\x04\xc4\x91\xed\xb6\x5a\x8c\x39\xf2\x17\xa4\xa7\ +\x91\x05\x08\x19\x31\xb7\x90\x95\x00\x32\x03\x27\x4e\x9c\x40\x6d\ +\x6d\xed\x03\x00\x5a\x56\xb0\x13\x08\x4b\x0a\x05\x30\xbf\x7d\x22\ +\x7b\x77\xed\xba\x23\x29\x14\x8b\x61\xf5\x97\x01\x6b\x83\x13\x47\ +\x02\xd0\xb1\x82\x40\x9a\xfa\xa5\x1c\x43\xd2\x24\x51\x16\xa1\x9f\ +\xd6\x6e\x10\xf6\x9e\xa3\x48\x41\xa0\x88\x2a\xff\x90\x1e\xbb\x66\ +\xcd\x1a\x1c\x3f\x7e\xbc\x06\xc0\xd9\x15\xec\x04\x9a\x94\x11\x4c\ +\xf3\x0e\x04\xf5\xde\x79\x67\x8f\x52\xe7\x92\xb8\xa1\x58\x3b\x7e\ +\x72\x49\x70\xfc\x04\x1a\x28\x96\xb4\x87\x7e\x8d\x80\x8e\x11\x25\ +\x81\x54\x85\x91\x46\x16\x35\x6b\x08\xd6\x6f\x08\xa8\x11\x21\xa4\ +\xa0\x01\x60\x74\x74\x14\x00\xfe\x1a\x40\x61\x85\x02\x41\x69\xb8\ +\x44\x94\xcc\x77\x14\xb0\xb7\xbb\xbb\xdb\xe9\x67\x3d\x81\x91\xed\ +\x0f\x31\xbd\x75\xe4\x62\x55\x81\x4c\xd6\x47\x75\x34\x52\x24\x32\ +\x8e\xbe\x1b\xc7\x70\x02\x67\xb2\x48\x2a\x3b\xe9\x9d\xc6\xd4\x9f\ +\xd8\xb4\xe9\xeb\xe8\xec\xec\x6c\x03\xf0\xad\x15\x8b\x03\x24\xf3\ +\x5f\x1a\x56\x5f\x57\x57\xd7\x71\xfb\xf6\xed\xe9\x43\x35\xb8\x2a\ +\xb1\x37\xb6\xcf\x14\xb2\x01\xaa\xc4\x4b\x26\x8d\x2c\xae\x13\xbd\ +\x87\x8c\xc6\x90\x21\x5f\xb4\xfe\xe1\x41\x66\xd6\x61\x62\xe0\x21\ +\x87\xba\x84\xe1\xe1\x61\x60\x19\x66\x09\xe7\xa6\x01\x80\xf9\xdc\ +\x36\xee\xce\xce\x6f\x74\x16\x4b\xc5\x12\x02\xdc\x1f\x00\x7a\x12\ +\x5a\x80\xe2\x5a\x7f\xc5\xe3\xb7\xab\xda\xd2\xc0\x42\xd2\xc8\x04\ +\x55\x0f\x4d\x01\x03\x6b\x2f\x1f\x62\xf2\x33\xb8\x80\xe7\x14\x0a\ +\x3b\xc2\x82\x80\x66\xb1\x91\x43\x87\x0e\xa1\xa5\xa5\xe5\x10\x80\ +\x2d\x2b\x4e\x00\x0c\x0c\x08\x04\x4a\xe6\x75\xdb\xb8\xde\xdd\xdd\ +\xbb\x21\x73\xf9\x31\x14\x2c\x6d\x7d\x1c\x82\x21\x56\xe9\x36\x79\ +\x13\x30\x21\x2a\x43\x06\xd0\xe7\xb3\x54\xe9\xd0\xfe\x42\x10\x0a\ +\x8a\x74\x61\xc4\x40\xb6\x6c\xa4\x52\xa9\x84\x13\xf7\x9e\x20\x00\ +\xdf\x59\x81\x61\x60\x5a\x17\x90\xcc\x2f\x12\xb8\x77\x77\x57\x57\ +\x84\xc6\x89\x87\xcc\x3a\xae\xf7\xf6\x97\x64\x6e\x40\x0a\x8d\x5c\ +\x95\xd2\x9b\x17\x9a\x42\x86\x7d\x32\x5f\x20\x01\x28\x85\x20\x52\ +\xe4\x80\x42\x39\x99\x82\xb8\x08\x06\xe3\xfe\x93\x43\x28\x16\x8b\ +\xa7\x01\xd4\xad\x30\x13\x10\x70\x80\x79\x72\x02\x6a\xaa\xab\xab\ +\x77\xed\xfc\x46\x67\x86\x88\xcd\xb2\xd8\xc3\xe3\xf3\xc1\x0c\x79\ +\xb2\x86\x10\x1a\x92\xf1\xa3\x50\xd1\xa4\x58\x3e\x62\xd3\x3b\xc1\ +\x02\xd6\x45\x22\xa4\xc2\xd1\x90\x5c\xe2\xa8\x2c\x3d\xce\x56\xa4\ +\x97\x6a\x6e\x69\xc1\xfe\xfd\xfb\x1b\x00\x0c\xaf\x3c\x20\x28\x99\ +\xd7\x6d\xe3\xba\x6e\xbf\xfd\xf6\xea\xea\xea\xaa\xe8\xa1\xea\xee\ +\x5e\x1c\x4c\xb9\x5d\xa5\xc6\x7f\xbc\x11\xf8\x3f\x97\xd3\x1e\x19\ +\x27\x32\x0b\x35\x3a\x3a\x78\xf8\x3c\xa3\x15\x3c\x0b\xb6\x29\x73\ +\x8a\x22\x4a\xfa\x59\x04\x51\x32\x03\x83\x83\x83\xc0\x32\x22\x8e\ +\xce\x81\x13\x98\x86\x81\xf3\x44\x09\xdc\xd7\xd5\xd5\x15\x3d\x3c\ +\xce\x16\x75\xc0\xb1\x80\x65\xfd\xbf\x3e\x4e\x96\x7f\x69\x58\x58\ +\xd7\x02\xc4\x71\x3f\x4b\xde\x80\xa7\x95\xc5\xbc\x02\x2d\x64\x06\ +\xd6\xcf\x20\x8e\xf2\x0e\xe1\x77\x4f\x4f\x0f\xd6\xad\x5b\xb7\x03\ +\xc0\x1d\x2b\x0a\x09\x74\x1b\x46\xcc\x53\x8b\x98\x03\xdd\xdd\xdd\ +\x19\xe2\xa6\x22\x80\xc8\xaa\x20\x01\xef\xc6\xb9\x01\x8a\x71\x43\ +\x36\x9e\x0e\x5e\x36\xd8\x8f\xbf\x98\xa4\x9d\xa9\xb7\x4c\xe4\x20\ +\x0a\xd3\x61\x74\x45\xb2\xbc\x4f\x22\xc2\xc9\x93\x27\x81\x65\x42\ +\x19\x9b\xbd\x0f\x80\x94\x10\x32\x0f\x4e\x60\x4d\x92\x24\xbb\x3b\ +\x3b\x3b\x15\xcf\xcf\x39\x62\x7e\x4d\x52\x54\x0d\x6c\xa4\x40\x18\ +\xaf\x05\x4c\xdc\x21\x44\xed\x6b\xa3\xbd\xfc\xb8\x3b\x48\x0a\x14\ +\x46\x1c\x07\xe5\x30\x92\xd2\x00\xd9\x4a\x25\x8e\x5b\x10\x00\x00\ +\x06\x06\x06\x50\x55\x55\x35\x04\x60\xcd\x0a\xf2\x01\xdc\x97\xbc\ +\x66\x01\xe8\xbe\xf9\xe6\x9b\x6b\x56\xd7\x5b\x6a\xbd\x2d\xca\x8c\ +\x55\xae\xc4\x02\x98\x03\xf8\x82\xa8\x8e\x8f\x14\x29\x84\x45\x38\ +\xc7\xfa\x0c\xe1\xad\xc7\x3c\x3f\xe9\xe0\x99\x08\x62\x0c\x21\xa9\ +\x51\x28\x65\x86\xaf\x20\x52\x4a\x37\x34\xdc\x80\x83\x07\x0f\xae\ +\x06\x30\xba\xe2\x7c\x80\x79\x70\x02\x0f\x74\xef\xee\x0e\x2b\x59\ +\xda\x52\xd9\xa4\x81\x35\x45\x3b\x44\x5d\x94\x61\x02\xa9\x58\x50\ +\x32\x7c\x39\x4e\x14\x21\xe2\xfe\x47\x15\xc2\x88\x38\x83\xac\x2b\ +\x86\x82\x9f\x42\xc2\x4c\xa1\x6c\x1e\x62\x68\xe8\x7e\x00\x78\x14\ +\x4b\x9c\x32\x36\x87\x6c\x60\x02\x4a\xe6\xa5\x43\xc8\xc1\xbb\x0e\ +\xde\x95\x01\x5d\x3c\xd9\x5b\xb2\x70\x22\xbb\x4c\xf0\x7c\x30\xcf\ +\xd9\xd7\xc8\x4e\xd4\x16\x2e\xaa\x2b\x88\xf9\xc6\x8c\x58\xf3\x20\ +\x53\x31\xa4\xd0\x44\xa4\x9c\x44\x8e\x92\xe2\x2a\x73\x68\xef\x63\ +\xc7\x8e\x0e\xdc\x76\xdb\x6d\x9b\x01\x1c\x5d\x01\x3e\x80\x49\x1b\ +\x84\x80\xae\xb5\x32\xe8\x86\xba\xba\xba\x3b\xba\x77\x77\xab\x15\ +\x29\xf1\x35\x12\x7e\x87\x84\x74\xe1\x6c\x36\xb1\xee\x0b\x10\xa1\ +\x78\xca\x27\x28\xd7\x35\x40\x39\x9c\x9c\xed\x1e\x12\x53\xc9\xca\ +\x70\x03\xc3\xb9\x46\xb5\xa0\x61\xd6\x25\x65\x36\x3f\xf0\xe8\xf2\ +\x87\x82\x8d\xd5\x00\xd7\x9e\x0e\x3e\xd8\xdd\xdd\x5d\xaa\xaa\xae\ +\x56\x16\x56\x96\x7c\xeb\xb2\x30\xa1\xf2\xa1\x57\xbb\xea\x00\x16\ +\x39\x69\x28\xd7\x29\x46\x69\x16\x41\x0e\x61\x64\x91\x3e\x68\x22\ +\x89\x8e\x48\x58\x77\x2c\x53\xc2\x0a\x91\xd0\x62\x1c\x3e\x7c\x18\ +\xad\xad\x2d\xdf\x04\x70\xcb\x32\x37\x01\x6c\x5b\x04\x5d\x33\x2b\ +\xf8\x68\x6f\x6f\xaf\x0e\x9d\xc2\xce\xf4\xa2\x04\x4b\x28\xe9\x08\ +\xf6\x85\x82\x80\xcb\x30\x77\x39\x6a\x16\x8d\x88\xe2\xe5\x22\x0d\ +\x56\x71\xa7\xaa\x48\x02\x43\x22\x50\x51\x5f\x01\x09\x38\xc6\xd1\ +\x03\x14\x46\x50\x2c\x95\xd0\xdf\x3f\x40\x00\x1e\x5f\x21\x50\xf0\ +\x35\x6f\x1d\x7a\x24\x2d\xff\x62\x35\xe1\xce\xb3\x26\xc7\xf9\xce\ +\x4c\x78\x94\x98\x70\xba\xc1\x59\x08\x57\x3d\x8a\x32\x5d\xc1\x22\ +\x98\xd8\xf8\x39\xe2\xb2\x66\x81\xa5\x4f\xc2\x9a\x9a\x66\x94\xdf\ +\x91\xd5\x58\xe5\xc0\xaa\xa1\xa1\x93\xa8\xae\xae\x3e\x05\xa0\x69\ +\x59\x27\x83\xc8\x16\x86\x98\x2f\x9f\x0e\xee\xd8\xb0\x61\x43\xdb\ +\xfa\xf5\xeb\x95\x0d\x76\xf0\x6e\x9a\xbf\xe7\x08\x5d\x43\xe6\xff\ +\xd9\xb9\x0d\xb5\x81\x9a\x0d\x1c\xf1\x06\x65\xd8\x18\x82\x3a\x61\ +\xb3\x45\x95\x90\x74\x40\x15\xa1\x54\x14\x96\x92\xcc\x57\x88\xf4\ +\xb5\xb6\x5f\x68\x68\xf8\x0a\x8e\xdd\x7d\x77\x2d\x80\x87\x97\xb9\ +\x13\x68\xbb\x85\x7f\x79\x0d\xd0\x7f\xe0\xc0\x01\x3d\xf9\x90\x4d\ +\x9d\x2d\x63\x57\x2d\xf4\x18\xe5\x0b\xd0\xb0\xf2\xd4\x39\xa2\x07\ +\x45\xf9\x7b\x56\xd0\xb0\xc3\x05\x38\x8a\x0d\x1d\xde\xaf\xc5\x47\ +\xaa\x7b\x4d\x17\x8b\x20\x67\xd9\x6f\x2a\x32\x1d\x0f\x04\xb2\x48\ +\xdd\xf2\xd4\x00\x98\x97\x6e\xe1\xfd\xfb\xf7\xef\xcb\x24\x63\x34\ +\x41\x23\xd2\xf9\x1c\x69\x01\x67\x82\x22\xda\xb7\x2b\xf6\x70\x13\ +\x63\x90\xc5\x04\xe4\xb5\x1d\xb7\x95\xbd\xaa\x0f\x3e\x1d\x0b\xa8\ +\x29\x2e\x13\x17\x36\x0b\xb2\xd3\x58\xdc\x7b\x90\x22\x71\xd9\xb4\ +\x69\x13\xba\xba\xba\xbe\x8a\x25\x48\x1c\x5d\xac\x66\xd1\xdb\x1a\ +\x1a\x1a\xb6\xef\xdd\xd3\xeb\x1d\x30\xc5\xb8\x75\xb4\x2b\x96\x10\ +\x6d\x96\x96\xe5\xfa\xbc\x68\x36\x0e\x54\xe7\x8f\xe0\x0e\x48\xba\ +\x38\x6b\xbc\x81\x75\xb8\xe9\x4d\x84\x09\xfc\x01\x13\x87\x77\x0a\ +\xed\x23\x4f\x39\x53\x82\xe8\x84\xce\x70\x74\x6d\xe0\xec\xd9\xb3\ +\x00\xf0\x5d\x00\x55\xcb\x13\x09\xbc\xb6\x66\xd1\xc3\xc7\x8e\x1e\ +\x45\xa1\x54\xb4\x1d\xfe\xc5\x04\x46\x6b\xc8\x87\x69\x14\xc5\x72\ +\xd6\x08\xb3\x02\x00\xa2\x9d\x00\xca\x56\x03\x93\xb0\x0a\x01\x22\ +\x56\x99\x41\x77\x3a\xe9\x10\xcf\x07\x15\xb2\x11\x69\x99\xd6\xf3\ +\x2a\x14\x14\x42\x26\x85\x60\xe7\x8e\x1d\xd8\xb1\xa3\x63\xdd\x52\ +\x83\x87\xe7\xde\x2b\x78\xee\x3e\x20\x01\xb8\xff\xe8\xb1\xbb\x33\ +\xde\xbd\xe6\xe7\xeb\x96\x6f\xc6\x48\xea\x37\x67\x48\xa2\x2a\x14\ +\xe3\xc0\x04\xe2\x72\x85\x25\xc2\x87\x20\x89\x18\xaa\xf6\x01\x8c\ +\x72\xfc\x71\x92\x21\x23\xc5\xdd\x49\xf4\xbd\x87\x66\x55\x1c\xfd\ +\x3d\x3d\xef\xd4\xa9\x51\x00\x78\x66\x29\x69\x81\x39\xe5\x02\x92\ +\x2f\xa7\x01\x0e\xdc\x78\xe3\x8d\x1b\xf7\xee\xe9\x51\xcd\x9e\x0d\ +\xc7\x21\x15\xeb\xcd\x1c\x48\x3e\x44\x42\xb9\x9e\x81\xa0\x28\x54\ +\x54\x78\xbd\x8e\xf1\x1c\xb7\x83\x23\x02\x89\xfe\x3a\x11\x08\x15\ +\x31\x89\x51\xa6\x40\x95\x2d\x6b\xc5\x47\x06\x3e\xaa\x71\xdc\xf1\ +\x80\x6f\xee\xdd\xbb\x17\x1d\x1d\x1d\x1b\x01\x7c\x7b\xd9\xe1\x00\ +\x70\xbb\x86\x99\x39\xab\x80\x73\xe3\xe3\xe3\x28\x14\x8b\x4a\x8d\ +\xfa\x46\x6e\xc2\x6e\xab\x20\xce\x65\x00\x29\x5b\xdf\xa7\xb2\x79\ +\x5e\x25\x9b\x0c\x30\x23\x57\x20\x59\x6c\x47\xef\x26\xa6\xab\x7c\ +\xca\xb5\xa7\x89\xb3\x07\x24\x3a\x89\x84\xbf\x93\xa7\x9f\x65\xb6\ +\xa7\x81\xb8\x37\x02\x9e\xfe\x9b\xa7\x51\x2c\x16\x9f\x07\xd0\xb0\ +\xcc\x70\x00\xe1\x6c\xcf\x7e\xdc\xdc\xda\xda\xda\x3f\x78\xdf\x7d\ +\x9a\x83\x4f\x1a\x32\x75\x93\xe8\x9b\x30\xf8\x78\x3d\xf0\x2e\xbd\ +\x3d\xe1\x40\xfc\x88\xa2\x31\x8d\x14\xaa\x92\xb1\x00\xea\x50\x26\ +\x83\x13\x52\xca\x40\xd4\x2a\x2e\xde\x94\x22\xd6\x00\x46\x38\x7a\ +\x06\xc8\xde\x90\x7b\x3b\x64\x35\xdb\xdb\x37\xe2\xc4\x89\x13\x2d\ +\x00\x7e\xb0\xcc\xc2\x40\xd7\x25\x6c\x4e\x22\xf0\xbd\xb1\xd1\xb1\ +\xa4\xba\xaa\x5a\x93\x3f\x39\x2e\xc7\x12\xd1\x95\xeb\xf7\x03\x44\ +\x0e\x1f\x22\xcc\x9f\xa2\x3d\x02\xc5\xe4\x23\xed\x69\xc0\xac\xe9\ +\x62\x10\xd9\xc6\x72\x3e\x82\x42\x83\xa3\xf6\x42\x88\xcd\x82\xaf\ +\x3d\x84\x6f\x26\xa5\xab\x87\xb2\x1a\xc1\x59\xac\x33\x67\xcf\xa2\ +\xbe\xbe\xfe\x1c\x80\xad\xcb\x2a\x0a\x98\x23\x1d\x60\x73\x7d\x7d\ +\xfd\xc8\xc8\xa9\x11\x64\x29\x5e\x65\x1a\x3e\xc8\xb4\xad\x51\x59\ +\x95\x8c\x5d\x56\xf8\x7e\xa6\x2f\x40\xb4\x86\x85\x36\x88\x8a\xbe\ +\x05\x0a\x48\xaa\x2e\x51\xae\x5e\x8a\x49\xa2\xca\x4f\x14\x60\x56\ +\xfc\xbd\x48\x14\xa8\x70\x20\x9b\x30\x18\x0d\x37\x34\xe0\xa1\x87\ +\xbe\x5d\x02\xf0\x4a\x00\xb1\x97\x7c\x14\x00\xdb\x23\x68\xd6\x3e\ +\xc0\xcb\xe7\xce\x9d\x2b\xad\x59\x53\xaf\x13\x27\x9c\xdd\xc8\x49\ +\x41\xb0\xfe\x33\xa9\x4c\xb1\xa6\xcd\x4e\x46\x9b\x3f\xa9\x07\xaf\ +\x4b\x8a\x1d\x90\x19\xed\x32\x16\x39\x8f\x14\x55\x00\x87\xa2\x32\ +\xef\x84\x52\xa6\x8a\x18\xd9\x4d\xab\x54\x62\x2a\xdb\x50\x82\x44\ +\xb2\xe1\xde\x13\xf7\x62\xf3\xe6\xcd\xfb\xaf\xb7\x43\x38\x7b\x52\ +\xa8\xc7\x01\x66\x35\xee\x69\x6b\x6b\xfb\xd6\xe9\xb1\xb1\x0c\x07\ +\xbf\x1c\x4b\xd7\x3b\x17\x51\xdf\x7f\x19\x97\xcb\xbf\x13\xeb\xaa\ +\x60\xe5\x4b\x28\xa8\x59\xc4\xf7\x40\xa6\x25\x8c\x1f\x46\x6b\x06\ +\xa9\xad\x54\x8e\x40\x32\x8c\x38\xda\x70\x2a\xb6\x17\x1c\xef\x61\ +\xa4\xe5\x32\x29\x14\xf0\xe4\x93\x4f\x82\x88\x5e\x06\xb0\x6d\x69\ +\x0b\x80\x71\x3e\xc0\xac\xc2\xc0\xe6\x62\xb1\x78\xe1\xd5\x57\x5e\ +\x41\x75\x4d\x8d\xc2\xcf\xb8\x5c\x7a\x8f\x49\x37\x6e\x8a\x57\x69\ +\xd4\x1c\x50\x2e\x70\x9d\xd5\x23\xe1\x28\xc6\xdd\xc6\x24\xa2\x23\ +\xe4\xd1\x68\x9a\xb8\xda\x87\x28\xf6\xff\xa3\x62\x90\x2c\xb7\x08\ +\x7a\x33\x2a\xa9\xbb\x88\xd4\xf7\x73\xe7\xee\xe8\xe8\xc0\x99\x33\ +\x67\x56\x01\xf8\x27\x00\x37\x2c\xdd\x30\xd0\xee\xd1\x99\xfa\x00\ +\x5f\x28\x00\x55\x00\xde\x7a\xe4\xfc\xf9\x96\x6d\xb7\xde\xaa\xbd\ +\xf3\xa8\xb0\x53\x51\x29\x35\xa5\x2f\xb2\xfd\xac\x9b\x43\xab\xf6\ +\x31\x51\x03\x08\x8e\x89\x9d\x64\x63\xf4\x68\x63\x69\x08\x76\x91\ +\xd5\x50\xc4\xd9\x8e\xe1\xda\x64\xa9\x9c\x54\x28\x1a\x31\xf2\x7b\ +\xb0\x68\x4c\x21\xd5\x80\xee\x36\x2a\xb5\xdd\xe9\xd3\x7f\x85\xce\ +\xce\xce\x5b\x00\xbc\x8d\xeb\xb0\x4d\xdd\x1c\x9c\xc0\x94\x12\xf6\ +\x05\x95\x21\x09\x80\x9f\xf7\xf6\xf6\x1e\x3e\x37\x7e\x4e\x3b\x76\ +\x31\xe8\x42\xa4\x3d\x3b\xe2\x2c\xba\x86\x2c\xa1\x53\x34\x70\xcd\ +\xb6\x04\x10\xe7\x92\xdc\x37\x40\x45\x1f\x21\x92\x08\xbd\x44\x4d\ +\x68\x3a\x11\xaf\xde\xcc\x2e\x63\x1e\x48\x16\x98\x75\xac\xee\x55\ +\xa6\x49\x2b\x3c\x8f\x26\x06\x61\x4d\x12\xc2\x0f\x7f\xf8\x03\xb3\ +\x65\xcb\x96\xbb\x01\xbc\xb1\xd8\x42\x30\x07\x42\x48\x02\x22\xba\ +\xda\xfc\xd7\x03\xb8\xd8\xbb\x6f\xdf\xc8\xc4\xc4\x04\x17\x8b\x05\ +\xcd\xb0\x41\x9c\xb4\x91\xab\x42\xdb\xce\xb8\x54\x4c\xee\xef\x47\ +\x31\x1f\xe0\x6a\xa5\x61\x19\xb9\x60\xb5\x2b\x98\x0a\x1d\x45\x3a\ +\x5a\xce\x1f\xa9\x44\x10\x29\xc5\x6f\xe2\x32\xf5\xa8\xb1\x81\xca\ +\x2f\xb0\xec\x31\xc2\x59\x20\x85\x81\xaf\x34\x36\x26\x13\x13\x13\ +\xdc\xb3\x67\xcf\x03\x00\xfe\x19\xb3\x68\x47\x3f\x39\x39\xc9\x53\ +\x53\x53\xbc\x38\x1a\x00\xf0\x7b\x07\x97\x81\x82\x0e\x01\xf8\xf7\ +\xe1\xe1\xe1\xbe\x9f\x5f\xb8\x80\xba\xba\x5a\xaf\x00\x4d\x1c\xf7\ +\x33\xc9\xbf\x06\x52\x46\x6c\xab\xcb\xd1\xad\x11\xc8\x3f\x1c\x77\ +\x05\xf5\xe7\x93\xc2\x0c\x42\x68\x46\xda\x09\xe4\xd8\x1e\x47\xa2\ +\x93\x41\x1c\x85\x20\x1b\x57\x8c\xaa\xa9\xe1\xfe\xf6\x49\x9b\x2f\ +\x44\x4e\x29\x47\x55\xc6\x4e\x28\x6a\x6a\x6a\xe8\x85\x1f\xfd\x08\ +\xc7\x8f\x1f\x3f\x0a\xe0\x3f\xec\x73\xfd\xb3\x63\x7a\x7a\x9a\xa7\ +\xa7\xa7\xbf\xb4\x20\x5c\x35\x06\x3d\x35\x72\x8a\x41\xf0\x44\x10\ +\xa2\xc4\x6a\xef\xf0\x9a\xac\x3a\x27\x0b\x13\x92\x2d\x1f\x73\xc2\ +\x42\x6e\x9b\x19\xf7\xda\xff\x58\x73\x62\x89\xa6\xb0\xc7\x26\x09\ +\xd2\xbf\x49\x81\x23\xca\xbe\x26\x20\x41\x62\x1b\x58\xa7\xbd\x8b\ +\xd2\x76\xf6\x52\x50\xe1\xbb\x9b\xca\xf3\xc8\x36\xbc\xcc\xde\x8b\ +\xdd\x14\x2b\xb1\xed\xf0\xae\x7a\xcf\xee\x7a\xf0\xf9\x11\xfb\x66\ +\x1a\x26\xdb\xcf\x4d\x20\x3e\x53\x3d\xbb\xf2\xdf\x2b\xbd\xe5\x04\ +\x94\x20\xdc\xb3\xf5\xbb\xfc\xb5\x90\x7e\x4f\xf7\xd9\x83\x83\x83\ +\x60\x66\x4c\x4e\x4e\xfa\x79\xeb\xeb\xeb\xa3\x79\x11\x80\x91\x53\ +\x23\x5c\x57\x5b\xa7\x8b\x30\x8c\x11\xce\x96\x93\x66\x23\xd4\xbb\ +\xf1\xe5\x5a\xf2\xbd\xb4\xaf\x2f\xc3\x94\xa1\x5c\xeb\xeb\x99\xf0\ +\xdb\x6d\xde\xe4\xb6\x8a\xb1\x79\x76\x66\x7b\x1d\x57\x4a\xc6\xe1\ +\xb7\x2a\x00\x35\x69\x31\x27\x1b\x56\x7c\xbe\x14\x68\x32\xa1\x1a\ +\xd8\x58\x2a\x1a\x33\x8c\x71\x0d\x2a\xcb\x5c\x33\xe3\x68\x8a\x28\ +\xc2\x18\xdb\xc2\xd6\x08\x1a\x99\xf1\xf7\xcf\x96\xeb\x68\xa0\xbf\ +\x2f\xd8\xf8\xcf\x72\xd7\x4c\xff\x66\x7f\x1b\xa1\xe1\x8c\xf6\x1d\ +\xca\x3d\xbf\xe9\xe9\xa9\x39\x0b\xc2\xec\xab\x56\x54\xc3\xbd\x08\ +\x71\x21\x01\x7f\x81\x94\xed\x27\xe8\x1c\x82\x36\x22\x94\x29\xf5\ +\x94\x27\xf8\x8d\x9b\x28\xb4\x7d\x03\x89\x4d\xa2\x24\x54\x6d\xaf\ +\x67\x7d\x7a\xeb\xd9\xdb\x14\xb6\x2e\xe8\x55\x62\x2f\x55\x76\x9c\ +\xeb\xa0\xe8\x9e\x59\xbd\x23\xca\x89\xc9\x5d\x96\x44\xa1\x09\xa9\ +\x2f\xcb\x54\x16\x5d\xf1\x87\xb2\x00\xc0\xc8\xb7\xc2\x23\x11\xb9\ +\x5e\xa5\xc0\xb5\xdc\xf5\xe6\x30\x8a\x5f\xa4\x1c\x3e\xfb\xec\xb3\ +\x32\xaa\x37\x2d\x11\x4b\x8a\xe9\x64\x27\x04\x9f\x29\xb4\x4a\xd4\ +\xab\x76\xb2\x6a\x0b\x49\xe2\xc3\x48\xa5\xde\x9c\xda\xf4\xc7\x06\ +\x33\x22\x55\xb0\xff\x1c\x0a\x2a\x38\x7d\x29\x3f\x87\x00\xa5\x2e\ +\x29\x73\xef\x24\xd5\xb2\x34\x0f\x80\x57\xe5\x4a\xed\xc3\x7e\x37\ +\x48\x35\x4d\xfe\x5c\xa7\x96\xe5\xb9\x59\xd5\x1e\x5d\xcf\xdd\xb3\ +\x37\x5d\xc1\x5c\x68\x33\x1a\xcc\x63\x12\x5f\xd7\x3e\xd3\xc1\x7b\ +\xef\x05\x00\x4c\x4d\x4d\xcd\xbf\x09\x90\x63\x6c\x6c\x94\xab\x4a\ +\x69\x31\xc7\x1f\xff\xf4\x47\xbc\xf9\xe6\x9b\xd7\x15\xbf\xce\x07\ +\x30\x35\x39\xc9\x94\x90\x9f\xc2\xb9\x4e\xfc\x2c\x34\x40\x99\x74\ +\x30\xb0\x58\x7b\x07\xe7\x63\x96\x6b\xf7\xcb\x4e\xfc\x1c\x05\x20\ +\x48\x40\x2e\x00\x4b\x63\xf4\x0f\xf4\xcf\x8b\x16\x9e\x1d\xea\xc4\ +\xc0\xa7\x9f\x7d\x3a\x17\xab\x91\x8f\x7c\xe4\x23\x1f\xf9\xc8\x47\ +\x3e\xf2\x91\x8f\x7c\xe4\x23\x1f\xf9\x58\x92\xe3\xff\x01\x20\x06\ +\x00\xbe\x06\x90\xe5\xa3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x1c\x9f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xb3\x00\xb3\x00\xb3\x3b\x54\x6b\xc4\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x05\x0e\ +\x09\x18\x35\x5a\x6e\xe9\x42\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x1b\xfa\ +\x49\x44\x41\x54\x78\xda\xed\x5d\x6b\xac\x5e\x65\x95\x7e\xd6\x6e\ +\xff\x58\x0a\x66\x28\x15\x64\xcc\x28\x33\x5a\x46\xc6\x4e\xa2\x11\ +\x33\x74\xc8\xd0\x30\x31\x26\x18\xb9\xd8\x1a\x70\xe2\xa4\x54\x09\ +\x28\x97\x52\xe8\x05\x39\x9c\x96\x53\x38\x52\xda\x53\xa8\xf4\x46\ +\xa5\x0e\x75\x10\x32\xc6\xc1\x70\xfb\x8f\xe0\x8c\xcd\x24\x38\xfc\ +\x40\xe6\x87\xd6\x18\x64\x74\x10\xa4\x17\x4a\x7b\x90\xc0\x59\x6b\ +\x7e\xbc\xb7\xb5\xd6\xde\xdf\xa5\xf4\x9c\xd3\x9e\xe3\x5e\xa1\x29\ +\x3d\x67\xef\x6f\xef\xfd\xbd\xeb\x5d\xeb\x59\xcf\xba\x6c\xa0\x95\ +\x56\x5a\x69\xa5\x95\x56\x5a\x69\xa5\x95\x56\x5a\x69\xa5\x95\x56\ +\x5a\x69\xa5\x95\x56\x5a\x69\xa5\x95\x56\x5a\x99\xce\x42\x7f\x4a\ +\x0f\xbb\x64\xc9\x92\x0b\x01\x5c\x06\x60\x01\x11\x7d\x14\x90\xd9\ +\x00\x1d\x16\xe0\x57\x04\xec\x01\xe1\xb1\xef\xed\xfe\xde\xd3\xad\ +\x02\x4c\x33\xb9\xf2\xca\x2b\x17\x02\x18\x02\x70\x01\x11\x20\x02\ +\x80\xc8\x3c\x3c\x51\xfa\x97\x3c\x0b\xd0\xd0\x83\x0f\x3e\xf8\x4c\ +\xab\x00\xd3\x40\x96\x2e\x5d\xba\x1a\xa0\x0d\xe1\x69\x05\x73\xe7\ +\xcc\xc5\x99\x7f\xfe\x41\xfc\xd9\xa9\x73\x70\xd2\xac\x59\x38\x72\ +\xe4\x08\xf6\xef\xdb\x8f\xdf\xbf\xfa\x0a\x5e\x7f\x7d\x5f\xf9\x5a\ +\x08\xb7\xfc\xcb\x77\xbf\xbb\xb1\x55\x80\x29\x2c\x5f\xfd\xda\x57\ +\x6f\x23\xa1\x61\x90\x60\xce\x9c\xd3\x70\xf6\xd9\x67\x63\xce\x9c\ +\xd3\x40\x24\x10\x21\x00\x12\xf6\xbc\x84\xbf\xf7\xed\xdb\x87\x5f\ +\xee\xdd\x8b\x03\xfb\xf7\xa7\x8f\x18\xdc\xb5\x6b\xd7\xb7\x5a\x05\ +\x98\x82\x72\xd5\x55\x5f\xbb\x18\xc0\x13\x00\xf0\x97\x7f\xf5\x51\ +\x9c\xf3\xf1\x8f\x07\xd3\x1f\x16\xfd\x69\x00\x8f\x41\xb0\x07\x24\ +\x0b\x44\x70\x19\x80\x0b\xd3\xaf\x7f\xf1\x8b\x5f\xe0\xa5\x97\x5e\ +\x8a\x8a\x82\x4b\x1e\x78\xe0\x81\x27\xa7\xeb\xf7\x34\x73\xda\x6a\ +\x36\x55\xc3\x20\xe0\x03\x73\x4f\xc7\xc7\xcf\x3e\x1b\xcc\x0c\x00\ +\xcf\x08\x30\xb4\xe8\x8b\x5f\x7c\x56\x1d\xfa\x3c\x80\x6d\x3f\x7a\ +\xf4\x47\x17\x08\xc9\x10\x04\x0b\xe7\xcd\xfb\x28\x46\x47\x8f\xe0\ +\xf5\xd7\xff\x00\x22\x1a\x06\xf0\x64\x6b\x01\xa6\x90\x5c\x7d\xcd\ +\xd5\x57\x00\xf4\x6f\x00\xb0\xe0\xbc\xf3\x70\xf2\xc9\x27\x03\x90\ +\x27\x17\x2d\x5a\x7c\x49\xaf\x73\xff\xfd\x87\x3f\x7c\x02\x84\x8b\ +\xdf\x7c\xf3\x30\x7e\xf6\xdc\x73\x90\xf0\x25\x7d\x79\xc7\xfd\xf7\ +\xff\x60\x3a\x7e\x57\xd5\xf4\xd4\xea\xea\x52\x22\xc2\x07\xcf\x38\ +\x03\xb3\x67\xcf\x06\xb3\x80\x45\x06\xfb\x39\x97\x45\x06\x99\x05\ +\xb3\x66\x9d\x84\x0f\x9c\xfe\x01\x54\x55\x05\x9a\x51\x5d\x3a\x5d\ +\x2d\xc0\xb4\x54\x80\x6a\x06\x9d\x5b\x11\xe1\xb4\xd3\xe6\x42\x98\ +\x21\xc2\x3f\xf8\xd2\xe2\x2f\xfd\xbc\x9f\x73\x2f\xbf\xfc\xf2\x9f\ +\xb3\xc8\x0f\x20\x82\x53\x4f\x9d\x83\x8a\x2a\x54\x54\x9d\xdb\x2a\ +\xc0\x94\xb2\x00\xf4\xa1\xaa\xaa\x70\xf2\xc9\xb3\xc1\x22\x10\x91\ +\xc7\x8f\xe6\x7c\x61\x7e\x9c\x85\x71\xd2\xec\xd9\x40\x45\x20\xc2\ +\x87\x5a\x10\x38\x95\xb4\xba\x4a\x7a\x2d\xc1\x02\x1c\xe5\xf9\x01\ +\x30\x12\x84\x19\x33\x88\xa6\xeb\x3e\x99\xc6\x16\xa0\xa2\xdf\x52\ +\x45\x38\x74\xe8\xcd\x60\x01\x58\x8e\xca\x87\x8b\xc8\xa5\x22\x8c\ +\x23\x47\x8e\x04\x86\xb0\xa2\xdf\xb6\x0a\x30\x95\x1e\x8a\xaa\xe7\ +\x2a\x22\x1c\x38\x78\x00\xcc\x0c\x16\xb9\xe2\xe1\x87\x1f\x9e\xdf\ +\xcf\xb9\x0f\x3d\xf4\xaf\xf3\x45\xe4\x0a\x11\xc6\xc1\x37\x0e\x82\ +\xaa\x0a\x15\xd1\x73\xad\x02\x4c\x29\x0e\x80\x1e\x27\x9a\x81\x83\ +\xfb\x0f\x62\x74\x74\x14\xcc\x0c\x11\x19\xee\x33\x0a\x18\x66\x66\ +\x8c\x8e\x8e\xe2\xd0\xa1\x43\xa0\xaa\x02\x55\xd5\xe3\xd3\x55\x01\ +\xa6\x2d\x13\x78\xf3\x4d\x37\xbf\x00\xc2\xfc\x53\x4e\x39\x05\x67\ +\x9d\x75\x56\xfa\xf1\x33\x00\x86\x96\x2c\x59\xf2\xac\x3f\x7e\xf7\ +\xee\xdd\x17\x20\x24\x8c\x16\x0a\x80\x97\x5f\x7e\x19\x87\x0f\xbf\ +\x09\x02\xfd\x7c\x64\x64\xe4\x6f\x5b\x10\x38\xf5\x70\xc0\x20\x80\ +\x27\xde\x7c\xf3\x30\x5e\x79\xe5\x15\x9c\x71\xfa\x19\x10\x60\x21\ +\x41\x9e\xd9\xbd\x7b\xf7\xd3\x02\x3c\x06\x60\x0f\x09\x16\x08\xe4\ +\x32\x11\xb9\x30\xc0\x46\xe0\xb5\xd7\x5e\xc3\xe8\x91\xc3\xa8\xa8\ +\x02\x80\x41\x4c\x63\x99\xd6\xc9\xa0\x55\x2b\x57\xde\x86\x40\xe5\ +\x62\xd6\xac\x59\x98\x3b\x77\x2e\x66\xcd\x9a\x85\x92\x12\x90\x84\ +\xfa\x20\x20\x8c\x8e\x1e\xc1\xfe\xfd\xfb\xf1\xc7\xb7\xfe\x98\xd2\ +\x44\x83\x1b\x36\x6c\x98\xd6\xc9\xa0\x19\xd3\xf9\xe1\xf6\xec\xd9\ +\xf3\x1f\xe7\x9f\x7f\xfe\x5b\x54\x55\x9f\x1d\x7b\xf7\x1d\x1c\x3a\ +\x74\x28\x60\x82\xb1\x31\x00\x02\xaa\x08\x6f\xbf\xfd\x36\x0e\x1f\ +\x3e\x8c\x7d\xfb\xf6\xe1\xe0\x81\x03\x18\x7b\xf7\x5d\x10\x11\xa8\ +\xa2\x5b\xee\xbe\xfb\xee\xbb\x31\xcd\xe5\xb8\x59\x80\x25\x4b\x96\ +\xc8\xe4\x3c\x20\x21\xec\xef\xf8\xb4\xb1\xf0\x83\x84\xf2\xd3\xe7\ +\x63\x08\x10\x90\x41\xc6\xa2\x0b\x47\xf2\x29\xf1\x7f\x84\x40\x24\ +\xe5\x6b\x4c\xc7\x8a\x94\xeb\x14\x64\x9a\x00\x6a\xb1\x3e\xf9\x18\ +\xc2\xfd\x3b\xef\xa7\x3f\x09\x05\x98\xc8\x85\xa7\xb8\x28\xb1\xe0\ +\x27\x3f\x9c\xa8\x85\x23\xf3\xe4\x65\x91\x04\x84\x5c\x14\x94\x17\ +\x5d\xcc\x31\xf6\x64\xd2\xeb\x8a\x54\x5d\x50\x2a\x8b\xe2\x2f\x05\ +\x46\x49\x28\x1d\x49\xe5\x7c\x91\x72\xed\x1d\x3b\x76\xd0\xb4\x55\ +\x00\xbf\xf8\x8b\x17\x2f\x9e\xbc\x8b\x8b\x38\x46\x50\xd2\x7f\x71\ +\x43\xd6\xf5\x52\xd2\x01\xee\x18\x7b\x3c\xc5\x23\xe3\x22\xab\xcf\ +\x11\x91\x8e\x9f\x57\x0e\x17\xfc\xe4\x27\xcf\x46\xab\x42\x20\x01\ +\xb6\x6d\xdf\x46\xd3\x4e\x01\xf4\xe2\x4f\xe4\xc2\x8b\x5a\x5c\x08\ +\x20\x24\x20\x41\x74\x02\x52\xcc\x73\x52\x08\x89\x0b\xe3\x94\x05\ +\xd1\x2d\x14\x05\xb0\x80\x11\xea\x1c\x01\x40\x22\x65\xfd\xb3\xb2\ +\x11\x44\x04\xb9\x0e\x11\xcd\xca\x11\xce\x07\x7e\xfa\xd3\xff\xcc\ +\x2e\x67\xeb\xd6\xad\x93\xb2\x36\x93\x4e\x04\x8d\xdb\xe2\x4b\x29\ +\xe7\xf2\x7f\xc0\x02\x11\x8e\x7f\x04\x2c\x02\x4e\xff\x0f\x24\x76\ +\x30\xfc\x0c\x1c\xf6\x2f\xc7\xf3\xe3\xdf\x9c\xce\x47\xf9\x1c\x61\ +\x01\x0b\xca\xbf\x25\xe6\x1a\xd2\xe7\x71\x3c\x26\xdf\x17\x07\xd5\ +\xc9\xf7\x13\x3f\x9b\x39\x28\x49\xfe\x13\xee\xe1\xbc\x05\x0b\x50\ +\x91\x73\x23\xd3\x41\x01\xc6\xc5\xef\x4b\x30\xb3\xf9\x4b\x14\x94\ +\x45\x4b\x0b\x17\x17\x63\x4c\x04\x51\x0f\xf2\x31\x50\x8b\xa5\xcf\ +\x61\xff\x37\x92\x72\x84\x6b\x30\x23\x2b\x0b\x8b\x00\x7a\xf1\x45\ +\x2f\xb6\xa4\xd4\x73\xbe\x46\x3a\xc7\x28\x10\x2b\xa5\x8c\x8a\x81\ +\xf8\x73\x66\x06\x51\x05\xa2\x0a\xcb\x6f\xbc\x71\x52\x40\xf2\xcc\ +\xc9\x72\x34\x04\x60\xd1\xa2\xc5\x7d\x99\x70\x8a\xa6\xbb\x58\x4c\ +\x89\xa6\x55\x19\xe3\xba\x3b\xcd\x66\x56\xd2\xf1\xc6\xdd\x17\xc3\ +\x9d\xcc\x2f\x45\x13\x1d\x7d\x05\xb8\x83\xcf\x2f\xc6\x9b\xf3\x8f\ +\x6a\x26\xdd\x59\xa6\x62\xe6\xc5\x52\x0e\xfa\x79\x28\x28\xa8\x76\ +\x23\x9f\xfe\xf4\xb9\x78\xfe\xbf\x7f\x06\x99\x24\xe3\x3c\x29\x0a\ +\x10\x18\x35\xe9\x0b\xa0\xa5\xff\x13\x6e\x02\x4e\xda\x5b\x93\xfe\ +\x3a\x6d\x95\xaf\x3f\x56\x83\x37\xc5\x01\x05\xf3\x9f\x7e\xc8\x76\ +\x31\xa5\xac\x58\x50\x46\x32\x5a\x67\x7e\xd6\xa0\x38\x92\xe3\x08\ +\xc9\xa1\xa1\x51\x04\x12\x80\x8b\xfa\x4a\xbe\x5f\x89\x56\x60\x9a\ +\xb8\x80\xa5\x4b\x97\x0a\x11\x81\xa8\x42\xb0\xc4\xc1\xec\x25\x13\ +\x98\xfc\xb1\x36\xcd\xcc\xc5\xa4\x82\x95\x89\x35\x3e\x9f\xf3\xf9\ +\xc9\xfc\x87\x7f\x17\x93\x0b\xe5\xd3\xd3\xe7\x71\x32\xd3\x32\x66\ +\xcc\x75\xfe\xbd\xb0\xc2\x01\xc5\x35\x48\xfc\xb9\xfe\x59\x32\xf1\ +\x2c\x41\x95\x38\xbb\x05\xc9\xd7\x80\xfa\xac\xf0\x0c\xe9\x79\x91\ +\x5d\x19\x1b\xb7\xc2\x81\x88\x22\xc2\xca\x15\x2b\x65\xca\x5b\x80\ +\xaa\xaa\x00\x01\x2e\xbe\xf4\xe2\x62\x6e\x11\x80\x14\xd4\x06\x0a\ +\xba\xcf\xce\xec\x53\x30\xbb\xc9\x7c\x8b\x07\xea\x16\x99\x93\xdb\ +\x65\xd6\x0a\x84\xe3\x05\x14\xc0\x41\xda\x9d\x49\x29\xa1\xef\x85\ +\xb3\x49\xd6\x46\x3e\x02\x7d\x6b\xcb\x1a\xae\x91\x83\x10\x01\x40\ +\x51\x89\xb3\x6b\x2b\xd6\x26\x85\x8e\xd9\xdb\xc5\x9f\xcf\x9f\x3f\ +\x1f\x2f\xfe\xcf\x8b\x93\x02\x06\x27\xd4\x02\x5c\x75\xd5\xd7\x24\ +\xd2\xaa\x51\xbb\xc7\xf2\x2e\xca\xbb\x33\xed\x24\xb0\xda\x69\x6c\ +\xd1\x36\x07\x30\x56\xac\x07\xe7\x1d\x99\x41\x1e\xdb\xdd\x9a\x2d\ +\x8b\x46\xda\x6c\x51\xbb\x28\x80\x87\x1c\x35\xb0\xfd\x3c\x28\x90\ +\x28\x3a\x0a\xd0\xd7\x50\xd6\x2b\x47\x03\x6c\x2c\x50\xfe\x3c\x75\ +\x0d\x6d\x75\x42\x44\x82\x68\x49\x38\xa4\xa1\x89\xb0\x7a\xf5\x6a\ +\x99\xb2\x16\x80\x42\x36\x0d\x9f\xbf\xe8\x22\x05\x76\x38\x6d\x0a\ +\x07\x98\x5c\x7c\x2c\xcd\x71\xb7\xe8\x9d\xc6\x3a\xce\x57\x5b\x9f\ +\xa5\x06\xcc\xc4\xfb\x77\x87\x12\x45\xec\x67\x67\x9c\x20\x81\x11\ +\x00\x13\x84\xc2\xa2\x51\xba\x4f\x1d\xdf\xa7\xbf\x59\xf3\x0a\xe2\ +\x70\xa1\xb2\x22\xc2\x0a\x94\x86\x6b\xb0\x3a\xeb\xaf\xcf\x9e\x87\ +\x5f\xfe\x72\xef\x84\x33\x35\x13\xac\x00\x14\xd7\x23\x7e\x71\x91\ +\x11\x61\x0d\x8f\x44\x9c\x39\x94\x82\xb7\x32\xbc\x67\x83\x94\x0d\ +\x98\xe2\x74\x7c\x41\xf3\x92\x6d\x39\xd5\x18\x3c\xd2\x0a\xa5\xd8\ +\x38\xad\x28\x64\xc8\x1f\x0a\x16\x2b\x86\xa0\x99\xf9\x13\x45\x22\ +\x45\x57\xa5\x63\x0d\x52\xf7\x6f\x49\x9f\x02\x58\x35\xf0\xf5\x91\ +\x82\xc4\x0d\x44\x53\xd5\x05\x5c\x73\xcd\x35\x52\x19\xf3\x8f\x54\ +\x9f\x1f\xe3\x61\x18\x00\x16\xec\x9f\x8b\x97\xc1\xf9\x67\x1c\x82\ +\xfa\x62\xd6\x99\x6b\xe4\x8d\x70\x0a\x01\xad\x3b\x29\x04\x51\x71\ +\x2d\xd9\xbc\x67\x73\xcc\x06\xc4\x65\x70\x67\xee\x31\xdd\x5b\x31\ +\xf7\x61\xb5\x38\x3f\xa3\x26\x9f\x02\xe0\x63\xe7\x86\x60\xaf\xc9\ +\xd6\x95\x15\xb7\xc7\xa0\x0a\x40\x45\x18\xb8\x75\x40\xa6\x9c\x05\ +\x20\x0a\xdc\xf6\x67\xff\xf1\xc2\xd4\x96\x65\xe2\xe3\x44\x8f\x26\ +\x20\x96\xa9\x57\x4d\xc5\x8a\xda\xcb\x8a\xdc\x21\x2a\xc4\x90\x01\ +\x84\xe2\xc2\x37\x1f\x42\x92\x05\x76\xdc\x89\xb7\xcf\x8c\xb1\x34\ +\xc4\xfd\xd6\x9a\x70\x27\x1e\xc0\xb9\xa5\x4c\x2e\x77\xc8\x0f\x98\ +\xd0\x33\x3e\xcb\x47\xfe\xe2\x23\xf8\xcd\xff\xbe\x3c\xa1\x21\xe1\ +\x84\x58\x80\x6f\x7c\xe3\x5a\x21\x0a\x69\x55\x61\x18\x06\x2f\xec\ +\x48\x14\x16\x2c\x2e\x2a\x6b\xb6\x0c\xe5\xdf\x9c\x81\x92\x14\x53\ +\xcc\xd6\x12\x00\x6c\x28\xdc\x0c\xaa\x58\x4c\xe8\x66\x80\x98\x0b\ +\xff\x72\x88\xa9\xc2\xc8\x0c\x3c\xd9\x52\xcd\xec\x2c\x46\xb2\x2e\ +\xa2\x2c\x58\x23\xd8\x63\x07\x48\x55\xc8\x09\x2e\x4c\x67\x02\x91\ +\x2c\x8c\x2a\x86\x84\x83\x83\x6b\x64\xca\x58\x80\x8a\x82\x6e\x5d\ +\x70\xc1\x3f\x64\xc4\x0f\x43\xd6\xb8\x30\x4c\x79\xc3\x2f\x7f\xf9\ +\x9f\x1a\x3f\xf3\xe1\x47\x1e\x89\x84\x8a\x4d\xde\x88\x08\x48\xc8\ +\x7a\x54\xf1\xf9\x82\xe2\x73\x8b\xb1\x28\x67\x50\x34\xdd\x96\x75\ +\xd4\xd6\xc5\xb0\x47\x8a\xff\x91\x9c\xda\x15\xb1\xad\xe6\xd4\x01\ +\x84\x96\xdb\x62\x13\x4f\x86\xe7\x08\x51\x00\x65\xdc\x01\x9c\x79\ +\xe6\x99\x78\xe5\xf7\xaf\x80\x26\x08\x0d\x4c\x88\x02\x50\x55\xe5\ +\x90\x46\xc3\x6b\x4d\xef\xa6\xa4\x1c\x67\xca\x4f\xfa\x4a\xe7\x8a\ +\x32\xb1\x09\x60\x71\x66\xdb\xd0\xb8\xd0\x7a\x0e\x00\x15\x1a\xa0\ +\x7c\x26\x59\xf6\x2e\xa3\x75\x71\x0a\x95\x14\x40\xa1\xd4\x0c\x40\ +\x45\xdd\x93\x3a\xa7\x28\x79\x83\x02\xe5\xe7\xa1\x0c\x32\xc3\x3d\ +\xb0\x3a\x9e\x50\x51\x05\x99\x2a\x2e\xe0\x86\x1b\x6e\x88\xcc\x9f\ +\x4a\xd6\x40\xc5\xd3\xc6\xc4\xea\xc4\x8b\x18\x9f\xec\x85\x33\x8b\ +\xa7\xd8\x36\x56\x8c\x9f\x66\xee\x32\x97\x60\xc1\x16\x0c\xcb\x98\ +\x62\x7a\x0b\x4a\xa1\xc1\xa5\x33\xf3\x52\x8b\xe5\xe3\xf9\x63\x3a\ +\x91\xa4\xdc\x11\x7b\xf7\x01\xc5\x55\x48\x0c\x8d\x35\x10\x45\x66\ +\x0a\x0b\x20\x0d\xcc\x60\x05\xc2\xd0\xd0\x90\x9c\xf0\x16\x80\x62\ +\xe9\xcc\x79\x7f\x77\x5e\x5e\x7c\xaf\xbe\x01\x13\xb2\x0e\xd4\xfa\ +\x30\x00\xe2\xb3\x3e\xe0\x9a\x59\x15\x05\xb6\x2c\x39\x07\x15\x67\ +\x67\x37\x42\xcd\x49\x1a\xf1\xc0\xd0\x85\x73\xa5\xa4\x80\xeb\x00\ +\xce\xe2\xd8\x92\xc5\xcc\x8c\x9f\x35\x81\xc2\x1e\x7c\x96\xcf\xe1\ +\xc8\x71\x9c\x7a\xea\xa9\x38\x70\xe0\x00\x26\x02\x0d\xce\x9c\x00\ +\xfb\x1f\xc1\x9f\x38\x92\xc6\x66\xd0\x32\x97\xa3\x90\xb9\x74\x31\ +\x74\x39\xb3\x26\x96\x8b\x6d\xca\xc2\x15\x4b\x52\x0a\x3b\xa4\xe6\ +\xc3\xa9\x60\x93\x5a\xb6\xce\xfa\x6d\xcd\x3d\x34\x65\x03\x0b\x39\ +\xa4\x5d\x06\xb9\x84\x12\xa7\x88\x31\x2a\x8f\x18\x02\xc9\x73\x22\ +\x04\x8a\x61\x6d\x49\x10\x65\x82\xe2\x44\x75\x01\xcb\x97\x2f\x97\ +\x2a\x86\x7f\x81\xda\x85\x4b\xf4\x14\xb3\x59\xa8\xdb\x62\x66\xbb\ +\x39\xba\x9c\xe8\xe1\x3a\xe5\x2a\x2a\x96\x66\x6f\x72\x53\x92\x48\ +\xf4\xfd\xa0\x44\x02\xac\xeb\x01\xea\xf5\x02\x16\xd9\xa7\xfb\xb4\ +\x45\x22\xc9\xb4\x27\xf3\x0e\xf1\xc9\xa3\x42\x43\x43\x94\x6b\x32\ +\x91\x43\xf9\x8e\x02\xfd\xc1\xc6\x3d\x55\x04\x10\x2a\x0c\x0f\x0f\ +\xcb\x09\x6b\x01\x12\xf3\xf7\xc9\x4f\x7e\x2a\x82\x5c\xce\xe6\xb1\ +\x30\x70\x63\x51\xf1\x49\x47\xfe\x2a\x4a\xe8\x64\x02\xb8\xec\xc2\ +\x54\x94\xdb\x58\xa3\x57\x4f\xe9\x26\x3b\x50\x2c\x03\xd7\x5c\x8e\ +\x28\x7a\x17\x63\x92\x4d\x3e\x29\x57\x23\x1e\x64\x9a\x88\x23\x7e\ +\x06\x19\x4e\x19\xc2\x8a\xc8\xf6\x2c\xa6\x66\x0c\x15\xe8\x53\xce\ +\x2a\xdf\xd3\xac\x93\x4e\xc2\x5b\xa3\xa3\xe3\xee\x06\xc6\x5f\x01\ +\xa2\x6f\x34\xa6\x59\x91\x3e\x52\x5b\x50\x81\x10\x59\xfb\xda\x64\ +\x01\xdc\x37\xcd\xca\x67\x06\x8b\x1e\xeb\xfc\x52\x15\xae\x06\xe6\ +\xca\x9f\x8a\xcb\x29\xe4\x7a\x3e\x45\x1b\x17\xe4\x4e\xd9\x32\x09\ +\x54\x3c\x18\xef\x59\x94\x5f\x90\xc2\x6c\x29\x93\xce\xb6\x0e\x41\ +\xbc\xef\x2a\xb4\x78\x58\x7b\x02\x29\x45\x0f\x91\x53\xd8\x33\xa0\ +\x10\x5d\x9d\xb0\x18\x60\xc5\x8a\x15\x92\x40\xa0\x78\x86\x2d\x73\ +\xe5\x54\x16\x4c\xb1\x73\x69\x35\xa5\x17\x08\x84\xe6\xde\xcb\x42\ +\x5e\x7d\xf5\xd5\x8d\xe7\xec\xdc\xb9\xb3\x00\xbb\xac\x10\xa2\x2a\ +\x81\x80\x6b\xaf\xbd\xb6\xf1\xdc\x6d\xdb\xb6\xe5\x6b\x5c\x7f\xfd\ +\xf5\x8d\xc7\x6c\xd9\xb2\x25\x2a\x0b\xb9\x54\x36\x5c\xea\x1b\x3e\ +\x89\x6c\x43\x52\x29\x9b\x82\x4d\xda\x58\x4c\xb8\x98\x36\xd8\xfa\ +\xf5\xeb\xe5\xd6\x5b\x6f\xa5\x13\x4a\x01\x02\x48\x01\xfe\xe6\x9c\ +\x73\xc0\xec\xf3\x77\x8c\x9c\xef\x92\x3a\xd0\x0a\x24\x4c\xf7\xe7\ +\x11\xd6\x49\xa3\xa2\x2c\x5f\xbf\xe6\x9a\xc6\xe3\xef\xbf\x7f\x47\ +\xf4\xd3\x9a\x7c\xa2\x7c\xbd\xeb\xae\xbb\xae\xeb\xf5\xae\xbf\xfe\ +\x7a\x6c\xdd\xb2\x05\x5d\xbd\x52\x0a\x41\xe1\x29\x63\x74\x59\x7c\ +\x45\x73\xab\x84\x12\x29\xcc\x98\x33\xa5\xea\xbb\x22\x11\xcc\x98\ +\x31\x23\xa4\x8a\xc7\xd1\x0d\x8c\x8b\x4d\x59\xb5\x7a\xb5\x50\xac\ +\x66\x4d\x9a\xcf\x0e\x08\xa5\xe2\x47\x0d\xe0\x38\xc6\xd0\x50\x54\ +\x6a\xc7\x2f\xdb\x25\x6e\x10\x2b\x7b\x9a\x64\xc7\x8e\x1d\xaa\x86\ +\xc0\x27\x63\x7a\x2f\x7e\xe6\x34\x96\x2d\xab\x71\xf7\xde\x2d\x09\ +\x2c\xff\x50\x03\x88\xb0\xb5\x02\xba\x30\x34\xd5\x42\x88\x2a\x10\ +\x65\x0d\x6a\x55\x31\x6b\x02\xca\x15\x85\x3a\x81\x91\x8d\x1b\xe5\ +\x84\xb1\x00\xa9\x84\x69\xde\xbc\x8f\x65\xa4\xaf\xc2\x67\xe5\x47\ +\xeb\x09\x90\x92\x6b\xef\x4e\x06\x98\x84\x52\xac\xd3\xbb\xf6\xeb\ +\x75\xf3\xbd\x7d\xfb\x76\x15\x51\x88\x4d\xdf\xbc\x87\xaf\xec\xc6\ +\x65\x37\x76\x0b\x4d\x14\x40\xf4\x69\x66\x1f\xb2\xea\xd4\x32\x6c\ +\x6d\x43\x2e\x12\x75\x61\xb3\xeb\x4b\x20\x21\x30\x31\x66\xce\x9c\ +\x39\x6e\x11\xe1\xf8\x28\x40\x2c\xfb\x65\x31\x4f\x85\xe4\xfe\x49\ +\x24\xd3\x3e\x30\x40\x4c\x54\x81\x46\x1f\x44\x90\xfa\xfb\xba\x6b\ +\xaf\xeb\xae\x28\x04\xd7\x01\x1c\x62\x8e\x65\xcb\x96\x75\xbc\xc6\ +\xb7\xbf\xfd\x6d\x73\x1f\xcb\x6f\x5a\xde\xf5\x9e\x58\x34\x0f\x40\ +\x30\x95\x0e\xb6\xba\x2d\x12\x4f\x16\x99\xd6\x80\xa8\xae\x13\x85\ +\x52\x22\x94\x84\x5a\xe0\xaf\x68\xdc\x0a\x45\x8e\xd9\x05\xdc\x7a\ +\xeb\x37\xa5\x22\x42\x45\x94\xcd\xb2\x31\xb9\x99\x4e\x45\xa6\x4b\ +\x0d\xf5\xc9\x36\xcb\xd6\x59\x01\xb8\x2c\x7e\x07\x13\xbe\x75\xeb\ +\x96\x02\xfa\x52\xa9\x19\x4b\xe1\x01\xba\x7c\xfe\xe6\xcd\x9b\xe3\ +\xfd\x15\x4a\xf7\xde\x7b\xee\xed\xa1\x94\x9c\x15\x4e\xd3\xce\x22\ +\xd6\x05\xa6\xc6\x8f\x6c\xf2\xe1\x68\x62\x2e\xae\xc4\x64\x35\x59\ +\x1a\x6b\x1e\xa8\xaa\x50\x55\x15\xee\xdd\x7c\xaf\x1c\x77\x0b\x40\ +\xa8\x80\x0a\xf8\xc8\x87\x3f\x5c\xcf\xdf\x67\xd4\x1f\x63\xfc\x54\ +\xc6\x95\xeb\x01\xc4\x24\x6d\xba\x65\xbc\x12\x81\x74\xc3\x0d\x9d\ +\x11\x39\x9b\xba\x2e\x57\xac\x09\xc1\xf2\xe5\x37\xf5\xdc\xcd\xa4\ +\xc0\x59\xaf\x5d\x96\x2c\x5e\x2d\x93\x98\xe0\xbd\x67\xfc\xa4\x64\ +\x0e\x33\x98\x75\x49\xa1\xa6\xfe\x41\xb0\x8d\x90\x46\x47\x8f\x60\ +\xf6\x49\xb3\xc7\xc5\x0a\x1c\xb3\x05\xa0\x8a\x40\x55\x95\xab\x67\ +\x52\x85\x8b\x01\x81\x99\x79\x93\x4c\x6f\xea\xc4\x4e\xda\x21\x2c\ +\xdc\xe5\xcb\xe6\x8e\x8b\x7f\xdf\x7d\xf7\xd5\x76\x4b\xfe\x37\xf7\ +\x4e\x34\xdd\xb3\x69\x53\xad\xda\x27\x01\xc6\x91\x4d\x23\x3d\xac\ +\x12\xab\x32\xf7\x68\xaa\xb9\x3c\x8f\xae\xf0\xc9\xcc\x64\x4a\x56\ +\xb1\x06\xcc\xb6\x3e\x40\x54\x45\x12\xab\x96\x32\x0e\xc5\x13\xa0\ +\x8a\xd2\x04\x93\xe3\xa7\x00\x83\x83\x83\xa5\xf0\x43\xdc\x83\xf8\ +\x12\x2d\x51\x99\x41\x9d\x0d\xcb\x15\xba\xd2\x35\x0a\x58\x76\xc3\ +\xb2\x8e\x7e\xdb\x7f\x69\xd9\xe4\xea\x7b\xe2\xee\x79\x06\x93\xfd\ +\x53\x59\x4a\x19\xe3\xae\xa1\x29\x67\x8b\xc1\xb9\x57\xc1\x57\x2c\ +\x73\x72\x2d\x4a\x19\x58\xf5\x40\xa0\xa1\xd5\x2d\x28\x07\x9b\x22\ +\x91\x44\x31\x8f\x09\xe7\x68\xe0\xbe\xfb\xb6\xc8\x71\x53\x80\xa0\ +\x85\x84\x33\xce\x3c\x53\x71\xe0\x62\x43\x9c\x46\x6e\x5d\xf5\xc7\ +\xc1\x35\x76\x1e\x7d\xfe\x41\x5d\x47\xed\xa0\x31\xd7\xd4\xd1\x2d\ +\xc2\x00\x54\x83\x8a\x6f\x36\xed\xcd\x03\xe8\x86\x14\xe4\x9c\x83\ +\x0a\x59\xc5\xe5\x30\x04\x0d\xfd\x89\x6c\x2a\x8d\xa0\x1b\x5f\x0c\ +\x96\x0a\xe7\xec\xdb\xbf\x0f\x44\x84\x19\x15\x1d\x1f\x0b\xb0\x76\ +\xed\xed\xb9\xe3\x07\xb9\x0c\x4b\xe5\xe2\xe1\x9a\x28\xe3\xcf\x4a\ +\x7d\xbd\x5d\xb0\xc4\x0b\xbc\x17\x29\xbb\xa9\x14\x7c\x32\x24\x11\ +\x01\xa5\x17\xa1\xe3\x4e\xd6\x8d\x9f\xec\x2c\x19\x77\x07\x81\x62\ +\xf3\xf9\x2c\x70\xa5\x5d\x50\x4a\x9e\x3e\xcf\x73\x03\xba\xfc\x0d\ +\x99\x2f\x31\x1b\x47\x5f\x27\x6a\x6d\xaa\xbb\xdc\xbe\x7d\xbb\x4c\ +\xba\x02\xa4\xd8\x7f\xee\xdc\xd3\x9c\x46\xc3\xd5\xdf\xa5\x0a\x59\ +\xe4\x5d\x59\xdf\x69\x9c\x09\x93\xf7\x22\x2b\x57\xac\x30\xbb\xc6\ +\xb4\x6c\x2b\xb3\xdb\xcd\x94\x27\x1f\x5d\x23\x6d\x7a\x11\x41\xda\ +\xa2\xa5\xeb\x72\x71\x05\x6c\xba\x85\xeb\x38\x43\x2b\x03\xa4\x44\ +\x20\x63\x62\x31\x8c\xb7\xa2\xcc\x63\x78\xf5\xd5\x57\x91\x8a\x6f\ +\x26\x5d\x01\xaa\xca\xf7\xfb\xe9\x9e\x7a\xd5\xfd\xa3\xd3\x9e\x70\ +\xa9\x54\x6d\x3e\x93\x09\xed\x21\x23\x23\x9b\x3a\x66\x0b\xc3\x62\ +\xb1\xdb\x3d\xa5\x6a\xa8\xdb\x4e\x86\x2a\x01\x67\x97\x22\xee\xaa\ +\x38\xba\x5b\x48\x57\x3d\xc1\xb6\xb3\x1b\x6b\x97\x19\x52\x58\xb0\ +\x6a\x80\xac\x9f\x4b\xa0\xe7\x1c\x70\x2e\x9c\xad\xaa\x2a\x37\xe0\ +\x4c\x9a\x02\xdc\xb1\xee\x0e\x01\x08\x15\xd9\xbc\x7a\xaa\x6c\x35\ +\xbb\x90\xad\xa9\x0b\x29\x71\xb1\x80\x09\xbd\xfd\xf4\xc8\xc8\x08\ +\x46\x46\x36\x76\x3c\x66\xd5\xea\xd5\xe5\x4b\x75\xfd\xfb\xc9\xbf\ +\x77\xc5\x00\x9a\xce\x05\x2b\x1a\xbb\x37\x0f\x20\x3a\x66\xcf\x03\ +\x27\x34\xa5\xcb\xb6\x4e\x81\x11\xeb\x25\x58\xd1\xc9\xec\xf8\x10\ +\x8f\x15\xd8\x0d\x9a\xe0\x9c\x20\x22\x22\xec\xfc\xce\x4e\x99\x34\ +\x05\x20\x0a\x16\xe0\x94\xf7\xbf\xdf\x68\xa5\x6e\xe0\x10\x95\x0f\ +\x30\x3b\xca\x34\x51\x48\x0d\x20\x75\x0d\xb9\xe2\x17\xb0\x61\xc3\ +\x86\xc6\x63\x6e\xf9\xe6\x2d\xe6\x3a\x1e\x84\x76\xc3\x00\x09\xc0\ +\xb1\x0f\x05\xc1\x5d\xb9\x09\xc0\xee\xda\xf0\xf8\x6a\xf7\x1a\xdc\ +\xa3\xfa\x10\x1d\xe2\xd7\xdd\xcb\x50\x9b\x43\x93\x58\xb5\x5a\x43\ +\x16\xbc\xf4\x9b\xdf\xc4\xd2\xf1\x6a\x72\x2c\xc0\xf0\xf0\x9d\x82\ +\xd8\xb8\x68\xe2\x6e\x68\x34\x0b\x83\x58\x6d\x7d\xbc\xee\xb8\xb1\ +\xc8\xb7\xbf\x50\xad\xd7\x71\xd1\x9c\xfb\x88\xa4\xcb\x39\x83\x83\ +\x83\x2e\x8c\x4d\x9d\x49\x82\xb5\x6b\xd6\x76\xcd\x4f\x64\x0b\x57\ +\xab\xec\x89\xd3\x45\xb8\xb0\x92\xe1\x87\x30\x1c\x89\x61\x4f\x21\ +\xaa\x67\x42\x81\x46\x37\xc5\x44\x5b\x54\x08\x07\x2e\x86\x80\x5d\ +\xbb\x1e\x38\x6a\x2b\x30\xf3\xe8\x77\x7f\xe8\x57\x7b\xdf\xfb\xde\ +\x17\x47\x9a\xf8\x5a\x0e\x5b\xde\x55\x2a\x73\x54\x7d\x9c\x61\xeb\ +\xc8\x72\xf6\x1d\xbf\x6c\x9d\x0e\x06\xee\xba\xeb\x2e\x0c\x0c\x0c\ +\xd4\x8e\x1b\x18\x18\xc0\xf0\xb7\x86\x6b\xc5\x9e\x10\xe0\xce\x3b\ +\xef\xc4\x9a\x35\x6b\x3a\x41\x88\x92\x3c\x8a\xa6\x95\x7b\x41\x12\ +\x35\xd4\x21\xf3\xf8\x68\xa8\x16\x02\x30\x3c\xdc\x3c\xab\x3a\x3f\ +\x83\x61\x02\x53\x17\x13\xa9\x22\x9a\xc0\xa6\x0a\x6c\xd1\x28\x18\ +\xd8\xbb\xf7\x57\x98\x37\x6f\xde\xe4\x58\x80\xe4\x73\x58\x01\x20\ +\x56\xa5\xd7\xbe\x14\x1a\xba\x1e\x90\x1d\x3b\xa6\x06\x46\x14\x54\ +\xdc\x19\x71\x73\x4a\x29\x73\x2f\x93\xae\x07\x4c\x70\x5f\x2e\x66\ +\xed\xed\x6b\xd5\x0e\x0b\xbb\x7b\x68\xe8\xf6\xbe\xc3\xcf\xe4\xaf\ +\x93\x09\xb7\xe6\xba\x37\x90\x14\x6d\x35\x81\x9a\xbf\xd7\x6c\x6a\ +\xa9\x33\x2c\x04\x5c\x6a\xc3\x9f\x50\x05\x58\xbf\x7e\x7d\x60\xfe\ +\x72\xf9\x95\x22\x30\x6a\xed\x53\x9c\x63\x7b\x33\x88\xc9\xa0\x7f\ +\x36\xc5\x90\xdd\x76\x5c\x4a\x33\x6b\xe2\xe8\xce\x0e\xbb\x6a\xcd\ +\x9a\x35\x39\xf4\xb4\xbc\x83\x60\xdd\xd0\x50\xc7\x6b\x0c\x0d\x0d\ +\x61\x68\xdd\x10\xd6\xad\x1b\xc2\xba\x75\xeb\x7a\xf3\x0f\x86\xa8\ +\x19\x2b\xd9\x41\x76\x80\xb2\x87\x12\x71\x4e\x5c\xa9\x69\x63\x22\ +\x18\x33\xc4\x11\xe7\xe8\x02\xaa\xb1\x35\x85\xbf\x81\x91\xad\xf0\ +\xe0\xee\xdd\x32\x61\x0a\x90\x76\xff\x8c\x19\x33\x8d\x5f\x87\x62\ +\xf4\x58\x21\x5d\x4f\x01\x43\xb8\x16\x3b\xeb\xc5\xe9\x1a\x06\xd6\ +\x3a\x82\x83\xf2\xdc\x71\xc7\x1d\x8d\x87\xdf\xbe\x76\xad\xcb\x37\ +\x14\x65\x3d\x4a\xba\xbb\xdb\xf2\x19\x64\x0f\x37\x34\x42\x8f\xc1\ +\xe9\xa7\xd0\x45\xf7\x38\x96\x71\x77\x3a\x94\x65\x95\x73\x11\x13\ +\x81\xbd\xf8\xe2\x8b\x11\x0b\x10\x26\x50\x01\xaa\x92\xf8\xc9\x89\ +\x1e\x31\xdd\x30\xbe\xe2\x25\x55\xef\xe8\x78\x9f\xa5\x81\xe9\xea\ +\x61\xd6\x99\x2d\xdf\xd0\x2f\xc7\x6f\xc8\xa0\xf8\x67\xed\xda\x35\ +\x7d\x3d\xef\x6d\xb7\xdd\xd6\xfd\xf3\xd9\x35\x8b\xba\xb1\x75\x9a\ +\xd1\xeb\x15\xdd\xb0\x29\x9d\xe7\x3a\x78\xce\x0d\xae\x9a\x43\x81\ +\xe9\x88\x22\x44\xeb\x3c\x11\x0a\x30\xb2\x71\x63\xcc\xfb\x17\x73\ +\x9c\x89\x1d\xd3\x0d\xcb\x96\xdd\xf3\x0b\x0e\x76\x83\x9e\x58\xf9\ +\xbf\xde\xb4\x2b\xfb\x88\x02\x8c\xdb\x6f\x6f\x36\xeb\xeb\xd6\xad\ +\x2b\x98\xc1\xc5\xe1\x83\x83\x83\x1d\x77\xf7\xc0\x6d\x03\x18\x18\ +\x18\xc8\xf7\xdb\x0f\x2e\xd1\x74\xaf\x61\x40\x7b\x29\xc0\x98\x43\ +\xff\x6c\xe7\x15\x9a\x5c\x0a\x90\x19\x42\xb8\xa4\x5b\x8a\x06\xaa\ +\x8a\xf0\xd0\xf7\x1f\xea\xdb\xcc\xf5\xad\x2e\x9b\x46\x36\x09\x08\ +\x78\xe7\x9d\x77\x6c\xa9\x57\x02\xc1\xae\xa4\x4b\x61\xda\xc6\xaa\ +\x5f\xdb\xbc\x09\x1b\x25\xa0\x53\x19\x97\xea\xf0\x51\xe5\x57\x76\ +\xfe\x06\x6a\x65\x58\x76\x5e\x5f\x7d\x9c\x1c\x52\x43\xa6\xd4\x47\ +\xc0\x02\xc0\xdd\xeb\xd7\x37\xf3\x0e\xb7\xac\xd6\xe5\x06\xf5\xea\ +\xa5\x54\x5f\x40\xca\x8d\x99\x6e\x63\xb8\x6e\xe7\x52\x1e\x6e\x5b\ +\xcd\x7c\x6d\x03\x4c\x34\xa0\xff\x7d\xee\x67\x3e\x03\x12\xe0\x2b\ +\xff\xfc\x15\x1a\x37\x0b\xb0\xe9\x9e\x7b\x24\xf9\xff\xec\x8b\xb8\ +\xbe\xd3\xfd\x84\x0b\x61\x65\x26\xfd\x8c\x80\x5a\xf5\x10\x5c\x2f\ +\x3f\x1b\xf7\x60\x62\xee\x48\xb6\xb0\xc9\x37\x70\xad\xf1\x32\xf3\ +\x0d\xdc\xcc\x49\x40\x5b\xab\xd4\xc8\xe2\xa6\x78\x76\x73\x01\x99\ +\xd5\x64\x3f\x86\x4e\x72\xde\x3e\xdf\xd3\x98\x94\x44\x91\xce\x0c\ +\xc2\x31\x84\x7e\x52\x4a\x43\x92\xcd\xa7\x95\x75\xf2\xaa\xa2\x90\ +\xa5\x7d\xe4\x91\x47\xfa\xb2\x02\x33\xfb\xd3\x12\x02\x2a\x60\xf4\ +\xad\xb7\xf4\x76\x77\x8d\x9f\x62\x9b\x26\x93\x56\x8a\x6d\xfe\xd4\ +\xe6\x90\x5d\xc5\x8e\xd6\x68\x26\xc9\x0d\x11\xfa\xb3\x52\xf3\x0e\ +\xa3\x69\x97\xab\x6b\xa8\x83\xf4\x94\xd1\xf5\x1d\x77\xf3\x2d\x48\ +\x1d\x2c\x65\x34\x91\x60\xe3\xc6\x66\xd6\x71\xd5\xaa\x95\x86\xbc\ +\x21\xb2\xa3\xe6\x84\x4a\xad\x60\xac\xf6\x87\xe6\x95\xeb\xdd\x4c\ +\xa5\xa7\x30\xe5\x10\x08\x7e\x96\x10\xca\x67\xe4\xa2\x5a\x1b\x65\ +\xec\xd9\xf3\x5f\xf8\xfb\xf3\x17\x8c\x2f\x06\xc8\xbb\x5f\x73\xdb\ +\x91\xd5\x82\x06\x3d\x35\x1f\xcd\x36\xbe\x6d\xa8\x19\xa8\x0d\x52\ +\x56\x20\x88\xc1\xaa\x82\x26\xf1\xf2\x2e\xcb\x68\xc6\xc9\xa9\xfc\ +\xbb\x9f\xdf\x8b\xee\xa9\xdd\x0d\x1b\x36\xa8\x90\x2e\xdc\xc7\xc6\ +\x8d\x1b\x7b\x00\xc0\x82\xde\xd9\xcd\xf9\x81\x4a\xfc\x40\x2c\x20\ +\x6c\x04\x78\xb9\x78\x66\x2c\x9e\x03\x03\x76\x73\x15\x91\x1b\x95\ +\xe7\x93\x44\x61\xfa\x58\xff\xd1\x40\xcf\xa3\x36\x6f\xde\x2c\xa9\ +\x23\xe5\xd0\x1b\x87\xac\xdf\xa2\x66\x7f\x9b\x5f\x88\x01\xdb\x49\ +\xa7\xdb\xba\xa9\xc1\xb7\x85\x0d\x20\x6e\x78\x64\xa1\x0f\xc5\xf7\ +\x73\x53\x53\xcf\x9d\xa4\x32\x3a\x3f\x5c\x2e\x9f\xd3\x29\x97\xd0\ +\xaf\xac\xb8\xf9\xe6\xe6\xfe\x40\xd8\xd2\xf0\xf2\x3d\xb8\x11\xb6\ +\x6a\x5c\x3d\xe9\x12\x72\xf5\x99\x50\xac\x9f\x9f\x75\x64\x3e\xd1\ +\xbf\x07\x41\x04\x0b\x17\x2e\xcc\x6f\x34\xb9\xfc\x8a\xcb\xe9\x98\ +\x2c\x40\x15\x79\xff\x37\x0e\xbe\xd1\x38\x9a\x5d\x1a\x06\x3e\x88\ +\x1f\x88\xc8\x25\x23\x37\x26\xc5\x52\xb0\xcf\xbf\x8b\x1f\xce\xe0\ +\x79\x72\x36\xbf\xd3\xc9\x1e\xa4\xd1\xec\x79\x7a\x57\xc3\x40\x49\ +\x84\x7b\x5c\xb5\x6a\xd5\x31\x29\x80\xe6\x32\x74\x78\xda\x3c\xb5\ +\xcc\x0d\xc1\x80\x64\x76\xb2\x94\x91\x41\xdd\xb7\xad\x62\x66\x57\ +\x10\x52\xe6\x27\x79\x36\xb5\x64\x3f\x7f\xfc\xe3\x1f\xc7\x90\x9d\ +\x8e\x1d\x03\x54\x15\x95\xce\x59\x3f\xc5\x5b\x37\x35\x34\x4c\xe7\ +\x36\x6f\xe3\x50\x73\x75\x04\xa4\xaa\x62\x6d\x5b\x54\xe3\xf0\x64\ +\x6d\x21\xd4\x1c\xc1\x72\xfd\xd8\x69\x9c\xb6\x3e\x4a\xc3\x69\x19\ +\xcc\x88\xd2\xf8\x09\xc2\x8a\x95\x2b\x70\xcf\xa6\x7b\x8e\xae\xfc\ +\xec\xa6\x9b\x72\xa2\x09\x00\x88\xc5\xa0\x71\x51\x3b\x92\xd0\xd0\ +\x18\x62\xb8\x7d\xa8\x81\x10\xc5\x42\xe4\xa6\x19\xd1\x65\xc9\x25\ +\x8a\x21\xd5\xeb\xe8\x7b\x1f\xf2\x80\x19\xa1\xdc\x47\x78\x4c\x2e\ +\x60\xeb\xd6\x6d\xa1\x47\x96\x80\x3f\xfc\xe1\xf5\x86\x11\xea\x02\ +\xef\x09\xa4\x61\xfa\xa7\x09\xf1\xf2\x40\x88\x62\xca\xf2\x80\x88\ +\x3c\x02\x4e\xbd\x84\x45\x1a\x42\x1e\x6a\x32\x89\xe5\x6d\x20\xa6\ +\xa3\x46\xea\x0d\xab\x56\x91\x05\xf7\xde\xbb\xb9\xfb\xc2\xdf\x78\ +\xa3\x0f\x56\x5d\xf9\x39\xb9\x07\xd6\x60\xb5\x74\x1a\xa7\xd6\x11\ +\x6a\x0a\x9b\xbb\xbc\x51\xa4\x69\x88\x05\xb9\x29\xe6\x09\xf8\xa6\ +\xc7\xfa\xdc\xe7\x3e\x97\x5f\x41\xb3\x68\xf1\x22\x7a\x4f\x0a\xb0\ +\x6d\xdb\x36\x21\x02\x5e\x7d\xf5\xb5\xf2\xa5\x99\xd8\xd9\xf7\xc7\ +\x7b\xe5\x20\xf3\xb5\x89\xf8\x78\xbf\x69\x66\x9e\x9b\x24\x66\x22\ +\x0e\x8b\x8b\xa5\x31\x8b\x58\x1f\x0f\xe3\x5b\xc2\xad\x42\x36\xbc\ +\xc7\x07\x62\xa7\x80\x36\x59\x3d\x95\xa1\x6b\x18\x2f\xd2\xf0\x64\ +\xa5\x7d\xbc\x7c\x8f\xba\x1f\x42\x0a\x6e\xf1\xb3\x0e\x0c\x9e\xf2\ +\xcf\x6d\x3b\x9f\xb4\x02\x5d\x74\xd1\xe7\x41\x10\x7c\x71\x51\x67\ +\x05\xe8\xe8\x02\x76\xec\xd8\x9e\xe1\x8b\x30\x07\x93\xca\xe2\x08\ +\x9a\xfa\x62\xea\x07\x12\xd5\x6b\x5f\xe7\x67\xa4\xb6\xb8\x7e\x10\ +\x23\xf4\x94\x31\x2a\x21\x97\x38\x25\xf4\x26\x47\x5b\xa3\x06\xf5\ +\xd0\x33\x5c\xeb\x24\x8e\x27\xad\x84\xeb\x03\x1d\x9c\x5b\x13\x12\ +\xb3\x98\x62\xd2\xdf\xe5\x19\x73\x80\xe9\xe6\x02\x71\xea\x23\x13\ +\xdd\xcb\xa8\x42\x3d\x4a\x1c\x02\xf2\x5b\xc8\xc4\x60\xeb\xe2\x54\ +\xf5\x03\xa5\x69\x2d\x8f\x3d\xf6\x98\x5c\x76\xd9\x65\x74\x54\x0a\ +\x90\x2a\x4c\xfe\xef\x77\xbf\xcb\x55\x2f\xe5\xb9\x75\x67\x4b\x6d\ +\x80\x7a\x68\x61\x56\xcb\xe9\x07\x45\x89\x9a\xb1\x27\xd1\x46\x53\ +\x9e\xda\xe1\xe2\xfa\x34\x60\x82\xdd\x7e\x8a\x3d\xf9\x86\x6d\x73\ +\xa3\xda\xb4\xef\xb7\x65\x07\x6a\x27\xb2\xb5\x1a\xfa\x10\xe3\x3a\ +\xfc\xa0\xa9\xe4\xd3\xf5\xa0\x28\x9d\xa9\x4b\x13\x50\xdc\x8b\x27\ +\x48\xea\x1d\x4b\xe2\x66\x13\x9b\xf9\x44\xb9\x16\xa2\xf0\x2c\xcc\ +\x1e\x43\xd4\x5f\x92\x21\x10\x3c\xf9\xd4\x93\xb8\xe4\x92\x4b\x73\ +\xcc\x70\x74\x0a\x10\x1b\x10\xf3\x14\x4d\xa8\x76\x2f\x88\xdb\x71\ +\xda\xf7\x91\xca\x72\xa1\x80\x33\x29\x2d\x61\x1e\x1f\x14\x34\x9b\ +\x2e\x2e\x76\x60\x12\x53\xed\xad\x5d\x7a\x48\x2b\x6b\x56\x49\xfc\ +\xeb\xe0\x50\x0f\xa5\x14\xa9\xd4\xed\x2d\x60\xdc\x40\xef\x5a\x57\ +\x23\x7a\x9b\x66\x14\x9e\xe8\x1c\x56\x8b\x42\x90\x3c\x35\x15\x1d\ +\x2c\xa2\x1e\x0f\x63\x5a\xc5\x54\x78\xc8\xe6\x2d\x23\x16\x87\x90\ +\xd4\xe6\x94\x47\x3e\x80\x8e\x4e\x01\xbe\xb3\xf3\x3b\x19\xd7\xb0\ +\x9f\xc9\xab\xfc\x63\xe3\x34\x10\xd4\xcd\xb0\x99\xd7\xeb\xc6\xb0\ +\xf9\xaf\xde\xbf\xd0\xc1\x70\xeb\x19\xe8\x48\x9e\x19\xdc\x0d\xdc\ +\x95\x5d\xe8\x27\x70\x35\x31\x93\xf5\x0a\xa5\x3a\xb0\x55\xb8\x84\ +\xc4\x72\xfb\x6c\x01\xa0\x74\xc0\x24\x4d\x2c\x60\xee\x2e\x16\xae\ +\xb9\x91\xe6\xf7\x0d\xd5\x20\xa9\xea\x37\xb4\x96\xac\x8a\xd1\xc0\ +\x53\x4f\x3d\x25\x5f\xf8\xc2\x17\xa8\x2f\x05\x48\xf1\xe3\xaf\x7f\ +\xfd\x6b\x5b\xfa\x14\x4d\x31\x45\x24\x6e\x36\x80\x7f\xef\x8f\x99\ +\xe9\x67\xdb\xc2\x35\x72\x37\xfa\x2d\x66\x2b\xbb\x2f\x2e\x9a\x7d\ +\x15\x1e\x32\xa3\x3e\xc6\xd5\x58\x6c\x56\x53\x40\xd3\x67\xa0\x61\ +\xc0\x33\x2b\x9f\xcb\x86\xa6\x36\xe1\x1c\x95\xb7\x98\xe8\x90\x16\ +\x1d\x22\x9f\xe2\x2e\x2d\xba\xb1\x93\x43\x29\xb3\x9b\xa5\xb4\xac\ +\x03\xa8\x14\x1b\x30\xf6\x23\x8f\xfe\xe8\xd1\xae\xaf\xea\xab\x29\ +\xc0\xae\x5d\xbb\xa4\x96\xd5\xca\xd3\xb3\x0a\xae\x29\xfd\x70\x64\ +\x98\x2c\x83\x0b\xd4\x5b\xbc\xec\x30\xef\x3a\x71\x20\x1d\x07\x27\ +\x24\x8c\x20\x66\x50\x94\xdd\xb8\xe2\xc6\xf2\x29\x9a\x50\xa4\x36\ +\x9f\xd0\x00\x36\xcd\x32\xaa\xe1\x52\x3e\x7a\x10\x17\xf7\x9b\x99\ +\x00\x79\xa0\x13\xd9\x50\xd0\x2b\x3e\x44\x8d\x18\x2e\x63\x61\x1b\ +\xdd\x8c\x7f\x59\xd5\x38\x48\x93\x15\xa8\x3a\xf1\xfe\x7b\xf7\xee\ +\x55\x25\x4f\x50\xac\x16\x37\x4c\xdb\xb6\xdd\x34\x30\x8c\x1d\x4c\ +\xaf\x1c\xc4\x75\xe0\xb8\xd1\xac\xba\x7f\x50\x0f\x60\x60\xd7\xe9\ +\x2b\x2e\xe7\xee\x67\xf8\x9b\x51\xb1\xbe\x59\x04\xaa\x16\x9f\x8b\ +\x2f\xaf\xf7\x05\xd6\xeb\xf5\xf5\x67\x98\xdf\x01\x66\xa6\x60\x1a\ +\x3d\xcb\x4d\xd9\x51\xf7\xaa\x19\xd6\x6c\x27\xc4\x4d\x58\x3d\xf6\ +\xc5\x7f\xf4\xd1\x47\xfb\xb7\x00\x09\x34\x04\x74\xeb\x18\x3b\xe4\ +\xf7\x23\xe4\xa9\x95\x22\xde\xf7\x39\x7e\x80\x44\x31\x70\xe2\x80\ +\x0b\x0c\x3b\x96\x5e\xa5\x62\xc1\x9e\xd4\x92\x30\xbe\xea\xc7\x7b\ +\x3e\x16\xcf\x48\x9a\xe9\xcc\x86\x43\xca\x38\xc2\x58\x3b\xb2\xef\ +\x1e\xf4\x55\xcd\x0d\xb5\x0f\x66\x44\x9c\x63\xe9\xa4\x84\x47\x0a\ +\xec\x35\x70\x20\xc7\x41\x66\x36\x96\x7d\x91\xab\x64\x11\xe5\xf3\ +\x3b\x52\xbf\x70\x04\x8e\x02\x7e\x1d\xe6\x01\x6b\x9f\x2f\xde\xe7\ +\x8b\x4b\x75\xea\x50\x0f\x50\x33\x75\x34\x60\xa2\x1a\x41\x62\x16\ +\x87\xea\x2f\x94\x64\x6f\x76\xf3\xf1\xe2\xde\x05\x5d\x42\x47\x62\ +\x4f\x12\x35\x24\x6e\xa4\x33\x1b\x8a\xe3\xb4\xd8\xfd\x29\x40\x05\ +\x40\x2a\x7c\xe2\x13\xf3\xf1\xc2\x0b\x2f\x94\x2f\x92\x3d\x33\x25\ +\x79\xf8\x5b\x13\x17\x00\x35\xff\x97\x7c\xbe\xde\xff\xac\x96\x19\ +\x94\xc8\x97\x90\x7d\xf1\xa2\x8f\xd5\x35\x17\xdf\x84\x23\xdc\xb4\ +\x48\x03\x5a\xfd\xb8\x36\xaa\x23\x73\xa8\x3c\x42\xce\x54\xb2\x7e\ +\xdf\x23\xdb\xa1\x3e\x8e\x88\x3a\x51\xa4\x1b\x08\xac\x61\x80\xa5\ +\x57\x2e\xa5\xaa\x2a\xd5\x3f\xa6\x3a\x46\xb7\x2c\xe5\xca\x20\xb8\ +\xcc\x1f\x9b\x31\xf0\xa8\x8d\x6a\x6b\x1a\x8f\xa6\x06\x47\x30\x87\ +\x2e\x23\x95\xdb\x6f\xca\x8b\xa3\xe9\x55\x6d\x06\x57\xb8\xcc\xa2\ +\xaa\x2c\x2a\x45\xaa\x9c\x67\xf6\x88\x9b\x58\x92\x78\x0b\xfd\xc2\ +\x47\x3f\xd3\xc7\xbc\xd4\xd2\xb3\x78\x27\xa0\xf4\x1f\x06\xa6\x99\ +\xbf\x9f\xfa\x24\x9e\xff\xd9\xf3\x26\xcb\x55\xf6\x70\xa4\x78\xf5\ +\x18\x75\xb0\xa3\x86\xc9\xb0\x7e\x86\xf1\xe5\xf8\x7b\x2a\x71\xba\ +\x37\x9f\x8d\x49\x10\x37\xf9\xd3\x8f\x9b\x2f\x11\x00\xd7\x58\x35\ +\x4d\xfa\x88\x2b\x38\xf5\x99\xcc\x1c\x11\x94\x37\x5b\x78\x1e\xe8\ +\x84\x5e\xec\x7e\x76\x7f\xd7\x64\xd0\xc3\xdf\xff\x7e\xb4\xbd\x94\ +\x99\xc1\xe4\xf2\x40\x88\xe8\x09\xd0\x13\xcb\x32\xcb\x97\x98\xc4\ +\xf8\x43\x6a\xba\x60\x3a\x98\xa0\x8f\x2e\xe0\x29\x9e\x97\x22\x2b\ +\x52\xf7\x52\xae\x49\x5a\x6b\x73\x91\x09\x22\x90\x4d\x9e\x39\x57\ +\xc7\xc4\x70\xb2\x5c\xb1\xf8\xf0\x72\xbb\xe5\xb9\xd2\xbd\x98\x6b\ +\x4f\x51\x69\xda\xfd\x3d\x9f\xaa\x14\x16\xba\x21\x04\x7a\xd1\x02\ +\xdd\x94\x77\xa6\x29\x45\x52\x8b\x4f\x7a\xe5\xb4\x12\xc1\x2a\x90\ +\x88\xba\x56\xbe\x8e\x1d\xd9\x45\xf1\x60\xf1\xe7\x3a\x45\xa2\x34\ +\xb1\x2b\xdd\xbf\x3f\x41\xab\x6a\x87\x6b\x4d\x07\xe9\xb4\xf8\xad\ +\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\ +\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\ +\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\ +\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\ +\xad\xb4\xd2\x4a\x2b\xad\x4c\x31\xf9\x7f\x7b\x85\x02\x3e\xd1\x57\ +\xa6\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x35\xd9\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xe5\x00\xbe\x00\x46\x49\x08\xc4\x6f\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x01\x1d\ +\x11\x2e\x2d\x65\x07\x4c\x18\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\x9d\x79\x9c\x5d\x55\x95\xef\xbf\xeb\ +\xdc\x7b\x6b\xae\x4a\x65\xaa\xaa\x44\x42\x06\x42\x27\x84\x00\x61\ +\x1e\x92\x30\x28\x84\x49\x6c\x14\xa5\xd1\x7e\xbe\x56\xc4\xc6\x67\ +\xa3\xb6\xb6\xbe\xd7\x83\x36\x6a\xfb\x5a\x5b\xc1\x27\xb6\xaf\x15\ +\xa7\xe7\x80\x43\x1b\xda\xa1\x0d\x0a\x04\x04\x4c\x68\x09\x24\x10\ +\x48\x42\x08\x09\x90\xa9\x48\x2a\x43\xa5\xe6\x5b\x75\xef\x39\x7b\ +\xbd\x3f\xce\xb4\xf7\xb9\xb7\x08\x19\x50\xe8\xae\xfd\xa1\xc8\x1d\ +\xce\x3d\xf7\xdc\xb3\xd7\x5e\xc3\x6f\xfd\xd6\xda\x30\x36\xc6\xc6\ +\xd8\x18\x1b\x63\x63\x6c\x8c\x8d\xb1\x31\x36\xc6\xc6\xd8\x18\x1b\ +\x63\x63\x6c\x8c\x8d\xb1\x31\x36\xc6\xc6\xd8\x18\x1b\x63\x63\x6c\ +\x8c\x8d\xb1\x31\x36\xc6\xc6\xd8\x18\x1b\xaf\xd6\x71\x0c\xb0\x10\ +\xc8\x8d\xdd\x8a\xff\x5a\xe3\x78\xe0\x67\xc0\x7d\x80\x02\x3d\xc0\ +\xbf\x01\x7f\x0e\xcc\x18\xbb\x3d\xff\xb9\xc7\x59\xd1\xa4\x6b\xa1\ +\x50\xd0\x9a\x9a\x1a\x8d\x9f\x5b\x7f\xcf\x00\xff\x0c\x5c\x01\x34\ +\x8d\xdd\xb2\xea\x43\x5e\xa3\xd7\xbd\x10\x58\x09\x70\xdd\x75\xd7\ +\xf1\xe3\x1f\xff\x98\x1b\x6e\xb8\x81\x69\xd3\xa6\xb1\x72\xe5\x4a\ +\x7e\xf7\xbb\xdf\x31\x30\x30\x60\x1f\x5f\x8a\x8e\x5f\x0e\xdc\x03\ +\xac\x8d\x84\xe4\x68\x8c\x56\xe0\x6d\xc0\xa2\x48\x2b\x4d\x01\x9a\ +\x33\xf7\xb6\x14\x69\xa8\x6d\xc0\x7a\x60\x15\x70\x17\x30\xf4\x5f\ +\x42\xca\x76\xdf\xb3\xf8\x68\x0b\xda\x3c\x40\x67\xcd\x9a\xa5\x9f\ +\xf9\xcc\x67\x14\xd0\x37\xbe\xf1\x8d\xba\x6e\xdd\x3a\x7d\xf2\xc9\ +\xb5\xba\xfa\xb1\xc7\xf4\xdb\xdf\xfe\xb6\xbe\xe7\x3d\xef\xd1\xf9\ +\xf3\xe7\xab\xe7\x79\x59\xed\xb0\x1b\xb8\x03\xf8\x6f\x40\xc7\x61\ +\x7c\xff\x71\xc0\x0f\x81\x3d\x55\x34\xcf\xa1\xfc\xf5\x44\x42\xf9\ +\x67\x40\xcd\x1f\x62\x6e\xf2\xbf\xa7\xef\x69\x01\x7a\x8f\xe2\xf9\ +\xfa\x00\x06\x06\x06\x98\x3a\x75\x2a\x00\xeb\xd6\xad\xe3\x85\xad\ +\x5b\x99\x3a\x75\x2a\x46\x95\x79\xf3\x4e\x60\xee\xdc\x39\xbc\xeb\ +\x5d\xef\xa2\xa7\xa7\x87\xd5\x6b\xd6\xf0\xe8\xaa\x55\xac\x5e\xbd\ +\x9a\xbd\x7b\xf7\xb6\x03\x7f\x1a\xfd\x69\xa4\x11\x62\xed\xb0\x32\ +\x5a\xb1\xd5\xc6\x39\xc0\x37\x80\xf9\xf6\x8b\xd3\xa7\x4f\x67\xce\ +\x9c\x39\xcc\x9e\x3d\x9b\xf6\xf6\x76\x3a\xda\x3b\x08\x4c\x40\x3e\ +\x9f\xa7\x5c\x2e\x53\x2a\x95\xd9\xd3\xd5\xc5\x8b\x2f\xbe\xc8\xf6\ +\x1d\xdb\xd9\xb8\x71\x23\xbb\x77\xef\x06\x18\x07\x5c\x1c\xfd\x7d\ +\x1b\xd8\x04\x7c\x05\xf8\x17\xe0\x1f\x80\x9f\x02\x4f\x8c\x99\x80\ +\x97\x10\xa8\xe9\xd3\xa7\xa3\xaa\xf4\xf5\xf5\x31\x30\x30\xc0\xdf\ +\xfc\xf5\x5f\x73\xf9\x15\x57\x10\x04\x06\x63\x0c\xc6\x04\x18\x63\ +\x08\x4c\x80\x89\x5e\xdb\xb6\x6d\x2b\xab\x57\xaf\xe1\x89\x27\x9e\ +\x60\xfd\xfa\xf5\x94\x4a\xce\x7c\x0f\x02\xbf\x05\x7e\x1d\x39\x98\ +\x1b\x81\x86\x48\x38\x16\xc5\x07\x9d\x79\xe6\x99\x5c\x75\xd5\x55\ +\x2c\x5a\xb8\x90\x89\x93\x27\x25\x6b\x5a\x23\xcb\xa2\x0a\x22\x8a\ +\x5a\x86\x46\x35\x3c\x48\x15\x7a\x7b\x7b\x59\xb3\x66\x0d\x8f\x3c\ +\xf2\x08\x0f\x3f\xfc\x70\x2c\x10\xf1\x18\x01\x6a\xa3\xc7\xcf\x45\ +\x9a\xea\x91\x57\x5c\x00\xba\xee\x59\xdc\xd2\x7e\xe9\x8a\xbe\xd7\ +\x88\x10\x28\x40\x3e\x9f\xe7\xae\xbb\xee\xe2\x43\x1f\xfa\x10\xcf\ +\x3c\xf3\x0c\x00\x37\xdf\x7c\x33\x17\x5d\x74\x21\x26\x30\x04\xc6\ +\x44\xff\x06\x91\x40\x18\x82\x20\x7d\x5c\x2c\x16\xd9\xb4\x69\x13\ +\x6b\xd7\xae\xe5\xa9\xa7\x9e\x62\xc7\x8e\x1d\xd9\xef\xd9\x1b\x09\ +\x40\x23\xc0\xc5\x17\x5f\xcc\xfb\xdf\xff\x7e\x66\xcd\x9c\x15\x4f\ +\x75\xf4\x7f\xb5\xae\x4a\xe3\xff\x92\xa7\xd6\x33\xfb\x10\x44\xc3\ +\x4f\x6e\xd9\xbc\x85\xbb\x7e\x75\x17\x3f\xfd\xe9\x4f\x29\x16\x8b\ +\x00\x65\xa0\x60\x5d\xc7\x0f\x22\x41\x38\xaa\xc3\x89\x9d\x3f\xf6\ +\xce\xe9\xa5\x5b\xee\xd8\xfe\x5a\xd1\x02\x27\x02\xf3\x9a\x9b\x9b\ +\xe5\x8d\x6f\x7c\x23\x6f\x7f\xfb\xdb\x29\x16\x8b\xac\x5f\xbf\x9e\ +\xb5\x6b\xd7\x72\xf9\xe5\x97\xe3\xe5\x72\x04\x41\x80\x6f\x02\x82\ +\x20\x60\xd9\xb2\x69\x74\x76\xd6\x51\x57\x57\xa4\xb6\x76\x04\x3f\ +\x08\x00\x61\xe2\xc4\xf1\x9c\x30\x6f\x1e\x17\x5c\x70\x01\xe7\x9f\ +\x7f\x3e\x53\xa7\x4e\xa5\x50\x28\xd0\xdd\xdd\x8d\xef\xfb\x8d\x40\ +\x4d\x47\x47\x07\xb7\xdc\x7a\x2b\xef\x7a\xd7\xbb\x68\x6d\x6d\xc5\ +\xa8\xa2\x6a\x50\x63\x30\x80\x1a\x0d\xff\x54\xd3\xf7\x94\xe8\x5f\ +\xc5\xa8\x81\xe8\xfd\xf0\x38\x83\x12\x3d\x57\x43\xeb\xf8\xf1\x9c\ +\x75\xd6\x59\xec\xdc\xb9\x93\x67\x9f\x7d\x96\x8f\x7c\xe4\x23\xb9\ +\x8f\x7e\xf4\xa3\xec\xdc\xd9\x19\x0b\xe5\xc9\xc0\x9b\x80\x6f\x1e\ +\x45\x07\xd6\x15\x80\x8f\xbe\x73\xba\x77\xcb\x1d\xdb\xf5\x55\x3e\ +\xf1\xb3\x80\x5b\x80\xeb\x80\xd2\xc8\xc8\x48\xa1\xbf\xbf\x9f\x73\ +\xcf\x39\x97\x53\x4f\x3b\x95\x55\xab\x56\xd1\xd9\xd9\x89\x20\xcc\ +\x3f\x69\x3e\x41\xe0\x63\x82\x80\x72\x39\xe0\xd3\x9f\x3e\x8f\xdf\ +\xfe\xf6\x58\x96\x2d\xfb\x23\x1e\x78\x60\x06\x5b\x36\x4f\x60\xff\ +\xfe\x1a\x44\x02\x1a\x1a\x06\x50\x63\xc8\x17\xf2\x4c\x99\x3a\x95\ +\x93\x4f\x3a\x89\xf5\xeb\xd7\xd3\xd3\xd3\x43\x47\x47\x07\x77\xdc\ +\xf1\x03\x66\xcd\x9a\x89\x51\x85\x68\x52\x93\x3f\x34\x9d\xe8\x48\ +\xd5\xab\x12\x0a\x42\x3c\xe9\x1a\xda\x85\xc0\x28\x60\x30\x1a\x1e\ +\x67\x8c\x49\x84\x06\x55\x96\x2e\x5d\xca\xae\x5d\xbb\xf8\xe3\x37\ +\xbd\x89\x13\x4e\x38\x81\x4b\x2e\xb9\x98\x8e\x8e\x0e\x56\xae\x5c\ +\x49\x14\x61\xbc\x01\xf8\x7f\xaf\x88\x00\xbc\xca\x27\xbf\x25\x72\ +\x8e\xbe\x09\x9c\x0e\x18\xe0\x21\xe0\xb8\xc1\xc1\x41\xae\xbe\xfa\ +\x6a\x82\x20\xa0\xa3\xa3\x83\xfb\xee\xbb\x8f\xae\xae\x2e\xae\xbc\ +\xf2\x4a\x4c\x10\xe0\x07\x01\xc3\xc3\xe1\x44\x14\x0a\x3e\x7d\x7d\ +\x75\xf4\xf5\xd5\xb3\x73\x67\x2b\xeb\xd6\x1d\xc3\x43\x0f\xcd\x61\ +\xf9\xf2\xf9\x6c\xdc\x38\x95\xdd\xbb\x9b\x18\x19\x81\x09\x13\xba\ +\x79\xf0\xc1\x07\x19\x1c\x1c\xe4\x73\x9f\xfb\x1c\xb3\x66\xcd\x8a\ +\x56\x7c\x34\xc1\xc6\x60\x50\x47\x10\x92\x09\xc7\x60\x8c\xf5\x7a\ +\x34\xc9\x6a\x0c\x10\x6b\x88\x48\x2b\x44\x8f\xd1\x50\x28\xbe\x7e\ +\xfb\xed\x0c\x0d\x0d\xf1\xee\xf7\x5c\x4f\x73\x73\x33\xaa\xca\xec\ +\xd9\xb3\x99\x31\x63\x26\x0f\x3e\xf8\x20\xc0\xb1\x91\x7f\x70\xff\ +\x6b\x29\x0a\xa8\x18\x5d\xf7\x2c\x6a\x6e\xbf\x74\x65\xff\x21\xc6\ +\xfe\xd7\x03\xbc\xfe\x8f\xfe\x88\x6b\x4e\x3e\x39\xff\xc0\xb3\xcf\ +\x2e\xb9\xf3\xa9\xa7\x98\x38\x71\x22\x65\x3f\x5c\xe9\xf3\xe6\xcd\ +\xa3\xb5\xb5\x95\xbd\x7b\xf7\xb2\x71\xe3\x46\x66\xcf\x9e\x4d\x10\ +\x04\x88\x67\x78\xd3\x55\xeb\x08\x4c\x40\x10\x18\x76\xec\x68\x61\ +\xf3\xe6\xc9\x6c\xd9\xd2\xc6\xf3\xcf\xb7\xb3\x67\x4f\x2b\x9b\x36\ +\x1d\xc3\xa6\x4d\xc7\xd0\xd2\xd2\xcf\x47\x3e\x7c\x2b\x5d\x5d\x5d\ +\xd4\xd6\xd6\x72\xca\x29\xa7\x60\x4c\x80\x22\xa0\xc6\x72\xe8\x12\ +\xef\x2e\xd1\xc9\x8a\x86\xa2\x69\xf9\x04\xb1\xf5\x97\xd8\x54\x44\ +\xcf\x24\xd2\x18\xf1\xe7\x0e\x74\x1f\x60\xdf\xbe\x7d\xd4\xd7\xd5\ +\xd1\xd1\xde\x81\x31\x26\x39\xf7\xf9\xe7\x2f\xe2\x86\xf7\xbe\x97\ +\x6f\x7e\xe3\x1b\x00\xff\x0b\xb8\x3d\xc2\x15\x5e\x9b\x02\x70\x88\ +\x93\x0f\x30\x15\x60\xc1\xd4\xa9\xbc\xef\xcc\x33\x29\x95\x4a\xdc\ +\xb3\x69\x13\x00\x97\x5f\x7e\x19\x41\xb9\x4c\x60\x42\xa7\xef\xf4\ +\xd3\x4f\xe7\xfe\xfb\xef\xe7\xa9\xa7\x9e\x64\xfa\x8c\x19\x98\x20\ +\xc0\x98\x80\xc0\x28\x1a\x04\x04\xc6\xd0\xde\xb1\x97\xc9\x93\xbb\ +\x38\xe7\x9c\xd0\x49\xec\xe9\xad\xe5\xf9\xe7\x3b\x78\xfe\xf9\x29\ +\xe4\xf2\x65\x9e\xdd\xbc\x19\x80\xf9\xf3\xe7\x93\xcb\xe5\x08\x02\ +\x6b\xaa\xd4\xf5\x44\x63\x47\xce\x89\x02\xe2\x50\x20\x8e\x08\xb0\ +\x26\x5b\x53\xc7\x51\x54\x92\xcf\x3c\xb5\x6e\x1d\x00\x73\xe6\xce\ +\x45\x01\x13\x04\x8e\xd3\x78\xed\xdb\xde\xc6\xc3\x2b\x57\xb2\x71\ +\xe3\x46\x0f\xf8\x05\xb0\xe0\x48\xe7\xc1\x8b\xbc\xff\xc6\xd7\x80\ +\xd3\x77\x2c\xc0\xac\xd6\x56\xfc\x62\x91\xc7\xb7\x6f\xa7\x7f\x64\ +\x84\x89\x13\x27\xb2\x68\xf1\x62\xca\xbe\x8f\x1f\xfd\xcd\x9d\x7b\ +\x02\x00\x9b\xb7\x3c\x87\x5f\x2e\x47\xaf\x07\xf8\xe5\xb2\x75\x5c\ +\x10\xbd\xe6\x53\xf6\xcb\xd4\xd7\xf7\x71\xc2\x09\xcf\x70\xd9\xe5\ +\xf7\x73\xf1\x1b\x1e\xe0\xf9\xe7\x9f\x07\xe0\xe4\x93\x4f\x71\x22\ +\x08\x63\x22\xc7\x2f\x8a\x2e\x4c\x10\xe0\xc7\x61\x66\x7c\x5c\x10\ +\x44\x42\x17\x0a\xa4\x6a\x10\x45\x23\x69\x28\x6a\x8c\x41\x03\x4d\ +\x3e\x17\x18\xc3\xe3\x6b\xd6\x00\x70\xd2\x49\xf3\xd1\x28\x82\x09\ +\xe2\xc8\xc5\x18\x54\x0d\x1f\xf8\xe0\x07\xe3\xfb\x71\x4a\xe4\x0f\ +\x1c\xb9\x06\xd0\xd7\x06\x24\x79\x2c\xc0\xf8\x42\x01\x7f\xb8\xc8\ +\xc6\xae\x2e\x00\xce\x3f\xff\x7c\xfc\xb2\x9f\x4e\x50\x60\x38\xe6\ +\x75\x21\x38\xb4\x63\xfb\x76\x7c\xdf\x4f\xf0\x80\x18\x1b\xb0\x31\ +\x81\x64\x62\x9c\x10\x51\xd9\xba\x75\x2b\x00\x0b\x4e\x39\x39\x5c\ +\x89\x2a\xa8\x68\x45\xbc\x1f\xa9\x80\x54\x03\x64\x4d\x83\x48\xa8\ +\x02\x22\x1b\xa0\x98\x64\x49\x2b\xa1\x27\x13\x7e\xc2\xf0\xf8\xe3\ +\x8f\x3b\x42\x17\x6b\x11\xb1\x34\xca\x8c\x19\xd3\x39\xfb\xec\xb3\ +\x59\xb5\x6a\x15\xc0\xe7\x80\x33\x8f\xdc\x04\x08\x39\xc0\x7f\x95\ +\x0b\xc0\x34\x80\x56\xcf\xa3\x5c\x1c\x66\x47\x6f\x08\x2c\xce\x9a\ +\x35\x33\x9c\x64\x8d\xe2\xfd\x20\x60\xd2\xe4\xc9\x00\xec\xdb\xb7\ +\x8f\x72\xb9\x1c\x39\x62\x91\x00\x04\x86\x40\x83\xe8\xd8\x4a\xb0\ +\x08\x85\x62\xb1\x48\x57\x57\x17\xf9\x7c\x9e\x39\x73\xe7\x86\xab\ +\x15\x09\xc3\x38\x42\x75\x5e\x31\xe1\xaa\xa8\x40\xf4\x3f\x67\x82\ +\x63\x41\x10\xa3\x0e\x2e\x60\xac\xc7\x7b\xf6\xec\x61\xc7\x8e\x1d\ +\x34\x34\x34\x30\x67\xce\x1c\x4c\x74\x2d\x6a\x19\x1b\x25\x74\x41\ +\xae\xbd\xf6\x4f\x62\x01\x38\x2d\x4a\x74\x0d\x1c\x91\x09\xe8\x58\ +\xb2\xc2\x7f\xad\x68\x80\x16\x84\x72\x71\x98\xee\xe1\x61\x00\x26\ +\x4d\x9a\x1c\xc6\xfa\xe5\x54\xb5\x7b\x9e\x47\x63\x63\x23\x41\x10\ +\x84\xb1\x7c\x39\x56\xf9\x3e\x7e\x50\x0e\x9f\x07\x3e\x81\xef\x13\ +\xf8\xe5\xf0\x71\x10\xde\x70\xdf\xf7\xd9\xb6\x6d\x1b\xaa\xca\xdc\ +\xb9\x73\xc9\x17\xf2\x98\x40\x2d\x2d\x61\x09\x92\xfd\x9a\x2a\x1a\ +\x98\x44\x9d\x87\x9f\xb1\xd5\x7d\x68\x2a\xc2\x63\x43\x6c\x42\x83\ +\x00\x8d\x84\x6f\xd5\x23\xab\x00\x38\xed\xb4\xd3\xf0\x3c\x49\x54\ +\x7f\x22\xa8\xf1\x9f\x09\x98\x3d\xfb\x38\x66\xcc\x98\x11\xcf\xdf\ +\xdf\xbf\x26\x9d\xc0\xc3\xd5\x00\xe3\x50\xfc\xe1\x21\xfa\x22\xf8\ +\x76\xdc\xb8\x16\xca\xe5\xb2\xa5\xd2\xc3\x1b\xda\xd8\xd8\xc8\xe0\ +\xe0\x20\x7d\xbd\x7d\xd4\xd7\xd5\x61\x4c\x6a\x6f\x43\x64\x50\x93\ +\x95\x0f\xd0\xd3\xd3\xc3\x9a\x35\x21\x3c\xdc\xd6\xd6\x96\x38\x80\ +\x26\x08\xe3\x76\x17\xd1\x0b\x57\xbe\x44\x0b\x3c\x71\x02\x63\x04\ +\x30\x52\xfb\x9e\x16\x09\xa4\x2e\x5d\xc9\xc9\x72\x36\x91\x63\x98\ +\xea\x8a\x95\x0f\xaf\x04\xe0\xf4\xd3\x4f\x27\x08\xe2\x57\x5d\x27\ +\xd1\x36\x1d\x17\x5c\x78\x01\x5b\xbf\xb3\x95\x28\x9f\xf1\x3f\xff\ +\xb3\x0b\x40\x1b\x50\xd7\x90\xcb\x21\x23\x25\xca\xc6\x67\x28\xf2\ +\x90\x6b\x6a\xea\xf0\x7d\x3f\x74\x92\x4c\xac\xd6\x7d\xea\xeb\xea\ +\x01\x18\x18\x1c\x60\x82\x3f\x21\xb5\xf1\x89\xa3\x16\x3e\xdf\xb2\ +\x65\x0b\xab\x57\xaf\x66\xf3\xe6\xcd\x89\x3a\x3f\xee\xb8\xe3\xb8\ +\xfa\xea\xab\x39\xfb\xac\xb3\xa3\xf0\x2f\x52\xfb\x0e\x7c\x9b\x4e\ +\x9f\x49\x63\x40\x27\x17\x10\x50\x9b\x1a\xf9\x24\x2f\x10\x7d\x36\ +\x12\x1a\x51\xe8\xed\xeb\x65\xc3\x86\x0d\xe4\x72\x39\x4e\x3f\xfd\ +\xf4\x50\xfd\xc7\x53\x1d\x9f\x53\x25\x3c\x38\xc4\x8b\x58\x78\xde\ +\x42\xbe\xf7\xdd\xef\xa1\xaa\x53\x81\xd7\x01\x9d\x47\x24\x00\x5d\ +\xf7\x2e\xae\x6d\x5f\xb2\x62\xe4\x55\x6d\xff\x73\x39\xfc\xe2\x10\ +\x25\xdf\xc7\x00\xb9\x5c\x0e\x41\xf1\xfd\xa0\x02\xe3\xaf\xa9\x0d\ +\xb3\xab\xc3\xc3\xc3\xd1\xfb\xa9\x57\xde\xdf\xd7\xc7\x13\x4f\x3c\ +\xc1\x9a\x35\x6b\xe8\x8d\x7c\x89\x7c\x3e\xcf\xa2\x45\x8b\xb8\xf2\ +\xca\x2b\x99\x7f\xe2\x89\xc4\xe6\xdb\x04\x26\x71\xfe\xe2\x58\xde\ +\x68\x1a\xcb\x27\xa1\x5e\x26\xec\x73\xad\x37\xae\xff\x90\xf8\x09\ +\xa1\x6e\x59\xb1\x62\x05\x41\x10\x70\xda\x69\xa7\x85\xa6\xcb\x18\ +\x2b\xb4\x74\xcf\x13\xbf\xd6\xda\xda\x4a\x5b\x5b\x1b\x5d\xa1\x33\ +\x7c\x0d\xf0\xe5\x23\x12\x00\x0d\x93\x0f\xaf\x6a\xfb\x3f\xce\xf3\ +\x28\x0f\x17\x29\x96\xfd\x68\xf5\xd7\x84\x00\x50\x1c\x26\x99\x10\ +\xf5\x33\xc6\x90\xcb\x85\x20\xe7\xf0\xc8\x30\x7e\x50\x26\xf0\x03\ +\x5e\x78\xe1\x05\x56\xaf\x5e\xcd\xc6\x8d\x1b\x13\xd5\xdf\xd1\xd1\ +\xc1\x15\x97\x5f\xc1\x25\x97\x5c\x4c\xcb\xb8\x71\xe1\xca\x8d\xde\ +\x4b\x54\xaf\x49\x91\x1c\xa3\xb1\x9a\x0f\x3d\xb2\x58\x28\xe2\x15\ +\xed\x44\x01\xd6\x6a\x77\xc0\xa3\xe4\xf3\xe1\xf3\x08\xe1\x63\xf1\ +\xe2\xc5\xa1\xc0\x59\x8e\xa6\x66\x40\x87\x48\xe7\xb0\xf6\x89\xb5\ +\xf1\xe4\x2b\x21\x37\xe1\xc8\x4c\x40\xc7\x92\x15\xa6\xeb\x9e\xc5\ +\x75\xed\x97\xae\x18\x7e\x15\x0a\xc0\xeb\x00\x9a\x15\x82\x52\x99\ +\x11\x63\xa8\x17\xa1\x5c\x2e\x73\xe0\xc0\x01\x1a\x1a\x1b\x51\x13\ +\x10\x04\x91\x5d\x0f\x02\xea\xea\xea\x00\x5e\x08\xfc\x60\xe6\xca\ +\x15\x2b\x59\xbd\x7a\x35\xfb\xf7\xef\x0f\x3d\x5f\xcf\xe3\xdc\x73\ +\xcf\xe5\xf2\xcb\x2f\x67\xc1\x82\x05\x78\x22\x21\xf0\x92\x84\x5e\ +\x38\x2a\xd8\x56\xef\xce\xaa\xb4\xbd\xf4\x44\x2b\x54\xf9\xec\x28\ +\x13\x09\xca\xce\x9d\x3b\xd9\xbc\x79\x33\xf5\xf5\xf5\x9c\x71\xfa\ +\x19\x98\x28\xa7\x10\x7e\x87\xa4\x62\xa8\x29\x08\x55\x1c\x19\xe6\ +\x5b\xdf\xfa\x56\x7c\xb6\x7b\x81\x7d\x47\xc5\x07\x78\x95\x4e\xbe\ +\xa5\x01\x84\x7d\x41\xc0\xd2\x81\x01\x8a\xaa\xe0\xfb\x7c\xff\xfb\ +\xdf\xe7\x3d\xef\x79\x8f\x03\xd4\x04\x81\xe1\xcc\xb3\xce\xe4\xc9\ +\xb5\x6b\xf5\x87\x3f\x4c\x17\xc7\xc4\x89\x13\x59\xb2\x64\x09\x4b\ +\x96\x2c\x61\xe2\x84\x09\x20\x82\xaa\x86\x1e\xbc\x0d\xdd\x3a\xb1\ +\x37\xae\x36\xc0\xcd\xeb\xdb\x33\xaa\x8e\xce\x57\x27\x65\xa7\xaa\ +\x2e\x7e\x10\x09\xcd\x43\x0f\x3d\x04\xc0\xb9\xe7\x9e\x4b\x2e\x9f\ +\x23\x08\xfc\x70\xfd\x27\x31\xa4\x0b\x35\x03\xdc\xf1\xfd\xef\xb3\ +\x6f\xdf\x3e\x80\x61\xe0\x2d\xff\x15\xa2\x80\x63\x00\x96\x17\x8b\ +\x3f\x5c\x5e\x2c\xbe\x1d\x90\x86\x86\x06\x00\x9e\x7e\xfa\x69\x1e\ +\xfa\xed\x43\x9c\x7b\xce\x79\x14\x8b\x43\x3c\xfe\xc4\x13\xac\x7e\ +\xec\xb1\x98\x60\x31\x4b\x44\x58\xb0\x60\x01\x97\x5d\x7a\x19\x67\ +\x9c\x79\x26\xb9\x9c\x07\x0a\x81\x1a\x0b\x84\x09\x75\x72\xe8\x75\ +\xa7\x2b\x5d\x6c\x8c\x5f\x15\x11\x6b\xf1\x67\x54\x7d\x3a\xb9\x92\ +\x6a\x83\xe8\x9c\x39\x4a\x18\x0a\x15\x1a\xc3\x0f\x02\x1e\x78\xe0\ +\x81\x30\xd1\xb1\x70\x61\x92\x34\x72\x86\x03\x3a\x29\xab\x57\xaf\ +\x4e\x3e\x03\xfc\x77\x8e\x10\xc4\xab\x2a\x00\xfb\xee\x5b\xbc\x20\ +\x30\xfa\x33\x90\x19\xa1\x26\x12\x2b\x9d\x41\xe6\xb1\x23\xf6\x88\ +\x0a\x22\xfa\xf9\xfa\xda\xdc\x27\x9b\x2f\x78\xb0\x78\x94\x04\xe0\ +\x51\x60\x0e\xf0\x8e\x38\x56\xfe\xd8\xc7\x3e\xc6\x93\x4f\x3e\xc9\ +\xe7\x3e\xf7\x39\xee\x5a\x76\x17\xcf\x3f\xf7\x3c\x9b\x37\x6f\x66\ +\x64\x64\x24\x0a\x0f\xc7\x71\xd1\x45\x17\x71\xe9\xa5\x97\xd2\xd1\ +\xde\x9e\x78\xed\x89\x9a\x37\x19\xef\xda\xc4\xa8\x5d\xfa\x5b\x8c\ +\x56\x86\x7c\x6a\xa3\x7f\x9a\x46\x07\xd8\x4e\x60\x46\x2b\x18\x72\ +\xa8\x1a\x7b\xe1\x03\xca\xea\xc7\x56\xd3\xd7\xd7\xc7\xd4\xa9\x53\ +\x39\xfe\xf8\xe3\x09\x4c\x10\x3b\xfa\x29\x72\x68\x09\x44\x57\x57\ +\x17\x5f\x0f\x93\x41\x00\x77\x02\x4b\x8f\x7a\x32\xe8\xc0\x6f\x16\ +\xb5\x97\x7d\xfd\x1b\x54\xa6\x29\xf1\xe4\x93\x4e\xb8\x48\xf4\xc3\ +\x05\x57\x4f\x86\x76\x14\x41\x11\xf9\x9f\x43\xa5\x60\x56\xef\x43\ +\x17\xfc\xe5\xb8\x0b\x1e\xea\x3c\x0a\x02\xf0\x02\x70\x2a\xc0\xeb\ +\x5f\xff\x7a\x6e\xba\xe9\x26\xc4\xf3\x38\xfb\xec\xb3\xb9\xf8\x92\ +\x4b\xb8\x6f\xf9\x72\xd6\xaf\x5f\x0f\xc0\xbc\x79\xf3\x58\x72\xc9\ +\x12\xce\x39\xf7\x1c\x0a\x85\x02\xa0\xe1\x6a\x57\x12\xbb\xaa\x29\ +\x1d\x27\x0d\xcd\x52\x93\x6b\xd9\xf9\xc4\x5b\x4b\x50\xbb\xcc\x14\ +\x57\x3a\x78\xd5\xa2\x80\xaa\xef\x29\x77\xdf\x73\x37\x00\x17\x5e\ +\x78\x61\xe2\x94\x6a\xe5\x9a\x02\x42\x74\xf2\xcb\x5f\xfe\x32\xc3\ +\x21\x00\xd6\x09\xfc\xc9\x2b\x92\x0e\x1e\x29\x51\x9b\xcb\x49\xb7\ +\xc2\xb0\x27\xd2\x68\xd4\x5a\xe9\xf1\x02\x11\x89\xbc\xdb\xf8\xa6\ +\x45\x77\x2e\xb4\xa9\x12\x3e\x94\x37\x8c\x94\xf4\xd3\x7b\x96\x9f\ +\xff\xf5\xa6\x86\xdc\xe3\x0d\x0b\x1f\x38\xdc\x28\xa3\x05\xf8\x31\ +\x20\x67\x9f\x7d\x36\x7f\xf1\x17\xef\x0f\xaf\x21\x08\x19\x35\xd7\ +\xbf\xeb\xdd\x0c\x0d\x0e\xd2\xda\xda\xca\xc5\x17\x5f\xcc\xb4\x69\ +\xc7\xa6\x2b\x38\x08\x1c\x15\x5e\xe9\xa0\x09\xaa\x06\x41\x2a\x6d\ +\xbc\x0d\xda\x58\x19\x3d\xad\x92\x02\xce\xda\x68\xec\xec\xa0\x68\ +\x55\xfe\xce\xb6\x6d\xdb\x78\xf6\xd9\x67\xa9\xad\xad\x65\xe1\xc2\ +\x85\x2f\x79\x03\x54\x95\xdb\x6f\xbf\x9d\xce\xce\xce\xd8\xee\x9f\ +\x99\x3a\x08\x47\x51\x00\x7a\x7f\x7b\x7e\x5d\xb9\xc4\xdb\x02\xa3\ +\xd7\x29\xd2\x98\xdc\x07\x11\x5b\x06\x52\xe1\x94\x74\xe2\xe3\xe5\ +\x13\xcb\x83\xc2\x78\x51\xae\x17\x41\x54\xe4\xc3\x1c\x3e\x2b\xf8\ +\x27\x40\xdd\xa4\x49\x93\xf8\xc0\x07\x3e\xe0\x10\x2b\x00\x0a\x35\ +\x79\xfe\xf2\x2f\xff\x32\xb1\xd9\x31\x86\x8e\xe3\xb1\x8b\x05\xd0\ +\x68\xc5\x12\x33\x55\xbc\x75\xb5\x55\x42\x45\x0a\x58\xc9\x52\x00\ +\x47\x65\x69\x8d\xf2\xf2\x7d\xf7\xdd\x97\x84\x7e\x8d\x8d\x2f\x9d\ +\x8c\xbd\xf3\xce\x3b\x59\xbb\x76\x6d\x7c\xb6\x37\x02\xbb\x8e\x96\ +\x73\xe5\x08\x40\xcb\xf1\xcd\xa5\xee\xa7\xfb\xd7\x81\x0c\x4b\x14\ +\x1a\x91\x99\xfa\xc4\xd1\x49\x56\x7e\x8c\x50\xa9\x75\x9c\xf3\xc9\ +\x77\x0f\x0c\x94\xff\x78\xcf\xf2\xc5\x8b\xda\x2e\x59\xb1\xf1\x10\ +\xaf\xaf\x15\x58\x02\x70\xc3\x0d\x37\x50\xa8\x29\x10\x04\x9a\x64\ +\xd6\x6d\x08\x36\x4d\xce\x64\x54\xb4\xad\xce\x47\xd5\x04\x5a\x05\ +\xea\xc5\x9d\x64\xeb\x37\x0d\x0d\x0d\xb1\x77\xef\x5e\xf6\xef\xdf\ +\x4f\x77\x77\x37\x43\x43\x43\x0c\x0d\x0d\xc5\xea\x99\x5c\x2e\x47\ +\x6d\x6d\x2d\xe3\xc6\x8d\x63\xe2\xc4\x89\xb4\xb7\xb7\x33\x75\xea\ +\xd4\x04\x9b\xe8\xeb\xeb\xe3\x91\x47\x1e\x41\x44\xb8\xe4\x92\x4b\ +\x5e\xf2\x06\xdc\x7f\xff\xfd\xdc\x75\xd7\x5d\xf1\xd3\x8f\x71\x94\ +\x98\x40\x95\x40\x50\xef\x5b\x64\xdf\x63\xfb\xcf\x55\xf8\x81\x08\ +\x93\x42\x07\xc8\x73\x7d\x3d\x89\xd7\xb8\x6d\x16\x34\xf4\x07\xe2\ +\x98\xd5\x0b\xe5\xc1\xc6\xbf\x05\x26\x18\xe5\x1d\x7b\xee\x3b\xff\ +\x2b\x6d\x17\xff\xb6\xeb\x10\xae\xef\xa6\xd8\xe3\x5f\xb0\xe0\x94\ +\x88\x21\x63\xa7\x52\xa3\xd5\x3d\x6a\x9a\xd6\x56\xe7\x99\x28\x3d\ +\x63\x6c\x6d\x74\x2e\x51\xfe\xc6\xb0\x73\xe7\x4e\xb6\x6d\xdb\xc6\ +\x8e\x1d\x3b\xd8\xb9\x73\x27\x9d\x9d\x9d\x0c\x0f\x0f\xd3\xd6\xd6\ +\xc6\xcc\xd6\x56\xda\x5a\x5b\x19\x5f\x5f\xcf\xb4\xda\x5a\xad\x6b\ +\x68\x00\x13\x50\x2e\xfb\x0c\x8d\x0c\xb3\x6f\xcb\x16\x59\xbb\x7a\ +\x35\x5b\xfa\xfb\x39\x70\xe0\x00\xa7\xcc\x9f\xc3\x89\x27\x9f\x4e\ +\x57\x57\x17\xe5\x72\x99\x53\x4f\x3d\x95\xf6\xf6\xf6\xd1\x3d\xdf\ +\x47\x1f\xe5\x8e\x3b\xee\x88\x9f\x7e\x15\xb8\xf5\x68\x87\x57\xa9\ +\x06\x78\xbe\x3f\xa7\xaa\xe7\xa9\x22\x2a\x62\xfb\xf5\xb1\xb9\x24\ +\x74\xfd\xac\xf7\x84\xd4\x7e\x26\xef\xab\xf5\x9e\x13\x21\x7d\x3c\ +\x24\xc1\x71\xf3\xcb\xbd\x38\x11\xce\x55\x85\xb3\xce\x3a\x2b\x41\ +\xc8\x1c\x47\x4a\x49\x79\x36\xb1\xbd\x8d\x52\xa6\x22\x29\xfc\x9a\ +\x0d\xe9\x46\xd3\xd5\xc6\x18\xb6\x6f\xdf\xce\x86\x0d\x1b\x78\xe6\ +\x99\x67\xd8\xbc\x79\x33\xe3\xc7\x8f\xe7\xb4\x99\x33\x99\x7f\xcc\ +\x34\xbd\xe6\xa4\x93\x38\xae\xbd\x4d\x26\x37\xb7\x60\x7c\x3f\xf9\ +\xd3\x20\xc0\x94\xcb\x62\x82\x00\x8d\x5f\xf3\x7d\x82\xc0\x47\xfd\ +\x00\xe3\xfb\xf4\x0c\x0c\xf0\xe8\xb6\x6d\xfa\xc0\xbd\xf7\xca\x63\ +\xa1\x2d\xe7\xf2\xcb\x2f\x1f\xf5\x6a\x9e\x7e\xfa\x69\x6e\xbf\xfd\ +\xf6\x58\x63\xdd\x03\xbc\xff\x95\x88\xaf\x13\x01\x18\x18\x28\x1f\ +\xab\xca\x59\x2a\x32\x4e\x92\x95\x6e\x4f\x7c\xf8\x9a\xe3\x13\xc4\ +\x2b\x4e\x24\x5c\xf5\x49\x58\x65\x59\x05\x89\x24\x4a\x14\xa3\x7c\ +\x7c\xcf\xf2\xc5\x8b\xc4\xe3\x63\x93\xdf\xb0\xe2\xf1\x97\x76\x7c\ +\xf0\x6a\x0a\xd2\x50\xf6\x95\x62\xb1\x88\x1f\xd9\x7d\x51\xc1\xc4\ +\xbe\xc6\x28\xd8\x7b\x06\x42\x7f\x29\x53\x4c\x6f\x6f\x2f\x4f\x3e\ +\xf9\x24\xeb\xd6\xad\xe3\xe9\xa7\x9f\xa6\xa5\xa5\x85\xd7\x9f\x7c\ +\x32\xef\xbd\xf8\x62\x3d\xf5\xc6\x1b\x65\x7c\x63\x43\x38\xa1\x65\ +\x5f\x82\x20\x00\xbf\x4c\x79\x60\x20\x9a\xfc\x00\x13\xf8\x68\xd9\ +\x0f\xff\xcd\x08\x45\x10\x09\x82\x09\x7c\x1a\x02\x9f\xc5\xed\x1d\ +\xb2\x7b\xdf\x7e\x1e\xeb\xec\xa4\xa1\xa1\x81\xe9\xd3\xa7\x57\xbd\ +\xa6\xe7\x9e\x7b\x8e\xdb\x6e\xbb\x2d\x4c\x51\xc3\x93\xc0\x65\xaf\ +\x14\xc0\x92\xe8\xf2\xbd\xcb\x17\xff\x77\xa3\x7c\xd1\x20\x13\x89\ +\x55\xba\x00\xe2\x45\x37\xd0\x0a\x07\xc5\xb6\xf5\x92\x18\xcc\x70\ +\x52\x0c\x15\xfa\x23\x9a\x20\x89\xaa\x65\x40\x7b\x05\xfe\x71\xd2\ +\x25\x6d\xb7\x8a\xfc\x34\xa8\x32\xf9\xb2\x61\xe9\x31\xad\x7f\xf2\ +\xbf\xf6\x7f\x76\xc3\x0b\xc5\x1b\x01\xfe\xea\xaf\x3e\xca\x49\x27\ +\xcd\x3f\x2a\x3f\x7a\xef\xde\xbd\xac\x59\xb3\x86\xd5\xab\x57\xf3\ +\xe2\x8b\x2f\x72\xc1\x82\x05\x2c\x3e\xe5\x64\x16\xce\x9f\xcf\xe4\ +\xe6\x66\x4c\x39\x9a\xd8\xc0\x0f\x1f\xfb\x99\x09\x4e\x56\x76\x39\ +\x14\x82\x64\xa2\xc3\xd7\xd4\x12\x0e\xe3\x47\x5a\xa1\x5c\x66\x68\ +\x64\x84\x1b\x1f\x78\x80\xfe\x72\x99\x13\x4e\x38\x81\xc9\x93\x27\ +\x73\xfd\xf5\xd7\x3b\xd7\xb6\x75\xeb\x56\x3e\xfb\xd9\xcf\xc6\x78\ +\xc6\xd6\x9b\xdf\xca\x9c\x0b\x4f\x3c\xb8\xc7\x7f\xe1\x89\xe8\xd2\ +\xa5\xf0\xb6\xa5\x18\x39\x84\xba\x01\x2b\x19\x24\x13\x44\x28\x84\ +\xf9\xe7\x54\x34\x12\x06\xab\xa5\xf6\x13\x87\x50\x3c\x92\xc4\xb6\ +\x25\x10\x71\x9a\x33\x4e\x86\x88\x58\x09\x94\xf0\x83\xe3\x44\xf4\ +\x0d\xe0\xdf\x52\xf5\xaa\x96\xce\x2b\xec\xdc\x63\x8e\xf9\xcc\xfb\ +\x9b\x3b\xff\xe4\x6f\x9e\x31\x25\x5f\xbd\x5b\x6f\xbd\x85\x25\x4b\ +\x96\x70\xcd\x35\xd7\x50\x5b\x5b\x7b\xc8\x93\xde\xdd\xdd\xcd\xaa\ +\x55\xab\x78\xf4\xd1\x47\xd9\xb3\x67\x0f\x57\x9e\x7b\x2e\x7f\x7d\ +\xed\xb5\x9c\x35\x67\x0e\x39\x11\xd4\x2f\x63\xca\x01\xe5\x81\xc1\ +\x68\x92\xd3\x09\x4e\x27\xb4\x9c\x4c\xbc\xfa\xd6\x0a\x4f\xfe\x0d\ +\x2c\x41\x89\x3e\x1f\x09\x91\x06\x3e\xbf\x7c\xfe\x79\xfa\xcb\x65\ +\xe6\xb6\xb6\xf2\xb7\x1d\x1d\xdc\xf4\xf8\xe3\x6c\xdb\xb6\x2d\xd1\ +\x04\x5b\xb7\x6e\xe5\xf3\x9f\xff\x3c\x23\x23\x23\xe4\x3c\xf6\xde\ +\xf1\x91\x71\x6f\x6d\x6f\xf5\xe6\xba\xb3\x99\x89\xa6\x23\x2a\xcf\ +\x6f\xd6\xf9\xda\x76\x82\x3f\xbc\xe3\x1b\xfe\x3e\xdd\x49\xaf\x7c\ +\xea\xe5\x85\x89\x89\x06\xd8\x7d\xef\xf9\x3f\xf0\x84\x77\xc4\x71\ +\xbf\x4a\xaa\x05\x62\xc7\x2f\x04\x05\x25\x01\x83\x52\x6c\x54\x53\ +\x13\x10\xeb\x0a\xdb\x8d\xc6\x44\x8e\x61\x08\xa7\x86\x7e\x82\x0e\ +\x8a\xca\x73\x60\x7c\x55\xf5\xec\xcf\xab\xd1\xbc\x31\xda\xe4\x07\ +\x66\xbc\xef\xd3\xb8\x6b\xdf\x48\x7e\xa4\x14\x2a\x8a\x9c\xe7\x31\ +\xbe\xb5\x95\xc6\xc6\x86\x0a\x0d\x63\xd5\x5b\x21\x06\x0c\x86\xa1\ +\xc1\x41\x86\x06\x07\x28\x95\xca\xb4\x34\xd4\xd3\xd2\xd8\x48\x63\ +\x6d\x4d\xe8\x9c\xc6\xd5\x39\x46\x11\x35\x91\x33\x18\x42\xc4\x82\ +\x41\x4d\x74\xce\x88\x9e\x9d\x84\x19\x6a\x00\x43\x79\xb8\xc0\xc6\ +\xc7\xe7\x31\x32\x94\x4b\x54\xbd\x29\xc7\x02\x11\x6b\x80\x50\x20\ +\x06\x46\x46\xf8\xe0\xda\xb5\x0c\x05\x01\x7f\x77\xe2\x89\xcc\x6f\ +\x1d\xc7\xb2\x9d\x9d\x3c\x37\x65\x0a\xef\x7b\xdf\xfb\x78\xe1\x85\ +\x17\xf8\xc2\x17\xbe\xc0\xd0\xd0\x10\x4d\xf5\x52\xfc\xf6\x87\x27\ +\xdd\xd3\x5c\x2f\xbe\x67\x93\x0d\x2c\x83\x26\x09\x2c\xa3\x88\x1a\ +\x35\x4a\xb9\x20\x66\x3b\x12\x3c\x74\xdc\xd4\xc1\x47\xa7\xbd\x97\ +\x9e\x97\xa3\x09\x12\x0d\x50\xc8\xb1\xac\x1c\x70\x1e\xe8\x8c\x34\ +\xee\x57\x50\x8f\x38\x24\x94\x14\x05\x4d\x6e\x7e\x8c\xa4\xa6\x2a\ +\x3f\x49\x82\x5a\x76\xda\xc6\x0b\x12\x62\x45\xa3\xa0\x27\xab\x86\ +\x8e\x23\x16\x60\xe2\x09\x78\x39\xa1\xe0\xe5\xa0\xa0\x34\x4d\xab\ +\x0f\x01\xc6\x68\xb2\x90\x21\x44\x87\x2c\x81\xd3\x28\xda\x48\xe1\ +\x59\xbc\xf0\x64\x13\xc6\x29\x8c\xf3\x80\x02\x68\x19\xb4\x27\xd1\ +\x48\x82\x49\xfc\x05\x41\x11\xb5\xae\x43\xdd\x73\xbb\xc2\x1d\x9a\ +\x32\xbf\xd6\x63\x5c\x4b\x27\x9d\x7b\x27\x84\x13\x6f\x39\x7d\xc6\ +\xb7\x7d\x82\x80\x7f\x7f\xb1\x93\xa1\x20\x60\x4e\x53\x23\xf3\xea\ +\x0b\x94\x07\x86\x58\xd8\xd8\xc4\x4f\xd6\xac\x61\xe3\xc6\x8d\xdc\ +\x76\xdb\x6d\x0c\x0f\x0f\x33\xbe\xc9\x33\x5f\xff\xe0\xa4\x52\x43\ +\xad\x77\xa1\x06\x86\x20\xb9\xdf\xe2\x4c\x7e\x26\x44\x57\x51\x1d\ +\x0a\xc4\x7b\xd2\x33\x3c\xfd\xc2\xf3\x0d\xf9\x69\x2f\x33\x45\x90\ +\x08\x40\x2e\x27\x0f\x05\x46\x1f\xd2\x30\xf5\x5a\xc8\x92\x11\xe3\ +\x29\x17\x4b\x02\x12\xed\x9f\xcc\xbc\x26\x91\x40\xd5\x8c\x81\x45\ +\xaa\x90\xec\x9b\xea\xba\xff\x49\x42\x45\x42\x0f\xde\x81\x6b\x5d\ +\x7a\x84\x73\x1d\x12\x53\xa9\xc4\xf6\x04\xd5\x42\x2b\x9d\x2f\x4a\ +\x84\x35\x5a\x4b\xd1\x21\xb1\x63\xab\x16\xce\xe1\xa6\x7f\x45\x95\ +\x5c\x3e\x60\xf2\xd4\xbd\xec\xdb\x0a\x7d\x3d\x1e\x5a\xb6\x57\x7d\ +\xfa\x78\xff\xf0\x30\xcb\xc2\xec\x1d\x6f\x9d\x30\x89\x91\xbe\x21\ +\x44\x95\x3a\x55\x26\x00\xff\xf4\x4f\xff\x14\x66\x2b\x5b\x3c\xbe\ +\x76\x53\x9b\xd4\xd5\xd0\x12\xa2\xd7\x5e\xf2\x7b\xdc\xdf\xe1\xfc\ +\x02\x15\xc5\x88\x60\x30\x9a\xf7\x3c\x93\x0b\x30\xde\x21\xfb\x00\ +\xe3\x4e\x19\xb7\x7b\xff\x9a\xde\x5f\x04\xca\x65\x0a\xed\xe9\x4c\ +\xc5\x6a\x56\x52\xfa\xb3\x25\x95\x56\x16\x20\xba\x91\xc6\x91\x07\ +\x67\xce\xa2\xd0\x20\x36\x25\x21\x10\x63\x32\xf6\x48\x92\xe4\x8b\ +\x9d\x7d\xc3\xc2\xf3\xd2\x98\x44\x2a\xd2\xae\x38\x81\x6a\x84\x11\ +\x18\x41\x30\x19\xd1\x54\x07\xde\x72\x08\xbd\x62\x91\x39\x12\xf3\ +\x46\x2a\x14\x02\x1a\x26\xbd\x18\x37\x71\x90\x96\x89\x79\xf6\x6f\ +\xab\x73\xcd\x40\x10\x60\xca\xa1\x23\xf9\xaf\xfb\xf7\x63\x80\xd3\ +\x1b\x1a\x98\x61\x0c\xfe\xe0\x20\xaa\xca\xc3\x83\x83\xec\x2d\x87\ +\x36\x7d\xca\x84\x1c\x5f\xfd\x8b\xc9\x14\xf2\x49\x46\xaa\xb2\x76\ +\xdf\xba\x99\x09\x09\x25\xf5\xb5\x05\x4f\x4b\xaa\x3a\x34\x75\xc2\ +\x70\xf9\xe5\xd6\xfd\x27\x92\x22\xe3\xff\xdd\xe0\xb1\x02\x74\xaf\ +\xab\x92\xdd\x5c\xb7\x38\x88\x99\xc1\x8b\xd4\x64\xc2\x60\x49\xec\ +\xb2\xed\x03\x68\x22\x0d\x22\xe9\x4d\x8f\x24\x21\x89\x30\x34\xb9\ +\xed\xee\xca\x4e\xd3\xb4\x92\x98\x15\xad\x98\x72\xad\x98\xdc\x30\ +\x04\x8d\xae\x47\xc4\x51\xe1\x99\x23\xa3\x85\xa5\x51\x94\x42\x62\ +\x52\x24\x33\x03\x9a\xc9\xfa\xd5\x36\x18\x26\x4d\x19\xa0\x3c\x30\ +\x40\x69\x60\x80\xf2\xc0\x20\xe5\xc1\x41\xca\x03\x03\x94\x07\x07\ +\x79\xba\xa7\x87\xc7\x86\x87\x29\x00\x6f\xa9\xa9\xa1\x34\x34\x48\ +\x79\x68\x88\x5f\xec\xef\xe6\x7b\xbd\xbd\x18\x60\xee\xb4\x02\x5f\ +\xff\x40\x1b\x85\xbc\xe0\x42\x6d\x5a\x45\x45\x6a\x95\xf7\x50\x55\ +\x86\x05\x39\xa0\x1e\xbd\xe3\xeb\x29\xf1\x32\x23\x01\x07\x0a\xae\ +\xf5\xa4\x34\x1c\xe8\x3a\x83\x9c\x18\xaf\xf7\x38\x2a\x90\x0c\x20\ +\x2a\x36\x76\x2e\xea\xac\xbc\xd8\x3f\x4c\xcc\x85\x46\xce\x63\xc2\ +\x86\x55\x47\x4b\x48\x34\x51\xa9\x86\x93\xc4\x3e\x63\x4f\x90\x66\ +\x93\xd2\xea\xac\x76\x30\x91\xa2\x12\x87\x51\x63\x27\x2e\xe3\x15\ +\x2c\x9a\xe6\xf8\xdd\x7b\x6c\xf9\x2b\xaa\x2e\xba\x1d\x87\xb1\x19\ +\xbf\xac\xa6\xde\x27\x27\xfd\x8c\x0c\x1a\xc7\xf6\x97\xcb\x3e\xff\ +\x5a\x0a\xd3\xd3\xaf\xcf\xe7\x69\x1a\x1e\xa6\x68\x0c\x3f\xf4\x7d\ +\x1e\x37\x06\x2f\xe7\x71\xd3\x57\xbe\xcc\x55\xef\xbb\xf1\x65\x47\ +\x33\xe5\x4f\x4e\x71\x4c\x5b\x24\xb7\x46\x3c\x06\x41\x77\x7b\xc6\ +\xef\xda\xf1\x14\x23\x87\x6c\x02\x00\x9a\xa6\x35\x14\x87\x9f\x1b\ +\xf8\x35\xe8\x39\x22\x32\x53\x24\x46\x5b\x2d\x2f\x20\x49\xae\x48\ +\x1a\x1b\x68\x05\xff\xc5\xd6\xa4\x09\x0a\x27\xb1\x12\xb6\x58\x36\ +\xb1\xad\x8e\xc5\x4b\xd4\xa2\x56\x3b\xa6\xc5\xc1\xa5\x92\x4b\x4a\ +\xcc\x45\x6c\x14\x62\xcd\x13\xf9\x0e\x2a\x20\x76\xb6\x47\xc4\x11\ +\xd2\x8a\xa0\x48\x5c\xe8\x38\x56\xb5\xf1\xf7\x26\x4e\x6b\x72\x6d\ +\x42\xcb\xf8\x80\xb6\xe9\x65\x36\xef\x1c\xb1\xc2\xbe\x80\xfb\x50\ +\x76\x01\x13\x81\xd7\xfb\x3e\xbb\x7d\x9f\xef\x44\x99\x9c\xfa\xe6\ +\x26\xde\xfb\x4f\xbf\x60\xcb\xe3\x17\xf2\x0f\xd7\xa6\x57\x50\xdf\ +\x04\xf5\xcd\xd0\x3c\x41\x19\xdf\x0e\x13\xa7\xc2\xe4\x63\x94\x8e\ +\x99\xd0\x3c\x1e\x0a\x9f\xdc\x55\x2d\x92\xab\x91\x4f\x4e\xee\xf3\ +\xa0\x17\x3f\x28\x9d\x3e\xe5\xe5\xe3\x00\x15\xb7\xa0\xef\xa1\x0b\ +\xa6\x0f\x97\xcc\x3f\xa8\x72\x1d\x78\x05\x5b\xd8\xc5\xba\x63\x9a\ +\x51\xbd\x62\xb1\x66\xb0\xa2\x84\x4a\x52\xbc\x05\x0c\x25\x8f\x4d\ +\xc6\xb4\xe0\x80\x4b\x64\xce\xe3\xb9\x99\x1f\xeb\x7d\x75\xec\x63\ +\xfc\x1d\x12\x41\xc6\xb6\xe9\x49\x9c\x2b\x55\x37\xaa\x49\xae\xdb\ +\xa4\x0e\x61\x06\xd4\x8a\x4d\x52\x98\x07\x51\xb4\x6c\xd8\xba\xa6\ +\xc4\x23\x3f\xee\xa3\x77\x77\x18\x4e\xbe\xa8\xf0\xc5\x28\x67\xfb\ +\x3e\xa0\x3f\x62\x70\x8c\x00\x39\x0f\xbe\xfa\xe4\x13\x68\xe9\x78\ +\x6e\x3c\xfd\xe5\x97\x65\x36\x4f\x50\x5e\x77\x3c\xcc\x98\xaf\x1c\ +\x77\x8a\x32\xfb\x54\xe5\xb8\x53\xa1\x3e\x73\x8a\x03\xd7\x16\xf2\ +\xd7\x2e\x25\x38\x2c\x01\xd0\xcd\x97\xe6\xf7\x6d\x1d\xba\xd6\x28\ +\xff\xac\x30\x21\x71\x13\x12\x2f\x29\x16\x06\xcd\x70\xe0\xdc\x9c\ +\xa1\xed\x79\x8b\x45\xb1\x4a\x55\x97\xad\x55\x6c\x04\xd1\x24\x1a\ +\x5d\x22\x27\x47\xac\xec\x52\x6a\x3e\x0c\x0e\x21\xdf\xb1\xef\xea\ +\x78\x8f\xa2\xc6\xf1\x45\x92\x73\x64\x8f\x71\xd4\x7b\x84\x0d\x38\ +\xa4\x17\x4d\xb4\x41\xca\x04\x56\x3c\x94\x62\x6f\xc0\x8a\xef\xf4\ +\xf3\xdc\x23\x23\x94\x55\xb9\x0d\x78\x11\x68\x6b\xcd\xe1\x07\xd0\ +\xdd\x1f\xce\xc7\x05\xd7\xbe\x95\x0f\x7f\xe3\x76\x1a\x5b\x5a\x28\ +\x8d\xc0\xb2\xaf\x09\xad\x93\xd3\xfb\x37\x3c\x04\xc5\x7e\x18\xe8\ +\x11\xba\x77\xc1\xbe\x4e\xe8\xda\x26\x74\x6d\x83\xe1\x81\x4a\xd7\ +\x2e\x57\x50\xfe\xe8\x0c\x38\xf5\xf5\xca\x79\x57\x1b\xe6\x9c\x71\ +\xf0\x49\xbf\x44\x0a\x32\xaa\x00\x00\xec\xbd\x6f\xd1\xc9\xc6\x70\ +\x27\x78\xc7\xab\xe3\x83\x5b\xf6\x57\x32\x11\x95\x83\x14\xa4\xd0\ +\xaf\xe2\xae\x4a\xb1\x1d\x3d\xc5\xb9\xa9\x8e\x77\x6e\x4f\xa4\x90\ +\x4e\x9c\xb5\x7a\x45\xdd\xa4\x7c\xcc\xdd\x71\x57\xb4\xe2\x8d\xa2\ +\x29\x6c\x61\xc0\x3e\x9f\x05\x6c\xa5\xdf\x13\x1a\x3d\x07\xea\xb6\ +\xae\x5b\x80\xd5\x77\x0e\xf0\xd8\xbf\x0d\xf2\x43\x55\x56\x03\x2d\ +\x93\xda\x29\x0e\x34\x52\x1e\x9e\x4c\x4d\xfd\x0c\x2e\xba\xee\x46\ +\x4e\x38\xe7\x7c\xe7\x5e\x37\x8d\x87\xd6\x36\xa5\xb5\x0d\xda\xa6\ +\x85\x26\x60\x54\x34\x73\x37\x6c\x7b\x5a\xd8\xf6\x34\x6c\x79\x42\ +\xd8\xf4\xa8\xb0\x7d\x23\x98\x20\x9d\xc6\x8e\x59\xca\x65\xd7\x1b\ +\x4e\x38\xdb\x15\x92\x71\x93\xa0\x7d\x7a\xe5\xf9\xab\x0a\x40\xf7\ +\xfd\x8b\xa7\x05\x86\x5b\x15\xde\x6c\x94\x7c\x9c\xec\x53\x2b\x09\ +\xe4\x30\xc2\x70\x29\xcf\x92\xf5\x5c\xad\x58\x45\x1d\x71\x72\x27\ +\x16\xaa\x4f\x4c\x1a\x41\xd8\x00\x4e\xda\x64\x41\x1d\xed\x60\x9f\ +\x23\x16\x36\x63\x41\x00\x96\x36\x11\x75\x91\x4c\xc1\x45\xfc\x2c\ +\x41\x48\x8c\x9d\x33\xe9\x96\xd9\x51\x78\xa1\xe9\x4a\xfe\xc7\x3f\ +\x9f\xc1\x43\xf7\x36\x10\x36\x31\x39\x9e\x43\x6d\xff\xd7\xda\xa6\ +\x1c\x3b\x4f\x99\xbd\x00\x66\x9f\xa6\xcc\x5f\xa4\x4c\x99\x59\xfd\ +\xd8\x17\x9f\x83\xff\xf8\x85\xf0\xc8\x32\x61\xcb\xe3\xc2\x60\xef\ +\xc1\x83\xbf\xe6\x89\xca\xcc\xf9\x30\x7f\x91\x72\xca\x85\x5a\x5d\ +\x00\x0e\xdc\xbf\xb8\xde\x0f\xcc\x3b\x8c\xca\xc7\x89\xfa\xee\x26\ +\x31\x71\x9c\x2a\x56\x07\xb3\x71\x84\xc1\x4d\x06\xa5\xf9\x77\xb1\ +\x08\x02\xc9\x84\xa5\x25\xb4\x8e\x8a\xb7\x63\xb5\xac\x30\x24\x2b\ +\x55\x32\xda\x23\xa3\x51\xd2\x90\x52\x13\x28\x3a\x11\x44\x0b\x09\ +\x74\x35\x80\xa6\x97\xa8\x6a\xf9\x31\x59\xb3\xa5\x15\x02\xbb\x75\ +\xcf\x34\xfe\xfe\xc7\x7f\xc7\x2f\x1e\xbb\x82\x92\x5f\x13\xad\xf0\ +\x61\x3a\x66\xd6\xd2\x32\x51\x99\x30\x25\xfc\x48\x4d\x58\xb5\x46\ +\xe0\x43\xef\xde\x50\xdd\xf7\xec\x81\xce\xcd\xa0\xa6\x72\x4a\xa6\ +\xce\x56\xce\xbc\x4c\x39\xef\x8f\x95\x13\xce\x55\x1e\xf8\x91\x70\ +\xf7\xb7\x3d\x36\xfe\x4e\xaa\xfa\x09\x6d\xc7\x86\x2b\xbd\x50\x17\ +\x5e\xdf\x60\x8f\xd0\xd7\x0d\xdd\xbb\xa0\x54\x94\x83\x6b\x00\x80\ +\xfd\xf7\x2d\x3a\x3e\x08\xf4\x33\xc0\x9b\x15\x29\x24\x71\xb9\xb8\ +\x64\xd0\x6a\x68\x5f\x16\xc8\x50\xdb\xe6\x4a\x66\x75\x56\xa8\xfa\ +\x8c\xf3\x28\xe9\xe4\x25\xf1\x87\x02\x62\xdc\x09\xb7\x91\x27\xc7\ +\xc4\x58\xb9\x08\xa9\xf6\xbe\x56\x6a\x1c\x67\x82\xed\x6c\xa6\xab\ +\x5d\x6c\xe7\x50\x44\x31\x06\xee\xde\x74\x31\x9f\xfd\xd5\x1c\x16\ +\xff\xf9\x55\x5c\xf4\xf6\xf9\xd4\x35\x1c\x5a\xd2\xaa\x6b\x1b\x6c\ +\x5d\x2f\x6c\x59\x0b\x1b\x1e\x16\xd6\xfd\x56\x18\x1e\x14\x47\x9d\ +\x07\x11\xcc\xe3\xe5\x95\xb3\xaf\x0c\x85\x63\xee\x59\xca\x8c\xf9\ +\x50\x38\x88\xc2\xd9\xf7\x22\x6c\x5e\x23\xac\x5b\x21\xac\xba\x4b\ +\x5e\xba\x51\xe4\xfe\xe5\x0b\xff\xdc\x28\x5f\x50\xa5\x45\xd5\x75\ +\x04\x5d\x86\xb8\x5a\x70\xac\xa4\x93\xe6\x40\x2d\xb8\x37\xdf\xca\ +\xe3\x4b\xd6\x54\xc4\xb1\x3a\xd6\x79\x13\x84\x31\x83\xcd\x6b\x16\ +\x0f\x50\x57\xbb\x88\x26\x66\xc2\x09\xe9\x2c\x81\xaa\xf4\x4d\xb2\ +\x02\x6a\x32\x9a\x28\xe3\x58\x46\xb2\x25\x18\xfc\x42\x33\x4f\xbc\ +\x50\x64\xf8\xa3\x69\xfb\x9e\x91\x7f\x98\x9e\x71\x3a\xd5\x89\x94\ +\x62\xd3\x58\xb8\xb9\x92\x40\x1d\x04\xb0\xe9\x51\x78\xf8\xe7\x1e\ +\x0f\xff\x4c\xe8\xdc\x2c\x89\xf6\x5b\xf4\x16\xe5\x5d\x9f\x36\x4c\ +\x9f\x37\xba\x93\x67\x8f\xe5\x5a\xd6\x83\x46\x01\x8e\x34\xde\x7d\ +\xee\x15\x9e\xc8\xd7\x50\x99\x66\xec\x40\x3c\x8a\x85\xd5\xc2\xcb\ +\x35\xc3\x1a\xa8\x24\x4a\x66\xf9\x01\x96\x61\x51\x75\x43\x30\xfb\ +\xab\x1c\x35\x9c\x4e\x68\x62\x01\x44\xad\xc9\xb0\x31\x07\x75\x54\ +\x3e\x99\x08\x44\xd5\xce\x5a\xda\xd1\x85\x7d\xac\xb1\xc2\xc4\x4c\ +\xc4\x91\xa9\x0a\x0a\xaf\xdf\xe0\x01\x1b\xba\xf2\xec\xea\xf3\x32\ +\xe6\x25\xb3\x20\x94\x0a\xc7\xd7\x0d\x6b\xab\xc6\xfc\xac\x7f\x18\ +\x96\x7d\xcd\xe3\xfe\x1f\x08\xa8\xe0\xe5\x95\x37\xde\xa8\x5c\xff\ +\xbf\x0d\x8d\xe3\x5e\x5a\x00\xaa\x09\xc4\x4b\x1e\xd8\x7b\xff\x79\ +\x73\xcb\xbe\x7e\x56\x95\x2b\x55\x28\x58\x09\xfd\x8a\xa8\x80\x04\ +\x23\xa7\xc2\x07\x50\xad\x22\x04\x59\x78\xd3\x11\x8a\xd8\x67\x18\ +\x05\x0a\xd5\x6c\xea\xd7\x35\x2d\x59\x4d\xa0\x19\x95\x2e\x19\x6d\ +\x63\x6b\x07\x1c\xe0\xa8\x52\xeb\x48\x06\xa7\xc0\x02\xbb\x90\xf0\ +\xf8\x5d\xbd\x1e\x9b\xf7\xe7\x28\x07\x19\x4c\x44\x2b\x53\xba\x15\ +\x59\xa6\x6a\x82\x18\xfd\xbc\xdc\xa7\x53\x3a\xe5\x9e\x1d\xf0\xa3\ +\x7f\xf4\x58\x76\x7b\x28\x08\x6d\xc7\x2a\xb7\x3c\x10\x30\x65\xd6\ +\xcb\x17\x00\x27\x17\x50\x75\x18\xdd\x26\xe8\x72\xe0\xc5\xa4\x92\ +\x86\x6a\x21\x95\x26\xd5\xae\x52\x95\x80\x15\x61\xec\x42\x85\xba\ +\x8f\x92\x99\x91\xfd\xce\xf4\x57\xcd\x64\xfe\xc4\xf6\xc0\x33\xde\ +\xbb\xa0\x55\x90\x3d\xd7\x11\xad\x22\x77\x96\x10\x3b\x29\xc5\x24\ +\xc6\x15\x75\x23\x14\xb7\x38\xd4\xaa\x24\x92\x34\x13\x3a\xa1\x21\ +\x60\x7c\xbd\x89\xae\xd7\x75\x1e\x53\xb5\x4f\x96\x76\x9c\x1c\xeb\ +\x98\x1a\x6b\x91\x05\x9f\x68\xc3\x7c\x22\x04\x0d\xda\xa6\xc1\x87\ +\xbe\x6a\xf8\xea\x9a\x80\x19\xf3\x95\xd7\x1d\xaf\xb4\x4d\x3f\x02\ +\x4a\xd8\xa8\x4e\xc3\x3d\xe7\xcc\x51\xb8\x45\x94\xcb\x54\x9d\x72\ +\xf2\x51\x4e\xa3\x55\xec\xbd\x64\xf2\xd8\x5a\x89\x16\x3a\xce\x95\ +\x0d\xf1\xaa\x6b\x5e\x54\x2b\x54\x7a\x36\xd4\x4c\xbe\x5b\xd2\x42\ +\x4e\xd1\x4c\xe8\x97\x36\xee\x0b\x05\x90\xac\x86\xc8\x82\x47\x8c\ +\xf2\xdc\x38\x8e\x6c\x4c\x46\xdd\x3d\xe0\xb1\x69\x8f\x87\x6f\xc4\ +\x89\x2c\x2a\x17\x10\x55\x70\x08\xaa\xe0\x21\x59\xff\x49\x35\xf7\ +\x99\xfd\x02\xe0\x97\xa1\x38\x10\x42\xc5\x87\x62\x02\x0e\xae\x01\ +\x80\x49\x97\x3e\xb2\x49\x8c\x3e\xa6\x46\xcb\x21\xfa\xa7\xc9\x4d\ +\x4d\x12\x24\x6a\x42\x3b\xac\x26\xba\xd1\x1a\xa5\x5f\xdd\x1f\xab\ +\xd9\x18\xdb\x56\xd5\xb6\x4d\x76\x56\x4e\x7c\x2e\x3b\x5c\xcc\xe0\ +\x0e\x8a\xc5\x59\x22\xe5\xa5\x1b\x77\xb2\xc4\xc2\x14\x9c\x1b\x2e\ +\xa1\x86\x12\xc7\x14\x48\x32\x69\x22\x2e\xda\x28\x19\x7c\x22\x9d\ +\x44\x89\x08\x2b\x4a\x5b\x63\x40\xce\xe3\x25\x26\x3f\xb3\x12\x35\ +\xc3\x68\x55\x2a\x7c\x0f\x47\x33\x08\x12\x7c\x7c\x42\xd8\x30\xbb\ +\x70\x78\x93\x5f\x91\x0c\x1a\x55\x4a\x44\x77\x1a\x64\x40\x55\xeb\ +\x45\xa5\x02\xdf\x4f\x13\x3d\x19\x47\x10\x8b\x20\xa2\x95\xb6\x3c\ +\x71\xe4\x46\xb9\x31\x89\xa3\x16\xe9\x8e\xc0\x87\xe7\x77\x8f\xb0\ +\xfc\xb1\x3e\x7e\xf4\x9b\x03\x1c\x7f\x4c\x2d\x5f\x7a\xff\x14\x5a\ +\x1b\x73\xd5\x1d\xcf\x38\x1d\x1c\xb7\x73\x8d\xd0\x4b\x9b\xf0\x24\ +\x54\x09\x67\x25\x75\x30\xd3\x28\x44\xa8\x56\x2a\xa3\xb6\xc0\x59\ +\xef\xe7\x3c\xa5\xb1\x60\x18\x29\x8b\xc5\xa8\xac\x8c\x02\x5c\xb6\ +\x91\x89\xea\x13\xa8\xf4\x33\xb2\xc9\xb6\xb0\x06\xcf\x97\x4f\xb4\ +\x3e\x9b\x17\xff\xbb\xf9\x81\x91\xa5\x0b\xff\x0f\x87\xdc\xe9\xfb\ +\xe5\x95\x87\x2b\x6b\x44\x74\x35\xca\xc5\x8a\x16\xaa\xdb\x11\x0b\ +\xff\x17\xdb\xf9\x33\x29\x09\x40\xd5\x49\x07\xa7\xb7\x3e\x2b\x20\ +\xea\xb0\x33\x8a\xa5\x80\x2f\xfe\x64\x0f\xdf\xbd\x67\x3f\xfb\x7a\ +\xd3\x1c\xc7\x86\x6d\x23\xfc\xfa\xd1\x7e\xae\xbb\x70\x1c\xef\xbc\ +\xa4\x95\x33\x8e\xaf\xcf\xa4\x49\xc5\x61\x12\x89\x43\x23\xb7\xfd\ +\x91\x8c\x6b\x9b\x64\x11\xdd\x34\x64\x1a\x39\x90\x61\x30\x44\x0b\ +\xc0\xe9\x18\x0a\xed\xcd\x86\xfe\xe1\x1c\xbe\x19\x65\xf2\x33\xbe\ +\x80\x2d\xee\x8e\x39\xaa\x88\xa6\x12\xb3\x57\x16\xd1\x1e\x51\x7a\ +\x06\x0d\x65\x6e\x06\x3e\x75\x68\x02\xf0\xb2\xa8\x43\xe3\x27\xe6\ +\x36\x7a\xa2\xf7\x80\xee\x11\x8c\x46\x1d\x93\x5d\x47\x50\x63\xda\ +\xb7\x65\x0e\x12\x04\xce\x44\x36\xd5\xf6\xe0\x23\xa7\xce\x81\x8e\ +\xd3\xcf\x88\xc5\xf8\xa9\xc9\xc1\xa3\x1b\x07\x93\x84\xca\x29\xc7\ +\xd5\xf1\xa9\x3f\xe8\x22\xc5\x3f\x00\x00\x15\x28\x49\x44\x41\x54\ +\x6b\xe7\x0b\x37\x76\x50\x5b\x23\x7c\x77\x79\x0f\xef\xfc\xdc\x4e\ +\xf6\xf4\x96\xd3\xb8\x5a\xad\x95\x29\x99\x02\x27\xc9\xf8\x23\x68\ +\x05\x78\x14\xa7\x92\xd3\x8a\x58\x75\x34\x84\x4a\x26\x9c\x8b\x12\ +\x47\x62\x91\x54\x26\xd4\x85\xce\xe0\x68\x93\xef\x12\x4d\xb5\x22\ +\xe9\x44\x35\xa7\x3b\x5a\xfd\x61\x62\x5a\x8d\x80\x0f\xa6\x5c\x68\ +\xc0\xe7\x93\x87\xde\x46\xfe\x65\x09\x80\x9c\xf5\xbb\x92\x60\x7e\ +\xe5\xa1\x9b\x01\x23\xe0\x70\x01\x24\x63\xcf\x53\xed\xa5\x76\xe2\ +\xde\xf5\xdc\x13\xf4\xcf\x58\x3e\x81\xcd\xdb\xd3\xc4\xe6\xaf\x7b\ +\xae\xc8\x70\xc9\x60\x0c\x7c\xe9\xfd\x53\x78\xf0\x8b\xc7\xf1\xc1\ +\x37\x4f\xe4\x86\xcb\xc7\xb3\xfd\x8e\x39\xbc\xf7\x8a\x56\x76\x75\ +\xfb\x2c\x7d\xb0\x97\x94\x0e\x60\x52\x5b\x8a\x49\x4a\xc4\x24\xeb\ +\x83\x68\x86\x73\x90\xf0\x1d\x53\x6e\x81\x88\x66\x4a\xc3\x2d\xa0\ +\x48\x1c\x74\xdb\xd2\x0a\x4a\x7d\x0d\xb4\x37\x07\x2e\xa1\xa1\x6a\ +\xce\x24\xeb\xf1\x8f\x42\x09\x8b\x5f\x17\x92\xf2\x6c\x41\x47\x72\ +\x39\x6f\xf0\xd8\x02\xfe\xe1\xec\xff\xf2\xb2\xc9\x83\xad\x97\xae\ +\xd9\xac\xaa\xcf\x09\xd1\x4e\x08\x31\x48\x42\x46\x1b\x44\x7f\x9e\ +\x98\x04\x9e\xad\xf4\x6e\xb5\x22\x37\x2f\x49\xcf\x7d\x71\xb7\xd4\ +\x00\x86\x4a\x86\xc7\x36\x15\x99\xfd\xba\x1a\x16\x9f\xdc\x98\x38\ +\x8c\xb1\x20\xbd\xe7\xb2\xf1\xb4\x34\x78\x7c\xf3\xee\x1e\xb6\x75\ +\x95\x1c\x9a\x98\xdd\xc0\xc1\x9d\xc8\x38\x72\x93\x6a\x18\x4c\x4a\ +\x0d\x23\xeb\xbe\x48\xc6\x86\xa7\x44\xb6\x04\xa0\xb2\x66\xa2\xbd\ +\x49\xf1\xac\xf2\x35\x07\x7a\xd6\x4a\x6c\x20\x7d\x4d\x33\x4e\xa1\ +\xc5\x56\x56\x54\xc2\x3b\xe5\x0b\xda\x2f\xc6\x74\x1f\x37\x8e\xa1\ +\x43\x29\x08\x39\x64\x01\x88\x6e\xd8\xd3\x28\xfd\x9e\x67\x43\x02\ +\x2e\x7f\x50\xd4\x4e\xaa\xd9\x90\x6a\x06\x84\xc9\xb6\xdc\x4e\xf8\ +\x82\x06\xb7\x12\x41\x39\xef\xc4\x46\xe6\xcf\xac\x63\x4b\x67\x89\ +\xfd\x7d\x3e\x26\x16\xba\x28\xf6\x9e\x3b\xad\x86\xb7\x2e\x6e\xe6\ +\x85\xdd\x65\xbe\xf4\xb3\xee\xa8\x82\x38\x65\xd0\x8a\x83\x55\xaa\ +\xe3\xf8\x25\x02\x28\x36\x63\x38\x3b\xc1\x69\x58\xe9\x84\xb0\xea\ +\xc2\x06\x9a\xc9\x7d\xc4\x7e\x46\x4b\xad\x66\x38\x13\xee\x04\x8b\ +\x03\x49\xeb\x4b\xc4\xe7\x9a\x5e\x8a\xa0\x02\x03\x8a\x76\x8a\x9a\ +\xee\xcd\x5b\x0f\xaf\x5f\xc0\x21\x09\x40\xde\xd3\xdf\x08\xe6\x71\ +\x55\x13\x24\xa0\x85\x6d\xbb\xa2\xdd\x30\x30\xc6\xcd\xa2\x69\x95\ +\x5c\x7c\x02\x7c\x98\x8c\x2f\x41\x02\xd5\xc6\xb6\x58\x50\x3e\xf4\ +\x96\x89\x4c\x68\xce\xf1\x7f\x96\xee\x63\x47\x57\xd9\x12\x36\xc3\ +\xee\x6e\x9f\xa7\x5e\x08\x69\x70\xe7\xcc\xad\x23\xe7\xc5\xac\xe2\ +\x51\xb2\x7b\x9a\xb1\xb1\xd6\xc3\x54\x0d\x1b\x87\x38\x92\x64\x13\ +\x2d\xa1\x76\xc0\x21\xb1\xd8\x50\x9a\x02\x48\xaa\xd0\xd1\x6c\xc8\ +\x7b\xc6\xfd\xde\x0a\xd6\x94\x66\x30\x56\xaa\xfb\x02\x51\xef\x38\ +\x35\x1a\xa8\x30\x24\xc2\x00\xbe\x8c\x1c\x3f\x72\x78\x02\x70\x48\ +\xfb\xed\xfe\xe3\x87\xa7\xed\x1b\x19\x34\x13\x81\x33\x04\x1a\x6d\ +\xcc\x3e\x2a\x18\xb2\xf8\x78\x95\x61\x13\x16\xb8\x13\x86\xd9\x16\ +\x6b\x17\x97\xa2\x2d\x19\x15\x38\xbd\xad\x86\x91\xb2\xe1\x7b\xcb\ +\x7b\xf9\xb7\x15\x7d\x14\x47\x94\x13\x67\xd4\x72\xfb\xb2\x6e\x6e\ +\xbd\xb3\x9b\xa7\x5e\x18\xc1\x0f\x60\xc3\xd6\x12\xcb\x1e\x1d\xe4\ +\xae\x55\x03\x5c\xb3\xb0\x29\x51\xe7\x69\x38\x97\xc9\xe2\xd9\x0e\ +\x80\xda\x85\xae\x99\x48\x41\xdc\x95\x29\x99\x1a\x85\x94\x22\x66\ +\x9b\x0f\xc5\xcb\x29\x35\xa2\x0c\x95\x61\xa8\x24\x2e\x0b\xa9\x4a\ +\x0e\xc0\x0e\x7b\x2b\x2a\x9e\x62\xef\x44\x54\x3d\xd1\x40\xd0\xfd\ +\x39\x4f\xd7\xfa\x5a\xde\x30\xa3\xc8\x81\x4f\xad\x39\x74\x21\x38\ +\x64\xb7\x61\xf0\xde\xd3\x66\x94\x4a\xe6\x67\x28\x0b\x4c\x65\x89\ +\x4a\x95\x36\x52\xd9\x10\x4f\x1c\x7d\x29\x99\x46\x02\xa8\x56\x1a\ +\xde\x08\x9f\x1f\x2c\x19\x6e\xb8\xa5\x93\x5f\x3f\x76\xf0\xe6\xd8\ +\xb5\x05\xe1\xce\xbf\x9b\xc2\x05\x27\xd5\xb9\x6c\x5e\x67\x05\x57\ +\xcb\xeb\x57\xe1\x25\x66\x26\x48\x47\x2b\x85\xd3\x2a\xb9\x8e\x48\ +\x7b\x74\x0d\xc2\xfa\x5d\x39\x37\x84\xd4\x0c\x54\x9d\xf5\x05\xaa\ +\x20\x82\x61\xa4\x69\xd4\x43\x47\xf2\x9e\xd9\xe4\x09\x3f\xa8\xd3\ +\xd2\xd2\xb3\xf2\xec\x78\xb9\xf5\x80\x87\x6d\x02\x00\x1a\x97\x3c\ +\xbe\x15\xd8\xa1\x09\x36\x6f\xa1\x76\x8a\xa3\xe6\x34\x1b\xda\x54\ +\x81\x81\x55\xa9\x92\x0d\x8b\x42\x35\x49\x72\x12\x20\x50\x97\x17\ +\xbe\x72\x53\x07\x8b\xe7\xd7\x3b\xb8\x7f\xfc\x38\x9f\x83\x33\x8e\ +\xaf\xe5\xef\xdf\x31\x81\xfb\x3f\xfb\x3a\x16\x9e\x50\x97\x56\xa4\ +\x19\x32\xd8\x03\x95\xc0\x8e\xb8\xa0\x94\x58\x49\x2a\x91\x8c\x90\ +\x4b\x25\x1b\x4e\xe2\x42\x58\x3b\x42\x8a\x6c\xca\xc4\xfa\x51\x57\ +\x74\x95\xc9\xcf\x3c\xd6\x8c\xc3\xac\x51\xd3\x52\x23\x7d\x39\x09\ +\x76\xd5\x0e\x33\xc0\xa7\x0e\x6f\x27\xb1\xc3\xea\x13\xa8\xaa\x2b\ +\x05\x5d\x8c\xd0\x6a\x54\xdc\x14\x6c\xb5\x0a\x2c\x47\x8a\xd3\xf0\ +\x49\x93\x7a\x0d\x5b\x00\x6c\xa6\xb1\x49\x49\x24\xc0\xea\x67\x87\ +\xf8\xeb\x6f\xed\xe1\x89\x2d\x69\x3f\xcb\x90\x74\xa9\x94\xca\xca\ +\x67\xdf\x3d\x89\x3f\xbb\xb8\x25\x13\xb7\x6b\xda\x30\x42\x4d\x25\ +\x7b\xc8\xe6\x2f\x4a\x96\x9b\x98\xa9\x21\xc8\x92\x4c\x92\x53\xa9\ +\x55\x31\x94\x41\x08\xa3\x45\xe1\x01\xe3\xeb\x03\x7a\x8a\x1e\x95\ +\x45\x1e\xd5\x60\xe2\x51\xf2\x25\xe1\xbd\x33\xa0\x45\xf1\x74\x1f\ +\x81\x1e\x98\xd2\xc4\xc8\xe1\x44\x00\x87\xa5\x01\x00\x1a\x6b\xe4\ +\x6e\x94\xc7\xd5\xa0\x9e\x13\xd6\xe1\x38\x2d\x36\xb9\x42\xac\x88\ +\xa1\x32\xa9\x63\x63\xf6\x26\x93\xec\x49\xc3\xc2\xd3\x66\xd7\xf3\ +\xc1\x3f\x1e\xcf\xac\x29\x05\x3e\xf3\x67\x93\x58\x75\xdb\xb1\x6c\ +\xf9\xf6\x2c\x96\xff\xe3\x31\x0c\x0c\x2b\xff\x77\x59\x4f\x1a\xc2\ +\x89\x4b\x48\x4d\xf2\x09\xaa\x4e\xbd\x87\x58\x4e\xaa\x53\xe4\xaa\ +\x6e\x09\x8a\x54\x0d\x63\x33\x66\xcf\x52\xef\xd9\x2c\xa2\xe4\x94\ +\x8e\x26\xa5\xe0\x99\x2a\x55\x47\xea\xe4\x00\x88\x98\xc6\x55\x20\ +\x60\x8d\x21\x72\xa0\x24\x62\xfa\x14\x33\xd4\xd6\x74\xf0\xc9\xd7\ +\x51\xcc\xfd\x61\x69\x80\x9a\x25\xd3\xd6\x17\x97\x6d\xfd\x25\xca\ +\x69\xaa\xb4\x52\x2d\xb5\x29\xea\x84\xcd\x6e\xac\x2c\x64\xde\xb2\ +\x6c\x6b\x58\xcf\x97\xd6\x17\x44\x39\x79\x03\x35\x79\xe5\x2d\x0b\ +\x9b\x79\xcb\xc2\x26\xe7\x96\xcc\x9e\x5a\xc3\xc9\x33\x6b\x78\xea\ +\x85\x12\x0f\x6f\x18\xe2\xbc\x13\xea\x92\xfe\xbf\xc9\x87\xd5\xc6\ +\xf9\xd5\xb9\x2d\x9a\x61\xf7\xaa\xe2\xc4\xf5\x15\x64\x17\xa8\x42\ +\xe0\xd0\x2c\xa6\x6c\x55\xbf\x85\xe5\xea\xe3\x1b\x0d\xad\x43\x1e\ +\xfb\x06\xa8\x8a\xef\xdb\x9f\x37\x4e\xa6\xd1\x11\x12\x0d\x99\x83\ +\x5a\x56\x43\x49\x95\xe0\xc5\x81\x83\x0b\xc0\x68\x1a\xe2\xb0\x34\ +\x80\xc8\x2f\x4d\x53\xbd\xb7\x54\x24\xac\x23\x94\x04\xd6\x35\x91\ +\x0d\x4c\x59\xb8\x62\x6c\x67\x27\x86\x7a\xad\xac\x61\x12\xfb\x9a\ +\x14\x4a\x8e\x6b\xf2\xe3\x1a\x01\xcd\x86\x44\x24\xdf\x19\x6a\x0c\ +\xc3\x47\xae\x1e\xcf\xa4\x16\x8f\xcf\xdf\xd9\xc3\xe6\x17\x4b\x29\ +\x7f\x40\x4d\xa6\xf9\xb3\xba\x90\xb4\xdd\xfb\x44\xb3\x34\x35\x4d\ +\x21\x6d\x32\x59\x4a\xa5\x0a\x25\x4c\x12\xe4\xb0\x82\xee\x26\x50\ +\x9f\x87\xc9\x4d\x26\x63\xdf\x6d\x18\x18\x0b\x06\x27\x43\x92\x49\ +\x7b\xb6\x44\xf5\x12\x81\xa7\xda\xef\x79\xf4\x1d\x38\x82\xed\x7e\ +\xbc\xc3\xfd\x60\xae\x51\x76\x63\xb4\x53\xb2\x71\xaa\xb1\xf2\xe9\ +\x6a\xe5\x6a\xad\xb8\x58\x47\x59\x35\x0e\x13\x48\xb2\x04\x89\x0c\ +\xfb\xc6\x0e\xbf\x14\x2e\x39\xad\x9e\xf7\x5e\x36\x8e\x07\x9e\x2a\ +\xf2\xed\x7b\xfb\x53\x9b\x9c\x90\x3a\x32\xc4\x0c\xc9\x10\x3a\x9c\ +\xef\xb4\x42\x56\xa9\x04\xe5\xb2\x66\xc1\x4d\x0f\x4b\x62\x0a\xc4\ +\xc9\x4e\x2b\x9e\x40\x73\x8d\x8e\x62\xef\x33\xd4\xb3\x2a\x02\x6a\ +\x35\x2e\xf0\x3d\xd1\x1e\x0f\xba\x08\xe8\x3d\xf1\x53\x87\xdf\xea\ +\xff\xb0\x05\x80\x73\x8e\x33\xe2\xe9\x3d\xa8\xf6\xc8\x28\x54\x26\ +\x27\x19\x44\x86\x4f\xef\xc8\x80\xad\x9d\x4c\x0a\x1f\x2b\x55\x70\ +\x04\x3b\x57\x90\x2e\xdd\x96\x06\x8f\x0f\x5e\xd5\x02\xc0\xd7\x7e\ +\xdd\x97\x6c\xba\x20\x99\xd8\x54\x9c\x0d\x1d\x33\x31\x79\x45\xb8\ +\x97\x31\xa2\xea\x46\x2b\x4e\x07\xf0\x04\x75\xb4\x1c\xc9\x0a\x16\ +\xb2\x52\xc8\x29\x13\xea\x8d\xeb\xf8\xaa\x55\xce\xe6\xd0\xd7\x33\ +\x35\x16\x1a\x77\x31\x50\x5f\xd0\x3e\xd4\xec\xf5\x46\x8e\xac\x59\ +\xf4\x61\x0b\x80\xc8\xbf\x69\xce\x93\x7b\x44\x58\x13\xe1\xd2\x16\ +\x16\x5e\x59\x7b\x27\x55\xb8\x7f\x88\xb1\xa0\xdf\x30\x17\x60\x03\ +\x2c\x0e\xd3\x26\xc3\x16\x4a\xa5\xc7\x24\x94\xb2\xa6\x3a\x8f\x77\ +\x5e\xd4\x84\x31\xf0\xb5\x5f\x0f\x30\x5c\xca\x76\xfb\x70\x27\x32\ +\x09\xa9\x6c\x94\x48\xb3\xdc\x7f\x17\x30\xca\x90\x32\xac\xf4\xb1\ +\xb5\x53\x58\x86\x78\x92\xf6\xcd\x53\x6a\xf2\xc2\xe4\x26\xa5\x90\ +\x33\xee\xa2\xc1\x4d\x80\x55\xb6\x84\x89\x72\x2c\x60\x44\xb4\xe4\ +\xa1\x83\x88\x8e\xb4\xd6\x1d\xd9\x46\xd2\xde\x91\x7c\xb8\xb1\xbd\ +\x66\xbd\xc0\x32\x54\x07\xe2\x55\x1e\xdb\x4d\x9b\xdf\xef\xc2\xaf\ +\x26\x31\x0f\x62\x43\xfa\xd9\x22\x0c\x2b\x53\xe8\x20\x66\x51\x48\ +\x15\x4f\x9c\xad\x61\x40\xf9\x1f\x97\x37\x73\xfa\xec\x1a\xfe\xe5\ +\x57\xbd\xac\xd8\x50\xc4\x2d\x3c\xb5\x6e\x7a\x42\xf9\x32\xa9\xd7\ +\xa5\x54\xf4\x37\x8a\xc9\x24\x95\x4c\x24\xb5\xe8\x66\x89\x71\xce\ +\x24\xbe\x70\x34\x5b\x5c\x8c\x32\xa1\xde\x30\xae\x4e\x47\xef\x0c\ +\x6d\x9b\x5a\x31\x96\xc2\x53\x5b\x6e\xcb\x28\xc5\xa6\x9a\x83\xda\ +\x7f\xb9\xf9\x25\xe6\xf9\x88\x04\x40\xce\x78\xa2\xec\xe5\x75\x99\ +\xaa\xf6\x25\x76\x33\x2e\xa8\x8c\x9d\xba\x6c\xde\xdd\xc6\xdb\x93\ +\xe4\x4f\xaa\x05\xec\x24\x90\xc3\xf7\x57\x4b\xf5\xdb\x1a\x40\xdc\ +\x82\x92\x79\xc7\x16\xf8\xe8\x9b\x5b\xd8\xb6\x27\xe0\x8b\x3f\xef\ +\xcb\x10\x3d\xac\xc9\xb3\xf0\x87\xa8\xea\x8f\xe1\xb2\x61\xa8\x64\ +\x32\x95\x47\x16\x40\x24\x54\x9a\x31\x2b\xb2\xd0\x4c\xdb\xdc\x6c\ +\x28\x18\xdf\xf0\xc6\x1a\x65\x7c\x9d\x3a\xce\x65\xb6\xa0\x26\xbe\ +\x07\x61\x13\xf1\xc0\x76\x1a\x55\x44\x87\x3d\xd1\x9e\x5a\x8f\xbe\ +\x69\x4d\x94\x0e\x82\x01\xe8\xa7\x5e\xa2\xb1\xf4\x11\x09\x00\x40\ +\x8d\x68\x9f\x27\xba\xb5\x92\x82\x1d\x2b\x44\x63\x91\x3f\x52\x4e\ +\x7e\xa2\x0d\x2a\x30\x69\x37\xb3\x58\xa1\x26\x45\x33\xc4\x52\x4d\ +\x9c\x3c\x05\xf2\x1e\x5c\x75\x56\x3d\x33\xda\xf2\xac\x78\x7a\x84\ +\x4d\x3b\x4a\x19\xc4\xcf\x4e\x32\xa5\xc5\x20\xdf\xb8\x7f\x90\x8e\ +\xeb\xf7\xf0\xf7\x3f\xea\xa7\x6f\x38\xe5\x12\xa8\x58\x0e\x9a\xda\ +\xd7\xee\x62\xf9\x2a\x36\x90\x65\x09\x86\xb8\xbc\x40\x13\x5d\x76\ +\x5d\x81\xaa\x79\x00\x27\x4d\x5e\xc1\x3e\x8e\x55\x09\x43\x18\xb3\ +\xbb\xec\xb3\x8b\x47\x19\xfe\x83\x99\x00\x80\x42\x43\x6e\x40\x94\ +\x5f\x79\x68\x77\x5a\x9e\x95\x4e\x38\x4e\x43\x85\xc4\x8e\x39\x37\ +\x25\xd9\x12\x53\x2b\x8b\x44\x63\xad\x92\x24\x8e\x34\x55\xff\xa1\ +\x7c\x89\xd5\x9a\x36\xd5\x06\x1f\x7e\x53\x88\x15\x7c\xe1\x67\xfd\ +\x11\x8d\xac\xb2\x56\x20\x71\xf6\x02\xc3\x73\xbb\x02\x4a\x3e\xfc\ +\xeb\xc3\xc3\xdc\xbb\x76\x24\x09\xe4\xb3\x05\x20\x49\xd6\x2f\x93\ +\x3f\x10\xeb\x5a\xc5\x12\x4a\x89\xd1\xc7\x4c\x1d\x63\x63\x8d\x61\ +\x7c\x43\xe0\x82\x66\x96\x0f\x20\x15\xbe\x80\x02\x46\x05\x53\xf6\ +\xc4\xf4\x01\xbd\x05\x3d\xf2\x8d\xbe\x8e\x58\x00\xb8\x60\x5a\xd1\ +\xf3\x74\xb9\x51\xf3\x24\xaa\xea\x55\x71\x6a\x04\xe3\xb2\x6e\x22\ +\x88\x57\x34\x8d\xb3\x53\x87\xc9\x38\x4e\x9f\x64\x35\x84\x55\x80\ +\x81\xd8\x1a\xc6\x38\x29\xdb\xab\xcf\xa9\xe7\x1d\xe7\xd7\xf3\xf3\ +\x55\x43\xfc\x78\xc5\x60\xf2\xbe\xed\x97\x88\x42\xb9\x6c\x78\xec\ +\x39\x9f\x03\x83\xd1\x06\x92\x43\xca\x2f\x1f\x1b\x49\xaf\x4b\x2c\ +\x36\xb0\xb8\x45\xa6\xd9\xfd\x84\x9c\xc8\x41\xdc\x4d\x22\x12\xf2\ +\xab\x86\x06\xa7\x21\x0f\x93\x1a\x94\x9a\x9c\x56\x68\x3f\xd1\xca\ +\x72\xba\xb0\x7e\x25\xa6\xdd\xe1\x7b\x50\x1c\x56\xca\x2c\xfd\x03\ +\x3a\x81\xa1\x27\x7c\xb7\x36\x8c\xf3\x36\x78\x1e\xf7\x08\x5a\x54\ +\x35\x19\x89\xb6\xe8\x55\xaa\x88\x98\x8a\x1c\xb7\x54\xa3\x5c\x3b\ +\x5c\x39\xd7\xee\x4b\xe2\x12\x64\x53\xc7\x26\xd1\x02\x93\x9a\x73\ +\x7c\xf8\x4d\xcd\x28\xf0\xe5\x65\x03\x0c\x97\xdd\x8d\xa1\xe2\xa8\ +\xaa\x90\x13\xae\xf8\xdf\xdd\x7c\xef\xc1\x50\x93\xfe\xf6\xd3\xad\ +\x7c\xe7\xa6\x16\x2b\xb9\x85\x53\x49\x44\x06\xf2\xae\xa0\x71\xa9\ +\xdb\x86\xbe\x82\x22\x12\x69\x73\xcf\x83\x89\x8d\x4a\x63\x4d\xb5\ +\x7b\xe1\x4e\x7e\x46\x13\xf8\xa8\x0e\x09\x0c\x79\x3e\xe6\xe5\xb7\ +\xde\x7e\xa5\x34\x00\x20\x17\x3e\x33\xa4\x81\xfe\x07\xaa\x43\x59\ +\xe0\x44\xac\xba\x3f\x07\x2a\xce\xa6\x57\xad\x1f\xec\xf2\xf3\xb2\ +\xd5\x40\x90\x76\xf3\xaa\x92\x4e\xb5\xbe\x68\xde\xb4\x02\x6f\x3a\ +\xb3\x9e\xce\x6e\xc3\x27\x7e\xd8\xcf\x4d\x5f\xef\xe1\xde\x27\x86\ +\x01\x65\xcb\xae\x32\x9f\xf8\x61\x3f\xa7\xfc\xd5\x3e\x86\x46\xe0\ +\xd8\x49\x1e\x9f\xbc\xb6\x81\x8e\x56\x89\x6e\x8a\x54\xa6\x66\xb5\ +\x5a\x22\xdd\x0d\x35\xd3\xc2\x58\x37\x3f\x20\x19\x1c\x44\x50\x9a\ +\x6a\xa0\xa1\x60\x67\x1e\xb3\xed\xcb\xd2\xe7\x39\x31\x71\x42\xd2\ +\x08\xf4\xe7\x60\xcf\xc2\x0e\xfa\x0e\x96\x02\xd6\x83\xa4\xfc\x8f\ +\xda\xae\x61\xb9\x9c\x74\xab\xd1\xcd\xa8\x4e\x8a\xaf\xdd\xd3\x4c\ +\xd7\x10\xbb\xb9\x93\x85\x15\x54\x10\x35\x24\x2e\xfa\xcc\xb6\xa7\ +\x0b\xed\x6f\xb8\xf7\x2f\x14\xf2\x76\xd7\x2f\x17\x29\xec\x1f\x32\ +\xdc\xb3\x76\x84\x7d\x7d\x21\x93\xf8\xff\xfe\x7a\x10\x80\xff\xf7\ +\x9b\x22\xa7\xcc\xc8\xf3\x8e\x45\x75\xdc\xbf\xae\xc4\xe6\x5d\xe1\ +\xfb\x2d\xf5\xc2\xe2\xb9\x05\xa6\x8c\xf7\xaa\x10\x34\x6c\x1f\xc0\ +\x6a\x5c\x39\x4a\xb6\x93\x0c\xc0\xe4\x34\xcc\xb2\xb6\x7f\x15\x31\ +\x34\xd6\x86\x5b\xb7\x27\x5b\xf3\x68\xf5\xcc\xa0\x51\x41\x30\x81\ +\x87\xf6\x8a\x61\x97\xe4\xe8\xa6\x78\x70\x1f\xe0\x60\x59\xc2\xa3\ +\x26\x00\x0d\x75\xd2\x39\x30\x18\xdc\x0b\xcc\xf1\xc2\x0d\x22\x9c\ +\xb4\x6f\x76\x65\xb8\x08\x9c\x7b\xe3\x54\x5d\xb6\xbc\x7d\x63\x7c\ +\x1f\xae\xf8\xd4\x1e\x1e\x79\xb6\xc4\xd7\xde\x37\x9e\xb7\x9c\xdb\ +\x40\x7d\x8d\xab\x55\x14\xa5\xbe\x4e\xf8\xee\x03\x83\x3c\xb0\xbe\ +\x54\xf1\x9d\x4f\x6e\xf5\x79\x72\xeb\x00\xf9\x1c\x7c\xf7\xa6\x66\ +\xce\x39\x3e\xcf\xf4\xc9\xb9\xcc\xca\xab\x8c\xe9\x53\x8c\xdf\x66\ +\x05\x69\x95\x6e\xa9\x99\xcc\xa1\x55\xbf\xe8\xe6\xfa\x85\xf1\x75\ +\x86\x96\x3a\x8f\x9e\x62\x15\x1e\x80\xab\xe1\x34\x85\x81\x19\xc8\ +\x09\x83\x1c\x41\x0e\xe0\xa8\x0b\x80\x5c\xf6\x6c\xcf\xe0\xcf\x67\ +\xde\x6b\x02\xb9\x48\xd1\xc5\x9e\x88\x98\x08\xa1\x93\xcc\x8f\xb6\ +\x6f\x9a\xa8\x9d\x6d\x8b\xf7\xee\x33\x51\x03\x49\xad\x60\x54\xe7\ +\x3d\xb8\x64\x41\x1d\x1b\xb6\x97\xf9\xf3\x7f\x39\xc0\x97\x97\xf5\ +\xe3\x07\x30\x6f\x5a\x81\x0f\x5f\xd5\xc8\xca\x8d\x25\xba\x7a\x03\ +\xae\x39\xa7\x8e\xdd\x07\x5e\x9a\x20\x33\x63\x72\x8e\xd3\x66\xe6\ +\x99\x3e\x29\xe7\x66\x04\x35\xdd\x0d\x07\x75\xbc\x38\xa7\x8a\xd8\ +\xe9\x25\x14\xf7\x3b\x4c\x76\x25\xcb\x08\x46\x06\xd7\x88\x23\x83\ +\xc6\x1a\x61\x62\xa3\xd2\x3f\x0c\x81\x4a\xc5\xea\xb7\x9b\x6c\xe4\ +\x14\x93\xf3\x18\x11\x18\x36\x65\x0c\xfd\x87\x43\x04\x7f\x85\x04\ +\x00\xa0\xa1\xde\x7b\x62\x68\xc0\x3c\xac\x70\xb6\x1a\xad\x15\xd1\ +\xcc\xca\xc8\x74\x7b\xd4\x34\x45\xac\x71\x5a\x36\xb1\x11\xa6\x22\ +\x11\x13\x87\x70\x7f\x7a\x7e\x03\x1b\xb6\x97\xf9\xf9\xaa\x22\xbb\ +\x0f\x18\xf6\xf5\x1b\x9e\xe9\xf4\xf9\xe9\x23\xe9\x36\x85\x5f\xfa\ +\xe5\x60\x95\x6a\xe1\x70\x5c\xba\xa0\xc0\x6d\xef\x6e\x62\xc6\xe4\ +\xbc\xd5\x5f\xc8\xcd\x11\x25\x4c\x24\xc8\x34\x9a\x34\x4e\x13\x49\ +\xb5\x19\x4c\x31\x4e\x20\x6e\xa2\xc8\x6e\x68\x65\x95\x1d\x86\xfd\ +\x86\x3d\x98\xdc\xa8\xec\xea\x15\x86\x4a\x64\x68\x62\x69\x0e\x40\ +\xd2\x75\xe2\x8b\x47\x3f\x65\x06\xd8\x7d\xe4\x1a\xc0\x3b\x9a\x02\ +\x20\x97\x3e\x57\x54\xd5\x67\x51\x1d\xc9\x52\xc4\xb2\x0e\x90\x18\ +\x93\x84\x81\x48\x1c\x2f\x9b\x0a\xfa\xb8\x24\xb5\x07\x69\xde\xe0\ +\x98\x89\x1e\xdf\xfc\x8b\x56\xf6\x7c\xa7\x83\xa7\xbe\xd4\xc6\x4d\ +\x97\x37\xf0\xa3\x8f\x84\xb4\x84\xf9\xc7\xe6\xf9\xdb\x6b\x1a\xb9\ +\xeb\x6f\x5b\x99\xd4\x2c\xcc\x3f\x36\xcf\x47\xae\x6a\xa0\xa3\xd5\ +\xc3\x13\x58\x30\x23\xcf\x82\xe9\x79\x26\xb7\x78\x69\x31\xab\xa5\ +\xf2\x13\x3a\xbb\x31\xa9\x13\xaa\x36\x24\x2d\x56\x44\x62\xac\xd4\ +\xb6\x6d\x1a\xc4\x85\x91\x2d\x2d\xe7\x59\xed\x6b\x23\x8a\x3f\x8d\ +\x35\x50\xb0\xca\xeb\xab\xb0\x84\x24\x12\xcb\xb2\x51\xf6\x63\xe8\ +\xf2\x46\x18\x3c\xd2\x10\xd0\x15\xb4\xa3\x34\x86\x7f\x3a\x7d\xa1\ +\x1f\xf0\x45\xc2\xbd\xed\x44\xed\x24\x90\x58\xce\xbd\xdd\x7b\x5e\ +\xdd\x56\xae\xea\x76\x97\xaf\x54\x03\x2a\x19\x60\x25\x7c\xbd\x58\ +\x52\xea\xf3\xa9\xca\x2d\xf9\x50\x9b\x0f\x6f\xec\xae\x1e\x43\x63\ +\x0d\x34\xd7\x4b\xd4\xc6\xb6\xd2\xd1\xd3\x6c\xb7\x10\x9b\xea\xe6\ +\x24\x88\xb4\x22\x1c\x74\xd2\xd3\xd5\x4a\xd6\x71\x77\x39\xcb\x76\ +\x20\x7b\x7e\x1f\x6c\xef\x8e\x9d\xc1\x6a\xed\xea\x30\x1e\x1c\xa8\ +\xf5\x58\x99\x83\x6f\x9d\x35\x95\x87\xe4\x43\xf4\xbd\xaa\x34\x00\ +\x40\xa1\x20\xcf\x78\xc2\x03\x82\x1e\x10\xab\xa9\x83\x3a\x99\x38\ +\xb7\x0d\x9b\xc3\xb9\x93\x34\x74\xa4\xa2\x4b\xa7\xd5\x55\x4c\x5d\ +\x6a\x99\x28\xa1\x33\x68\xb5\x30\x8a\x27\x1f\x81\x29\xad\x1e\xe3\ +\xea\x43\x2d\xe0\xf6\x15\x4a\x9b\x3e\x54\xb2\x98\x2b\x19\xbe\xa9\ +\x52\xab\xbc\x3e\xa9\xe2\xd8\xda\x35\x0e\xae\x30\xb8\x02\x34\xb1\ +\xd1\xd0\x54\x8b\x05\x8f\x67\x29\x6a\x28\xca\x48\xa0\xf4\xa2\x94\ +\x29\x1e\x9d\xc5\x7b\xd4\x05\x20\x77\xd5\xd6\xfd\x9e\x98\x5f\xa2\ +\xba\x59\x88\x77\x68\xd6\x4c\x11\x08\x4e\xad\xa0\xda\xbd\x04\xac\ +\x9c\x41\x9a\xf1\xb3\x4b\xc8\x42\x68\xd5\x4b\x76\xee\x88\x4b\xca\ +\x8c\xc5\x4c\x72\x41\x1c\xb1\x5b\xb8\x44\xa6\xc4\x8b\xfd\x0c\xcd\ +\xf0\x12\xed\x1d\x43\xd5\x2d\xdc\x14\xab\xef\x81\x64\xf2\x0a\x61\ +\x6a\x43\xd3\xcf\x59\xad\xe9\xc4\x31\x1b\x76\xef\x84\x54\x30\x9a\ +\x6a\x60\x52\x93\xc1\x93\x2c\x63\xc9\xcd\x32\x7b\x8a\x9f\xcf\xe1\ +\x33\xfe\xc8\x61\xe0\x57\x44\x00\x00\x6a\x4f\x6b\x78\x44\x3c\xd6\ +\x2b\x1a\x48\x86\xf6\x24\x71\x43\x09\x2b\xff\x9e\x88\xb2\x31\x0e\ +\xe9\x42\x2d\x3c\x5c\x1d\x5e\xb7\xb1\xb7\x33\xb0\x9a\x38\xd8\xe0\ +\x91\xb1\xb6\x81\xd1\x64\x6f\x41\xa9\xe0\x5a\xaa\x93\x6e\x75\xe8\ +\x69\xd5\xda\xb5\x6b\x06\x61\x51\xb7\x55\x1c\x6a\x35\xc5\x16\xe3\ +\x20\x94\x36\x5e\x94\x68\xc4\xc8\xf6\xe7\x3c\x68\x6f\x0a\x77\x4b\ +\xa9\xd6\x87\x40\x14\x3c\x61\x44\x84\x6e\x1d\xa6\x9b\xf5\x2f\xaf\ +\x17\xf0\x1f\x44\x00\x64\xe6\xa6\x40\x8d\x6e\xc7\x50\xb6\xbb\x6b\ +\xb8\x14\x30\x53\x89\xa2\x45\xa1\x92\x5a\x1d\xc3\xdc\xf6\xf4\xc6\ +\x52\xad\xc6\xe2\xf8\x51\xb1\x82\x63\xec\xc1\xe9\x2d\xe8\xf4\xfb\ +\x1f\x85\x90\x59\x25\xff\x60\xf7\x26\x4a\x93\x4e\x26\x01\xad\xec\ +\x3d\x15\x64\xb4\xd4\x77\x7c\x1e\xbb\x6e\x20\x83\x1b\xd4\xd7\x40\ +\x2e\x8b\xa4\xa6\x0f\x03\x81\x7e\xcf\x63\xb7\xf8\xec\xe3\x9f\x29\ +\xbd\x6a\x05\x20\xfa\x81\x8f\x88\xe8\x33\xa8\x1a\x4f\xed\x2f\xb2\ +\x30\xf4\x24\xbb\xa6\x0e\xae\x5f\x61\x4f\x2d\xbe\x9d\x58\xcc\x5d\ +\xa7\xcc\xdc\xee\x00\xee\x1c\x93\xa1\x5e\x49\x95\xbe\x06\xa2\x4e\ +\x81\x26\x49\x63\x4a\xcd\x24\xb6\xa8\xd8\x34\x9a\xec\x75\x64\x9a\ +\x4b\x6a\xb6\x0a\x58\xb3\xfb\xab\xb9\xa3\xa3\x25\xd5\x66\x16\x8e\ +\x20\x22\xf8\x22\xf4\xa0\x74\x07\x75\x47\x67\xf2\x5f\x51\x01\xa8\ +\x2f\xb0\xda\x13\x7d\x50\xd0\x3e\x11\x55\x4d\x32\x80\x69\xea\x34\ +\x21\x90\x64\x1a\x39\xb9\xe9\x61\x75\xfa\x0e\xa5\xac\xa0\xac\x33\ +\x69\xf9\x1a\xea\x92\x2d\xd2\xd0\xd2\x38\x3a\x58\x46\x29\xeb\x12\ +\xaa\x14\x91\x66\xd2\xdc\xf6\x39\xed\xbd\x52\xb2\xcd\xa6\x44\xb5\ +\x6a\xde\x40\xb4\x4a\x82\x09\x98\xdc\x0c\x4d\xb5\x99\xc2\xa3\xf0\ +\x0b\x7c\x11\x4a\x02\xa5\xa6\x3c\x01\x1f\x3f\x3a\x18\xce\x2b\xa7\ +\x01\xde\xdc\xd9\x0d\xfa\x73\x85\xce\x34\x16\x36\x8e\x97\x5b\x91\ +\x38\xc9\x34\x85\x72\xfb\xf3\xb9\xa6\x44\xc9\xd0\xa7\xed\x46\xd6\ +\x19\x22\x89\x8a\x4b\x44\x8d\xfb\x1c\x39\xed\x69\x1c\x86\x50\xb5\ +\x06\x97\x54\x73\x20\x32\x7b\x26\x99\xca\xa4\x91\x9d\x39\x4c\xb6\ +\xaf\x51\xaa\x42\xf4\x12\x3a\x83\x93\x9b\x33\xf6\x3f\x3d\x78\xc4\ +\x18\x86\x6b\x0a\x18\x3e\x83\xaf\xdf\x3c\xf2\x48\xe0\x15\x13\x00\ +\x80\xba\xb7\xed\x5a\x81\xd1\xed\x71\x1b\x41\xb7\xb3\x88\x05\xb9\ +\x56\x74\x06\xb3\x13\x43\x6e\xa9\x94\x58\x88\xa0\xda\x59\x16\xbb\ +\xeb\x87\xa4\xf4\x72\x9b\xa1\x64\xe7\x0a\x9c\xca\x1c\x51\x87\x93\ +\x98\xdd\xfa\xce\x66\x9f\x65\xca\xb4\xad\xae\xa5\xd6\x8a\x77\x4c\ +\x9d\xba\xa4\x00\x74\xf4\xf4\x8c\x86\x69\xe2\xf6\x16\xac\x6d\xf7\ +\x92\xa3\x03\x94\x41\xf1\xe8\x39\xee\x75\x14\x23\xa1\x68\x38\x9c\ +\x0c\xe0\xef\x4d\x00\x00\xc4\xd3\x67\x3d\x31\x65\x4f\x8c\xc6\x94\ +\x2a\xb5\x56\x9a\x38\x6a\x3e\xd3\x21\x2b\x7e\xcf\xd8\x6c\x19\xbb\ +\xb3\xb8\x71\xfa\xf9\xd9\xa4\x8b\x78\xb5\x7a\x55\xd5\x7c\x06\xac\ +\xa9\xd8\x44\x2a\xed\x3d\x60\x6f\x58\xe1\x14\x8e\x56\x21\x80\xaa\ +\xcd\x8a\xce\xf0\x48\xe5\x10\xb0\xb7\xba\x02\xd4\xe4\x63\x88\x39\ +\x09\x72\x8a\x9e\x47\x67\xce\xb0\x87\x35\x61\x08\x28\x37\x30\x78\ +\x38\x19\xc0\xdf\xaf\x00\xa8\xb9\x1b\x78\x36\x44\x7c\xdd\x6a\xe2\ +\x94\x24\x42\x3a\xc1\x6a\xdc\x15\xab\x31\x7d\x5c\x53\x88\x35\x09\ +\xf1\x48\xec\x7f\x36\x7c\x0b\x2b\x92\xd2\x58\x5e\x92\xb8\xdf\xa4\ +\xac\x65\x35\x4e\x2f\x42\x9b\x5f\xe8\x0a\x59\x16\x9e\x26\x69\x3b\ +\x97\x0d\x65\x9d\xea\x23\x8c\xab\xd5\x74\x14\xd5\x5f\x65\x09\xb7\ +\x8f\x4b\xed\x7f\xd8\x08\x8a\x01\x0c\x7d\x0a\x45\x0e\x1c\x5e\x33\ +\x88\x3f\x88\x00\x78\x79\x7e\x27\xe8\x6f\x44\x75\x10\xa1\x92\xe1\ +\x23\x9a\x41\xfe\xdc\xb0\x30\x49\xc1\x3a\x04\x50\x92\xb8\x1e\x27\ +\x8f\x8e\x13\x11\xb8\xc9\x20\x93\xe5\x6b\xba\xe8\x64\xba\xd9\x68\ +\x45\xbd\x7e\x5a\x44\xea\xee\x3f\x20\xd9\x9d\x45\x32\xf0\x2e\xb6\ +\x89\x3b\x14\xd8\x5e\x60\x52\x13\x34\xd5\x26\x4a\xc7\x88\x30\x22\ +\x1e\x45\x0d\x50\xde\x76\x14\xe7\xe7\x95\x16\x80\x9a\xb7\xee\xe9\ +\x15\xf4\x27\xa0\xfb\xbd\x4c\xcb\x36\xc9\x24\x4c\x2a\xb6\x6f\x51\ +\xad\x68\xa8\xa0\x64\x7b\xed\x9a\x0a\x6c\x3d\x49\x9f\xbd\x84\x60\ +\x55\x76\xf0\xce\x38\x85\x6a\x53\xda\xa2\x77\x24\x53\xfc\x49\x35\ +\x3e\x60\x25\x4a\x78\xc8\x43\xa1\xb1\x16\x26\x37\x27\x7b\x5d\x1a\ +\xc2\x5d\xa3\x4b\x94\xf1\xd9\x60\x45\xa2\xdf\x3c\xb2\x39\x7c\xc5\ +\x05\x00\xa0\xe6\xba\xbd\xff\xe1\xa1\xfb\xd5\x2e\xe8\xb4\x6d\xbc\ +\xcd\x89\x33\x2e\xab\xd6\xc9\xb8\x39\x82\x61\x31\x70\xb1\x8e\xb5\ +\x8a\x42\x9d\x7c\x82\x49\x23\x06\xfb\x78\x9b\xd5\xeb\x16\x9c\xc6\ +\xc7\x59\x35\x0b\x0e\x94\x67\x9c\x96\x37\x68\xb4\x37\x91\xa6\xef\ +\x71\x04\xc9\x3a\x4f\x60\x52\x4b\x6a\x57\x04\x06\x04\xf6\x4e\x6a\ +\x62\xd0\x6e\x06\x21\x37\x60\x8e\x24\x1a\xf8\xbd\x08\x40\xe4\xcd\ +\xaf\x02\x2d\xb9\xd4\x6f\x43\x45\x31\xa4\x58\x21\x22\x54\xe9\xd7\ +\x53\xa5\x95\x8c\x4d\xd1\xb2\xc9\x1b\x36\xbb\x47\x2a\x41\x9a\x6a\ +\x9d\xc0\xaa\xed\x6b\xe0\x08\x9d\x58\xd1\x8c\xe2\x26\xa8\x9c\xe6\ +\xd8\x47\x9e\xa6\x2d\x78\x50\x5f\x83\x8a\x30\xe4\x09\x7b\x30\xec\ +\x9d\x35\x21\x89\x00\xec\xd1\x9c\xde\xb5\x43\x9b\xd3\xdf\x9b\x00\ +\xa8\xea\x2f\x45\xf5\x39\x2f\x1b\x82\x59\x6d\xda\x44\xb3\xbb\x89\ +\x64\x3a\x88\x55\x05\x6d\xd2\x49\x94\x2a\xc4\x50\x27\xec\xce\xec\ +\x49\xe0\xc4\x78\x4e\xba\x59\x5d\x3a\x9a\x15\x0f\x86\x51\x8c\x49\ +\xe9\xe9\x62\xed\x9c\xe0\xec\xa7\x70\x14\xec\xb3\x44\x66\x20\xdc\ +\x6e\xb0\xdb\xcb\xd1\xc7\x40\x65\x0e\x40\x6e\x08\xd3\xc2\xd1\x15\ +\x98\x57\xa5\x00\x14\x9a\xbc\x07\x45\xf5\x37\xc6\x68\x39\xf5\xc8\ +\x5d\xf8\x55\x71\x31\x01\x67\x1b\xe0\x8c\xed\x17\x8d\xf7\x30\xb1\ +\x6a\x0e\x8c\x0b\x1d\xab\xd3\xcb\xdf\xf6\xf6\x63\x45\x61\xdc\x7a\ +\x83\x6c\xa5\x2e\x99\x16\x71\x76\x20\x27\x55\xb4\x87\xe8\x51\xbd\ +\x67\x5e\xe4\x0c\x8e\xab\x47\x31\x94\xf1\x81\xbe\xa3\xcb\xe1\xf8\ +\xfd\x99\x80\x37\xed\x2b\xaa\x31\x3f\x01\xa3\x5a\xad\x0f\x6e\x6c\ +\x43\x33\xf6\x3f\xf6\x01\x34\xd9\x28\xd2\x38\x55\xbb\x31\x7b\xc7\ +\x29\xe2\x18\x2d\xdc\x54\xb5\xea\x09\xb2\x1a\xc5\x86\x80\x8d\x03\ +\x29\xab\xe3\x38\x1a\x2a\xab\x7f\xed\xb4\xf2\xd1\x34\x9b\xd0\x54\ +\x0f\x53\x27\x30\xec\xe5\xd8\xee\x29\x83\xf8\x47\x2f\x04\x84\x57\ +\x80\x11\x74\x10\xe7\x56\xf8\x0a\x8d\x2b\xf7\xd0\x6e\x82\xdc\x78\ +\xf2\xf9\x5c\x60\x0e\x76\x0d\x7e\xd5\x87\xd5\x46\x2e\x81\xcc\xc2\ +\xc7\xf9\xe4\xd9\x4b\x8c\xe0\x95\xf9\xad\x47\x03\xa8\x57\x0f\xc5\ +\x87\xbc\x50\x0e\x02\x7a\xcf\xca\xb1\x87\x2f\x30\x20\x47\xcb\xc6\ +\xfc\xbe\x05\x20\xf9\x61\x37\xe3\x01\x1e\x17\xf2\x87\x1f\x0f\xf2\ +\xda\x18\x4f\xa3\x2c\xc5\x1c\xcd\xc9\x1f\x1b\x63\x63\x6c\x8c\x8d\ +\xb1\x31\x36\xc6\xc6\xd8\x18\x1b\x63\x63\x6c\x8c\x8d\xb1\x31\x36\ +\xc6\xc6\xd8\x18\x1b\x63\x63\x6c\x8c\x8d\xb1\x31\x36\xc6\xc6\x7f\ +\xfe\xf1\xff\x01\xbc\x68\xa0\xde\xbe\x88\xf6\x8c\x00\x00\x00\x00\ +\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x27\xb3\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\x47\x00\x9a\x00\xe8\x4d\xc5\x68\x4a\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x05\x01\ +\x09\x38\x17\x42\xe9\x9c\x52\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\x7d\x7b\x90\x1d\xe5\x75\xe7\xef\xf4\ +\xbc\x25\xd0\x8c\x66\x34\x77\x44\x0c\x0e\x0b\xc8\x92\x10\x2f\x83\ +\x40\x40\xd8\x38\xb1\xc0\x3c\x84\xab\xe2\xc4\xb6\x04\xe5\x6c\x6d\ +\x52\xc9\x56\x2d\x54\x52\xb5\x15\x87\xda\x5d\x44\x82\x6d\xbc\x89\ +\x1d\xe2\x94\x37\x08\x27\xae\xdd\x38\xb1\x97\x45\xe8\x05\x96\x04\ +\x38\x48\xc2\x2f\x21\x84\x84\xde\x60\x49\x0b\x78\x29\x0c\x48\x58\ +\x36\x8c\x34\x08\xcd\xeb\xf6\xd9\x3f\xfa\x7b\x9c\x73\xbe\xbe\x5a\ +\x21\x8d\x75\x47\xe8\x76\xd5\x48\x33\xf7\xde\xee\xdb\xdd\xdf\x39\ +\xbf\xf3\x3b\xbf\x73\xbe\xaf\x81\xc6\xd6\xd8\x1a\x5b\x63\x6b\x6c\ +\x8d\xad\xb1\x35\xb6\x53\x6b\x23\x00\x73\x1a\xb7\xe1\xf4\xdb\x32\ +\x00\x9f\x04\xc0\xee\xe7\x9e\xc6\x2d\x39\x3d\xb6\x36\x00\x9f\x17\ +\x03\x5f\xf6\xd3\xd8\x8e\x03\x46\xc7\xfb\x76\x26\x80\xbf\x04\xf0\ +\x67\xfe\x85\x1d\x3b\x76\x80\x88\x40\x44\x00\x11\x32\x22\xcc\x9a\ +\x35\xeb\x54\xbc\xb6\x86\x01\x1c\x65\xeb\x05\xf0\x75\x00\xb7\xf9\ +\x17\xb6\x6d\xdf\x06\x02\x85\xc1\x27\x10\x28\x03\x88\x32\x80\x10\ +\xde\x9b\x39\x73\x66\xc3\x18\x4e\x61\x03\x38\x17\xc0\x3f\x03\xf8\ +\x98\x7f\x61\xcb\xd6\xad\xc8\x80\xe0\xf1\xc1\x00\xa8\xa0\x04\x19\ +\x51\x61\x00\x19\x05\x23\x80\xfb\x7f\xfa\xf4\x8f\x34\x0c\xe1\x14\ +\x31\x80\x73\x01\x2c\x01\x70\xa5\x7f\xe1\xf9\xe7\x37\x03\x20\x64\ +\x59\x1c\x50\x05\xfd\x20\x20\x23\x64\x00\x20\x06\xdf\xbe\x4f\x04\ +\x4c\xbb\x60\x5a\x03\x15\xc6\xa9\x01\x5c\x0a\x60\x05\x80\xf3\xfc\ +\x0b\x9b\x36\x6d\x2a\x3c\x1d\x00\x65\x59\x31\xc0\xa4\x0d\xa0\x70\ +\xf2\xac\x06\x32\x78\x74\xa0\x02\x15\x28\x2b\x8e\xe5\xde\x3b\xef\ +\xbc\xf3\x1a\xc6\x50\xe7\x0b\x27\x00\xbf\x05\x60\x19\x80\x6e\xff\ +\xe2\xb3\x1b\x37\x22\x0b\xb1\xdd\x79\x7d\x06\x1d\xf7\xc3\x60\xa3\ +\xf0\x70\x72\x03\x2c\x06\x3c\xf3\x9f\x77\xfb\xc2\xbd\x4f\x02\x11\ +\x0a\xa3\x20\x9c\x7b\xee\xaf\x9f\xd6\x86\x70\xb2\x2f\x38\x03\xf0\ +\x59\x00\xff\x02\xa0\xd5\xbf\xb8\x61\xc3\x86\xe0\xb5\x91\xe0\x39\ +\x62\x67\xd8\x7e\x88\xf1\x44\x28\x6c\xc4\x90\x42\x72\x83\x0c\x38\ +\x6e\xa0\x09\x63\x81\x1a\x1e\x41\xe2\xbe\x1f\xfe\xf0\x87\x4f\x4b\ +\x54\xa0\x93\x38\xf0\xf3\x9c\xc7\x87\x81\x7f\x66\xfd\xfa\x14\xba\ +\xe1\xc9\x9c\x36\x80\x82\xd8\x01\x19\x65\x61\x80\x2d\xe4\x13\x32\ +\x65\x48\xd6\x38\x02\x5f\x70\xc6\x04\x73\x6c\x8f\x1e\x1f\x3a\xfb\ +\xec\xd3\xc6\x18\x7e\xd5\x17\xd6\x0c\xe0\x73\x00\xbe\x25\x5f\x5c\ +\xbf\x7e\x7d\x3c\x81\xe0\xe1\x08\x9e\x9f\x19\x0f\x87\x34\x0e\x07\ +\xf9\x59\x06\x4d\x0c\xfd\x00\x53\xf9\xeb\xe4\xbc\x9e\xb2\x2c\x31\ +\x1e\x8d\x2e\xd1\x78\x40\x84\x5f\x3b\xeb\xac\x0f\xb4\x31\xfc\xaa\ +\x2e\xa6\x0d\xc0\x9f\x02\xf8\x6a\xad\x81\x17\x16\x50\x0c\x38\x08\ +\x59\x88\xd9\x36\xe6\x17\x9e\x5f\x64\x7d\x96\x14\x3a\x1d\xc0\x42\ +\xbe\xcc\x04\xfc\x77\x64\x1e\x25\xe2\xf7\xfa\x94\x31\x09\x27\xc2\ +\x08\x3d\xb2\x54\xfa\x2a\x1f\x38\x43\x18\xeb\x8b\x98\x08\xe0\x5e\ +\x14\x92\xed\xd1\x07\x3e\x8e\xbf\xb8\xe9\x99\x42\x05\x9f\x05\x44\ +\x02\x57\xdb\x7b\x91\x84\x04\x13\x36\x2c\xc7\xb0\xa1\x02\x82\x4c\ +\x0a\x44\x00\x15\x86\x09\x81\x10\xbd\xbd\x95\x0f\x0c\x2a\x8c\xe5\ +\x89\x9f\x03\xe0\x35\xfb\xe2\xd1\x06\xdf\x9f\x41\x56\x63\x70\xbd\ +\x11\x04\x16\x1f\xfe\x2f\xf7\xdc\x4c\x64\x08\xa0\x28\x10\x65\x6a\ +\x90\x65\x0a\xe9\x51\x81\x4a\xbe\xd7\x93\x46\x0a\xa8\xa1\x10\xc7\ +\x7d\xa6\xa7\xa7\xfb\x94\x36\x86\xe6\x31\xb3\x24\xa2\xe5\xcc\x7c\ +\x6c\x83\x2e\xf7\xe3\x62\x90\xc0\xe6\xd6\x71\xf1\x0f\x67\x84\xcc\ +\xbf\x49\xc5\xf1\x99\x7d\x9e\xaf\x77\x62\x75\x4c\x06\x33\x02\x3a\ +\xf8\x8f\xb2\x7f\x1f\x0c\x26\x20\x63\x17\xef\xfd\x31\xfc\x21\xdd\ +\x39\x91\x3d\x27\xa2\x70\x6e\x20\xe0\xed\xb7\xdf\x0e\x46\xd3\xd5\ +\xd5\xa5\x4e\xe3\x74\x42\x80\x0f\x01\x78\xfd\x7d\x7b\xbf\x3b\x85\ +\x84\xd0\xb9\xb8\x5b\x90\x3a\x03\xef\x42\x23\x88\xde\x1f\xc3\x44\ +\xa8\x0d\x88\x6c\x22\x40\x7d\x78\x9f\x12\x0d\x41\x91\x41\x15\x3a\ +\xe2\xbe\x85\x22\x29\xc3\x92\x3e\xb6\x47\x9c\xce\xce\xce\x53\x06\ +\x15\xc6\xea\xc4\x76\x02\xb8\x78\xef\x9e\x3d\x00\x11\xa6\x4f\x9f\ +\x8e\x63\x36\x06\x8a\xa9\x59\x88\xf9\x1e\x9a\xd5\x40\x19\x66\x1f\ +\x84\x1e\x33\x80\xb5\xd2\x3c\x41\xe8\x0a\x31\x48\xa7\x92\x3e\x54\ +\x44\xe1\x88\x12\xb2\x18\xc2\x40\x89\xf1\xf8\xba\x04\x99\x3b\x3a\ +\xde\x8d\x81\xc6\xd2\xfb\xf7\xec\xd9\xe3\x0e\x5a\x40\xf0\xf4\xe9\ +\x33\x8e\xc1\x10\xac\x00\x24\x84\x1c\xaf\x06\xaa\xaa\x5f\xf1\xb7\ +\x62\xed\x21\x05\x14\xbc\x41\xd6\x06\x84\x61\xf9\x54\x10\x25\x3a\ +\x42\x18\x54\x40\xa1\x8d\x4d\x0f\x33\xa3\x48\x06\xb4\xf2\xac\xb6\ +\xc6\x36\x1e\x8d\x61\x2c\x4e\x60\x13\x80\x2b\x77\xff\x64\xb7\x2b\ +\xc9\x16\x87\x65\x12\x07\x27\xc2\x8c\xa3\xa0\x82\x2e\xde\xc0\x90\ +\x2e\xd2\xa2\x8e\x34\x0c\x2a\x81\x77\x90\xc9\xf5\xb5\xe1\x50\x99\ +\x88\x24\x42\x83\x92\x8e\xa5\x67\xd7\xda\x8f\x7c\x6a\x1a\x09\xe5\ +\xb1\x6c\xc6\x18\xe8\x54\x35\x80\xb3\x00\xbc\x09\x00\x2f\xfe\xe4\ +\xc5\x78\xf1\x3e\x6d\xf3\x37\xc8\x3b\x06\x13\x18\xc0\x8c\x19\xa9\ +\x31\x6c\xd8\xf0\x8c\xca\xdb\x2d\xbc\x6a\xe8\x4d\x07\xa1\xbc\x20\ +\x64\x8c\x47\xd5\x0f\x52\x58\x2f\x90\xc1\xbe\xe6\xbf\x17\x69\x9a\ +\xe8\xb9\x82\x0f\x5b\xc1\x18\x8f\x7d\xab\x37\x2a\x9c\xe8\x97\xad\ +\x01\x70\xfd\x8b\x2f\xbc\x00\x39\xd2\x14\x58\xbb\x60\xf9\x02\x1d\ +\x9c\x58\x57\x1a\x22\x9e\x7d\xf6\xd9\xa0\x09\x10\x71\xf0\x5e\xa5\ +\xdf\x67\x82\x74\x85\x02\x90\x24\x84\x42\x52\x96\x32\x2f\x99\xb2\ +\x32\x10\x3e\x6f\xe5\xe5\xc8\x19\xca\x0c\x49\x87\x02\x9d\xaa\x1e\ +\xff\x2d\x2d\x31\x86\xab\x01\x3c\x37\x5e\x0d\xa0\x02\xe0\x2d\x00\ +\xd8\xb5\x6b\x57\x24\x71\x85\xa3\x23\x03\x81\x29\x02\xa2\xbd\x31\ +\xe1\x6f\x67\x24\xd3\x4b\x50\x61\xd3\xa6\x4d\xa2\x72\x67\xe3\xba\ +\xcb\xd3\x91\x89\x8a\x61\x49\xe8\x00\x95\x86\x93\xcc\x67\x13\xd2\ +\xdb\x65\x96\x41\x9e\x84\x66\x49\xe1\x28\xc4\xfd\x52\x71\xe9\xc4\ +\x7c\xaa\xc4\x08\xfe\x02\xc0\x97\xc6\xa3\x01\xac\x03\xf0\xf1\x9d\ +\x3b\x77\x3a\x0f\x20\x15\x02\x22\x1f\xa2\xf0\x02\x49\x5e\x10\x21\ +\x21\x78\x11\xbb\xc1\x2a\xcb\x22\x9e\x7f\xfe\x79\x1d\x77\x9d\xe7\ +\x66\x44\x49\xba\x18\xb3\x00\x38\xc2\x68\x0a\x4b\x26\xdb\xc8\x54\ +\xbd\x20\xa6\x7c\xd6\xb3\x75\x16\xa2\xa5\x67\xfb\x9d\x27\x3a\xf0\ +\x7b\xf7\xee\x05\x10\xee\xc5\xe7\x00\x3c\x34\x9e\x0c\xa0\x07\xc0\ +\x2f\x00\xd7\xa0\xe9\x07\x53\x78\xbc\xfa\x1d\xe9\x7b\xce\x77\x95\ +\x2d\x04\xc4\x08\x2f\x97\xa7\x94\x5b\xb7\x6d\x73\xde\x89\xd8\x37\ +\x50\x32\x40\x44\xb5\xba\x89\xac\xfa\x97\x19\x59\x18\xe2\x75\x52\ +\x1a\x83\xad\x21\x94\x85\x07\x1a\x83\x81\x97\x9b\xbb\x07\x17\x01\ +\x78\x71\xbc\x18\xc0\x52\x00\x9f\x06\x80\xed\xdb\x77\x88\xcc\x87\ +\x40\xe4\xe3\x3f\x81\x98\xa3\x34\xeb\x86\xbc\x18\x7f\xf9\x19\xa8\ +\xfd\x41\xd0\xe4\xd1\xbd\x56\x66\x08\x3b\xb6\x6f\x2f\xd7\x08\x84\ +\x37\x67\x25\xf0\x0d\x53\x36\x26\x93\x21\x04\x59\x3a\x13\xf5\x00\ +\xa1\x33\x14\x9c\x41\x67\x1a\x51\x08\xca\x70\x2c\x51\xe0\x58\x06\ +\xbe\xc4\x08\x7a\x00\xbc\x5d\x6f\x03\xe8\x04\xd0\x0f\x00\xdb\xb6\ +\x6d\x8b\xde\x2f\xe2\x7a\x02\xf3\x04\xfd\x39\x45\x06\x23\xfc\x47\ +\x20\x21\xc5\x15\xd8\xa3\x05\xa9\x9b\xa1\xb6\x5d\xbb\x76\xe9\xda\ +\x7e\x59\x26\xe0\x49\x9f\xc9\xed\x55\x96\x91\x51\x92\x86\xd6\xac\ +\x57\xd4\xc8\x12\xe8\x18\xb5\x80\xe5\xcb\x97\xe3\xa2\x8b\x2e\x3a\ +\xa6\x9b\x7e\xcf\x3d\xf7\x60\xc9\x92\x25\xef\xa2\xe8\xa0\x1a\xa9\ +\xa7\x01\x2c\x06\x30\xbf\x30\x80\xad\x42\x97\x87\x21\x82\x14\x07\ +\x9a\x44\x56\x20\x87\x9f\x58\x11\x06\x82\xce\x16\xfc\x81\x05\x60\ +\x24\x9f\x2f\x33\x06\x9f\x92\xaa\x78\x2e\x07\x32\x21\x6d\x16\x29\ +\x52\x03\x88\x72\xb3\xe5\x04\xee\x6a\x2c\x6a\x1c\x65\xe0\x77\xef\ +\xd9\x93\x64\x44\xc7\xb2\xb9\x6b\xdd\x03\xe0\x42\x8c\xd1\x44\x98\ +\xf7\x6b\x00\x4d\x00\x46\x43\x2c\xde\xb2\x25\x32\x3b\x8e\x03\x54\ +\xd4\x4b\xe2\x50\x03\xac\x62\xb3\xcd\x04\xe4\xc0\x7a\x3c\x40\x50\ +\x01\x45\xb8\x80\xa8\xd4\x10\x8b\x41\x2e\x37\x84\xdd\xbb\x77\x0b\ +\x5d\xdf\x43\xb9\x61\xef\xca\x8b\xcb\x59\x7d\x28\x47\x2b\xe3\x90\ +\x02\x11\x25\x99\x48\xd9\xc0\x07\xad\x84\x02\xe5\x15\x86\x7f\x6c\ +\xdc\xc1\x5d\xe7\x32\x00\x9f\xa9\x87\x01\x34\x03\x18\x79\xf2\x89\ +\x27\x71\xf3\x2d\x37\x6b\x62\xb6\x65\x6b\x24\x73\x0a\xce\xe5\xe0\ +\x46\x64\x20\x11\x1e\x24\x6f\xd6\x5e\x2e\x10\x83\xac\xc7\x50\xcd\ +\xf4\xb2\xcc\x18\xf6\xee\xdd\x9b\x14\x87\x74\xcf\x00\x25\xad\xe5\ +\xb1\x89\x94\x4a\x3b\x93\x43\x21\x8b\x4c\x4b\x3a\xe0\x2b\x83\x22\ +\x3c\xc5\x82\x97\x76\x00\x0a\xe8\x26\x4d\xe0\x68\x61\xc4\x5d\xdf\ +\xbd\x00\xbe\x50\x17\x03\x78\xe2\x89\x27\xa2\x47\x32\x70\xf3\x2d\ +\xb7\x68\x63\xd8\xba\x45\xa5\x7e\x5e\xcf\x97\xf5\x55\x2a\x1b\xc4\ +\x84\x43\x08\x99\x57\xd6\x66\xcb\x94\x46\xb3\x3f\x53\xed\x2c\xe2\ +\xe5\x97\x5f\x36\xf2\x71\xda\x4b\x98\x29\x19\xd8\x08\x42\x32\xac\ +\x08\x69\x9a\x99\xd1\xd3\xd3\x23\x48\xea\x8e\x28\x0f\x4b\x6e\x82\ +\x92\x73\x96\x48\x10\xc5\x94\x9a\x29\xa5\xbb\xae\x5b\x01\x3c\x7e\ +\xd2\x0d\xe0\xf1\x27\x1e\x97\xe0\x1c\xb6\x5b\x8c\x21\x6c\xd9\xb2\ +\x45\xc1\x3c\xcb\xd4\x4f\x4a\xa7\x2a\xc6\xfb\x04\x91\x45\x5a\x28\ +\x99\x03\xeb\x6c\x41\x5e\x85\x17\xa0\x04\xef\x90\x86\x66\x8d\xe1\ +\x95\x57\x7e\x5a\xb3\xed\x3c\x93\x1a\x41\x22\x1d\x67\xaa\xe8\xc4\ +\x39\xa3\xb7\xb7\x37\x1c\x77\xdb\xd6\x6d\x6e\x1f\x19\xbe\x2c\x19\ +\xf6\xa8\xa1\xf9\x91\x0d\x8b\x24\x90\xa7\x86\x11\x34\x03\xa8\x9e\ +\x5c\x03\x78\xfc\x71\x75\x00\x76\xe9\x1c\xe2\x58\xa6\xc6\xb0\x75\ +\x8b\x20\x85\xf1\x06\x30\x71\x09\xcc\x0b\xb4\x90\xa4\xd0\x86\x05\ +\x49\x2c\xcd\x8d\x94\xc6\x19\x84\xa6\xa3\xa0\xc2\xab\xaf\xbe\xaa\ +\x39\x41\x98\x76\x86\x44\x02\xf6\x70\x5d\xad\x56\x71\x96\x68\x1a\ +\x7d\x7e\xcb\x16\x91\xc5\x70\x14\xc7\x64\x9a\x08\x6d\x98\x32\x6b\ +\x29\x1b\x78\x8d\x82\x50\x69\xb5\xbb\x8e\x16\xc9\xcb\x4e\x8a\x01\ +\xac\x5e\xbd\xda\x88\x3b\xac\x20\x9f\xa1\xd9\x7b\x6a\x0c\x5b\x45\ +\xf8\x97\x80\xc8\xc2\xd2\x85\xf7\x12\x12\x8e\x40\x25\x6a\xa2\xdc\ +\x8f\x19\x31\xaf\x4f\xf8\x47\xfc\xde\x32\x63\x78\xed\xb5\x9f\x15\ +\x75\x80\x64\x5e\x41\xb1\xcf\xc8\xf0\x30\xce\x11\xf3\x08\x36\x6d\ +\xde\x04\xc1\x6c\x9c\xdc\xa1\xb9\x8e\x52\x4b\x49\x73\x20\x92\x26\ +\x2d\x79\x91\x0d\x97\xf2\xb3\x44\x98\x31\x63\x46\x7d\x10\x60\xd5\ +\xea\xd5\xc6\x2b\x19\xc4\xfe\x06\xb3\xf1\x56\x37\x18\x04\xdc\x72\ +\xcb\xbc\x54\xd5\x73\xc6\x10\x77\xc9\x1c\x2a\xa0\x34\x45\x0c\x37\ +\x56\x41\xa2\x80\x52\x90\xb6\x29\xe8\x9b\x06\xa4\x32\x35\x1d\x45\ +\x5f\x78\xe3\x8d\x37\x42\xfa\xf7\xde\x91\xf7\x70\xfe\xf9\xe7\x87\ +\xf7\x36\x6e\xdc\x98\xc0\x3b\x95\x48\xdc\x7a\xe0\x43\xac\x4a\x8d\ +\x84\xcc\xf5\xfa\xeb\x22\x19\x38\x23\x37\x70\xb3\xa0\xeb\x60\x00\ +\xab\x56\x89\x78\x6c\x58\xb9\x83\xf5\xa2\x65\x8e\x5c\x58\xe0\x84\ +\xcc\xcc\x9b\x37\xaf\x34\x8b\xb0\x85\x22\x70\x71\x13\x28\xf4\x18\ +\x98\x2a\xa3\x21\x88\x4a\x8c\xb2\xba\x81\xa2\x0f\x29\xf1\x3c\x9a\ +\xea\xa8\x4b\xd7\x1b\x94\xb7\xc6\xa0\x65\xb4\x01\x62\x31\x98\x99\ +\x42\x38\x5d\xa8\xd2\xc6\xa8\x65\x71\xd2\xd9\x94\x20\xc0\xb3\x66\ +\x5d\x58\x2f\x03\x58\x09\xdd\xf1\x21\x6b\xfe\x3e\x04\xb0\xc9\xfb\ +\x63\x9c\x26\x66\x55\x29\x4c\x8c\x41\x64\x11\xa0\xf2\x14\x51\xab\ +\x8e\x64\x48\x24\x61\xdd\x9b\xad\xe1\xef\xb9\xbf\x36\xa2\xd3\x4b\ +\x71\xa3\x51\x2b\xed\x74\x5f\x28\x8c\x61\xfb\xfa\xf5\xeb\x2f\x4b\ +\x34\x0b\x2a\x89\xdf\xc9\x80\x8a\xf7\x0d\x1f\xb1\xe8\x90\x20\x86\ +\x34\x54\x66\x55\xf4\x9a\x55\xa8\x88\x27\xdf\x00\xbe\xbb\x72\xa5\ +\x1a\x57\xe8\x28\x0e\xb2\x7f\x7b\xc3\x30\xf6\x20\x79\x42\x44\x86\ +\x5b\x93\x10\xa1\x3f\x9b\x56\xdc\xbc\x5a\xf7\xf4\x1b\x6d\x05\xda\ +\x90\x1e\xc4\x10\x57\x89\x30\x77\xaa\x34\x06\xae\x21\x46\x45\xa3\ +\x62\x30\x66\xce\x28\x16\x9c\xf8\xd1\x8f\x7e\x14\x8b\x4f\x25\x05\ +\xae\xcc\x7a\xa9\x47\xaa\xcc\x21\x59\xa6\xf9\x8b\xf6\xf6\x88\x06\ +\x0c\xed\xf5\xa5\x7c\x81\x08\x17\x5f\x7c\x71\x9d\x0c\xe0\xbb\xdf\ +\x35\x83\x98\x8e\xac\x87\x65\xe6\xb4\x4d\x8e\x02\x4b\xa3\x1a\x27\ +\x44\x98\x77\x6b\x09\x2a\x08\xd9\x59\x42\xe4\xba\xd7\x5b\xcd\x60\ +\xc7\xb0\x40\x02\x9a\x62\xe5\xb0\xb0\xba\xb9\x53\x47\x00\xd3\xba\ +\x66\x51\xc7\xc5\xd9\xdd\x3f\xfc\xe1\x0f\x66\xca\xde\x02\xd9\x3b\ +\x9e\x65\xa4\x0d\x9f\x4a\x52\x3f\x3f\x94\x64\xd8\x7d\x08\x73\x35\ +\x10\x4e\x91\x5b\x21\x67\x83\x71\xc9\xa5\x97\x9e\xb0\x01\x1c\xdf\ +\xbc\x00\x3f\x78\x8e\x02\xb0\xfb\xa5\x30\x84\x3c\x64\x01\x60\x16\ +\x1f\x8f\x39\x62\x9e\xb3\x1b\x13\x86\xc8\x8c\x5c\x4f\x3e\x81\xc1\ +\x90\x99\xc6\xad\xf3\xe6\xe1\xf2\xcb\xaf\xd0\x7c\x01\x8c\xb5\xaf\ +\xb7\x69\xe9\x99\xb8\xa8\x4d\x30\x3b\xb4\xf1\x67\x56\x78\x3a\xbb\ +\xef\x2d\xce\x87\xb1\x6e\x5f\x0b\x40\xc0\xdc\xb3\x86\x8b\xfd\x99\ +\x43\x56\xc3\xda\x37\x66\xe6\x0c\x64\xc4\xc8\xb9\x40\x22\x69\x60\ +\x79\x8e\x48\x86\x03\x33\xe2\x58\x27\x21\x88\xa3\x1a\xa2\xcc\x31\ +\x8b\x2a\xae\x9f\x6b\x8a\x3f\xfe\xfa\x72\x7d\x76\x27\x54\x13\x38\ +\x2e\x04\x78\xec\xb1\xc7\x2c\xee\xa7\xac\x5c\x9e\x1b\x21\xa1\x81\ +\x41\xed\x22\x2e\xe5\x13\x10\x13\x3a\x62\xcc\x04\x6e\xbf\xf7\x21\ +\xe5\x5d\x77\x2f\xbc\x3b\xc0\x25\xfb\xa2\x8e\x40\x03\xd5\x93\x22\ +\x09\xa0\x24\x7f\x14\x3f\xff\xf1\xbe\x11\x9f\xa9\x7b\x92\xb5\xfd\ +\xe9\xa7\x9f\xbe\x2c\x22\x85\x68\x55\x13\x03\x99\x51\x24\xa9\x89\ +\x78\x63\x95\xcb\x92\x4e\xa9\x18\xb6\x4c\x6a\x4b\x36\x64\xc4\xf7\ +\x3f\xfa\xd1\x8f\xfa\xfa\x4c\x7e\x52\x0d\xe0\xd1\xc7\x1e\x0b\x03\ +\x93\x8c\x2a\x23\xcc\xe0\x21\xa9\x0c\x85\xd2\x6e\x54\x8c\xca\xe4\ +\xee\x00\x83\x86\x1b\x3c\x7b\xa0\x3b\xda\x09\x11\x1e\x78\xe0\x81\ +\xc0\xb2\x01\x60\xe1\xdd\x77\x47\x7e\x40\x5c\xa2\xb9\x23\x92\xaa\ +\xa0\x12\xb2\x1a\x14\x15\xbb\x09\xf8\x93\xdf\x2e\xd6\x17\x5a\xb7\ +\x6e\x1d\xa4\x01\xd8\x3a\x87\x8f\xe3\x99\x89\xd9\x56\x03\xb0\xb2\ +\x37\x25\x7f\x47\xf1\x28\x0c\x7b\x06\x1d\x02\xc4\xbe\x97\x5f\x7e\ +\x79\x9d\x0c\x60\xc5\xa3\x69\x06\x60\xf2\xec\xb2\x6f\x91\x5c\x41\ +\x12\x46\x96\xbb\x32\xab\x1e\x81\x0d\x07\xba\x6d\xaf\x48\x3c\x64\ +\x31\x16\x78\xe0\x81\x45\x62\x50\x81\x85\x0b\xef\x56\x28\xa0\x25\ +\x05\x9d\x31\x90\xcd\x20\xdc\x3e\x5f\xfc\xe2\x17\xd1\x34\xb1\xf3\ +\xa5\x3f\xf9\x0f\x7f\x30\x8d\x40\x98\x73\x46\xbf\x40\x0f\xc9\xec\ +\xe5\xa0\xe8\xef\x23\xd9\xf4\x92\x99\x12\xb7\x25\x8e\xa6\x9c\x9e\ +\xa4\xb5\x8a\xcf\x14\xdf\x73\xc5\x15\x57\x9c\xb0\x01\x1c\x17\x07\ +\x60\x70\x18\x4c\x96\xa1\x88\x55\x54\xd0\x62\x0e\x43\xe8\x03\xee\ +\xa3\x62\x7f\x66\x6d\x2f\xeb\xdf\xea\x76\x37\x91\x93\x60\x17\xb4\ +\x86\xbc\xb8\x21\x77\xde\x79\x27\x88\x80\x07\x16\x2d\x02\x33\x70\ +\xdf\x7d\x5f\x0e\x07\x2a\x8c\x21\x42\x2e\x4b\xc2\xe1\xd1\x80\xc5\ +\xe0\x73\x31\xa7\x90\x19\xa8\x1e\x3e\x38\x8d\xf3\x1c\x20\xc2\xc6\ +\x81\x49\xa1\x59\x74\xce\x84\x83\xe2\x42\x39\x78\x2f\x4b\xe4\x0a\ +\xc6\xee\x79\x89\xff\x53\x43\x67\x2e\xb5\x09\x9f\x1e\x7b\x7e\x84\ +\x2c\x7c\x3e\xca\x5c\x0c\x73\xe3\x4f\x7e\x35\x70\xf9\xf2\xe5\x26\ +\xaf\x86\x62\xb3\xec\xc9\x9d\xee\x08\xd0\xde\x6e\xb3\x00\x02\x9e\ +\xd9\xdf\x13\xb9\x03\xe9\xb6\x30\xd6\x0e\xa4\x3d\xbb\xa4\x23\x69\ +\xd1\x83\x8b\x92\x2b\x5c\x78\xcf\xdd\x46\xc0\x31\xa8\xe0\x0e\xbc\ +\x72\xd5\x4a\xbc\xf0\xd2\xab\x2f\xff\xd1\xef\xcf\xbf\xa0\xa3\xbd\ +\x5d\xe7\xe3\x59\x8c\xc9\x73\x26\xf6\xab\x3e\x05\x19\xc7\x89\xa0\ +\x85\xab\x92\x86\x18\x2f\x2d\x6b\x8f\x37\x61\xc4\xb4\xc8\xf9\x03\ +\x13\x01\x57\x5d\x75\x55\x7d\x10\xc0\x27\xf5\xda\xa3\x8b\x1b\x91\ +\x73\x74\x0c\xff\x6a\x1e\x08\x83\xf0\x12\xe1\xd2\xcf\xec\xeb\x0e\ +\xb3\x7d\x99\x62\x9a\xc8\xec\x75\xf5\x88\x27\x11\x29\xac\xea\x10\ +\xb9\x3b\x13\xe1\x8e\x3b\xee\x08\x90\xea\x8d\xe1\xbe\x2f\x7d\xd9\ +\xa1\xc2\x42\x33\x11\x99\xd5\x31\x77\x6c\xdf\x0e\x00\x17\xb4\xb5\ +\xb6\x85\xef\x2b\xf4\x05\x80\x72\x20\x77\xc6\xb2\xf1\x70\x67\x18\ +\x98\x39\x13\x0e\x3a\xc3\x8f\x3c\x27\xf0\x5b\x16\xb0\x18\x46\x9c\ +\xc1\xb9\xd4\xf7\x59\xfa\xb7\x3a\x06\x91\xbf\x6f\x84\x2c\xe3\x98\ +\x38\xd4\x0d\x01\x96\x2d\x4b\x24\x60\x94\x0a\x3c\x35\xf2\x7c\x37\ +\xc0\xeb\xf7\xf5\x24\x5a\xbe\x4c\x9b\x34\x6b\x77\xc0\x90\x99\xf7\ +\xa4\xc2\x68\x3c\x5b\x1d\xc7\x9d\xeb\xa2\x45\x8b\x14\x7a\x2c\x5c\ +\xb8\x50\x79\xde\x7d\x5f\xfe\x12\x9a\x27\x4d\xd9\x79\xd5\x45\x1f\ +\xb9\x64\xf6\xec\x2b\x04\x9b\x67\xd1\x31\x84\xe4\x5c\x65\x3f\xc1\ +\x95\xed\xfd\x06\x59\xd2\xf8\x2d\xe5\xec\x58\xad\x2c\x67\xfc\x5a\ +\x15\x8c\xd7\x7a\xf5\xd5\xd7\xd4\x8b\x03\xc4\xb8\x9d\x45\xbf\x2b\ +\xc6\x35\x8f\x8d\x9c\x36\xb0\x13\x08\x3f\x7e\xb3\x3b\xa4\x59\xf1\ +\x2d\x0e\x79\x7c\xce\xaa\x20\x1c\x45\x25\xef\x89\xb9\x6b\x07\xe3\ +\x22\xed\x8a\x92\x33\xbb\x70\x29\x3c\x50\x7c\xb7\x3f\x95\x3b\xef\ +\xbc\xb3\x20\x8e\x0f\x2e\x02\x31\x70\xdf\x7d\xf7\x05\x03\xb8\xeb\ +\xae\xbb\x00\x00\xa3\x87\x7e\x71\xc9\xe5\x97\x2f\x00\x07\xf7\x97\ +\x71\x5e\xa4\xaf\x82\xd8\xb2\x3f\x47\x02\x36\x1d\xe9\x0c\x46\x77\ +\x65\xdb\xa1\x02\x36\x84\x67\x30\xfb\x35\x0a\xb4\xac\x12\x81\x2e\ +\xa2\x41\xe8\x8e\x93\xf2\xb9\xe7\x18\x63\xa0\x03\x1c\x9f\x01\x70\ +\x4c\xf3\xf2\x92\xef\x67\x45\x74\x0a\xf3\x58\xff\xc6\x14\xc3\x17\ +\x82\x44\x53\x72\x1d\x5c\xf0\x3b\x4f\x94\xa4\x64\xeb\xc8\x00\x3b\ +\x7c\x2d\x8c\x8e\xc3\x0d\x67\xa9\x3d\xb0\xe0\x1b\x10\x44\x0d\x8c\ +\x3b\xef\xb8\x33\x84\x9d\x45\x0f\x3e\x08\x66\xe0\xab\x5f\xfd\x2a\ +\x9a\x27\xf5\xee\x18\x1d\x38\x70\x29\xb3\x24\x8b\x3a\x0c\x59\x11\ +\x24\x98\x9b\x33\x0a\x78\x27\x20\x60\xf3\x60\x34\x86\xd9\xad\xfd\ +\xa2\x0d\x8c\xe3\x65\x27\x31\xc2\xbb\x95\x0e\xa1\x94\x03\x9c\xf9\ +\x5d\xb9\x7e\x21\x60\xc9\xd2\xa5\x8e\xa5\x52\x02\xb5\x32\xa7\x23\ +\x30\x9e\x79\xb3\xb7\xf4\xcb\xd8\xc4\x44\x32\x35\x72\xd5\x01\x96\ +\x89\xdb\x1f\xe0\xb8\x04\x1a\x09\xa5\x65\x5f\x2e\x6b\x4b\x57\xa9\ +\xa0\x57\x28\x73\xfc\xc3\x3f\xfe\x03\xee\xb8\xe3\x0e\x9d\xf2\x91\ +\x90\x6d\x6d\x15\x50\x4a\xbb\xa2\x85\x4b\x85\x2a\x43\x32\xaf\x6c\ +\xed\x4f\x3a\x80\x74\x93\x08\x4a\xc4\x21\xdb\x61\x44\xb8\xee\xba\ +\xdf\x88\x65\xc6\x93\x4a\x02\x73\x8e\xb0\x27\x80\x28\xc4\x7d\x66\ +\x3c\xf3\xe6\x14\x11\x9e\x19\x10\xd0\x2c\xb4\x22\x93\x41\x72\xb4\ +\x0e\xb2\x72\xa9\x37\x1a\x8e\x33\x8d\x3d\xcb\x0a\x5e\xaa\x0d\x8d\ +\x6d\xea\x1a\x7e\x77\xa3\x91\x2b\x49\x3f\xc0\x71\xce\x51\xb2\xf5\ +\xf4\x2c\xa6\xbe\x1c\x8c\x93\x29\x82\x35\x85\xf0\xe4\xef\x11\x89\ +\x7e\x08\x0e\x88\x40\x60\x6c\x1e\xea\x84\xef\x47\x9c\xdd\xd2\xef\ +\x38\x40\x44\x27\x59\x40\x93\x01\x41\x27\x4e\x63\x83\x00\x63\xa3\ +\x03\xe4\xc5\x88\x6e\x78\xb3\xd7\x60\x0a\xc7\xbc\x3b\xc4\x48\x99\ +\xc7\x8a\x24\xd8\x5c\xac\xfc\x1e\x26\xa4\xeb\x07\x05\xb5\xb1\x88\ +\x8d\x60\xa8\x5c\x9f\xbd\xf2\xc8\x22\x54\x08\x4e\xe1\x43\x89\x0f\ +\x59\x24\x15\x07\x76\xc6\x2d\xea\x07\xc5\x00\xb2\x08\x6a\x31\x80\ +\x71\xcc\x6d\x5d\xf8\x13\xc6\xe3\xde\xcb\xdc\xf5\xb3\xd3\x1e\xfc\ +\x00\x6f\x1e\xee\x0a\x88\x32\xbb\xf9\x60\x5c\xfb\x48\xe4\xbd\xc1\ +\x38\xbc\x03\x30\xd9\x5a\x45\x1d\x38\x80\x18\xb4\x0d\xfb\x7a\x13\ +\xd7\x23\x29\xb0\xb0\xc0\x7a\x06\xc8\x91\x22\x0e\x44\x2a\x56\xf8\ +\xe0\x0a\x39\x60\x8a\x11\x96\xe5\x71\x29\x02\x44\xfc\xc5\x7d\x0d\ +\x01\x59\x91\x5e\x51\x26\xb8\x0a\xf9\xdf\x29\xa6\x54\xce\x68\xa5\ +\x37\xc7\x67\x8f\xb8\xe3\xe5\xce\x73\x4d\xea\x19\x6a\xdb\x99\x68\ +\x7f\x73\xc4\x54\xb0\xe3\xc8\xd8\x05\xd8\xf8\x73\x25\xf8\xc5\xae\ +\x22\xb1\x7c\x7e\xa4\x33\x84\x89\xd9\xcd\xef\x04\x9e\xe7\xf7\xf3\ +\xce\x40\x32\x1b\xaa\x87\x01\xc0\xc1\xd1\xb3\xfb\x7b\x95\xba\x46\ +\x35\xb2\x05\x52\x74\x37\x6a\x04\x41\xd4\x32\x50\xee\x49\x8e\xf7\ +\xcb\xe0\xe1\x5e\x64\x0a\x24\x58\xc0\x86\x1f\x5c\x3f\xb0\xb9\xf3\ +\x58\x09\x3e\xbe\x5a\xe8\x98\x78\xac\x4f\x38\x96\xcd\xc5\x95\xe4\ +\x39\x9b\x7e\xc7\x78\xfe\x9c\x45\x69\x8a\x72\xcf\x01\x5c\x4e\x2f\ +\x78\x48\xc8\xf1\x89\x35\x92\x09\x7d\x00\x6e\xf0\x49\x1a\x82\x33\ +\x97\xcd\xa3\x5d\x81\x5f\xcc\x6e\xea\x87\x04\x52\xb8\xeb\xa8\x9b\ +\x01\x6c\xd8\x57\x31\xb9\x78\x34\x0a\x69\xdd\x47\x3b\xd1\x10\x09\ +\x44\x09\x36\xc2\x6f\x84\xbb\xe2\x30\x0c\xc9\xc3\x19\xba\x0b\x39\ +\x1c\x90\xe5\xbc\x00\xd6\xdc\x82\xa2\xd7\xb3\x58\x75\xce\x23\x4c\ +\xf0\x74\x16\x06\x2a\x4b\xd9\x88\x0c\x5f\x74\x78\xe9\xc2\xb1\xd3\ +\xfd\x59\xe8\xdd\x6c\x2a\xa3\xf1\x34\xb9\xa4\xe8\x45\x02\x21\xa2\ +\xe0\xf3\x3c\x17\x99\xc4\xec\xac\xdf\xc0\x55\x1d\x0c\xa0\x7b\xc6\ +\xed\x68\xaf\x16\x03\x34\x98\x29\x1a\x18\x6a\xed\xa1\x16\xcf\xe2\ +\x86\x23\x5a\xbf\xcc\x02\x4a\xbb\x85\x3c\xe1\xf1\x1f\xcc\x04\xc4\ +\xab\x1a\x31\x92\xe6\x54\x46\x34\x84\x38\x20\x66\x9f\xf0\x9d\x24\ +\x5e\xce\x45\xff\x02\x27\xa9\x9e\x3c\x1e\x50\xd4\x21\x38\x83\xae\ +\x7f\xc8\x5c\xdd\xa3\x88\x43\x0d\x6b\x08\x9e\xc6\x90\xe2\xb9\x26\ +\xd5\x34\xc8\xb0\xa5\xda\x15\xb2\x92\xcb\xb3\xfe\x31\x31\x80\xec\ +\xf8\x38\x40\xf1\xd3\x5e\x25\xf7\x93\xe9\x50\xef\xbd\xc8\x3c\xcb\ +\x8b\x02\x3d\x8b\xde\x93\x33\x83\xdd\x45\xfa\xe3\x6a\xa5\xb8\x80\ +\xf5\xe0\x9d\xee\xe0\x52\xa3\x61\x16\xaf\x31\xc4\xef\x1e\xd6\x39\ +\x1c\xdc\x7f\x9e\xd9\xe9\x07\xee\x7d\x11\xfa\x8b\xe3\xe5\xb9\xfb\ +\xde\xe2\x18\x39\x33\x38\xe7\xb8\xaf\xdf\x3f\x2f\x42\x46\xee\xde\ +\x43\x9e\x8b\xf3\xc9\xf5\x7e\x76\x7f\x2e\x84\xaf\x9c\xed\xfb\x8c\ +\x3c\x8f\xef\xfb\xf7\x72\xb7\x6f\x9e\x03\xcf\x1e\xea\xc4\x94\x8f\ +\xdd\x5e\x87\x10\x20\x88\x9d\x14\x40\xda\xab\x91\xb1\x0c\x66\x79\ +\x74\x69\xe3\x4c\x8a\xd8\x05\xce\x24\xfa\x70\x54\x4f\x01\x69\x95\ +\x5e\xc4\x7f\x55\xc4\x93\xa9\x52\x78\x5f\xf7\x22\xb3\xca\x34\xa2\ +\xa2\xc6\x6c\x74\x18\x37\xb0\xb1\xc5\x5d\x4c\x48\xf5\x21\x89\xac\ +\x86\x89\x88\x3c\xa4\xb3\x99\x64\xf1\x53\x77\x9c\x02\xc9\x23\x3d\ +\x8c\x2c\x8a\x0d\x10\xe8\x82\xc2\xf0\xe1\xaa\x59\x73\xa1\x1e\x24\ +\x90\xd9\x14\x69\x75\x01\xb8\xad\x1a\x1b\x27\x8f\x34\xe5\xb1\xa2\ +\xc7\x26\xee\xb1\x24\x04\xc2\xc3\x75\x33\x51\x24\x8e\x0c\x53\x2c\ +\x89\x4d\x95\x0a\x69\x02\x9f\x64\x03\xf3\x28\xb7\x48\x91\xdd\x78\ +\xef\x0c\x79\x77\x86\x98\xde\x19\x89\x1a\xaa\x7c\x53\x90\x4e\x6f\ +\x50\x5e\xbc\xd2\x65\x5c\xa1\x09\x18\x9d\xa1\xf8\x60\xee\x48\xaa\ +\x31\x04\x02\x46\xdf\x63\x5d\xb2\xd6\x72\xf0\xc9\x33\x80\x00\xb9\ +\xd2\xc1\x75\x02\xed\x06\xad\x38\xfb\xf6\x51\x0a\x5e\x7d\xa4\x89\ +\x55\x0e\xec\xfb\xff\x7c\xca\xa7\xf8\x9c\x24\x42\x56\x06\xe0\x18\ +\x4f\xd9\xaf\x44\x22\xbd\xcc\xf5\x09\xe4\x0c\x64\xa2\x9e\x1e\xd4\ +\x35\xc1\x53\x22\x51\x24\xa1\xfd\xe7\xc8\x3d\x4a\xb0\x20\x82\xa1\ +\xd6\xc1\xc8\x33\xdd\x7b\x48\x82\x6b\x86\x7b\x22\xfe\x66\x96\x13\ +\x43\x58\xe7\x48\x72\x0d\x62\x8a\xfa\xc2\xf0\xa0\x51\x2b\x83\xee\ +\x01\xa7\x05\xd4\x4d\x07\x88\x6c\xd6\x16\x31\x7d\x3e\x4f\x02\x25\ +\xfc\x6f\x9e\x2b\x00\x8c\xc1\x26\x06\x15\x77\x53\xa5\x69\x7e\x2d\ +\x41\x2e\x09\x3b\x2c\x34\x06\x26\x18\xcf\x16\xf7\x31\x7e\x50\x19\ +\x28\x41\x1a\x2f\x99\xf2\x6d\x3c\x7e\xce\x1c\xaf\x2f\x17\xe5\x69\ +\x3f\xd1\x83\x01\x72\x61\x22\x0d\x05\xee\xdf\x3c\x0a\x51\x14\x64\ +\x5c\x99\x33\x98\x69\xed\x22\xed\x1d\x19\xf4\x4d\xa7\xb2\x51\x16\ +\x11\x33\x02\x52\x9e\x78\x51\xe0\x38\x43\x80\x43\x9f\x5c\x22\x3a\ +\xcb\xaa\xbd\xe9\x14\xf2\x0b\x3a\xc4\x2d\x1a\x03\x30\xe8\xc2\x44\ +\x58\x21\x1c\x72\x8e\x21\x47\x6b\x27\xd1\x3d\x6b\x42\x01\x84\x38\ +\x14\x92\x00\xcf\x53\x5c\x5f\x3e\x87\xd6\x70\xc9\xf4\x85\x15\x79\ +\x42\x98\x5b\xad\x1a\x46\xcd\x8c\x5a\x65\x26\x18\xbd\x54\xb0\x6d\ +\xe2\x1a\x7a\xfd\xc3\xe7\x0b\x23\x66\x31\x17\x20\x1f\xca\x75\x58\ +\x62\xfb\x27\xab\x8c\x64\x2c\x20\xe0\xf8\x43\x80\x4c\xed\x84\xd2\ +\xa5\x53\x54\x36\xa9\x8f\x95\x85\x8b\xbf\xda\x47\xe3\xaa\x19\x83\ +\x4d\x1c\x3d\x55\x36\x4f\x90\xd2\x41\xca\x85\x26\x72\x95\x43\xb1\ +\x1c\x3c\x81\xc4\x80\x92\xab\xd4\x59\xb4\x90\x09\xba\x08\x05\x20\ +\x6d\x64\x36\x2c\x31\x90\x53\x14\x83\xcc\xb4\xc8\xa0\x85\xc4\xd9\ +\x50\xf1\x9a\x7d\xb5\x33\x1f\xce\x93\x6e\xa6\xa8\x6d\x49\x6f\x17\ +\xab\xad\x92\xef\x25\xab\x47\x08\x60\x5b\xc3\x8e\x74\x8c\x49\x96\ +\x2a\x49\xc4\x68\xd3\x3b\x48\x92\x14\x69\x6b\x6f\x1b\x2d\x6e\xfa\ +\x60\x33\xcb\x2a\x51\x42\x8e\x65\x0d\x9d\xa1\xc5\x04\x26\xa1\xa5\ +\x8b\xc1\xf5\x0a\xa0\x2c\x0e\xab\x81\x76\x6f\x4a\xa5\x32\xb0\x7e\ +\x55\xe9\xcc\x55\x77\x3f\xab\xd9\x8f\x1c\x09\xaf\x30\x5a\x79\x6f\ +\x98\x09\xf9\x28\x42\x0f\x85\x0a\x21\x72\x5e\xa5\xbf\x2f\x99\x9c\ +\x83\x9d\x47\x99\x9c\xeb\xc6\x01\x34\x14\x17\xd6\x99\x3b\xf9\xd5\ +\x64\x07\xc2\x9b\xb8\xa4\x0c\xce\xd0\x12\xaf\xff\x6c\xdb\x68\x16\ +\x6e\xcb\x50\x73\x5e\xda\xbe\xc5\xa6\xee\xc0\x42\x65\x0a\x9a\x83\ +\x10\x6f\x94\x01\xa9\x56\x2d\xc9\x02\x8a\xfc\x3d\x86\x15\x8b\x01\ +\x35\xaa\x71\xb1\x5e\x2d\x7a\x22\xa3\xf7\x83\x80\x6a\x55\x5c\x2b\ +\x65\x49\xfa\x1a\x4e\x2c\xf3\x45\x9f\x58\x01\x8d\x05\x2d\x82\x59\ +\x5b\xaf\x4e\x24\xd0\x94\x67\xa5\xe4\x2b\x59\x3c\xa0\x3d\x32\x2a\ +\x75\xb2\x71\x83\x8c\x51\x08\x74\x20\x46\xdb\x48\x16\x42\xc1\x50\ +\xb3\x28\x2a\xb3\xc8\x0a\x28\x56\xf5\x42\x41\x09\x10\xbf\x93\x4a\ +\x56\xb9\x6c\x00\x83\x14\xcc\x22\xef\x77\xa5\x61\xd6\xda\xbd\x6d\ +\x40\xa1\x52\x35\xcf\x69\x8c\x55\x23\x97\x7a\xe5\x51\xc9\xc5\xa2\ +\xc3\x29\x2f\x5e\x63\x37\xed\xde\x42\x9f\x46\xaf\x7a\x84\x00\x96\ +\x83\x2a\xb5\x73\xdb\xc8\x65\xa2\xb4\xaf\xce\xd9\xd4\x2c\x94\x7e\ +\xa1\xa4\x93\x10\xa3\x89\x43\x57\x55\xdb\x48\x16\xa0\xb3\x08\x13\ +\xba\x62\x28\xdb\xbe\x89\xc4\x24\x2c\x66\x13\xf7\x75\xa9\x47\x71\ +\x2a\x4e\xb3\x05\x64\x2c\x90\x45\x93\x43\x72\xf7\x43\x66\x01\x00\ +\x81\x47\x73\xb3\x82\x78\x84\xfa\x58\x2a\x16\x0a\xa9\xf4\x72\xd5\ +\xc7\xe0\xbe\xd7\x87\x38\x66\x59\x04\xad\x1f\x09\xd4\x3a\xb6\xbe\ +\x7c\x50\x24\x63\xc6\x84\xc3\xa4\x51\x0b\xa7\x2c\xe1\xc3\x86\x0f\ +\x91\x25\x78\x12\xd5\x36\x12\x6f\xec\xa0\x08\x13\x61\xc1\x8a\x1c\ +\x6a\x96\x92\xac\x4a\xfb\x29\xea\x7e\x14\x18\x51\xa6\xcd\x73\x97\ +\x2d\xc8\x2c\x2b\xa7\x90\x83\x47\x95\x92\x12\x52\xa8\xb2\x13\x17\ +\x42\xe4\x5c\x3e\x9d\x3e\xc3\x68\x00\x3a\x93\x22\xeb\x48\x63\x57\ +\x03\x3a\xf1\x10\x90\x9e\x8c\xa4\x79\xba\x2a\x66\x99\x6c\x9c\x1c\ +\x2a\xb4\x34\xd2\x9c\x4f\x8d\x16\x58\x8b\x2a\x52\x91\x73\x61\xa8\ +\x6d\x24\xbe\x36\xd4\xc2\x11\x4e\x39\xa2\x88\xe7\x2d\xb1\x4d\x4c\ +\x4c\x1e\x05\x85\xd8\xcf\x0c\xa0\xca\xb1\xd9\x2a\x23\x21\x7d\x8b\ +\x38\x9f\xb1\x91\xbc\x05\xf1\x25\x1d\xea\xf4\xf3\xa6\x0a\x5e\x90\ +\x9b\x29\x91\xe1\x61\x57\x10\x29\x15\x71\x22\xb8\x59\x94\xa8\x8b\ +\x14\x9c\x4a\x18\x32\x9e\xb3\x86\xd3\x92\xf6\x71\x9d\x86\x1b\x12\ +\x24\x3c\x39\xe4\xcc\xf6\x75\x26\x3d\x4b\x86\x22\xfc\xb7\x8d\x44\ +\xd5\x6d\xb0\x85\x75\x28\xb1\x3c\x84\x84\x2e\x10\x38\x80\x11\xa8\ +\x72\xb1\xce\x81\xf0\xce\x9f\x0d\x4d\xc6\x39\xad\xfd\x5a\x01\x0c\ +\xb3\x8b\xca\x16\x40\x28\x0b\x93\xa2\xf3\xc1\xc7\xfc\x92\x74\xb9\ +\xb4\x27\x95\xeb\xc5\x01\x64\xe5\x4c\xe7\x78\xea\xac\xd4\x44\x4f\ +\x94\xd4\xf4\x13\xd1\x28\x86\x88\xe8\xb9\x42\x4d\x60\x88\x24\x9a\ +\x13\x63\x24\xa1\xa7\xa1\xe8\x09\x41\xdb\x70\x4c\xcc\x87\x5a\xf3\ +\xe4\xb6\x5b\xb5\x25\x54\x25\x43\xac\x96\xcd\x24\xbe\xf1\xa4\xf8\ +\xf0\xd9\x2d\xef\x44\xa5\xce\x67\x23\xb9\x90\x99\xcb\x4b\x41\xaa\ +\xf1\xc3\x12\xe8\x34\xab\x88\xf0\x41\x90\x9d\xd4\x5c\x1f\x29\x98\ +\xc3\xec\x1f\x3f\x5b\x45\x8b\xc1\xca\x91\x73\x53\xd5\xb2\xcd\x22\ +\xb6\x8d\xcc\x68\x5e\x91\xf5\x26\xac\xd0\x41\x72\xca\xec\xb9\xc4\ +\x35\xfc\xe7\x5a\x87\x0a\xf5\xf1\xa7\x47\x26\xe1\x9c\xae\x83\xfa\ +\x13\xa2\x39\x24\x34\xbd\x8a\xee\x1f\xbf\xea\x98\x2c\x0c\xc9\xe9\ +\x85\xe2\x56\xe8\x22\x17\x0b\x42\xca\x52\xd8\x72\xb2\x37\xc7\x6c\ +\x82\x84\x00\x94\xa6\xcf\x8c\xf2\x72\x54\x5d\xb2\x00\x06\x5b\xa5\ +\x8f\x80\x9c\x6d\x5b\x18\x27\x35\x0f\xb0\x29\x1a\x95\x58\x33\x29\ +\x5d\x9f\x44\xde\xce\x5a\x61\x24\xa7\xdb\x8b\xd0\x13\x70\xc5\x0d\ +\x4c\x6e\xf3\x6c\x00\xe7\xb7\x0f\x80\x87\x8a\x3c\x7c\xb8\x9d\xc3\ +\xe7\xe5\x34\x30\x30\x8a\x96\xaf\x26\x99\xc4\xb0\x5a\x1b\xc3\x67\ +\x19\x2c\x08\x5b\x48\x8b\xa5\xd8\x24\xe6\x26\x84\x54\x35\x13\xbe\ +\x6c\x9b\x83\x84\x21\x91\x99\x24\x52\xb6\x94\xc2\xc9\x27\x81\x32\ +\x1f\x55\xda\x25\xab\x9b\xcf\x25\x98\xc6\x66\x90\x94\x87\x9b\x0c\ +\x21\xed\x28\x8a\xa5\xdf\x18\x2f\x05\xc9\x63\x1f\x47\x49\xa5\x84\ +\x6c\xa5\x43\x71\x33\x5b\x8e\x44\x83\x1b\x6e\x8b\x03\x9d\x35\x15\ +\x17\x91\x73\xb2\x72\x90\xd6\x12\x44\xaf\x36\xa9\xc0\x91\xb6\xa2\ +\x13\x99\x98\x6e\x5c\xc0\x2e\xb5\xc7\xa2\x40\xa4\x82\x9c\xb9\x94\ +\x93\x8c\x00\x14\x66\xe2\xa8\x29\xe1\x24\xd2\xb5\xdc\xcc\x5c\x0a\ +\xe5\x4b\x2e\x05\x30\x15\xda\x2d\x16\x70\xe4\x04\xb9\xd0\x10\x28\ +\x8f\xca\x5f\x94\x4d\x8d\xbf\xb3\xaf\xc2\x29\x81\x5d\x67\xd8\xa2\ +\x83\xac\xf9\x08\x8a\x81\x97\x1d\xc5\x21\xff\xd6\x1d\xc2\xc1\x00\ +\x89\x42\xfb\x97\xe2\x0a\x61\xf1\x13\x8a\x44\xd7\x69\x02\xbe\xda\ +\x48\x14\x67\x40\xc5\x5e\x47\x8e\xea\x1f\xe9\xfc\x5f\x9b\x5e\x56\ +\x2f\x04\x60\xdd\xc3\x2f\xd3\xb7\x00\x7f\x94\x90\xdf\x5c\x0d\xbe\ +\x9c\x47\x68\xc4\x13\x55\x50\x61\x23\xd5\x6a\x42\x48\x92\xfd\xdb\ +\xea\x0e\x9b\x50\x6a\x2a\x7f\xb2\x6b\x28\xc0\x73\xb5\xaa\xa4\xee\ +\x84\x82\x0b\x09\x34\x0c\x2e\x24\xb4\x0b\x72\xc7\x54\xd2\x14\x45\ +\x6a\xbe\x7f\xac\x5d\xc8\x06\x16\xf9\x3c\x65\x5d\xef\xd6\xf4\x22\ +\xaf\x4f\x2d\x40\xf5\xfd\xc9\x06\x4c\x86\xa9\xfb\x91\xe9\x13\x20\ +\xdd\x0d\x9b\x43\xb5\x88\x5b\xd9\x23\xc8\x4a\x1c\x8b\x31\x2c\x84\ +\x20\xf9\xd5\xaa\x65\x48\xb5\x7b\x09\x84\x20\x91\xd2\x51\x2c\x0f\ +\xcb\x26\x8d\xc0\xae\x55\x99\x9d\x4d\x2c\x97\x44\x85\xcb\x26\x30\ +\x29\xce\x52\x2e\x99\x48\x8f\x46\x49\xd9\x59\xb4\xd4\x85\x92\xb8\ +\x33\x38\x8f\xbe\x54\xef\x89\x21\x92\xaf\x0b\x18\x48\x89\x1d\x4b\ +\x2d\x2f\x85\x5f\xaf\xcc\x49\xbd\xcc\x84\x4a\x56\x33\x79\x04\xfb\ +\xe7\x98\xcf\x93\x50\x4b\x8a\x0c\x24\xce\xa5\x53\x52\x31\xc5\x14\ +\x45\xad\x43\x40\x91\xe4\x81\xf5\x3a\x5c\x81\xd3\xa8\x89\x1c\x10\ +\x8b\x5f\xb1\x4a\x43\xad\xc7\x84\xb9\x89\xde\xa3\x95\x45\x08\x05\ +\x55\x35\xd2\xf8\x2f\xc8\xa1\x9e\xc4\xca\x63\x2b\x08\x9e\x40\x4f\ +\x20\xa9\xd2\x27\x91\x2c\x14\x95\x4c\xd7\xb2\x93\x41\x45\x58\x08\ +\x4d\x55\x25\x90\xad\x16\x12\xe3\x88\xeb\xac\x96\x06\x11\x85\x20\ +\xc0\xd4\x07\x38\xd4\xdb\xc3\x04\x0d\x5f\xce\xb5\x03\xc2\x6c\x6a\ +\x1b\xb5\xd2\x72\x89\x2c\x9c\x88\x96\x69\xbe\xcf\x35\x9a\x3e\x45\ +\xb8\x40\x4c\x8d\xc3\x84\xd3\xd0\x13\xe1\xce\x5b\xa4\x20\xc4\x75\ +\x2c\x06\x31\x43\x7b\xb8\x2a\xb0\x70\x52\x1b\x0b\xb2\xa6\x20\x74\ +\x1e\x52\xd5\x3a\x02\x2c\x67\xf1\x8a\xb9\xf8\xee\x58\x39\x53\xd2\ +\x64\x22\x19\xba\xed\x03\x88\xe8\x12\xe5\x67\x56\xcd\x29\xb1\x98\ +\x13\x9c\x0d\x4e\x09\x04\x89\x38\xee\x91\x44\xa9\xfa\xd1\xf0\x49\ +\x78\x7f\xe8\x18\xca\xe3\xec\x65\x21\x5c\xa5\x44\x17\x6a\x2a\x78\ +\xda\x39\x1c\x09\xb4\x8d\x22\x75\x53\x02\x59\x30\xb5\xd0\x9d\x12\ +\x96\x39\x93\xde\x17\xa7\x6b\xc9\x49\x8f\x2c\x50\x40\x41\x82\x22\ +\x53\x50\x5e\x11\x73\xe2\x38\xf4\x32\xcf\xd7\x32\xa3\xe8\xa0\xc9\ +\x23\x59\x63\x16\xab\x98\xc6\x39\x5c\xc9\xb2\x8b\xa1\xf1\x33\xa4\ +\xb3\x6e\x45\x50\xab\x58\x98\x62\x52\x28\x13\x33\x8b\x54\x35\xa2\ +\xa1\x5a\x3f\x2a\x8f\x4b\xec\xc4\x12\x31\xeb\xd9\xc4\xa2\x71\x56\ +\xad\x9f\x8d\xb1\x8b\x01\xc7\xa1\x04\x0a\x32\x16\x72\x37\x52\xa4\ +\x90\x44\xef\x56\x5c\x33\x48\x76\x02\x95\xac\xfd\xc5\xf1\x79\x82\ +\xa1\xe3\xcc\xa5\x5a\xde\xef\xad\x92\xc0\x86\x4f\x68\xa8\x66\x35\ +\x93\x48\x61\x93\x5a\x84\x92\x82\x37\x29\xfd\x21\x4c\xdd\xd1\xbc\ +\x35\xae\x0b\x98\x23\x4e\x5b\xe6\xa4\x39\x35\x93\x28\x14\xae\xcd\ +\x5f\x1f\x99\xca\x8e\x98\x3a\xca\x04\xca\x58\xcd\x78\x57\xe1\x44\ +\xbc\x51\xb7\x8e\x20\x94\x89\x3c\x1c\xbd\x3c\x28\x82\xc9\x2a\x20\ +\x50\xcd\x1c\x56\xd5\x62\xd9\x6d\x22\x62\x6e\x2e\x66\xe9\xe7\x9c\ +\xf6\x43\x92\xea\x03\x30\xe5\x69\x22\x95\xd6\xb1\x4c\x11\x65\x4a\ +\xe9\xa6\x95\xc9\xb6\x77\x84\x26\xd3\x68\x72\x91\x8f\x88\xcc\x20\ +\x69\x03\x21\xe4\x42\xa8\xf2\x93\x52\xe5\x5c\x48\x55\x42\x26\x39\ +\xb1\x84\x45\xad\x23\x99\x37\xaf\xc2\x2c\xd5\x8d\x03\x88\x82\x0b\ +\xcb\x06\x0f\xd6\x25\x19\x49\x94\x74\xd5\xce\xd6\x8d\xca\xdb\xab\ +\x24\x64\xb3\xc9\x42\xe4\xea\x9f\x6c\x1b\x0b\x29\xf6\xe0\xe6\x76\ +\xdd\x20\x65\xa4\x5c\xba\x4e\x21\xb3\x14\x7f\x7c\x06\x20\x67\x25\ +\x47\x58\x0e\xcd\x19\x24\xd7\x2e\x64\xd1\x9d\x4c\x71\x15\x30\x36\ +\xab\xa5\x1a\x33\x96\x6d\xf1\x72\x06\x95\x9d\x37\x09\x1e\xb3\xa6\ +\xe0\xe3\x4c\x03\x73\x31\xb7\x5f\xd6\xb8\xfd\x0d\x15\xa5\xbc\x18\ +\xe7\xc4\xfa\x39\x30\xf5\x01\xd1\x3d\xa9\x9b\x3e\xb9\x44\x14\x24\ +\x85\x04\xb2\xe0\x14\x26\xa4\xe4\x54\x40\xb4\xec\xca\x2c\x59\xb8\ +\x4a\x92\x58\xd5\x89\x2c\x10\x80\xd5\x42\x8d\x71\x20\x95\x84\x98\ +\xc5\xf3\x90\x75\x09\xe9\xfd\x76\x72\x68\x5a\x05\x91\x05\x00\x12\ +\x15\xc0\x32\xc4\x1d\x23\xfc\x3f\x7e\x21\x88\xd3\xee\x60\xeb\x4d\ +\x4a\x22\xa4\x52\xc1\x84\x18\x46\xeb\x46\x69\x03\x36\x13\x85\x96\ +\x30\x36\x03\x98\x28\xbd\x6c\xe4\xd8\x9c\x45\x0f\x11\xc5\x2e\x20\ +\xb5\x38\x85\x0b\x30\xec\xb3\x8d\x18\xb8\x6c\x84\x67\xb3\xda\x49\ +\xb1\x0a\x39\xf4\x4a\xa1\x72\x0d\xa3\xd0\x2e\xc6\x81\xc7\x44\x89\ +\x37\x3e\xa9\x44\x66\x10\xc4\xb9\x10\xab\x28\x25\x80\x75\xcd\x02\ +\x5c\x39\x94\x84\xcb\xaa\x86\x50\xb5\x44\x3b\x54\xab\x53\x98\x02\ +\x66\xa7\x91\x97\x08\x1c\x64\x58\x7d\x69\x1f\x41\xc9\x02\x8c\xbe\ +\xdc\xcc\x22\x5e\x43\x6a\x02\xcc\x6a\x11\x6b\x96\x25\x67\x16\x35\ +\x05\xa7\xbc\xa9\x4e\x66\x02\xc8\x2d\x1d\xab\x3c\x5d\x14\x71\x64\ +\xda\xeb\x1b\x4b\x48\x3a\x04\x74\xd7\x1b\x88\x04\x2f\x90\xdd\x3f\ +\x14\x49\x68\x1e\xbb\x92\x34\x3b\xe2\x93\x6f\x00\xad\x67\x5c\x85\ +\x15\xab\x5f\xc6\xf0\xc0\x66\x2c\xb8\xed\x36\xd1\xa7\x67\xa4\x5e\ +\xd9\x15\x23\xeb\xe0\x46\x10\x61\x41\xd6\xf2\x12\xb1\x45\x12\x25\ +\xd5\x87\x20\xe2\x21\x4b\xa8\x94\xe7\x60\x55\x55\xa3\x5e\xca\x85\ +\x27\xa2\x55\x4a\x74\x65\xf5\xd0\x2b\xd5\xae\x26\x56\xea\x50\x2a\ +\x64\x60\x1f\x46\x06\xaf\xa5\x16\x2a\x72\x07\xa5\x16\x12\x0b\x25\ +\x31\x4c\x45\x23\x5d\x46\x3e\xc9\x06\x30\x3a\x32\xf0\xd3\x1d\x1d\ +\x6d\x83\x97\xe2\x8c\x2b\xb1\x62\xd5\xcb\x00\x11\x7e\x77\xde\xf9\ +\x6e\x46\x8e\xe9\xe8\x4a\x64\x31\x52\xf2\x28\x44\x9c\x4f\x5b\x39\ +\xc8\x14\x9a\xa4\x08\x22\xcc\x88\x4d\xa1\x8f\x63\x1a\x98\x73\xda\ +\x6b\x48\x90\xa8\x42\xa6\xd6\xcf\x21\xee\x2b\x4f\x54\xb3\x1c\x29\ +\xe1\x2c\x6c\xe6\x98\xb3\x22\x6e\xba\x9f\x2b\xe8\x1c\x3e\x93\x20\ +\xd6\xa5\x70\xc1\xa7\x92\x26\x18\x99\x0c\x17\x73\xde\x4e\xf8\x29\ +\xe2\xef\xbb\xa6\xf8\xee\xbe\x07\x2e\x3b\x32\x3c\x71\x4b\x36\xf4\ +\x22\x2e\x9b\xde\x04\x66\x60\xf9\xea\x57\xf0\xe8\xea\x97\xb1\x78\ +\xf1\xc3\xee\x46\xe6\xc1\x93\x72\x88\x85\x1f\xb8\xec\x66\x43\x2d\ +\x0e\xa1\x94\x46\x96\x3f\x71\xc1\x04\xdf\xb5\x13\xf7\xe5\xb0\x28\ +\x43\x58\x04\x42\xcc\x2d\x60\xf1\xe5\x76\x81\x06\xce\xdd\xb1\x10\ +\x8f\x97\x87\x85\x19\xa0\xbf\x3f\x8f\x42\x48\x1e\x16\x73\xc8\x63\ +\x74\xf1\x0b\x4a\xf8\x30\x24\xcf\x5f\x2c\x1c\xa1\xb3\x0d\xd7\x46\ +\xa6\x16\xac\xc8\xe3\xa2\x14\xcc\x6a\xa1\x0a\xff\xf3\xf0\xe2\x87\ +\x71\xc6\x85\x37\xfd\xf7\xba\x64\x01\xef\xbe\xf9\xf5\xd9\x74\xf6\ +\x9f\xff\x70\xe7\xce\x1d\xbf\x79\xd9\xc5\x17\xa3\xad\xad\x1d\x00\ +\xf0\xdc\xae\x2b\xb1\x62\xf5\x2b\x00\x80\x91\x77\x37\x63\xfe\x82\ +\x05\xb1\x37\x20\x0a\x6f\x4a\xce\x0a\xcb\xa6\x1a\x82\x68\x12\x24\ +\xe9\x6e\x7a\xd2\x28\xe9\x94\x14\x35\x0a\x50\x6c\xa6\x61\x97\x85\ +\x1a\x96\x8b\x5f\x90\x5e\x8e\xcd\xac\xe2\x97\x90\x56\x3b\x4b\x9a\ +\x4a\x2b\xa3\x32\x8d\x45\xf1\x3c\x40\x5f\x13\x61\xd9\x5a\x10\xe7\ +\x36\x2a\x81\xc1\xb7\x11\x13\x03\xc8\x46\xdf\xfc\x97\xdf\xff\xf3\ +\x93\x8e\x00\x7e\x1b\x78\xfd\x6f\x3e\x36\xcc\x53\xd7\x6c\xdf\xbe\ +\x03\x87\x0f\x1f\x06\x00\xcc\xb9\xb8\x23\xfc\x14\x5c\xe1\x15\x3c\ +\xf2\xc8\x62\xe7\x56\x6e\xe5\x0d\xe1\xf6\x6a\x19\x17\xef\x0d\xbe\ +\xe7\xce\x7b\x03\x9b\x65\x55\xfc\x00\x89\x1e\x3e\xbf\x0c\x4c\xf0\ +\x76\x08\xaf\x92\x9e\x0c\x8f\x1c\x71\xb9\x95\x30\xe7\x36\x1e\x3c\ +\x78\x65\x5e\xf2\xfd\xfa\x75\xb3\x44\x0d\x74\x18\x61\xb5\x54\x8d\ +\x43\x0e\xb5\xc4\x4c\x1e\xbd\x3e\x5c\x3f\xc2\xf9\xa9\xe3\x88\xf3\ +\x7e\x64\xf1\x23\xe8\x38\xff\xba\xff\x31\x16\x2c\xb0\xe9\x44\x76\ +\x1e\x3e\xb4\xfe\x3b\xad\xdd\xbf\x77\xc9\x81\xfd\x7b\x66\x9e\x39\ +\xe9\x4c\xb4\x3b\x24\x00\x80\x0f\xf5\x35\xe3\xec\xbe\x16\xec\xeb\ +\xaf\x60\xf7\x4b\xef\x60\xf7\x4b\xef\x60\xe7\xd6\xa7\xfc\xb3\xee\ +\x34\x99\x2d\xab\x72\xc8\xe5\x5e\x05\x49\xe3\x92\x06\x54\xbd\xc8\ +\x56\xf9\x73\x68\x6a\x2d\xb0\xa9\x24\x62\xce\xb1\xeb\x95\x17\x31\ +\x6d\xda\x05\x25\x55\x7a\x8e\x5e\x09\xa1\x2b\x24\xe7\x4e\x7a\xfd\ +\x07\x9b\xb6\x9a\xf5\x01\x98\x0c\x39\x61\x43\x68\x90\xb6\xa4\xfd\ +\xe4\x27\xbb\xf1\xf6\x9a\xbf\xbe\xba\xee\x06\x00\x00\x43\x07\xbf\ +\xbf\xa4\xbd\xf2\xc7\x67\xfd\xf2\xad\x5d\xb3\xf7\xef\xdf\x8f\xd1\ +\xea\x28\x3a\x3a\x9e\x3b\xc2\x97\x00\x00\x07\x02\x49\x44\x41\x54\ +\x3a\xd0\xd4\x54\x1c\xfa\xec\xbe\x96\xf0\xb3\xaf\xbf\x82\x3d\x2f\ +\xbd\x83\x1d\x5b\xd7\x60\xd6\xac\x59\x82\xec\x98\xb4\x46\xd9\x40\ +\x9c\x94\xa1\x96\x83\xa5\x5a\x16\x54\x22\x96\xaa\xfe\x3b\xbd\xf6\ +\x0c\x2b\xf1\x29\xc7\x0b\x2f\xbf\x80\x69\x17\x4c\x8b\x2d\x65\x9e\ +\x7a\x71\x5c\xbf\x3f\x31\x3a\xab\x5d\xcb\x81\x93\xb2\x3f\xdb\x90\ +\x66\xab\x97\xa2\x88\x65\x5a\xe2\xfc\x6d\x5a\xba\x74\x19\xda\xcf\ +\x99\xfd\x9d\xf7\xf6\x3e\xb5\x62\x2c\x84\xa0\xb1\x6c\x30\x45\xf7\ +\xf4\x87\xbe\x32\x72\x78\xfb\xd5\x18\xdd\xf7\x9b\x93\x26\x4d\x42\ +\xa5\x52\x41\xcf\x94\x1e\x34\x65\xda\xce\x9e\xdb\x35\x18\x2e\x6c\ +\x78\x60\x33\xe6\xcf\xff\xac\xba\x99\x54\xe3\x4c\xc9\x2c\xd9\x66\ +\x07\x3c\x31\x1c\xf1\x44\x32\xaa\x75\xc5\x61\x11\x4a\x46\xb5\x5a\ +\xc5\xe2\xa7\x1e\xc1\x4d\x37\xdd\x1c\x7a\x08\xf4\x03\x47\xd3\x85\ +\x9c\x43\x62\xe7\x9f\xef\x4b\xba\x88\x93\x3c\x01\x3d\x79\x56\x80\ +\xac\x5b\x64\x5a\x44\x92\x86\xee\xce\x73\xf9\x8a\x65\x18\xd8\xfa\ +\x70\x1b\x80\xe1\x71\x67\x00\x62\x9b\xdc\x75\xfe\xdf\x7f\x65\xf4\ +\xbd\xdd\xd7\x66\x34\x30\xab\xd2\x5b\x41\xa5\x52\xc1\x99\x67\x9e\ +\x99\x7c\xf0\xb9\x9d\xb1\x2d\xf7\x53\xf3\xce\x33\xd4\x8f\x55\xa9\ +\x58\xeb\xfd\x50\xd3\xc9\xa3\x24\xa8\x1e\xb3\xac\x5b\xaf\xe4\x8a\ +\xa3\x66\xb0\x00\xa0\x5a\x1d\xc5\xe2\xa7\x96\xe2\xa6\x9b\x6f\xd2\ +\x8b\x3f\x26\x46\x28\x1e\x02\x05\x63\x8f\x64\x1e\xfd\x6e\xf7\x23\ +\xf3\x5e\xf2\x59\xb1\xbf\x58\x12\x1f\x04\xac\x58\xbe\x02\x6d\x67\ +\xcd\x5a\xfe\x8b\x27\x16\x7e\x7a\xac\x06\xea\x57\x65\x00\x61\xeb\ +\xbd\x78\xed\x7f\x1e\x3a\xf8\xe3\x6b\x9b\xf9\xb5\x4f\x12\x11\xa6\ +\x4e\xed\x43\xa5\xd2\x87\xd6\xd6\xd6\xd4\x10\x3c\xb7\x78\x77\x33\ +\xe6\xcf\x5f\x50\xd2\x8b\x23\x9a\xc2\x4c\x08\x20\x11\x82\x89\xcb\ +\x0c\x02\x42\x95\x2b\x79\xc2\x39\x80\xbc\x5a\xc5\xe2\x35\x8f\xe0\ +\xc6\x1b\x6f\xd2\x4f\x09\x51\x80\x91\x2e\xeb\xae\x8e\xaf\xad\xa5\ +\xb6\x31\x94\xbc\xa7\x9f\x3b\x68\xa2\x3f\x11\x1e\x7d\x74\x05\x06\ +\xb6\x3d\x3c\x11\xc0\x7b\xa7\x8c\x01\xc8\xef\xea\x9e\xfe\xd0\x5f\ +\x8f\xbc\xbb\xed\x5a\x54\xf7\x5f\x77\xd4\x10\x11\x8c\x81\x30\xfc\ +\xee\x26\xcc\x9f\x3f\xbf\x16\x6d\x13\xf1\xd4\xf2\x08\x32\x69\x24\ +\x4a\x1f\xfc\x20\x6f\x76\x35\x1f\xc5\x23\x6b\x96\xe0\xc6\x4f\xdc\ +\xa8\x3d\x3e\x79\xc0\xb4\x7d\xb8\x13\x27\x5e\x9c\xa2\x82\x7e\x5e\ +\x41\x62\xc0\x24\x43\xa0\x0d\x15\x8c\x47\x1f\x7d\x0c\x2d\x3d\xe7\ +\xae\x7d\x67\xdd\x5f\xdd\x30\xa6\x83\x82\xfa\x6c\x93\xba\xce\xfb\ +\xfa\xd7\x46\x8f\xfc\x9f\x39\xc4\x07\x2f\xea\xee\xee\x46\x5f\x5f\ +\x1f\xba\xba\xba\xcc\x13\x48\x81\xe7\x76\x14\x21\xa2\x40\x85\xf9\ +\x25\x93\x24\x4b\x56\xa3\x0c\x33\x87\x4a\xaa\x28\x94\x56\x23\xc3\ +\x93\x49\xaa\xa3\x78\x64\xed\x32\x7c\xe2\xc6\x1b\x60\x1f\x39\x13\ +\x4b\xdb\xd2\xbb\x8b\x05\x01\x4b\x63\x3e\x21\x0d\x55\xe2\x99\x40\ +\xc9\xc3\x2b\x90\x86\x06\x22\xc2\x63\xee\x39\xcd\x6d\x67\xcf\xfe\ +\xf6\x2f\x57\xff\xd9\x1f\xe2\x04\x9e\x13\x3c\x9e\x0c\x40\x84\x88\ +\xef\xdf\x35\x74\xf0\x47\xd7\xb4\x66\xaf\xfd\xce\xe8\xc8\x28\x2a\ +\x7d\x15\xf4\x55\xfa\x30\x61\xc2\x84\xd4\x10\x54\x88\x98\x6f\x52\ +\x82\x5a\x85\x12\x4a\xfa\xed\xc5\xfa\x8b\x6a\x49\xf6\x6a\x3e\x8a\ +\x25\x6b\x97\xe1\x86\x1b\x6e\x88\x44\x2f\x81\x62\xf9\xd8\x5b\x23\ +\x5b\xd7\x22\x8e\xa5\xa8\x80\xe2\xb9\x80\x96\xd3\xb8\xcf\xaf\x5c\ +\xb9\x12\x20\x1a\xed\x38\xff\xb7\xbf\x71\x60\xf9\x1f\xff\xa7\xb1\ +\x1e\xf8\x71\x63\x00\x72\xeb\xb9\xf0\xb1\x7b\x87\x07\x36\x5d\xd3\ +\x94\xbf\xfe\x89\xb6\xf6\x76\xf4\x55\xfa\xd0\xdb\xdb\x8b\xe6\xe6\ +\xe6\x63\x33\x86\xf4\x31\xa4\x35\x42\x87\x5e\xcc\xd2\x6f\x79\xb5\ +\x8a\x25\x4f\x2f\xc5\xdc\x1b\x6e\x10\x4f\xf0\x34\xb9\x3b\x95\x3c\ +\x6a\x9e\x52\x0f\x97\xcf\x37\xa4\x34\x35\x30\xfb\xc5\xc7\xc2\xac\ +\x5e\xb5\x0a\xc8\x9a\x07\x26\x4e\xbf\xe5\xc1\xb7\x16\xdf\xf6\x5f\ +\x30\xe6\x4b\x42\x8c\x63\x03\x90\x45\xc7\xc9\x17\x7c\xf3\x6f\x47\ +\xde\x7b\xf1\x1a\xca\x7f\x79\x45\x77\xf7\x64\x54\xfa\xfa\x30\xb9\ +\xab\xcb\xa5\x4a\xa9\x31\x24\xa8\x50\x33\x3b\xe0\x9a\x37\xa2\x9a\ +\x57\xb1\xf4\xe9\x65\x98\x7b\xfd\xf5\xa9\x67\xc3\xa4\x7f\xea\xd1\ +\xae\xc2\xb0\x48\x92\x4d\x6b\x14\x5c\x02\xff\xc5\x1f\x8f\x3f\xfe\ +\x38\xb2\xd6\x89\x3f\x9b\x70\xd1\xef\x7d\xf3\xad\x7f\xbe\xf9\xbe\ +\x93\x46\xcc\x30\xce\xb7\x49\x1f\xbe\xf7\x52\xca\x3a\xee\x6a\xcf\ +\x5e\xb9\x7d\x68\x68\x10\x95\x4a\x1f\xfa\xfa\x2a\x98\x30\x61\x62\ +\x6d\x54\x18\xd8\x8c\xf9\x0b\xe6\xd7\x96\x88\xa8\x8c\x3f\x10\xf2\ +\x7c\xb4\x30\x80\xb9\xd7\x97\x6b\x10\x94\x12\x47\x9d\xba\x1d\x25\ +\xee\x4b\x24\x71\x46\xf3\xe4\x93\x4f\x16\x6a\x5c\x47\xcf\xae\x89\ +\x97\x2e\xf8\xf6\xbe\x6f\x5e\x77\xff\xc9\xbe\xbf\xe3\xde\x00\xe4\ +\x36\xe5\xc2\x55\x7f\x31\x34\xb0\xf1\x9a\xa6\xfc\xf5\x9b\x5a\x5b\ +\x5b\xd1\xd7\x57\x84\x88\x96\x96\x96\xf7\x81\x0a\xb5\xa2\x02\x21\ +\xaf\x8e\x62\xe9\xf7\x4b\x0c\x20\x11\xfb\x8c\xb8\xe3\x57\x39\x97\ +\xa1\x41\x90\x0c\xfd\xa0\x6a\xc6\xf7\xbe\xf7\xaf\x00\x18\x2d\x53\ +\xa6\xaf\xec\xff\xfe\x17\x6e\x1b\xcb\xb4\xee\x03\x6d\x00\x52\xc2\ +\x9e\x3c\xed\x9f\xee\x1f\x79\x6f\xd7\x35\x54\x3d\x30\xa7\x6b\x72\ +\x17\xfa\x2a\x7d\xe8\xee\x9e\xac\x42\x44\xc2\x15\x3e\x3b\x3f\x5d\ +\xad\x45\x09\x41\x55\x2c\xfb\x41\x0d\x03\x28\x31\x1a\x32\x8f\x80\ +\x29\x56\xa4\x2d\xf3\xf8\xe2\xb3\xc5\xc0\x13\x5a\xa6\x7c\x64\xd5\ +\xc1\x1f\x7c\xe1\x36\x00\x87\xeb\x7d\x23\x4f\x55\x03\x50\xc0\xd0\ +\xf9\x6f\xee\xff\xdb\x8e\xec\xa5\x7f\x77\xe4\xc8\x11\xf4\xf6\xf6\ +\xa2\x6f\x6a\x1f\xce\x98\x78\x46\x39\x2a\x0c\x6c\x06\x08\xd1\x18\ +\x04\x25\xa8\xe6\xc7\x60\x00\x47\xb9\x7b\x64\x62\xbf\xf7\xfa\xa7\ +\xd6\xfc\x2b\x00\xca\xdb\xce\xb9\xe6\x9f\xde\x79\xf2\x4f\xff\x23\ +\x80\xd1\xf1\x72\xf3\x3e\x08\x06\x10\x2d\x61\xd6\xf7\xee\x1e\x1e\ +\xd8\x70\x75\x53\xfe\xda\xad\xcd\xcd\xcd\xe8\x9b\xda\x87\x4a\x6f\ +\xe5\xe8\x21\x42\x18\xc2\xfb\x36\x80\x5a\x77\x93\x8a\x04\x6f\xcd\ +\x9a\x35\x00\x65\x23\xed\xe7\x7d\xe2\xef\xdf\x5e\xf9\xef\x3f\xff\ +\xab\x66\xf4\xa7\xbd\x01\xa8\x10\xf1\x91\x6f\xfd\xcd\xc8\xe1\x9d\ +\xd7\x50\xf5\xc0\xd5\x9d\x9d\x9d\xa8\x54\x2a\xe8\xee\xe9\x56\xaa\ +\xa3\x25\x8e\x9f\xfe\xcc\xa7\x4f\xcc\x00\xdc\xb6\x6e\xdd\x5a\x20\ +\x6b\x39\xd4\x31\xfd\x53\x5f\xff\xe5\xb2\xdf\xfd\xcb\xf1\x38\xf0\ +\x1f\x74\x03\x90\x5b\x77\xd7\x79\x7f\x77\xff\xc4\xe6\x97\xfe\xe0\ +\xd0\xa1\x43\x98\x32\x65\x0a\x2a\x95\x0a\x3a\x3b\x3b\x95\xea\xf8\ +\xdc\x8e\x23\x60\xce\x31\xd2\xb1\xe5\xb8\x0d\xc0\x0d\xfc\x40\xfb\ +\x05\xb7\x2c\x7a\xfb\xd1\xdb\xfe\xeb\x78\x1e\xf8\xd3\xc9\x00\xa2\ +\xea\x78\xc9\x8f\x3f\x3f\xd4\xff\xf4\x6f\x34\xf3\xab\xbf\x03\x00\ +\x95\x4a\x05\x95\xbe\x0a\x3a\xda\x3b\xc2\x67\x36\xbe\xfd\xce\xd2\ +\x91\x03\xbb\x3e\xf3\x7e\x8c\x60\xdd\xba\xb5\xa0\xe6\x09\xfb\x3b\ +\x66\x7e\xea\x1b\xbf\x58\xfc\xc9\x2f\x9e\x4a\xf7\xe4\xb4\x32\x00\ +\xa5\x3a\xce\x58\xfc\xdf\x86\xdf\xdd\x36\x27\xcb\xf7\x7d\xbc\xa3\ +\xa3\x03\x53\xa7\x4e\x45\x4f\x4f\x0f\x9a\x9b\x9b\xf1\x5c\xff\xc0\ +\xff\x1e\x7e\x6b\xdb\xed\xff\x3f\x23\x58\xb7\x6e\x2d\xa8\x65\xe2\ +\x1b\x13\x66\x2d\x58\x74\xe0\xa1\x1b\xfe\xea\x54\xbc\x0f\xa7\xad\ +\x01\x88\xad\x6d\xf2\x05\xdf\xf8\xda\xc4\xa6\x5d\x77\xf4\xf7\x1f\ +\x44\x4f\x4f\x0f\xfa\xfa\xfa\xb0\x37\x6b\xf9\x5f\x23\xfb\xb7\x7e\ +\xae\xcc\x08\xd6\xad\x5b\x0b\x6a\x9b\xf4\x7f\x27\xcc\x5a\xf0\x8f\ +\x07\xbe\xf3\xf1\xaf\x9c\xca\x17\xdf\x30\x00\x99\x45\xcc\xfc\xee\ +\x67\x46\x8e\xec\xfe\x54\x7b\xf6\xd3\xdb\x06\x07\x07\x51\x3d\xab\ +\xe3\xa5\x7c\xf0\xe0\xb4\xb9\x73\xaf\xc7\x5b\x3f\x7f\x0b\x2f\xec\ +\xda\x05\x6a\x9f\xbc\x67\xe2\xac\xdb\xff\xe7\xcf\xbf\xfd\x6f\xef\ +\xff\x20\x5c\x73\xc3\x00\x6a\xa6\x94\x4f\x2c\x1c\x3e\xb4\xe1\xda\ +\x6a\xf7\xeb\xb3\x79\x74\xb0\x37\x9b\x58\xd9\x3a\x61\xd6\x82\x87\ +\x7e\xfe\xad\x6b\xbf\xd6\xb8\x3b\xa7\xdf\xd6\xde\xb8\x05\x8d\xad\ +\xb1\x35\xb6\xc6\xd6\xd8\x1a\x5b\x63\x6b\x6c\x8d\xad\xb1\x35\xb6\ +\xc6\xd6\xd8\x1a\x5b\x63\x6b\x6c\x8d\xed\x94\xde\xfe\x1f\x85\xe6\ +\xea\x07\x1c\xa6\x75\x1a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +" + +qt_resource_name = "\ +\x00\x04\ +\x00\x05\x9f\x00\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\ +\x00\x05\ +\x00\x6f\xa6\x53\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\ +\x00\x0c\ +\x0d\xfc\x11\x13\ +\x00\x74\ +\x00\x72\x00\x61\x00\x6e\x00\x73\x00\x6c\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\ +\x00\x0a\ +\x06\x57\xbb\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x66\x00\x69\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6d\xcb\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x70\x00\x6c\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x51\x9b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x63\x00\x73\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x56\x6b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x66\x00\x72\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6b\x3b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x6a\x00\x61\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x08\xc9\x6a\x1d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x7a\x00\x68\x00\x2d\x00\x54\x00\x57\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x09\xfa\xaf\x9d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x65\x00\x73\x00\x2d\x00\x45\x00\x53\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x0a\xc7\xc9\x5d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x73\x00\x76\x00\x2d\x00\x53\x00\x45\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6e\x5b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x6e\x00\x6f\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x61\x1b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x75\x00\x6b\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x62\x5b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x72\x00\x6f\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x54\x7b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x68\x00\x75\x00\x2e\x00\x71\x00\x6d\ +\x00\x07\ +\x09\xf0\x35\xdd\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x5c\xab\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x61\x00\x66\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6f\xcb\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x6e\x00\x6c\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x08\xf8\xda\x1d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x7a\x00\x68\x00\x2d\x00\x43\x00\x4e\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x04\xf7\x98\xfd\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x70\x00\x74\x00\x2d\x00\x42\x00\x52\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x60\x6b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x74\x00\x72\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x51\x7b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x64\x00\x65\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x54\x6b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x68\x00\x72\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x62\x7b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x72\x00\x75\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x63\x1b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x73\x00\x6b\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6b\x4b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x69\x00\x74\x00\x2e\x00\x71\x00\x6d\ +\x00\x12\ +\x03\x27\x8a\x07\ +\x00\x4f\ +\x00\x75\x00\x74\x00\x6c\x00\x69\x00\x6e\x00\x65\x00\x44\x00\x72\x00\x61\x00\x77\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\ +\x00\x67\ +\x00\x10\ +\x0a\xa3\xc2\x07\ +\x00\x53\ +\x00\x69\x00\x6d\x00\x43\x00\x72\x00\x65\x00\x61\x00\x74\x00\x65\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0d\ +\x0b\xa7\x6e\x67\ +\x00\x53\ +\x00\x69\x00\x6d\x00\x52\x00\x75\x00\x6e\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x07\ +\x0f\xa2\x57\xc7\ +\x00\x49\ +\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0e\ +\x0f\xf7\x2d\x47\ +\x00\x53\ +\x00\x69\x00\x6d\x00\x53\x00\x74\x00\x6f\x00\x70\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x13\ +\x05\x9d\xfb\x67\ +\x00\x48\ +\x00\x79\x00\x64\x00\x72\x00\x6f\x00\x73\x00\x74\x00\x61\x00\x74\x00\x69\x00\x63\x00\x73\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\ +\x00\x6e\x00\x67\ +\x00\x0e\ +\x0f\xf0\x94\xc7\ +\x00\x53\ +\x00\x69\x00\x6d\x00\x50\x00\x6f\x00\x73\x00\x74\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x10\ +\x04\xed\x4c\xa7\ +\x00\x41\ +\x00\x72\x00\x65\x00\x61\x00\x43\x00\x75\x00\x72\x00\x76\x00\x65\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0a\ +\x0d\xfc\xe0\xa7\ +\x00\x57\ +\x00\x65\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0b\ +\x0f\x48\xf8\x47\ +\x00\x4c\ +\x00\x6f\x00\x61\x00\x64\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x08\x4e\x5c\x07\ +\x00\x54\ +\x00\x61\x00\x6e\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ +" + +qt_resource_struct = "\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ +\x00\x00\x00\x0e\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x1b\ +\x00\x00\x00\x1e\x00\x02\x00\x00\x00\x17\x00\x00\x00\x04\ +\x00\x00\x01\xee\x00\x00\x00\x00\x00\x01\x00\x00\x17\x5a\ +\x00\x00\x02\x28\x00\x00\x00\x00\x00\x01\x00\x00\x17\x82\ +\x00\x00\x00\x70\x00\x00\x00\x00\x00\x01\x00\x00\x00\x28\ +\x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x17\x96\ +\x00\x00\x01\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x16\xf6\ +\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x3c\ +\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x17\x1e\ +\x00\x00\x02\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x17\x6e\ +\x00\x00\x01\x38\x00\x00\x00\x00\x00\x01\x00\x00\x16\xce\ +\x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\x16\xe2\ +\x00\x00\x02\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x17\xaa\ +\x00\x00\x02\x76\x00\x00\x00\x00\x00\x01\x00\x00\x17\xbe\ +\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x00\x50\ +\x00\x00\x02\x90\x00\x00\x00\x00\x00\x01\x00\x00\x17\xd2\ +\x00\x00\x00\x56\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\ +\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x16\xba\ +\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x17\x32\ +\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x00\x64\ +\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x00\x17\x46\ +\x00\x00\x01\x86\x00\x00\x00\x00\x00\x01\x00\x00\x17\x0a\ +\x00\x00\x00\xde\x00\x01\x00\x00\x00\x01\x00\x00\x00\x78\ +\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x16\xa6\ +\x00\x00\x02\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x17\xe6\ +\x00\x00\x03\x9e\x00\x00\x00\x00\x00\x01\x00\x01\x7c\x73\ +\x00\x00\x03\x50\x00\x00\x00\x00\x00\x01\x00\x01\x07\x79\ +\x00\x00\x03\xfa\x00\x00\x00\x00\x00\x01\x00\x01\xe6\x7a\ +\x00\x00\x02\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x40\xce\ +\x00\x00\x02\xfa\x00\x00\x00\x00\x00\x01\x00\x00\x79\x78\ +\x00\x00\x03\xc4\x00\x00\x00\x00\x00\x01\x00\x01\x93\xfa\ +\x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x01\xb0\x9d\ +\x00\x00\x03\x1a\x00\x00\x00\x00\x00\x01\x00\x00\xb2\x56\ +\x00\x00\x03\x7c\x00\x00\x00\x00\x00\x01\x00\x01\x46\xe3\ +\x00\x00\x03\x2e\x00\x00\x00\x00\x00\x01\x00\x00\xd3\xc2\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/src/Mod/Ship/SimInstance.py b/src/Mod/Ship/SimInstance.py index 85740d0348..0e8f6db2af 100644 --- a/src/Mod/Ship/SimInstance.py +++ b/src/Mod/Ship/SimInstance.py @@ -1,29 +1,32 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** from math import * import threading +# Qt library +from PyQt4 import QtGui,QtCore + # COIN from pivy.coin import * from pivy import coin @@ -34,640 +37,660 @@ from FreeCAD import Base, Vector import Part # Ship design module -from shipUtils import Paths, Translator, Math +from shipUtils import Paths, Math class FreeSurfaceFace: - def __init__(self, pos, normal, l, b): - """ Face storage. - @param pos Face position. - @param normal Face normal. - @param l Element length (distance between elements at x direction) - @param b Element beam (distance between elements at y direction) - """ - self.pos = pos - self.normal = normal - self.area = l*b + def __init__(self, pos, normal, l, b): + """ Face storage. + @param pos Face position. + @param normal Face normal. + @param l Element length (distance between elements at x direction) + @param b Element beam (distance between elements at y direction) + """ + self.pos = pos + self.normal = normal + self.area = l*b - def __init__(self, pos, normal, area): - """ Face storage. - @param pos Face position. - @param normal Face normal. - @param area Element area - """ - self.pos = pos - self.normal = normal - self.area = area + def __init__(self, pos, normal, area): + """ Face storage. + @param pos Face position. + @param normal Face normal. + @param area Element area + """ + self.pos = pos + self.normal = normal + self.area = area class ShipSimulation: - def __init__(self, obj, fsMeshData, waves): - """ Creates a new simulation instance on active document. - @param obj Created Part::FeaturePython object. - @param fsMeshData [L,B,N] Free surface mesh data, with lenght - (x), Beam (y) and desired number of points. - @param waves [[A,T,phi,heading],] Waves involved - """ - # Add uniqueness property to identify Tank instances - obj.addProperty("App::PropertyBool","IsShipSimulation","ShipSimulation", str(Translator.translate("True if is a valid ship simulation instance"))).IsShipSimulation=True - # Compute free surface mesh - self.createFSMesh(obj,fsMeshData) - self.computeWaves(obj,waves) - # Store waves - obj.addProperty("App::PropertyVectorList","Waves","ShipSimulation", str(Translator.translate("Waves (Amplitude,period,phase)"))).Waves=[] - obj.addProperty("App::PropertyFloatList","Waves_Dir","ShipSimulation", str(Translator.translate("Waves direction (0 deg to stern waves)"))).Waves_Dir=[] - w = [] - d = [] - for i in range(0,len(waves)): - w.append(Vector(waves[i][0], waves[i][1], waves[i][2])) - d.append(waves[i][3]) - obj.Waves = w - obj.Waves_Dir = d - # Add shapes - shape = self.computeShape(obj) - if not shape: - obj.IsShipSimulation=False - return - obj.Shape = shape - obj.Proxy = self + def __init__(self, obj, fsMeshData, waves): + """ Creates a new simulation instance on active document. + @param obj Created Part::FeaturePython object. + @param fsMeshData [L,B,N] Free surface mesh data, with lenght + (x), Beam (y) and desired number of points. + @param waves [[A,T,phi,heading],] Waves involved + """ + # Add uniqueness property to identify Tank instances + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship simulation instance", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyBool","IsShipSimulation","ShipSimulation", tooltip).IsShipSimulation=True + # Compute free surface mesh + self.createFSMesh(obj,fsMeshData) + self.computeWaves(obj,waves) + # Store waves + tooltip = str(QtGui.QApplication.translate("Ship","Waves (Amplitude,period,phase)", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyVectorList","Waves","ShipSimulation", tooltip).Waves=[] + tooltip = str(QtGui.QApplication.translate("Ship","Waves direction (0 deg to stern waves)", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloatList","Waves_Dir","ShipSimulation", tooltip).Waves_Dir=[] + w = [] + d = [] + for i in range(0,len(waves)): + w.append(Vector(waves[i][0], waves[i][1], waves[i][2])) + d.append(waves[i][3]) + obj.Waves = w + obj.Waves_Dir = d + # Add shapes + shape = self.computeShape(obj) + if not shape: + obj.IsShipSimulation=False + return + obj.Shape = shape + obj.Proxy = self - def onChanged(self, fp, prop): - """ Property changed, tank must be recomputed """ - if prop == "IsShipSimulation": - FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") + def onChanged(self, fp, prop): + """ Property changed, tank must be recomputed """ + if prop == "IsShipSimulation": + msg = QtGui.QApplication.translate("ship_console", "Ussually you don't want to modify manually this option", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + "\n") - def execute(self, obj): - """ Shape recomputation called """ - obj.Shape = self.computeShape(obj) + def execute(self, obj): + """ Shape recomputation called """ + obj.Shape = self.computeShape(obj) - def createFSMesh(self, obj, fsMeshData): - """ Create or modify free surface mesh. - @param obj Created Part::FeaturePython object. - @param fsMeshData [L,B,N] Free surface mesh data, with lenght - (x), Beam (y) and desired number of points. - """ - # Study input object - try: - props = obj.PropertiesList - props.index("IsShipSimulation") - if not obj.IsShipSimulation: - msg = str(Translator.translate("Object is not a valid ship simulation.\n")) - FreeCAD.Console.PrintError(msg) - return - except ValueError: - msg = str(Translator.translate("Object is not a ship simulation.\n")) - FreeCAD.Console.PrintError(msg) - return - # Get areas and number of elements per direction - L = fsMeshData[0] - B = fsMeshData[1] - N = fsMeshData[2] - A = L*B - area = A/N - l = sqrt(area) - b = sqrt(area) - nx = int(round(L / l)) - ny = int(round(B / b)) - # Start data fields if not already exist - props = obj.PropertiesList - try: - props.index("FS_Nx") - except ValueError: - obj.addProperty("App::PropertyInteger","FS_Nx","ShipSimulation", str(Translator.translate("Free surface number of elements at x direction"))).FS_Nx=0 - try: - props.index("FS_Ny") - except ValueError: - obj.addProperty("App::PropertyInteger","FS_Ny","ShipSimulation", str(Translator.translate("Free surface number of elements at y direction"))).FS_Ny=0 - try: - props.index("FS_Position") - except ValueError: - obj.addProperty("App::PropertyVectorList","FS_Position","ShipSimulation", str(Translator.translate("Free surface elements position"))).FS_Position=[] - try: - props.index("FS_Area") - except ValueError: - obj.addProperty("App::PropertyFloatList","FS_Area","ShipSimulation", str(Translator.translate("Free surface elements area"))).FS_Area=[] - try: - props.index("FS_Normal") - except ValueError: - obj.addProperty("App::PropertyVectorList","FS_Normal","ShipSimulation", str(Translator.translate("Free surface elements normal"))).FS_Normal=[] - # Fill data - obj.FS_Nx = nx - obj.FS_Ny = ny - pos = [] - areas = [] - normal = [] - for i in range(0,nx): - for j in range(0,ny): - pos.append(Vector(-0.5*L + (i+0.5)*l,-0.5*B + (j+0.5)*b,0.0)) - areas.append(l*b) - normal.append(Vector(0.0,0.0,1.0)) - obj.FS_Position = pos[:] - obj.FS_Area = areas[:] - obj.FS_Normal = normal[:] + def createFSMesh(self, obj, fsMeshData): + """ Create or modify free surface mesh. + @param obj Created Part::FeaturePython object. + @param fsMeshData [L,B,N] Free surface mesh data, with lenght + (x), Beam (y) and desired number of points. + """ + # Study input object + try: + props = obj.PropertiesList + props.index("IsShipSimulation") + if not obj.IsShipSimulation: + msg = QtGui.QApplication.translate("ship_console", "Object is not a valid ship simulation", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + '\n') + return + except ValueError: + msg = QtGui.QApplication.translate("ship_console", "Object is not a ship simulation", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + '\n') + return + # Get areas and number of elements per direction + L = fsMeshData[0] + B = fsMeshData[1] + N = fsMeshData[2] + A = L*B + area = A/N + l = sqrt(area) + b = sqrt(area) + nx = int(round(L / l)) + ny = int(round(B / b)) + # Start data fields if not already exist + props = obj.PropertiesList + try: + props.index("FS_Nx") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface number of elements at x direction", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyInteger","FS_Nx","ShipSimulation", tooltip).FS_Nx=0 + try: + props.index("FS_Ny") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface number of elements at y direction", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyInteger","FS_Ny","ShipSimulation", tooltip).FS_Ny=0 + try: + props.index("FS_Position") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface elements position", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyVectorList","FS_Position","ShipSimulation", tooltip).FS_Position=[] + try: + props.index("FS_Area") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface elements area", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloatList","FS_Area","ShipSimulation", tooltip).FS_Area=[] + try: + props.index("FS_Normal") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface elements normal", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyVectorList","FS_Normal","ShipSimulation", tooltip).FS_Normal=[] + # Fill data + obj.FS_Nx = nx + obj.FS_Ny = ny + pos = [] + areas = [] + normal = [] + for i in range(0,nx): + for j in range(0,ny): + pos.append(Vector(-0.5*L + (i+0.5)*l,-0.5*B + (j+0.5)*b,0.0)) + areas.append(l*b) + normal.append(Vector(0.0,0.0,1.0)) + obj.FS_Position = pos[:] + obj.FS_Area = areas[:] + obj.FS_Normal = normal[:] - def computeWaves(self, obj, waves): - """ Add waves effect to free surface mesh positions. - @param obj Created Part::FeaturePython object. - @param waves waves data [A,T,phase, heading]. - """ - grav = 9.81 - positions = obj.FS_Position[:] - for i in range(0, len(positions)): - for w in waves: - A = w[0] - T = w[1] - phase = w[2] - heading = pi*w[3]/180.0 - wl = 0.5 * grav / pi * T*T - k = 2.0*pi/wl - frec = 2.0*pi/T - pos = obj.FS_Position[i] - l = pos.x*cos(heading) + pos.y*sin(heading) - amp = A*sin(k*l + phase) - positions[i].z = positions[i].z + amp - obj.FS_Position = positions[:] + def computeWaves(self, obj, waves): + """ Add waves effect to free surface mesh positions. + @param obj Created Part::FeaturePython object. + @param waves waves data [A,T,phase, heading]. + """ + grav = 9.81 + positions = obj.FS_Position[:] + for i in range(0, len(positions)): + for w in waves: + A = w[0] + T = w[1] + phase = w[2] + heading = pi*w[3]/180.0 + wl = 0.5 * grav / pi * T*T + k = 2.0*pi/wl + frec = 2.0*pi/T + pos = obj.FS_Position[i] + l = pos.x*cos(heading) + pos.y*sin(heading) + amp = A*sin(k*l + phase) + positions[i].z = positions[i].z + amp + obj.FS_Position = positions[:] - def computeShape(self, obj): - """ Computes simulation involved shapes. - @param obj Created Part::FeaturePython object. - @return Shape - """ - nx = obj.FS_Nx - ny = obj.FS_Ny - mesh = FSMesh(obj) - # Create BSpline surface - surf = Part.BSplineSurface() - for i in range(1,nx-1): - u = i / float(nx-1) - surf.insertUKnot(u,i,0.000001) - for i in range(1,ny-1): - v = i / float(ny-1) - surf.insertVKnot(v,i,0.000001) - for i in range(0,nx): - for j in range(0,ny): - u = i / float(nx-1) - v = j / float(ny-1) - point = mesh[i][j].pos - surf.movePoint(u,v,point,i+1,i+1,j+1,j+1) - return surf.toShape() + def computeShape(self, obj): + """ Computes simulation involved shapes. + @param obj Created Part::FeaturePython object. + @return Shape + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + mesh = FSMesh(obj) + # Create BSpline surface + surf = Part.BSplineSurface() + for i in range(1,nx-1): + u = i / float(nx-1) + surf.insertUKnot(u,i,0.000001) + for i in range(1,ny-1): + v = i / float(ny-1) + surf.insertVKnot(v,i,0.000001) + for i in range(0,nx): + for j in range(0,ny): + u = i / float(nx-1) + v = j / float(ny-1) + point = mesh[i][j].pos + surf.movePoint(u,v,point,i+1,i+1,j+1,j+1) + return surf.toShape() class ViewProviderShipSimulation: - def __init__(self, obj): - """ Set this object to the proxy object of the actual view provider """ - obj.Proxy = self + def __init__(self, obj): + """ Set this object to the proxy object of the actual view provider """ + obj.Proxy = self - def attach(self, obj): - """ Setup the scene sub-graph of the view provider, this method is mandatory """ - return + def attach(self, obj): + """ Setup the scene sub-graph of the view provider, this method is mandatory """ + return - def updateData(self, fp, prop): - """ If a property of the handled feature has changed we have the chance to handle this here """ - return + def updateData(self, fp, prop): + """ If a property of the handled feature has changed we have the chance to handle this here """ + return - def getDisplayModes(self,obj): - ''' Return a list of display modes. ''' - modes=[] - return modes + def getDisplayModes(self,obj): + ''' Return a list of display modes. ''' + modes=[] + return modes - def getDefaultDisplayMode(self): - ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' - return "Flat Lines" + def getDefaultDisplayMode(self): + ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' + return "Flat Lines" - def setDisplayMode(self,mode): - ''' Map the display mode defined in attach with those defined in getDisplayModes. - Since they have the same names nothing needs to be done. This method is optinal. - ''' - return mode + def setDisplayMode(self,mode): + ''' Map the display mode defined in attach with those defined in getDisplayModes. + Since they have the same names nothing needs to be done. This method is optinal. + ''' + return mode - def onChanged(self, vp, prop): - ''' Print the name of the property that has changed ''' - # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") + def onChanged(self, vp, prop): + ''' Print the name of the property that has changed ''' + # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") - def __getstate__(self): - ''' When saving the document this object gets stored using Python's cPickle module. - Since we have some un-pickable here -- the Coin stuff -- we must define this method - to return a tuple of all pickable objects or None. - ''' - return None + def __getstate__(self): + ''' When saving the document this object gets stored using Python's cPickle module. + Since we have some un-pickable here -- the Coin stuff -- we must define this method + to return a tuple of all pickable objects or None. + ''' + return None - def __setstate__(self,state): - ''' When restoring the pickled object from document we have the chance to set some - internals here. Since no data were pickled nothing needs to be done here. - ''' - return None + def __setstate__(self,state): + ''' When restoring the pickled object from document we have the chance to set some + internals here. Since no data were pickled nothing needs to be done here. + ''' + return None - def getIcon(self): - return """ - /* XPM */ - static char * Sim_xpm[] = { - "32 32 301 2", - " c None", - ". c #CCCCCC", - "+ c #A9A9A9", - "@ c #989898", - "# c #A1A1A1", - "$ c #C3C3C3", - "% c #C1C0C1", - "& c #BFBFBF", - "* c #A7A7A7", - "= c #808080", - "- c #5C5C5C", - "; c #565655", - "> c #4E4E4E", - ", c #676767", - "' c #898989", - ") c #B6B5B6", - "! c #BABABA", - "~ c #B9B9B9", - "{ c #A5A5A5", - "] c #7E7E7E", - "^ c #595A59", - "/ c #575656", - "( c #535353", - "_ c #505050", - ": c #4D4D4C", - "< c #474747", - "[ c #404040", - "} c #4D4D4D", - "| c #787878", - "1 c #B8B7B8", - "2 c #B6B6B6", - "3 c #888888", - "4 c #7C7C7C", - "5 c #575657", - "6 c #535354", - "7 c #4E4D4E", - "8 c #4A4A4A", - "9 c #444444", - "0 c #414141", - "a c #3E3E3E", - "b c #393938", - "c c #313131", - "d c #393939", - "e c #636363", - "f c #ABABAB", - "g c #B3B3B3", - "h c #848484", - "i c #787979", - "j c #545454", - "k c #515151", - "l c #4B4B4B", - "m c #484748", - "n c #3B3B3B", - "o c #383838", - "p c #353535", - "q c #323232", - "r c #2F2F2E", - "s c #2A2A2A", - "t c #222323", - "u c #252625", - "v c #AFAFAF", - "w c #767676", - "x c #484848", - "y c #454545", - "z c #424242", - "A c #3F3F3E", - "B c #3B3B3C", - "C c #393838", - "D c #2F2F2F", - "E c #2C2C2C", - "F c #292929", - "G c #262626", - "H c #222222", - "I c #1F1F20", - "J c #171716", - "K c #959595", - "L c #747474", - "M c #4E4E4F", - "N c #4C4B4C", - "O c #484849", - "P c #424243", - "Q c #282828", - "R c #525251", - "S c #373737", - "T c #353636", - "U c #333233", - "V c #30302F", - "W c #2C2D2D", - "X c #232323", - "Y c #201F20", - "Z c #1D1D1D", - "` c #151414", - " . c #717272", - ".. c #4C4C4C", - "+. c #484949", - "@. c #464545", - "#. c #424343", - "$. c #3A3A3A", - "%. c #5D4A49", - "&. c #7E7E86", - "*. c #56569F", - "=. c #3E3E41", - "-. c #757575", - ";. c #575757", - ">. c #222221", - ",. c #262627", - "'. c #242423", - "). c #212020", - "!. c #1A1A1A", - "~. c #121212", - "{. c #939493", - "]. c #6F6F6F", - "^. c #494949", - "/. c #464646", - "(. c #434343", - "_. c #554545", - ":. c #686863", - "<. c #939394", - "[. c #BDBDBD", - "}. c #202021", - "|. c #1E1E1E", - "1. c #171718", - "2. c #0F0F0F", - "3. c #929292", - "4. c #6C6D6D", - "5. c #464746", - "6. c #525F73", - "7. c #444648", - "8. c #3D3D3D", - "9. c #2D2C2A", - "0. c #A1A2A2", - "a. c #AAACAC", - "b. c #A6A7A7", - "c. c #A8AAAA", - "d. c #AFB0B0", - "e. c #777676", - "f. c #9A9A9A", - "g. c #1B1B1B", - "h. c #181818", - "i. c #0C0C0C", - "j. c #909090", - "k. c #6B6A6B", - "l. c #55657E", - "m. c #6990FB", - "n. c #6483CD", - "o. c #5871B2", - "p. c #434E7E", - "q. c #A97C76", - "r. c #AB7777", - "s. c #AC7070", - "t. c #A26565", - "u. c #805C5C", - "v. c #848686", - "w. c #424342", - "x. c #151515", - "y. c #0A0909", - "z. c #8F8F8F", - "A. c #676868", - "B. c #3B3A3A", - "C. c #383738", - "D. c #353534", - "E. c #45525F", - "F. c #6367AC", - "G. c #804682", - "H. c #942A39", - "I. c #991312", - "J. c #540901", - "K. c #393742", - "L. c #1C1C1C", - "M. c #191919", - "N. c #161515", - "O. c #121313", - "P. c #070707", - "Q. c #8D8E8D", - "R. c #656566", - "S. c #3E3F3F", - "T. c #2F2E2F", - "U. c #353838", - "V. c #35496A", - "W. c #3E4D88", - "X. c #354889", - "Y. c #5573D7", - "Z. c #5D80FB", - "`. c #374899", - " + c #293338", - ".+ c #101010", - "++ c #0D0D0D", - "@+ c #040404", - "#+ c #8C8C8C", - "$+ c #8B8B8B", - "%+ c #4B4A4B", - "&+ c #303030", - "*+ c #333232", - "=+ c #2F2F30", - "-+ c #232223", - ";+ c #1A1919", - ">+ c #2E3949", - ",+ c #5C7BA3", - "'+ c #36467D", - ")+ c #536F93", - "!+ c #0A0A0A", - "~+ c #010101", - "{+ c #C1C1C1", - "]+ c #B8B8B8", - "^+ c #A0A0A0", - "/+ c #3F3F3F", - "(+ c #222122", - "_+ c #202020", - ":+ c #161717", - "<+ c #141414", - "[+ c #111011", - "}+ c #0D0E0E", - "|+ c #0B0B0A", - "1+ c #000000", - "2+ c #525252", - "3+ c #686868", - "4+ c #ADADAD", - "5+ c #9E9F9F", - "6+ c #6D6D6D", - "7+ c #3C3C3C", - "8+ c #131414", - "9+ c #111111", - "0+ c #0E0E0E", - "a+ c #0B0B0B", - "b+ c #080708", - "c+ c #050504", - "d+ c #4C4D4C", - "e+ c #4D4C4D", - "f+ c #494A4A", - "g+ c #454444", - "h+ c #9D9D9D", - "i+ c #9E9E9E", - "j+ c #AEAEAE", - "k+ c #BEBEBF", - "l+ c #BEBDBD", - "m+ c #979797", - "n+ c #6A6B6A", - "o+ c #3F3F40", - "p+ c #020202", - "q+ c #030303", - "r+ c #878787", - "s+ c #69696A", - "t+ c #868685", - "u+ c #646464", - "v+ c #474647", - "w+ c #656565", - "x+ c #9E9F9E", - "y+ c #A8A8A8", - "z+ c #AFAFAE", - "A+ c #A4A4A4", - "B+ c #7A7A7A", - "C+ c #969696", - "D+ c #363636", - "E+ c #777776", - "F+ c #8C8D8D", - "G+ c #7D7D7D", - "H+ c #5E5E5E", - "I+ c #4F4F50", - "J+ c #808181", - "K+ c #707070", - "L+ c #909191", - "M+ c #9C9C9C", - "N+ c #787877", - "O+ c #696969", - "P+ c #616161", - "Q+ c #6E6E6E", - "R+ c #7C7B7C", - "S+ c #777677", - "T+ c #6F6E6E", - "U+ c #595959", - "V+ c #717171", - "W+ c #8D8D8D", - "X+ c #515051", - "Y+ c #49494A", - "Z+ c #4B4A4A", - "`+ c #606060", - " @ c #6A6A6A", - ".@ c #616162", - "+@ c #6C6D6C", - "@@ c #767777", - "#@ c #727272", - "$@ c #6B6B6B", - "%@ c #828283", - "&@ c #757475", - "*@ c #444545", - "=@ c #565656", - "-@ c #5A595A", - ";@ c #666666", - ">@ c #878687", - ",@ c #8A8A8A", - "'@ c #797979", - ")@ c #444344", - "!@ c #7F8080", - "~@ c #737373", - "{@ c #484747", - "]@ c #707170", - "^@ c #7F7F7F", - "/@ c #676867", - "(@ c #4D4C4C", - "_@ c #5F5F5F", - ":@ c #434444", - " ", - " ", - " . + ", - " @ # $ % & * ", - " = - ; > , ' ) ! ~ { ", - " ] ^ / ( _ : < [ } | # 1 2 # 3 ", - " 4 5 6 _ 7 8 < 9 0 a b c d e ' f g + h ", - " i j k 7 l m 9 0 a n o p q r s t u < | v ", - " w k > l x y z A B C p q D E F G H I J K ", - " L M N O y P Q R S T U V W F G X Y Z ` K ", - " ...+.@.#.$.%.&.*.=.-.;.>.,.'.).Z !.~.{. ", - " ].^./.(.[ c _._ :.<.[.$ ' /.}.|.!.1.2.3. ", - " 4.5.6.7.8.9.# 0.a.b.c.d.e.f.g.g.h.` i.j. ", - " k.9 l.m.n.o.p.q.r.s.t.u.v.w.g.h.x.~.y.z. ", - " A.0 a B.C.D.E.F.G.H.I.J.K.L.M.N.O.2.P.Q. ", - " R.S.n o p q T.E U.V.W.X.Y.Z.`. +.+++@+#+ ", - " $+%+&+q *+=+E F G -+I Z ;+>+,+'+)+!+~+$+ ", - " {+]+^+w /+H (+X _+Z !.:+<+[+}+|+P.1+' ", - " k 2+_ > 3+z.4+5+6+7+x.~.8+9+0+a+b+c+1+3 ", - " %+..d+e+..f+< g+h+i+j+k+l+m+n+o+P.p+q+p+1+r+ ", - " s+t+u+< (.< v+y 9 (.w+x+y+z+y+h+A+B+C+K ].D+1+h ", - " E+i+F+f.j.G+H+9 [ (.z I+J+m+f.j.K+z 9 9 9 K+L+r+/.9 (. ", - " L M+N+O+u+P+Q+R+S+T+U+y 8 - ;...9 9 9 9 9 9 9 9 (.(.k w+ ", - " V+m+' W+r+] , X+Y+(.: r+L P+k 9 z (.9 9 9 9 (.(.Z+;.- `+ ", - " ].C+w @u+.@+@@@#@$@j %@B+&@#@L $@H+2+/.0 (.*@+.} 2+=@-@ ", - " ;@| >@,@'@u+k 8 )@..!@| ~@V+#@#@#@#@L 6+..(.9 {@.._ ( ", - " e ]@^@] /@k G+w #@#@#@#@#@V+ @$@_ 9 9 9 /.Y+(@ ", - " - R.T+L ~@#@#@#@#@]._ _@_ 9 9 9 (.9 x ", - " =@_@O+L ~@#@~@L _ 9 9 :@ ", - " ;.H+ @-._ (. ", - " ", - " "}; - """ + def getIcon(self): + return """ + /* XPM */ + static char * Sim_xpm[] = { + "32 32 301 2", + " c None", + ". c #CCCCCC", + "+ c #A9A9A9", + "@ c #989898", + "# c #A1A1A1", + "$ c #C3C3C3", + "% c #C1C0C1", + "& c #BFBFBF", + "* c #A7A7A7", + "= c #808080", + "- c #5C5C5C", + "; c #565655", + "> c #4E4E4E", + ", c #676767", + "' c #898989", + ") c #B6B5B6", + "! c #BABABA", + "~ c #B9B9B9", + "{ c #A5A5A5", + "] c #7E7E7E", + "^ c #595A59", + "/ c #575656", + "( c #535353", + "_ c #505050", + ": c #4D4D4C", + "< c #474747", + "[ c #404040", + "} c #4D4D4D", + "| c #787878", + "1 c #B8B7B8", + "2 c #B6B6B6", + "3 c #888888", + "4 c #7C7C7C", + "5 c #575657", + "6 c #535354", + "7 c #4E4D4E", + "8 c #4A4A4A", + "9 c #444444", + "0 c #414141", + "a c #3E3E3E", + "b c #393938", + "c c #313131", + "d c #393939", + "e c #636363", + "f c #ABABAB", + "g c #B3B3B3", + "h c #848484", + "i c #787979", + "j c #545454", + "k c #515151", + "l c #4B4B4B", + "m c #484748", + "n c #3B3B3B", + "o c #383838", + "p c #353535", + "q c #323232", + "r c #2F2F2E", + "s c #2A2A2A", + "t c #222323", + "u c #252625", + "v c #AFAFAF", + "w c #767676", + "x c #484848", + "y c #454545", + "z c #424242", + "A c #3F3F3E", + "B c #3B3B3C", + "C c #393838", + "D c #2F2F2F", + "E c #2C2C2C", + "F c #292929", + "G c #262626", + "H c #222222", + "I c #1F1F20", + "J c #171716", + "K c #959595", + "L c #747474", + "M c #4E4E4F", + "N c #4C4B4C", + "O c #484849", + "P c #424243", + "Q c #282828", + "R c #525251", + "S c #373737", + "T c #353636", + "U c #333233", + "V c #30302F", + "W c #2C2D2D", + "X c #232323", + "Y c #201F20", + "Z c #1D1D1D", + "` c #151414", + " . c #717272", + ".. c #4C4C4C", + "+. c #484949", + "@. c #464545", + "#. c #424343", + "$. c #3A3A3A", + "%. c #5D4A49", + "&. c #7E7E86", + "*. c #56569F", + "=. c #3E3E41", + "-. c #757575", + ";. c #575757", + ">. c #222221", + ",. c #262627", + "'. c #242423", + "). c #212020", + "!. c #1A1A1A", + "~. c #121212", + "{. c #939493", + "]. c #6F6F6F", + "^. c #494949", + "/. c #464646", + "(. c #434343", + "_. c #554545", + ":. c #686863", + "<. c #939394", + "[. c #BDBDBD", + "}. c #202021", + "|. c #1E1E1E", + "1. c #171718", + "2. c #0F0F0F", + "3. c #929292", + "4. c #6C6D6D", + "5. c #464746", + "6. c #525F73", + "7. c #444648", + "8. c #3D3D3D", + "9. c #2D2C2A", + "0. c #A1A2A2", + "a. c #AAACAC", + "b. c #A6A7A7", + "c. c #A8AAAA", + "d. c #AFB0B0", + "e. c #777676", + "f. c #9A9A9A", + "g. c #1B1B1B", + "h. c #181818", + "i. c #0C0C0C", + "j. c #909090", + "k. c #6B6A6B", + "l. c #55657E", + "m. c #6990FB", + "n. c #6483CD", + "o. c #5871B2", + "p. c #434E7E", + "q. c #A97C76", + "r. c #AB7777", + "s. c #AC7070", + "t. c #A26565", + "u. c #805C5C", + "v. c #848686", + "w. c #424342", + "x. c #151515", + "y. c #0A0909", + "z. c #8F8F8F", + "A. c #676868", + "B. c #3B3A3A", + "C. c #383738", + "D. c #353534", + "E. c #45525F", + "F. c #6367AC", + "G. c #804682", + "H. c #942A39", + "I. c #991312", + "J. c #540901", + "K. c #393742", + "L. c #1C1C1C", + "M. c #191919", + "N. c #161515", + "O. c #121313", + "P. c #070707", + "Q. c #8D8E8D", + "R. c #656566", + "S. c #3E3F3F", + "T. c #2F2E2F", + "U. c #353838", + "V. c #35496A", + "W. c #3E4D88", + "X. c #354889", + "Y. c #5573D7", + "Z. c #5D80FB", + "`. c #374899", + " + c #293338", + ".+ c #101010", + "++ c #0D0D0D", + "@+ c #040404", + "#+ c #8C8C8C", + "$+ c #8B8B8B", + "%+ c #4B4A4B", + "&+ c #303030", + "*+ c #333232", + "=+ c #2F2F30", + "-+ c #232223", + ";+ c #1A1919", + ">+ c #2E3949", + ",+ c #5C7BA3", + "'+ c #36467D", + ")+ c #536F93", + "!+ c #0A0A0A", + "~+ c #010101", + "{+ c #C1C1C1", + "]+ c #B8B8B8", + "^+ c #A0A0A0", + "/+ c #3F3F3F", + "(+ c #222122", + "_+ c #202020", + ":+ c #161717", + "<+ c #141414", + "[+ c #111011", + "}+ c #0D0E0E", + "|+ c #0B0B0A", + "1+ c #000000", + "2+ c #525252", + "3+ c #686868", + "4+ c #ADADAD", + "5+ c #9E9F9F", + "6+ c #6D6D6D", + "7+ c #3C3C3C", + "8+ c #131414", + "9+ c #111111", + "0+ c #0E0E0E", + "a+ c #0B0B0B", + "b+ c #080708", + "c+ c #050504", + "d+ c #4C4D4C", + "e+ c #4D4C4D", + "f+ c #494A4A", + "g+ c #454444", + "h+ c #9D9D9D", + "i+ c #9E9E9E", + "j+ c #AEAEAE", + "k+ c #BEBEBF", + "l+ c #BEBDBD", + "m+ c #979797", + "n+ c #6A6B6A", + "o+ c #3F3F40", + "p+ c #020202", + "q+ c #030303", + "r+ c #878787", + "s+ c #69696A", + "t+ c #868685", + "u+ c #646464", + "v+ c #474647", + "w+ c #656565", + "x+ c #9E9F9E", + "y+ c #A8A8A8", + "z+ c #AFAFAE", + "A+ c #A4A4A4", + "B+ c #7A7A7A", + "C+ c #969696", + "D+ c #363636", + "E+ c #777776", + "F+ c #8C8D8D", + "G+ c #7D7D7D", + "H+ c #5E5E5E", + "I+ c #4F4F50", + "J+ c #808181", + "K+ c #707070", + "L+ c #909191", + "M+ c #9C9C9C", + "N+ c #787877", + "O+ c #696969", + "P+ c #616161", + "Q+ c #6E6E6E", + "R+ c #7C7B7C", + "S+ c #777677", + "T+ c #6F6E6E", + "U+ c #595959", + "V+ c #717171", + "W+ c #8D8D8D", + "X+ c #515051", + "Y+ c #49494A", + "Z+ c #4B4A4A", + "`+ c #606060", + " @ c #6A6A6A", + ".@ c #616162", + "+@ c #6C6D6C", + "@@ c #767777", + "#@ c #727272", + "$@ c #6B6B6B", + "%@ c #828283", + "&@ c #757475", + "*@ c #444545", + "=@ c #565656", + "-@ c #5A595A", + ";@ c #666666", + ">@ c #878687", + ",@ c #8A8A8A", + "'@ c #797979", + ")@ c #444344", + "!@ c #7F8080", + "~@ c #737373", + "{@ c #484747", + "]@ c #707170", + "^@ c #7F7F7F", + "/@ c #676867", + "(@ c #4D4C4C", + "_@ c #5F5F5F", + ":@ c #434444", + " ", + " ", + " . + ", + " @ # $ % & * ", + " = - ; > , ' ) ! ~ { ", + " ] ^ / ( _ : < [ } | # 1 2 # 3 ", + " 4 5 6 _ 7 8 < 9 0 a b c d e ' f g + h ", + " i j k 7 l m 9 0 a n o p q r s t u < | v ", + " w k > l x y z A B C p q D E F G H I J K ", + " L M N O y P Q R S T U V W F G X Y Z ` K ", + " ...+.@.#.$.%.&.*.=.-.;.>.,.'.).Z !.~.{. ", + " ].^./.(.[ c _._ :.<.[.$ ' /.}.|.!.1.2.3. ", + " 4.5.6.7.8.9.# 0.a.b.c.d.e.f.g.g.h.` i.j. ", + " k.9 l.m.n.o.p.q.r.s.t.u.v.w.g.h.x.~.y.z. ", + " A.0 a B.C.D.E.F.G.H.I.J.K.L.M.N.O.2.P.Q. ", + " R.S.n o p q T.E U.V.W.X.Y.Z.`. +.+++@+#+ ", + " $+%+&+q *+=+E F G -+I Z ;+>+,+'+)+!+~+$+ ", + " {+]+^+w /+H (+X _+Z !.:+<+[+}+|+P.1+' ", + " k 2+_ > 3+z.4+5+6+7+x.~.8+9+0+a+b+c+1+3 ", + " %+..d+e+..f+< g+h+i+j+k+l+m+n+o+P.p+q+p+1+r+ ", + " s+t+u+< (.< v+y 9 (.w+x+y+z+y+h+A+B+C+K ].D+1+h ", + " E+i+F+f.j.G+H+9 [ (.z I+J+m+f.j.K+z 9 9 9 K+L+r+/.9 (. ", + " L M+N+O+u+P+Q+R+S+T+U+y 8 - ;...9 9 9 9 9 9 9 9 (.(.k w+ ", + " V+m+' W+r+] , X+Y+(.: r+L P+k 9 z (.9 9 9 9 (.(.Z+;.- `+ ", + " ].C+w @u+.@+@@@#@$@j %@B+&@#@L $@H+2+/.0 (.*@+.} 2+=@-@ ", + " ;@| >@,@'@u+k 8 )@..!@| ~@V+#@#@#@#@L 6+..(.9 {@.._ ( ", + " e ]@^@] /@k G+w #@#@#@#@#@V+ @$@_ 9 9 9 /.Y+(@ ", + " - R.T+L ~@#@#@#@#@]._ _@_ 9 9 9 (.9 x ", + " =@_@O+L ~@#@~@L _ 9 9 :@ ", + " ;.H+ @-._ (. ", + " ", + " "}; + """ def FSMesh(obj, recompute=False): - """ Get free surface mesh in matrix mode. - @param obj Created Part::FeaturePython object. - @param recompute True if mesh must be recomputed, False otherwise. - @return Faces matrix - """ - nx = obj.FS_Nx - ny = obj.FS_Ny - if not recompute: - faces = [] - for i in range(0,nx): - faces.append([]) - for j in range(0,ny): - faces[i].append(FreeSurfaceFace(obj.FS_Position[j + i*ny], - obj.FS_Normal[j + i*ny], - obj.FS_Area[j + i*ny])) - return faces - # Transform positions into a mesh - pos = [] - for i in range(0,nx): - pos.append([]) - for j in range(0,ny): - pos[i].append(obj.FS_Position[j + i*ny]) - # Recompute normals and dimensions - normal = [] - l = [] - b = [] - for i in range(0,nx): - normal.append([]) - l.append([]) - b.append([]) - for j in range(0,ny): - i0 = i-1 - i1 = i+1 - fi = 1.0 - j0 = j-1 - j1 = j+1 - fj = 1.0 - if i == 0: - i0 = i - i1 = i+1 - fi = 2.0 - if i == nx-1: - i0 = i-1 - i1 = i - fi = 2.0 - if j == 0: - j0 = j - j1 = j+1 - fj = 2.0 - if j == ny-1: - j0 = j-1 - j1 = j - fj = 2.0 - l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) - b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) - xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, - obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, - obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) - yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, - obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, - obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) - n = Vector(xvec.cross(yvec)) # Z positive - normal[i].append(n.normalize()) - # Create faces - faces = [] - for i in range(0,nx): - faces.append([]) - for j in range(0,ny): - faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) - # Reconstruct mesh data - for i in range(0,nx): - for j in range(0,ny): - obj.FS_Position[j + i*ny] = faces[i][j].pos - obj.FS_Normal[j + i*ny] = faces[i][j].normal - obj.FS_Area[j + i*ny] = faces[i][j].area - return faces + """ Get free surface mesh in matrix mode. + @param obj Created Part::FeaturePython object. + @param recompute True if mesh must be recomputed, False otherwise. + @return Faces matrix + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + if not recompute: + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(obj.FS_Position[j + i*ny], + obj.FS_Normal[j + i*ny], + obj.FS_Area[j + i*ny])) + return faces + # Transform positions into a mesh + pos = [] + for i in range(0,nx): + pos.append([]) + for j in range(0,ny): + pos[i].append(obj.FS_Position[j + i*ny]) + # Recompute normals and dimensions + normal = [] + l = [] + b = [] + for i in range(0,nx): + normal.append([]) + l.append([]) + b.append([]) + for j in range(0,ny): + i0 = i-1 + i1 = i+1 + fi = 1.0 + j0 = j-1 + j1 = j+1 + fj = 1.0 + if i == 0: + i0 = i + i1 = i+1 + fi = 2.0 + if i == nx-1: + i0 = i-1 + i1 = i + fi = 2.0 + if j == 0: + j0 = j + j1 = j+1 + fj = 2.0 + if j == ny-1: + j0 = j-1 + j1 = j + fj = 2.0 + l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) + b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) + xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, + obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, + obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) + yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, + obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, + obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) + n = Vector(xvec.cross(yvec)) # Z positive + normal[i].append(n.normalize()) + # Create faces + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) + # Reconstruct mesh data + for i in range(0,nx): + for j in range(0,ny): + obj.FS_Position[j + i*ny] = faces[i][j].pos + obj.FS_Normal[j + i*ny] = faces[i][j].normal + obj.FS_Area[j + i*ny] = faces[i][j].area + return faces diff --git a/src/Mod/Ship/TankInstance.py b/src/Mod/Ship/TankInstance.py index 48a1269715..8bb084bf9a 100644 --- a/src/Mod/Ship/TankInstance.py +++ b/src/Mod/Ship/TankInstance.py @@ -1,28 +1,31 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import time +# Qt library +from PyQt4 import QtGui,QtCore + # COIN from pivy.coin import * from pivy import coin @@ -33,1913 +36,734 @@ from FreeCAD import Base, Vector import Part # Ship design module -from shipUtils import Paths, Translator, Math +from shipUtils import Paths, Math class ShipTank: - def __init__(self, obj, solid, level=0, density=998.0): - """ Creates a new tank on active document. - @param obj Created Part::FeaturePython object. - @param solid Solid shape that represent the tank. - @param level Tank filling level. - @param density Fluid density. - """ - # Add uniqueness property to identify Tank instances - obj.addProperty("App::PropertyBool","IsShipTank","ShipTank", str(Translator.translate("True if is a valid ship tank instance"))).IsShipTank=True - # Add general options - obj.addProperty("App::PropertyFloat","Level","ShipTank", str(Translator.translate("Fluid filling level percentage"))).Level=level - obj.addProperty("App::PropertyFloat","Density","ShipTank", str(Translator.translate("Inside fluid density"))).Density=density - # Add shapes - shape = self.computeShape(solid) - if not shape: - obj.IsShipTank=False - return - obj.Shape = shape - obj.Proxy = self + def __init__(self, obj, solid, level=0, density=998.0): + """ Creates a new tank on active document. + @param obj Created Part::FeaturePython object. + @param solid Solid shape that represent the tank. + @param level Tank filling level. + @param density Fluid density. + """ + # Add uniqueness property to identify Tank instances + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship tank instance", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyBool","IsShipTank","ShipTank", tooltip).IsShipTank=True + # Add general options + tooltip = str(QtGui.QApplication.translate("Ship","Fluid filling level percentage", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloat","Level","ShipTank", tooltip).Level=level + tooltip = str(QtGui.QApplication.translate("Ship","Inside fluid density", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloat","Density","ShipTank", tooltip).Density=density + # Add shapes + shape = self.computeShape(solid) + if not shape: + obj.IsShipTank=False + return + obj.Shape = shape + obj.Proxy = self - def onChanged(self, fp, prop): - """ Property changed, tank must be recomputed """ - if prop == "IsShipTank": - FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") - elif prop == "Level": - if fp.Level > 100.0: - fp.Level = 100.0 - elif fp.Level < 0.0: - fp.Level = 0.0 + def onChanged(self, fp, prop): + """ Property changed, tank must be recomputed """ + if prop == "IsShipTank": + FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") + elif prop == "Level": + if fp.Level > 100.0: + fp.Level = 100.0 + elif fp.Level < 0.0: + fp.Level = 0.0 - def execute(self, obj): - """ Shape recomputation called """ - obj.Shape = self.computeShape(obj.Shape) + def execute(self, obj): + """ Shape recomputation called """ + obj.Shape = self.computeShape(obj.Shape) - def computeShape(self, solid): - """ Create faces shape. This method also calls to generate boxes. - @param solid Solid shape that represent the tank. - @return Computed solid shape. None if can't build it. - """ - # Study input to try to build a solid - if solid.isDerivedFrom('Part::Feature'): - # Get shape - shape = solid.Shape - if not shape: - return None - solid = shape - if not solid.isDerivedFrom('Part::TopoShape'): - return None - # Get shells - shells = solid.Shells - if not shells: - return None - # Build solids - solids = [] - for s in shells: - solid = Part.Solid(s) - if solid.Volume < 0.0: - solid.reverse() - solids.append(solid) - # Create compound - shape = Part.CompSolid(solids) - return shape + def computeShape(self, solid): + """ Create faces shape. This method also calls to generate boxes. + @param solid Solid shape that represent the tank. + @return Computed solid shape. None if can't build it. + """ + # Study input to try to build a solid + if solid.isDerivedFrom('Part::Feature'): + # Get shape + shape = solid.Shape + if not shape: + return None + solid = shape + if not solid.isDerivedFrom('Part::TopoShape'): + return None + # Get shells + shells = solid.Shells + if not shells: + return None + # Build solids + solids = [] + for s in shells: + solid = Part.Solid(s) + if solid.Volume < 0.0: + solid.reverse() + solids.append(solid) + # Create compound + shape = Part.CompSolid(solids) + return shape class ViewProviderShipTank: - def __init__(self, obj): - """ Set this object to the proxy object of the actual view provider """ - obj.Proxy = self + def __init__(self, obj): + """ Set this object to the proxy object of the actual view provider """ + obj.Proxy = self - def attach(self, obj): - """ Setup the scene sub-graph of the view provider, this method is mandatory """ - return + def attach(self, obj): + """ Setup the scene sub-graph of the view provider, this method is mandatory """ + return - def updateData(self, fp, prop): - """ If a property of the handled feature has changed we have the chance to handle this here """ - return + def updateData(self, fp, prop): + """ If a property of the handled feature has changed we have the chance to handle this here """ + return - def getDisplayModes(self,obj): - ''' Return a list of display modes. ''' - modes=[] - return modes + def getDisplayModes(self,obj): + ''' Return a list of display modes. ''' + modes=[] + return modes - def getDefaultDisplayMode(self): - ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' - return "Shaded" + def getDefaultDisplayMode(self): + ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' + return "Shaded" - def setDisplayMode(self,mode): - ''' Map the display mode defined in attach with those defined in getDisplayModes. - Since they have the same names nothing needs to be done. This method is optinal. - ''' - return mode + def setDisplayMode(self,mode): + ''' Map the display mode defined in attach with those defined in getDisplayModes. + Since they have the same names nothing needs to be done. This method is optinal. + ''' + return mode - def onChanged(self, vp, prop): - ''' Print the name of the property that has changed ''' - # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") + def onChanged(self, vp, prop): + ''' Print the name of the property that has changed ''' + # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") - def __getstate__(self): - ''' When saving the document this object gets stored using Python's cPickle module. - Since we have some un-pickable here -- the Coin stuff -- we must define this method - to return a tuple of all pickable objects or None. - ''' - return None + def __getstate__(self): + ''' When saving the document this object gets stored using Python's cPickle module. + Since we have some un-pickable here -- the Coin stuff -- we must define this method + to return a tuple of all pickable objects or None. + ''' + return None - def __setstate__(self,state): - ''' When restoring the pickled object from document we have the chance to set some - internals here. Since no data were pickled nothing needs to be done here. - ''' - return None + def __setstate__(self,state): + ''' When restoring the pickled object from document we have the chance to set some + internals here. Since no data were pickled nothing needs to be done here. + ''' + return None - def getIcon(self): - return """ - /* XPM */ - static char * Tank_xpm[] = { - "128 128 1605 2", - " c None", - ". c #000000", - "+ c #D1D1D1", - "@ c #D2D2D2", - "# c #D3D3D3", - "$ c #D3D4D4", - "% c #D5D5D5", - "& c #CFD0CF", - "* c #D0D0D0", - "= c #D3D2D3", - "- c #D4D4D3", - "; c #D5D6D5", - "> c #D6D6D6", - ", c #D7D7D7", - "' c #CDCECE", - ") c #CFCECE", - "! c #D0CFCF", - "~ c #D3D3D2", - "{ c #D3D3D4", - "] c #D5D4D5", - "^ c #D6D7D6", - "/ c #D8D8D8", - "( c #D8D8D9", - "_ c #D9D9DA", - ": c #CCCCCB", - "< c #CCCCCC", - "[ c #CECECD", - "} c #CECECE", - "| c #CFCFCF", - "1 c #D1D2D2", - "2 c #D5D4D4", - "3 c #D8D9D9", - "4 c #DAD9DA", - "5 c #DADBDB", - "6 c #DBDCDB", - "7 c #CACACA", - "8 c #CACBCB", - "9 c #CBCBCB", - "0 c #CCCDCD", - "a c #CECDCD", - "b c #D2D2D1", - "c c #D2D3D3", - "d c #D4D3D3", - "e c #D9D9D8", - "f c #D9D9D9", - "g c #DADBDA", - "h c #DBDCDC", - "i c #DCDCDC", - "j c #DDDDDD", - "k c #DEDEDE", - "l c #C7C8C8", - "m c #C9C9C9", - "n c #CAC9CA", - "o c #CBCBCC", - "p c #CCCDCC", - "q c #CDCDCD", - "r c #D0D1D1", - "s c #D1D2D1", - "t c #D3D2D2", - "u c #D4D4D5", - "v c #D5D5D6", - "w c #D6D7D7", - "x c #D8D7D8", - "y c #D9D8D9", - "z c #DADAD9", - "A c #DBDADA", - "B c #DBDBDC", - "C c #DDDCDD", - "D c #DDDEDE", - "E c #DEDFDE", - "F c #DFE0E0", - "G c #E0E0E1", - "H c #C6C6C6", - "I c #C7C7C7", - "J c #C8C8C7", - "K c #C9C9C8", - "L c #CACAC9", - "M c #CBCACB", - "N c #D0CFD0", - "O c #D1D0D1", - "P c #D1D1D2", - "Q c #D4D4D4", - "R c #D6D5D6", - "S c #D7D6D7", - "T c #D7D8D8", - "U c #DAD9D9", - "V c #DADADA", - "W c #DBDBDB", - "X c #DCDBDC", - "Y c #DDDDDC", - "Z c #DFDEDF", - "` c #E0DFDF", - " . c #E0E0E0", - ".. c #E1E1E1", - "+. c #E2E2E2", - "@. c #C5C4C4", - "#. c #C5C5C5", - "$. c #C8C8C8", - "%. c #C9C8C8", - "&. c #D5D5D4", - "*. c #D8D7D7", - "=. c #D9D8D8", - "-. c #DCDDDD", - ";. c #DEDDDD", - ">. c #E3E4E3", - ",. c #E5E4E4", - "'. c #C4C4C4", - "). c #C6C7C6", - "!. c #C7C8C7", - "~. c #C8C8C9", - "{. c #CACACB", - "]. c #CCCBCB", - "^. c #D0D0D1", - "/. c #D5D6D6", - "(. c #D7D7D6", - "_. c #DFDFDF", - ":. c #E1E2E2", - "<. c #E3E3E3", - "[. c #E4E3E4", - "}. c #E6E5E5", - "|. c #E6E6E6", - "1. c #E6E7E7", - "2. c #C4C5C5", - "3. c #C6C6C7", - "4. c #CFD0D0", - "5. c #D1D0D0", - "6. c #D6D5D5", - "7. c #DADADB", - "8. c #DCDDDC", - "9. c #DDDDDE", - "0. c #DEDFDF", - "a. c #E1E1E2", - "b. c #E3E2E2", - "c. c #E4E4E4", - "d. c #E5E5E5", - "e. c #E8E8E7", - "f. c #E9E8E9", - "g. c #EAE9EA", - "h. c #C5C5C4", - "i. c #C6C6C5", - "j. c #C7C7C6", - "k. c #CBCACA", - "l. c #CDCDCC", - "m. c #CECFCF", - "n. c #DBDADB", - "o. c #E0E0DF", - "p. c #E1E1E0", - "q. c #E1E2E1", - "r. c #E3E3E4", - "s. c #E4E5E5", - "t. c #E7E6E7", - "u. c #E7E7E8", - "v. c #E9E9E8", - "w. c #E9EAE9", - "x. c #EAEAEA", - "y. c #EBEBEA", - "z. c #C4C5C4", - "A. c #C6C5C5", - "B. c #C6C7C7", - "C. c #CCCCCD", - "D. c #CECECF", - "E. c #D9DAD9", - "F. c #DBDBDA", - "G. c #DEDEDD", - "H. c #E0DFE0", - "I. c #E0E1E0", - "J. c #E6E5E6", - "K. c #E7E7E6", - "L. c #E7E8E7", - "M. c #E8E8E9", - "N. c #E9E9E9", - "O. c #ECECEC", - "P. c #ECEDED", - "Q. c #EDEDEE", - "R. c #010101", - "S. c #C5C4C5", - "T. c #CBCCCB", - "U. c #CDCCCC", - "V. c #CECFCE", - "W. c #CFCFCE", - "X. c #CFCFD0", - "Y. c #D7D8D7", - "Z. c #DEDDDE", - "`. c #E1E0E0", - " + c #E5E6E6", - ".+ c #EBEBEB", - "++ c #ECEBEC", - "@+ c #EDEDED", - "#+ c #EEEEEE", - "$+ c #EFEFEF", - "%+ c #F0F0F0", - "&+ c #C4C4C5", - "*+ c #CFCECF", - "=+ c #D2D1D1", - "-+ c #D6D6D5", - ";+ c #D8D9D8", - ">+ c #DDDEDD", - ",+ c #DFDEDE", - "'+ c #E2E3E3", - ")+ c #E7E7E7", - "!+ c #E8E8E8", - "~+ c #EBECEC", - "{+ c #ECEDEC", - "]+ c #EFEFF0", - "^+ c #F1F0F1", - "/+ c #F1F1F1", - "(+ c #C7C6C6", - "_+ c #C9C8C9", - ":+ c #C9CAC9", - "<+ c #CACBCA", - "[+ c #D2D2D3", - "}+ c #D4D5D5", - "|+ c #DCDCDB", - "1+ c #E3E3E2", - "2+ c #E4E3E3", - "3+ c #E4E4E5", - "4+ c #E5E5E6", - "5+ c #EAEAE9", - "6+ c #ECEBEB", - "7+ c #F0F0EF", - "8+ c #F0F0F1", - "9+ c #C8C7C8", - "0+ c #C8C9C9", - "a+ c #CBCBCA", - "b+ c #CCCBCC", - "c+ c #D7D6D6", - "d+ c #DDDCDC", - "e+ c #E2E2E1", - "f+ c #E2E3E2", - "g+ c #E3E4E4", - "h+ c #E8E7E8", - "i+ c #E9E8E8", - "j+ c #EAE9E9", - "k+ c #EDECEC", - "l+ c #EEEEED", - "m+ c #EFEEEF", - "n+ c #EFF0F0", - "o+ c #F1F0F0", - "p+ c #C5C6C6", - "q+ c #C7C6C7", - "r+ c #D0D0CF", - "s+ c #D4D5D4", - "t+ c #E1E0E1", - "u+ c #E8E9E9", - "v+ c #EDECED", - "w+ c #EEEDED", - "x+ c #EEEFEF", - "y+ c #F0EFF0", - "z+ c #F0F1F0", - "A+ c #D7D7D8", - "B+ c #C8C7C7", - "C+ c #C9C9CA", - "D+ c #D2D1D2", - "E+ c #D9DADA", - "F+ c #E2E1E1", - "G+ c #E9E9EA", - "H+ c #EAEBEB", - "I+ c #D8D8D7", - "J+ c #CBCCCC", - "K+ c #CDCCCD", - "L+ c #D6D6D7", - "M+ c #E6E6E5", - "N+ c #E7E6E6", - "O+ c #E8E7E7", - "P+ c #EFEEEE", - "Q+ c #CDCECD", - "R+ c #D1D1D0", - "S+ c #D2D3D2", - "T+ c #DFE0DF", - "U+ c #E3E2E3", - "V+ c #E4E5E4", - "W+ c #E5E6E5", - "X+ c #ECECED", - "Y+ c #D4D3D4", - "Z+ c #CECDCE", - "`+ c #E6E6E7", - " @ c #EBEAEB", - ".@ c #ECECEB", - "+@ c #F0F1F1", - "@@ c #DCDCDD", - "#@ c #EBEAEA", - "$@ c #F0EFEF", - "%@ c #D3D4D3", - "&@ c #E6E7E6", - "*@ c #EEEDEE", - "=@ c #ADADAD", - "-@ c #565656", - ";@ c #DCDBDB", - ">@ c #DFDFE0", - ",@ c #E7E8E8", - "'@ c #E8E9E8", - ")@ c #EDEDEC", - "!@ c #EBEBEC", - "~@ c #EEEFEE", - "{@ c #B7B6B7", - "]@ c #E5E4E5", - "^@ c #EDEEED", - "/@ c #B6B6B6", - "(@ c #B6B7B7", - "_@ c #B7B7B6", - ":@ c #B7B6B6", - "<@ c #E5E5E4", - "[@ c #B5B6B5", - "}@ c #B5B6B6", - "|@ c #B5B5B5", - "1@ c #B6B5B5", - "2@ c #B6B5B6", - "3@ c #E2E1E2", - "4@ c #E4E4E3", - "5@ c #B4B4B4", - "6@ c #B4B5B5", - "7@ c #B5B5B4", - "8@ c #B6B6B5", - "9@ c #E2E2E3", - "0@ c #B3B4B4", - "a@ c #B4B4B5", - "b@ c #B4B5B4", - "c@ c #B5B4B4", - "d@ c #B3B3B3", - "e@ c #B3B3B4", - "f@ c #B4B3B3", - "g@ c #B4B4B3", - "h@ c #B5B4B5", - "i@ c #D0D1D0", - "j@ c #B3B3B2", - "k@ c #B3B2B3", - "l@ c #B4B3B4", - "m@ c #90B9D9", - "n@ c #91BAD9", - "o@ c #C6C5C6", - "p@ c #B1B2B2", - "q@ c #B2B2B2", - "r@ c #B2B3B2", - "s@ c #B2B3B3", - "t@ c #8FB7D8", - "u@ c #8EB7D7", - "v@ c #8FB8D8", - "w@ c #90B8D8", - "x@ c #91BBD9", - "y@ c #91BCDA", - "z@ c #C2C2C2", - "A@ c #C3C4C3", - "B@ c #C3C4C4", - "C@ c #C8C9C8", - "D@ c #CDCDCE", - "E@ c #B1B1B1", - "F@ c #B1B2B1", - "G@ c #B2B1B2", - "H@ c #B2B2B3", - "I@ c #B3B2B2", - "J@ c #8CB4D6", - "K@ c #8DB4D6", - "L@ c #8DB5D7", - "M@ c #8EB6D7", - "N@ c #8EB7D8", - "O@ c #8FB7D7", - "P@ c #90B9D8", - "Q@ c #91BBDA", - "R@ c #92BCD9", - "S@ c #92BCDA", - "T@ c #C1C1C0", - "U@ c #C1C1C1", - "V@ c #C2C2C1", - "W@ c #C3C3C2", - "X@ c #C3C3C3", - "Y@ c #C3C3C4", - "Z@ c #CAC9C9", - "`@ c #B1B0B0", - " # c #B2B2B1", - ".# c #8BB2D5", - "+# c #8BB2D6", - "@# c #8CB3D6", - "## c #8CB3D7", - "$# c #8DB5D6", - "%# c #8EB5D7", - "&# c #8FB8D7", - "*# c #92BBD9", - "=# c #92BBDA", - "-# c #BFC0C0", - ";# c #C0C1C0", - "># c #C2C1C1", - ",# c #C3C2C2", - "'# c #C4C4C3", - ")# c #C5C6C5", - "!# c #C5C5C6", - "~# c #B0B0B0", - "{# c #B0B1B0", - "]# c #B1B1B2", - "^# c #B2B1B1", - "/# c #0E3459", - "(# c #0E355A", - "_# c #0F355A", - ":# c #0F365A", - "<# c #8AB2D5", - "[# c #8CB3D5", - "}# c #8BB3D6", - "|# c #8FB6D7", - "1# c #8FB9D7", - "2# c #90B9D7", - "3# c #90BAD8", - "4# c #90BBD9", - "5# c #92BDDA", - "6# c #93BEDA", - "7# c #BEBEBE", - "8# c #BEBFBE", - "9# c #BFBFBE", - "0# c #BFBFC0", - "a# c #C0C0BF", - "b# c #C2C3C2", - "c# c #C4C3C3", - "d# c #AFB0B0", - "e# c #AFAFB0", - "f# c #B0AFB0", - "g# c #B0B1B1", - "h# c #B0B0B1", - "i# c #B1B0B1", - "j# c #7A9EC5", - "k# c #799FC5", - "l# c #7A9FC5", - "m# c #7AA0C6", - "n# c #0E345A", - "o# c #0F3559", - "p# c #8BB1D5", - "q# c #8CB4D5", - "r# c #8FB9D8", - "s# c #90BAD7", - "t# c #91BBD8", - "u# c #91BCD9", - "v# c #91BDD9", - "w# c #92BEDA", - "x# c #93BFDA", - "y# c #BDBDBD", - "z# c #BDBEBD", - "A# c #BEBEBD", - "B# c #BEBEBF", - "C# c #BEBFBF", - "D# c #BFBFBF", - "E# c #C0C0C0", - "F# c #C1C0C0", - "G# c #C0C1C1", - "H# c #C3C2C3", - "I# c #C4C3C4", - "J# c #AFAEAF", - "K# c #AFAFAF", - "L# c #B0AFAF", - "M# c #789DC5", - "N# c #789EC5", - "O# c #799EC5", - "P# c #7AA1C5", - "Q# c #7BA1C5", - "R# c #0F3659", - "S# c #10375A", - "T# c #8DB6D6", - "U# c #8EB8D7", - "V# c #92BDD9", - "W# c #143F5B", - "X# c #174A6A", - "Y# c #84B0CB", - "Z# c #85B0CC", - "`# c #BCBCBC", - " $ c #BDBCBC", - ".$ c #C0C0C1", - "+$ c #C1C2C1", - "@$ c #C2C3C3", - "#$ c #AEAEAE", - "$$ c #AEAFAF", - "%$ c #AFAFAE", - "&$ c #779BC4", - "*$ c #779CC4", - "=$ c #789CC4", - "-$ c #789DC4", - ";$ c #789EC4", - ">$ c #799FC4", - ",$ c #7AA0C5", - "'$ c #10385A", - ")$ c #8DB7D7", - "!$ c #8EB7D6", - "~$ c #90BBD8", - "{$ c #133E5B", - "]$ c #83AEC9", - "^$ c #84AFCA", - "/$ c #85B1CB", - "($ c #85B2CB", - "_$ c #BDBCBD", - ":$ c #BEBDBD", - "<$ c #C0BFBF", - "[$ c #C1C1C2", - "}$ c #C9CACA", - "|$ c #AEAEAD", - "1$ c #AEAFAE", - "2$ c #AEAEAF", - "3$ c #7599C3", - "4$ c #7699C3", - "5$ c #7699C2", - "6$ c #769AC3", - "7$ c #779BC3", - "8$ c #789BC4", - "9$ c #799EC4", - "0$ c #79A0C4", - "a$ c #8CB5D5", - "b$ c #8CB5D6", - "c$ c #8DB7D6", - "d$ c #426D8A", - "e$ c #16486A", - "f$ c #7AA5C1", - "g$ c #83ADC9", - "h$ c #84B1CB", - "i$ c #85B1CC", - "j$ c #BCBDBD", - "k$ c #BDBDBC", - "l$ c #BFBEBF", - "m$ c #BFC0BF", - "n$ c #ADADAC", - "o$ c #AEADAD", - "p$ c #ADAEAD", - "q$ c #ADAEAE", - "r$ c #7496C2", - "s$ c #7597C2", - "t$ c #7598C2", - "u$ c #769BC2", - "v$ c #779BC2", - "w$ c #779CC3", - "x$ c #789DC3", - "y$ c #7AA0C4", - "z$ c #7AA1C4", - "A$ c #7AA2C5", - "B$ c #7BA2C5", - "C$ c #10395A", - "D$ c #8EB6D6", - "E$ c #8EB8D6", - "F$ c #133D5A", - "G$ c #81ABC8", - "H$ c #82ACC9", - "I$ c #82ADC9", - "J$ c #82AEC9", - "K$ c #83AFC9", - "L$ c #83B0CA", - "M$ c #BDBEBE", - "N$ c #C1C0C1", - "O$ c #C7C7C8", - "P$ c #ADACAC", - "Q$ c #AFAEAE", - "R$ c #7395C1", - "S$ c #7395C2", - "T$ c #7496C1", - "U$ c #7599C2", - "V$ c #769BC3", - "W$ c #779DC3", - "X$ c #789EC3", - "Y$ c #7AA2C4", - "Z$ c #7BA3C4", - "`$ c #7BA3C5", - " % c #11395A", - ".% c #113A5A", - "+% c #123C5A", - "@% c #164A6E", - "#% c #4C7694", - "$% c #80AAC7", - "%% c #80ABC8", - "&% c #81ACC9", - "*% c #81ACC8", - "=% c #81ADC9", - "-% c #83AFCA", - ";% c #84B0CA", - ">% c #84B1CA", - ",% c #86B3CB", - "'% c #87B4CC", - ")% c #BFBEBE", - "!% c #ACACAC", - "~% c #ABACAC", - "{% c #ACACAD", - "]% c #7294C0", - "^% c #7194C0", - "/% c #7294C1", - "(% c #7394C1", - "_% c #7396C1", - ":% c #7497C2", - "<% c #7498C2", - "[% c #799FC3", - "}% c #7CA3C5", - "|% c #123B5A", - "1% c #88B1D0", - "2% c #7EA8C6", - "3% c #7FA9C6", - "4% c #7FAAC7", - "5% c #81ADC8", - "6% c #85B1CA", - "7% c #86B2CB", - "8% c #86B4CB", - "9% c #87B5CB", - "0% c #BCBCBD", - "a% c #C0BFC0", - "b% c #ABABAB", - "c% c #ACABAC", - "d% c #ABABAC", - "e% c #ACADAC", - "f% c #ACADAD", - "g% c #7193C0", - "h% c #7293C0", - "i% c #7193C1", - "j% c #7293C1", - "k% c #7498C1", - "l% c #789FC4", - "m% c #79A1C3", - "n% c #79A1C4", - "o% c #7BA2C4", - "p% c #7CA4C5", - "q% c #7CA4C4", - "r% c #16496F", - "s% c #7DA7C5", - "t% c #7FAAC6", - "u% c #80ABC7", - "v% c #80ACC7", - "w% c #82AFC9", - "x% c #84B1C9", - "y% c #85B2CA", - "z% c #87B5CC", - "A% c #88B6CC", - "B% c #BDBDBE", - "C% c #C1C2C2", - "D% c #AAABAB", - "E% c #AAAAAA", - "F% c #ABAAAB", - "G% c #ABACAB", - "H% c #ACACAB", - "I% c #7192C0", - "J% c #7292C0", - "K% c #7598C1", - "L% c #7599C1", - "M% c #759AC1", - "N% c #769AC2", - "O% c #779CC2", - "P% c #779DC2", - "Q% c #789DC2", - "R% c #78A0C3", - "S% c #7CA3C4", - "T% c #7AA2C2", - "U% c #7CA5C4", - "V% c #7DA5C4", - "W% c #7DA6C5", - "X% c #7EA8C5", - "Y% c #82ADC8", - "Z% c #83B0C9", - "`% c #85B3CA", - " & c #86B5CB", - ".& c #87B6CC", - "+& c #BCBDBC", - "@& c #C2C1C2", - "#& c #C2C2C3", - "$& c #AAA9AA", - "%& c #AAABAA", - "&& c #ABAAAA", - "*& c #7091BF", - "=& c #7092BF", - "-& c #7191C0", - ";& c #7192BF", - ">& c #7092C0", - ",& c #7295C0", - "'& c #7497C1", - ")& c #759AC2", - "!& c #769CC2", - "~& c #789FC3", - "{& c #79A0C3", - "]& c #79A2C4", - "^& c #7AA4C3", - "/& c #7BA4C4", - "(& c #7DA8C5", - "_& c #7EA9C6", - ":& c #80AAC6", - "<& c #81ADC7", - "[& c #82ADC7", - "}& c #82AEC8", - "|& c #88B7CC", - "1& c #A9A9A9", - "2& c #A9AAAA", - "3& c #A9A9AA", - "4& c #A9AAA9", - "5& c #7090BE", - "6& c #7091BE", - "7& c #7092BE", - "8& c #7191BF", - "9& c #7397C1", - "0& c #7499C1", - "a& c #7AA1C3", - "b& c #7AA2C3", - "c& c #79A2C2", - "d& c #7AA3C3", - "e& c #7BA5C4", - "f& c #80ABC6", - "g& c #81ACC7", - "h& c #81AEC8", - "i& c #82AFC8", - "j& c #83B1CA", - "k& c #85B3CB", - "l& c #85B4CA", - "m& c #87B6CB", - "n& c #88B8CC", - "o& c #A8A8A8", - "p& c #6F90BE", - "q& c #6F91BE", - "r& c #7192BE", - "s& c #7193BF", - "t& c #769BC1", - "u& c #779EC3", - "v& c #789FC2", - "w& c #79A1C2", - "x& c #7AA3C2", - "y& c #7BA4C3", - "z& c #7CA6C5", - "A& c #7DA7C4", - "B& c #7EA7C5", - "C& c #7EA9C5", - "D& c #7EAAC6", - "E& c #7FACC6", - "F& c #81AEC7", - "G& c #82AFC7", - "H& c #83B1C9", - "I& c #84B2C9", - "J& c #84B3C9", - "K& c #86B4CA", - "L& c #89B7CC", - "M& c #89B8CD", - "N& c #A8A8A7", - "O& c #6F90BD", - "P& c #6E90BD", - "Q& c #6E90BE", - "R& c #7293BF", - "S& c #7396C0", - "T& c #7397C0", - "U& c #7498C0", - "V& c #759BC1", - "W& c #769CC1", - "X& c #779EC2", - "Y& c #789EC2", - "Z& c #78A0C1", - "`& c #78A1C2", - " * c #7BA6C3", - ".* c #7BA6C4", - "+* c #7CA6C4", - "@* c #7FABC6", - "#* c #82AEC7", - "$* c #83AFC8", - "%* c #83B0C8", - "&* c #88B7CB", - "** c #89B9CC", - "=* c #89BACD", - "-* c #6E8FBD", - ";* c #6F91BD", - ">* c #7093BF", - ",* c #7194BF", - "'* c #7294BF", - ")* c #7395C0", - "!* c #7398C0", - "~* c #779FC1", - "{* c #77A0C1", - "]* c #78A1C1", - "^* c #7AA4C2", - "/* c #7CA7C4", - "(* c #7DA8C4", - "_* c #7DA9C5", - ":* c #7FAAC5", - "<* c #80ACC6", - "[* c #80ADC7", - "}* c #84B1C8", - "|* c #88B8CB", - "1* c #89BACC", - "2* c #BEBDBE", - "3* c #12285A", - "4* c #768CBE", - "5* c #768DBE", - "6* c #6E91BD", - "7* c #7193BE", - "8* c #7295BF", - "9* c #7396BF", - "0* c #7398BF", - "a* c #7499C0", - "b* c #749AC1", - "c* c #779DC1", - "d* c #789FC1", - "e* c #779EC0", - "f* c #769EC0", - "g* c #769FC0", - "h* c #77A0C0", - "i* c #79A2C1", - "j* c #79A3C2", - "k* c #7BA4C2", - "l* c #7CA7C3", - "m* c #7EAAC5", - "n* c #80ADC6", - "o* c #82B0C7", - "p* c #85B2C9", - "q* c #85B3C9", - "r* c #85B4C9", - "s* c #86B5CA", - "t* c #87B6CA", - "u* c #88B9CC", - "v* c #8AB9CC", - "w* c #8ABACC", - "x* c #8BBBCC", - "y* c #758BBE", - "z* c #758CBE", - "A* c #768CBF", - "B* c #6E91BE", - "C* c #7093BE", - "D* c #7397BF", - "E* c #7497BF", - "F* c #749AC0", - "G* c #759AC0", - "H* c #769BC0", - "I* c #769CC0", - "J* c #779EC1", - "K* c #769DC0", - "L* c #759DBF", - "M* c #769DBE", - "N* c #77A1C0", - "O* c #7AA5C2", - "P* c #7DA7C3", - "Q* c #7EA9C4", - "R* c #7EAAC4", - "S* c #7FABC5", - "T* c #81ADC6", - "U* c #81AFC7", - "V* c #82B0C8", - "W* c #83B1C8", - "X* c #84B2C8", - "Y* c #86B6CB", - "Z* c #87B7CA", - "`* c #87B7CB", - " = c #84AFCB", - ".= c #143F5A", - "+= c #12275A", - "@= c #758BBD", - "#= c #768BBE", - "$= c #6E8FBC", - "%= c #6E8EBD", - "&= c #7296BF", - "*= c #7297BF", - "== c #779CC1", - "-= c #749BBE", - ";= c #749CBF", - ">= c #759EBE", - ",= c #769FBF", - "'= c #76A0C0", - ")= c #779FC0", - "!= c #7BA5C3", - "~= c #7CA6C3", - "{= c #7CA8C4", - "]= c #7DA9C3", - "^= c #7FAAC4", - "/= c #81AFC6", - "(= c #82B1C7", - "_= c #85B5C9", - ":= c #86B6CA", - "<= c #82AECA", - "[= c #758ABD", - "}= c #748ABD", - "|= c #758CBD", - "1= c #6D8FBC", - "2= c #759CC1", - "3= c #769DC1", - "4= c #759BBF", - "5= c #739ABE", - "6= c #759DBE", - "7= c #769EBE", - "8= c #769EBF", - "9= c #779FBF", - "0= c #78A1C0", - "a= c #78A2C1", - "b= c #79A2C0", - "c= c #7AA3C1", - "d= c #7CA8C3", - "e= c #7DA9C4", - "f= c #82B0C6", - "g= c #83B2C8", - "h= c #84B3C8", - "i= c #143E5B", - "j= c #11265A", - "k= c #7489BC", - "l= c #748ABC", - "m= c #758ABC", - "n= c #6D8EBC", - "o= c #6E8EBC", - "p= c #6D8FBD", - "q= c #6F8FBD", - "r= c #7092BD", - "s= c #7294BE", - "t= c #7194BE", - "u= c #7295BE", - "v= c #7196BF", - "w= c #759BC0", - "x= c #749ABE", - "y= c #7399BC", - "z= c #729ABD", - "A= c #739ABD", - "B= c #749CBD", - "C= c #769DBF", - "D= c #779EBF", - "E= c #78A2C0", - "F= c #79A3C1", - "G= c #7AA4C1", - "H= c #7BA6C2", - "I= c #7CA9C4", - "J= c #7EABC4", - "K= c #7FACC4", - "L= c #80ADC5", - "M= c #80AEC6", - "N= c #81AEC6", - "O= c #83B1C7", - "P= c #7EA9C7", - "Q= c #7FAAC8", - "R= c #80AAC8", - "S= c #7388BC", - "T= c #7488BC", - "U= c #7389BC", - "V= c #7489BD", - "W= c #6E8EBB", - "X= c #6D8EBD", - "Y= c #7195BE", - "Z= c #7499BF", - "`= c #749ABF", - " - c #749BC0", - ".- c #7198BB", - "+- c #7298BC", - "@- c #7299BC", - "#- c #729ABC", - "$- c #739BBD", - "%- c #749BBD", - "&- c #749DBE", - "*- c #76A0BF", - "=- c #77A2C0", - "-- c #78A3C1", - ";- c #79A4C1", - ">- c #7CA8C2", - ",- c #7DAAC4", - "'- c #7FACC5", - ")- c #7DA7C6", - "!- c #7FA9C7", - "~- c #133E5A", - "{- c #7387BC", - "]- c #6F92BD", - "^- c #7094BE", - "/- c #7296BE", - "(- c #7399BD", - "_- c #0E3559", - ":- c #7096BB", - "<- c #7197BB", - "[- c #7199BB", - "}- c #739BBC", - "|- c #749CBE", - "1- c #749EBE", - "2- c #769FBE", - "3- c #77A0BF", - "4- c #77A1BF", - "5- c #78A3C0", - "6- c #79A4C0", - "7- c #7AA6C2", - "8- c #7BA7C2", - "9- c #7DA8C3", - "0- c #7EACC5", - "a- c #7CA5C5", - "b- c #10255A", - "c- c #7286BB", - "d- c #7287BC", - "e- c #6D8EBB", - "f- c #7093BD", - "g- c #7094BD", - "h- c #7195BF", - "i- c #7399BF", - "j- c #739ABF", - "k- c #7398BE", - "l- c #6F95BA", - "m- c #7096BA", - "n- c #7097BB", - "o- c #739ABC", - "p- c #739CBD", - "q- c #759EBF", - "r- c #78A2BF", - "s- c #7CA7C2", - "t- c #10245A", - "u- c #7185BB", - "v- c #7286BC", - "w- c #7387BB", - "x- c #7487BC", - "y- c #6E90BC", - "z- c #6F93BE", - "A- c #7196BE", - "B- c #7297BE", - "C- c #7298BF", - "D- c #7297BD", - "E- c #6E94BA", - "F- c #6F95B9", - "G- c #6F96BA", - "H- c #7097BA", - "I- c #729ABB", - "J- c #749DBD", - "K- c #77A0BE", - "L- c #78A4C0", - "M- c #7AA5C0", - "N- c #7CA7C5", - "O- c #7185BA", - "P- c #7286BA", - "Q- c #7285BB", - "R- c #7386BB", - "S- c #7288BC", - "T- c #7589BD", - "U- c #6E91BC", - "V- c #6F91BC", - "W- c #6E92BC", - "X- c #6F93BD", - "Y- c #7194BD", - "Z- c #7195BD", - "`- c #7298BE", - " ; c #7297BC", - ".; c #6D93B8", - "+; c #6E94B8", - "@; c #6E95B9", - "#; c #7096B9", - "$; c #739CBC", - "%; c #76A0BE", - "&; c #78A1BF", - "*; c #79A1C1", - "=; c #79A4C2", - "-; c #7BA3C3", - ";; c #7084BA", - ">; c #7184BB", - ",; c #7085BB", - "'; c #7186BB", - "); c #7287BB", - "!; c #7388BB", - "~; c #6C8EBB", - "{; c #6D8FBB", - "]; c #6F92BC", - "^; c #7095BD", - "/; c #7196BD", - "(; c #7195BC", - "_; c #0E3359", - ":; c #6C92B7", - "<; c #6D94B8", - "[; c #6F96B9", - "}; c #6F97BA", - "|; c #7299BB", - "1; c #729BBB", - "2; c #749DBC", - "3; c #759EBD", - "4; c #759FBE", - "5; c #10235A", - "6; c #7083BA", - "7; c #7084BB", - "8; c #7085BA", - "9; c #7093BC", - "0; c #7095BC", - "a; c #6C91B7", - "b; c #6E95B8", - "c; c #7198BA", - "d; c #739BBB", - "e; c #78A2C2", - "f; c #0F225A", - "g; c #6F82B9", - "h; c #7083B9", - "i; c #6F83B9", - "j; c #6F83BA", - "k; c #7184BA", - "l; c #6C8DBB", - "m; c #6C8FBB", - "n; c #6D90BB", - "o; c #6E91BB", - "p; c #6F93BC", - "q; c #7094BC", - "r; c #6F94BB", - "s; c #0D3259", - "t; c #6A8FB6", - "u; c #6B91B7", - "v; c #6E93B8", - "w; c #7098BA", - "x; c #7099BA", - "y; c #7199BA", - "z; c #729BBC", - "A; c #6E81B9", - "B; c #6E82B9", - "C; c #6E90BB", - "D; c #6E93BA", - "E; c #698EB6", - "F; c #6A8EB6", - "G; c #6A90B6", - "H; c #6B90B6", - "I; c #6B92B7", - "J; c #6D93B7", - "K; c #6E96B8", - "L; c #6F97B9", - "M; c #7098BB", - "N; c #78A0C0", - "O; c #6E80B8", - "P; c #6E81B8", - "Q; c #6F81B8", - "R; c #6F81B9", - "S; c #6F82B8", - "T; c #6F92BB", - "U; c #6E92BA", - "V; c #0D3159", - "W; c #688DB4", - "X; c #698EB5", - "Y; c #698FB5", - "Z; c #6A90B7", - "`; c #6C93B7", - " > c #518FC8", - ".> c #6F96B8", - "+> c #123A5A", - "@> c #0F215A", - "#> c #6D80B8", - "$> c #6D81B8", - "%> c #6C8FBA", - "&> c #6E90BA", - "*> c #6E92BB", - "=> c #6E93BC", - "-> c #0C3159", - ";> c #678CB4", - ">> c #678DB4", - ",> c #688EB4", - "'> c #698EB4", - ")> c #6A90B5", - "!> c #6B91B6", - "~> c #6D94B7", - "{> c #6D95B8", - "]> c #6E96B9", - "^> c #0E2159", - "/> c #6C7FB8", - "(> c #6D7FB7", - "_> c #6D7FB8", - ":> c #507FC9", - "<> c #6D8FBA", - "[> c #6D91BB", - "}> c #6D91B9", - "|> c #0C3059", - "1> c #678AB3", - "2> c #678BB3", - "3> c #678DB3", - "4> c #6B91B5", - "5> c #6B92B5", - "6> c #6C92B6", - "7> c #6B92B6", - "8> c #6C93B6", - "9> c #0E2059", - "0> c #6C7EB7", - "a> c #6D7EB7", - "b> c #6E80B7", - "c> c #6E82B8", - "d> c #7084B9", - "e> c #6F84BA", - "f> c #6C90B9", - "g> c #668AB2", - "h> c #698FB4", - "i> c #6A90B4", - "j> c #719ABB", - "k> c #749BBC", - "l> c #6B7EB7", - "m> c #6B7DB6", - "n> c #6C7DB7", - "o> c #6C7FB7", - "p> c #6D80B7", - "q> c #6F84B9", - "r> c #7186BA", - "s> c #6C8EB9", - "t> c #6589B1", - "u> c #678CB2", - "v> c #678DB2", - "w> c #688EB3", - "x> c #6A8FB5", - "y> c #6A91B5", - "z> c #6C92B5", - "A> c #6C94B7", - "B> c #6D95B7", - "C> c #759DBD", - "D> c #0E1F5A", - "E> c #6A7CB6", - "F> c #6A7DB6", - "G> c #6C7EB6", - "H> c #7082B9", - "I> c #7285BA", - "J> c #7085B9", - "K> c #0E335A", - "L> c #658BB1", - "M> c #668BB1", - "N> c #668CB1", - "O> c #678CB1", - "P> c #688DB3", - "Q> c #688FB3", - "R> c #698FB3", - "S> c #6990B4", - "T> c #7097B9", - "U> c #7197BA", - "V> c #739CBE", - "W> c #0E1F59", - "X> c #6A7BB6", - "Y> c #6B7CB6", - "Z> c #6C7DB6", - "`> c #6B7DB7", - " , c #6F82B6", - "., c #648AB0", - "+, c #658AB1", - "@, c #658BB0", - "#, c #668CB2", - "$, c #688FB4", - "%, c #6B90B5", - "&, c #0D1E59", - "*, c #697BB5", - "=, c #6A7CB7", - "-, c #6B7EB6", - ";, c #6C7EB8", - ">, c #6E82B7", - ",, c #6389B0", - "', c #6489B0", - "), c #658AB0", - "!, c #668AB1", - "~, c #688DB2", - "{, c #6990B5", - "], c #697AB5", - "^, c #697BB6", - "/, c #6A7BB5", - "(, c #6D7EB8", - "_, c #6D81B6", - ":, c #6388AE", - "<, c #6388AF", - "[, c #6389AF", - "}, c #6489AF", - "|, c #668BB0", - "1, c #6979B4", - "2, c #6879B5", - "3, c #6879B4", - "4, c #6979B5", - "5, c #6A7AB5", - "6, c #6B7CB7", - "7, c #6D80B5", - "8, c #6287AE", - "9, c #6288AE", - "0, c #0D1D59", - "a, c #6878B4", - "b, c #6778B4", - "c, c #6C7EB5", - "d, c #6186AC", - "e, c #6186AD", - "f, c #6286AE", - "g, c #668DB1", - "h, c #678EB3", - "i, c #0D1C59", - "j, c #6777B3", - "k, c #6777B4", - "l, c #697AB4", - "m, c #6A7CB5", - "n, c #6E81B7", - "o, c #6084AC", - "p, c #6185AC", - "q, c #6086AD", - "r, c #6187AE", - "s, c #6387AE", - "t, c #0C1C59", - "u, c #6676B3", - "v, c #6776B3", - "w, c #6877B4", - "x, c #687AB5", - "y, c #697CB6", - "z, c #6A7DB7", - "A, c #6B7DB5", - "B, c #5F83AC", - "C, c #6083AC", - "D, c #6185AD", - "E, c #6288AD", - "F, c #668BB2", - "G, c #6A91B4", - "H, c #6675B3", - "I, c #6575B3", - "J, c #6677B3", - "K, c #6677B4", - "L, c #6A7DB4", - "M, c #5E82AB", - "N, c #5F83AB", - "O, c #5F84AC", - "P, c #6085AD", - "Q, c #6085AC", - "R, c #10365A", - "S, c #0C1B59", - "T, c #6575B2", - "U, c #6675B2", - "V, c #6676B2", - "W, c #6676B4", - "X, c #6776B4", - "Y, c #687AB4", - "Z, c #5D81AA", - "`, c #5D81AB", - " ' c #5D82AA", - ".' c #5E83AB", - "+' c #6083AB", - "@' c #6286AD", - "#' c #648AB1", - "$' c #6473B3", - "%' c #6474B2", - "&' c #697CB3", - "*' c #5D80A9", - "=' c #5E82AA", - "-' c #5F84AB", - ";' c #6287AD", - ">' c #6389AE", - ",' c #0B1A59", - "'' c #6473B2", - ")' c #6574B2", - "!' c #6574B3", - "~' c #6778B3", - "{' c #6779B4", - "]' c #687BB2", - "^' c #5B7FA9", - "/' c #5B80A9", - "(' c #5C80A9", - "_' c #5D81A9", - ":' c #5E81AA", - "<' c #6184AC", - "[' c #638AB0", - "}' c #678DB1", - "|' c #0B1A58", - "1' c #6372B1", - "2' c #6472B2", - "3' c #6472B1", - "4' c #6473B1", - "5' c #6573B2", - "6' c #6576B3", - "7' c #6878B3", - "8' c #687AB3", - "9' c #5B7EA7", - "0' c #5B7FA8", - "a' c #5B80A8", - "b' c #5C81AA", - "c' c #5F82AB", - "d' c #668DB2", - "e' c #11268E", - "f' c #11268D", - "g' c #0B1958", - "h' c #6373B2", - "i' c #6877B3", - "j' c #6879B2", - "k' c #0C2F59", - "l' c #5A7DA7", - "m' c #5A7EA7", - "n' c #5B7FA7", - "o' c #5B7EA8", - "p' c #5C7FA8", - "q' c #5F83AA", - "r' c #6084AB", - "s' c #6589B0", - "t' c #0C196C", - "u' c #152064", - "v' c #11258D", - "w' c #6371B1", - "x' c #6271B1", - "y' c #6372B2", - "z' c #6778B1", - "A' c #0C2E59", - "B' c #597CA6", - "C' c #5A7CA6", - "D' c #597DA6", - "E' c #5D80AA", - "F' c #5E83AA", - "G' c #0E355B", - "H' c #0C1A6F", - "I' c #131E62", - "J' c #414C90", - "K' c #10258E", - "L' c #6271B0", - "M' c #6272B1", - "N' c #6373B1", - "O' c #6677B1", - "P' c #0B2E59", - "Q' c #577BA5", - "R' c #587BA6", - "S' c #587CA6", - "T' c #5A7EA8", - "U' c #5D82AB", - "V' c #6289AE", - "W' c #1A5FA3", - "X' c #0D1C75", - "Y' c #131E61", - "Z' c #404B8E", - "`' c #475296", - " ) c #10258D", - ".) c #6270B0", - "+) c #6272B0", - "@) c #6576B2", - "#) c #6576B1", - "$) c #577AA4", - "%) c #577BA4", - "&) c #587BA5", - "*) c #5C81A9", - "=) c #648AAF", - "-) c #0E345B", - ";) c #0D1D79", - ">) c #101B5F", - ",) c #3C478B", - "') c #11258E", - ")) c #6371B0", - "!) c #6575B1", - "~) c #0B2E58", - "{) c #5679A3", - "]) c #5779A4", - "^) c #567AA4", - "/) c #577AA5", - "() c #577BA6", - "_) c #597BA6", - ":) c #175797", - "<) c #0E1F82", - "[) c #101B5E", - "}) c #384487", - "|) c #0B1858", - "1) c #6170B0", - "2) c #6575B0", - "3) c #5578A2", - "4) c #5678A3", - "5) c #5679A4", - "6) c #5A7DA6", - "7) c #102394", - "8) c #111C60", - "9) c #141F63", - "0) c #293578", - "a) c #0A1859", - "b) c #616FAF", - "c) c #616FB0", - "d) c #6270AF", - "e) c #6372B0", - "f) c #6474AF", - "g) c #0B2D58", - "h) c #5576A2", - "i) c #5577A2", - "j) c #5577A3", - "k) c #5578A4", - "l) c #5578A3", - "m) c #587CA5", - "n) c #597DA7", - "o) c #5D82A9", - "p) c #6187AD", - "q) c #154F8D", - "r) c #1227A5", - "s) c #0D185C", - "t) c #1B266A", - "u) c #313C80", - "v) c #445093", - "w) c #10248D", - "x) c #6170AF", - "y) c #6474B1", - "z) c #6373AF", - "A) c #5375A1", - "B) c #5476A2", - "C) c #587AA4", - "D) c #5C7FA9", - "E) c #6084AD", - "F) c #102393", - "G) c #0C196A", - "H) c #0E1A5D", - "I) c #242F73", - "J) c #3A4589", - "K) c #626FAF", - "L) c #626FB0", - "M) c #6475B2", - "N) c #6272AE", - "O) c #0A2C59", - "P) c #5275A1", - "Q) c #5376A2", - "R) c #5477A2", - "S) c #144A84", - "T) c #0E1E7F", - "U) c #121D61", - "V) c #2B3679", - "W) c #0A1858", - "X) c #6370B0", - "Y) c #6271AF", - "Z) c #0A2C58", - "`) c #5173A0", - " ! c #5274A1", - ".! c #5274A0", - "+! c #0D1B74", - "@! c #10248E", - "#! c #6171AE", - "$! c #51729F", - "%! c #51739F", - "&! c #5273A0", - "*! c #5476A1", - "=! c #5576A3", - "-! c #114379", - ";! c #102291", - ">! c #0C196B", - ",! c #1F2A6E", - "'! c #364185", - ")! c #465195", - "!! c #10238D", - "~! c #616EAF", - "{! c #616FAD", - "]! c #0A2B59", - "^! c #50729E", - "/! c #50729F", - "(! c #5375A0", - "_! c #134C8D", - ":! c #0E1E81", - "~ c #323D81", - ",~ c #0A2D5D", - "'~ c #1354AE", - ")~ c #10228F", - "!~ c #212C70", - "~~ c #374286", - "{~ c #0F228B", - "]~ c #1251A7", - "^~ c #283377", - "/~ c #3E4A8D", - "(~ c #0F4085", - "_~ c #0B2F62", - ":~ c #1328A8", - "<~ c #0D1C77", - "[~ c #303B7F", - "}~ c #104289", - "|~ c #0B3063", - "1~ c #112497", - "2~ c #1C276A", - "3~ c #0C175B", - "4~ c #0F438A", - "5~ c #0B3266", - "6~ c #0F2088", - "7~ c #0C3367", - "8~ c #365885", - "9~ c #0B3369", - "0~ c #0E1D7C", - "a~ c #0B2F60", - "b~ c #0C366E", - " ", - " ", - " ", - " ", - " ", - " . . ", - " . . . . . . . ", - " . . . . + @ # $ % . . . . ", - " . . . . & * + @ = - % ; > , . . . . ", - " . . . . ' ) ! * + @ ~ { ] % ^ , / ( _ . . . ", - " . . . . : < [ } | * + 1 = $ 2 ; > , / 3 4 5 6 . . . . ", - " . . . . 7 8 9 0 a } | * + b c d 2 % > , / e f g h i j k . . . . ", - " . . . . l m n 9 o p q } | * r s t # u % v w x y z A B i C D E F G . . . ", - " . . . . H I J K L M 9 < q ' | N O P t # Q % R S T / U V W X Y D Z ` ...+.. . . . ", - " . . . . @.#.H I $.%.L M 9 < q } } N r + @ # Q &.R S *.=.f V W X -.;.k ` ...+.+.>.,.. . . . ", - " . . . . '.'.'.#.H ).!.~.n {.].< 0 ' } | ^.b @ # Q ] /.(., / f 4 5 B i D k _. ...:.<.[.,.}.|.1.. . . . ", - " . . . . '.'.'.'.'.2.H 3.J %.m 7 9 < p } ) 4.5.+ @ ~ Q Q 6.> , / 3 4 7.X 8.9.k 0. ...a.b.<.c.d.|.1.e.f.g.. . . ", - " . . . . . '.'.'.'.'.'.'.h.i.j.$.$.m 7 k.< l.a m.| * + @ c Q Q % > , / f f n.B i j k _.o.p.q.+.r.c.s.|.t.u.v.w.x.y.. . . . ", - " . . . . . '.'.'.'.'.'.'.'.z.A.B.I $.m 7 9 ].C.q D.| * + P t # Q 6.> (.T f E.F.6 i j G.0.H.I...+.<.c.d.J.K.L.M.N.x.y.O.P.Q.. . . . ", - " R.. . '.'.'.'.'.'.'.'.'.'.'.S.A.3.I $.m n k.T.U.q V.W.X.+ + t # Q % /.S Y./ z F.W i -.Z.k _.`.a.+.<.r.s. +|.L.M.N.g..+++O.@+#+$+%+. . . ", - " . . . . . '.'.'.'.'.'.'.'.'.&+i.H I $.K n 8 < < q } *+* ^.=+@ { Q ] -+, , ;+_ V W B 8.>+,+_.G ..+.'+c.d.d.t.)+!+M.x.x.~+{+Q.#+$+]+^+/+. . . . ", - " . . =.f . . . . . '.'.'.'.'.'.2.A.H (+$._+:+<+].< q } | N ^.s [+# Q }+6.> *./ f V 5 |+C D 0._. ...q.1+2+3+4+|.1.!+N.5+y.6+O.Q.#+$+7+8+/+/+/+/+. . . . ", - " . . / / y e . . . . . '.'.'.'.&+#.H I 9+0+m a+9 b+l.} m.X.5.+ @ = $ % > c+Y./ f U W X d+k k _. ...e+f+g+c.d.J.)+h+i+j+x.6+k+@+l+m+n+o+/+/+/+/+/+/+/+. . . . ", - " . . S , *.x T / / 3 . . . . . '.'.#.p+q+!.~.m 7 9 < 0 ' } r+* P @ # { s+% w , / e V 5 B -.j k _. .t+e+1+2+3+d.|.K.u.u+N.x..+O.v+w+x+y+z+/+/+/+/+/+/+/+/+/+/+. . . ", - " . . ; > > ^ , A+/ / e y ( . . . . . i.).B+$.C+7 9 : l.a } | * + D+t d Q % > , / f E+5 6 d+j k _.o.p.F+<.r.c.d.J.)+h+!+G+x.H+O.@+@+$+y+%+/+/+/+/+/+/+/+/+/+/+/+/+. . . . ", - " . . 2 % % /.-+> ^ S , Y.I+/ =.e . . . . . I $.C+L 9 J+K+a } & 4.+ P c d Q v L+S / f f g |+i j k ,+H.t+:.+.<.c.s.M+N+O+i+N.x..+~+@+#+P+]+%+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+. . . . ", - " . . # $ Q 2 s+6./.> > , , , , / / ;+y . . . . . 7 a+< U.Q+} | N R+P S+# u % > , / ( f V W i -.Z._.T+I...+.U+c.V+W+t.O+!+N.x.y.++X+@+#+$+%+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+. . . . ", - " . . @ t # Y+Y+Q Q &.% v v > c+c+S , , / =.( f . . . . . < q Z+) X.^.D+c Q Q % /., Y./ 4 V W i d+k Z T+`.q.+.<.r.d.}.`+)+!+N.x. @.+k+@+#+x+%+z+/+/+/+/+/+/+/+/+/+/+/+/+/+. . . . f f . ", - " . . + D+@ c # # $ Q Q Q }+% % /./.S S , *.T / ;+;+f . . . . . m.4.5.b @ # Q % R > , e f V W i 8.j k _.G ..+.'+<.c.4+`+)+h+v.w.y..@O.@+#+x+n++@/+/+/+/+/+/+/+/+/+/+/+. . . . f f f f f . ", - " . . . ^.+ + P b @ c t # - - u u &.% /.R c+c+S , A+/ / y f . . . . . 5.+ @ # Q ] /.L+A+=.f V W |+@@9.k _. .t++.b.g+c.W+|.1.!+u+j+#@~+O.@+l+#+$@8+/+/+/+/+/+/+/+/+/+. . . . f f f f f f f f . ", - " . . | N * * + + =+=+D+@ S+# %@%@- Q 2 % 6.v /.> , , , / T y f f . . . . . # Q % % > , / f E+V B -.9.k _.o.p.F+f+r.c.d.|.&@O+u+N.x..+++@+*@#+]+%+/+/+/+/+/+/+/+. . . =@f f f f f f f f f f -@. ", - " . . . W.D.| | 4.* 5.r + P b @ S+# # Y+- Q Q }+% ; -+> w w S , I+/ / 3 f . . . . . ; > , A+f V g ;@i j k _.>@`...+.r.c.d.|.&@,@'@G+x..+O.)@@+x+$+z+/+/+/+/+/+. . . T / ( y f f f f f f f f f f . . ", - " . . . a } V.} W.| r+4.* ^.* + D+@ @ @ # # - Q Q ] 2 ; /.-+> w (., A+Y./ f f . . . . . , / / U V X @@j k Z .t+a.+.<.c.d.|.K.O+!+G+x.y.!@P.Q.~@$+8+/+/+/+. . . ; > w ^ , T / 3 f f f f f f f f f . . ", - " . {@. . . . Z+} ) D.m.| r+* * 5.r + D+@ S+c # # - Q Q s+% % -+> c+(., , / / / / f . . . . . f g B i j k _._.`.q.+.<.c.]@ +1.O+!+N.x..+!@)@^@#+$+%+%+. . . # - Q % % % > L+w Y./ / / f f f f f f f . . ", - " . /@(@_@:@. . . . [ } } W.| N ! * * R++ + @ @ c c # # # Q u 2 % % ; > L+, , *./ / =.;+f . . . . . i j 9.E >@G ..+.'+c.<@4+&@)+!+N.G+.+O.O.l+#+@+. . . O s @ c c $ Q Q 2 % % > c+, I+x ;+f f f f f f . ", - " . [@/@}@/@/@/@. . . . q } } W.V.! ! N * + O + b b [+t c # $ Q u 2 ] % v R > > ^ *.A+I+/ e f f . . . . 9.E _. ...+.'+[.V+}.|.)+!+v.x..+6+{+.+. . . *+X.r+* r + s @ S+c { - Q s+% > > (., *./ f f f f f . ", - " . |@|@|@1@}@2@/@}@/@. . . . Q+[ } W.| N & * * R++ D+=+@ S+~ # # %@Q Q ] % R -+> ^ , w , , / =.;+f . . . . . ...3@<.4@3+}.|.)+!+u+w.x.)+. . . 0 q } [ V.| & 4.+ R++ b @ # # Q Q &.% 6.> > , A+x ( f f . ", - " . 5@5@6@|@7@|@|@8@}@}@2@/@. . . . ' } ) | | X.| * * ^.+ P 1 @ @ ~ # d Y+Q Q % % v > v w , , *.T / =.f f . . . . . 9@2+,.d.|.t.!+!+b.. . . <+9 o b+p 0 q Z+} ) | N * O + s @ t = d - Q % % -+> ^ , *./ . ", - " . 0@5@a@a@b@c@6@7@|@|@[@8@|@8@. . . . . } ) W.W.N & r+* * r + s 1 @ # # # { - Q u % % ; ; > c+, , , I+/ ( f f . . . . . d.M+t.j . . . $.0+m :+7 M 9 9 < U.q Z+} ) *+& 4.* O + @ @ c # { - }+% % R ^ , . ", - " . d@e@f@f@g@5@5@h@b@5@h@|@b@|@|@|@|@. . . . Z+} } | | & X.r+5.i@+ s D+@ [+t # # Q Q 2 &.% % /.R > c+, , T T / y f . . . . . . . . H 3.I !.$.%.~.C+7 {.a+T.: C.< q q } D.| r+* ^.+ =+1 @ c # - Q s+% v . ", - " . j@k@d@d@d@d@g@f@e@d@l@5@5@a@b@6@c@6@|@|@. . . . [ } } m.| | r+* * + + =+D+@ ~ ~ # m@n@n@Q &.% % v > c+(., , Y./ / =.f . . . '.h.#.#.o@H I I J $.K m C+7 M M ].< U.p q ' D.m.| ! * O + @ @ c @ d d 2 . ", - " . p@q@q@r@r@r@j@s@d@d@f@e@5@l@0@5@5@b@b@c@7@7@7@. . . . } V.V.) | & * * * + s t@u@v@v@w@m@n@x@y@u % v % > > (., , *.x / Y.. . z@A@B@'.2.#.#.p+j.I !.$.C@_+:+C+<+8 9 o < U.0 D@} W.m.| r+* O + s @ t # . ", - " . E@E@F@F@G@q@q@H@H@I@d@H@d@d@d@d@5@f@5@5@5@5@5@c@h@. . . . [ Z+) ) m.| 4.J@K@L@M@N@O@v@w@m@P@x@Q@R@S@] % 6.6.> > w , , . . T@U@V@W@X@Y@X@h.2.#.#.H B.I !.$.$._+Z@7 7 9 T.o < l.q q } } | | X.^.r D+=+. ", - " . `@E@E@E@E@F@G@ #p@q@q@q@q@d@k@d@H@d@d@g@f@g@d@5@0@5@5@6@. . . . Z+} .#+#@###$#L@%#M@O@O@&#P@P@n@n@*#=#S@&.}+% 6.-+> > . . -#T@;#U@>#z@,#X@Y@'#@.#.)#!#H I I I $.K m 7 7 7 9 9 T.< q q } } D.r+4.* 5.. ", - " . ~#~#~#{#~#E@E@E@]#G@^#^# #p@q@q@q@j@k@j@k@d@d@d@d@0@0@e@l@0@5@/#(#_#:#<#.#[#}#K@K@L@M@|#O@#2#3#4#4#x@R@5#6#% }+v . . 7#8#9#0#a#U@T@U@U@,#b#X@c#'.#.#.)#H 3.I l $.$.m m 7 7 M 9 9 < 0 q D@} *+| | . ", - " . d#e#f#~#~#~#g#h#{#{#E@i#E@E@q@F@p@]#q@q@q@q@q@j@d@k@d@d@d@j#k#l#m#n#o#:#:#p#+#}#q#$#$#$#M@M@u@v@1#r#s#3#t#u#v#5#w#x#. . y#z#A#B#C#D#a#E#F#G#V@z@H#X@I#'.@.#.#.H H B.I $.$.0+K :+7 M M : : < q q ' } . ", - " . J#K#K#K#K#L#~#~#~#~#~#~#{#{#i#E@E@^#]#G@]#q@q@^#q@I@H@M#M#N#O#k#k#l#P#Q#_#R#:#S#[#[#J@$#$#T#T#u@U#1#1#P@3#t#t#u#V#W#X#Y#Z#`# $y#z#7#7#D#D#-#.$U@U@+$z@@$H#'#'.2.2.#.p+j.I I l $.%.m m 7 7 9 ].< C.q . ", - " . #$J#K#$$$$%$K#K#L#K#L#f#~#f#~#~#`@`@E@E@E@E@E@E@q@&$*$=$=$-$-$;$O#>$>$,$,$Q#:#:#S#S#'$q#J@$#$#T#)$!$U#1#1#s#~$t#t#{$W#]$^$^$/$($`#_$y#:$7#9#D#<$a#E#U@+$[$b#X@X@A@'.2.#.p+H H B.!.!.~._+m }$7 a+9 ].. ", - " . =@|$#$#$#$1$2$K##$%$K#K#L#e#f#e#~#L#~#~#~#{#3$4$5$6$7$7$8$&$*$-$-$9$9$>$0$0$P#P#Q#S#S#'$'$'$a$b$T#c$!$!$#2#3#d$e$f$g$]$^$^$h$/$i$`#j$k$y#7#7#l$<$m$E#;#U@+$z@z@H#'.'.@.#.#.i.H q+I J $.K K :+C+7 . ", - " . n$o$p$=@o$q$#$q$#$#$#$J##$$$%$$$K#K#e#e#r$s$s$t$4$5$5$u$v$7$w$w$w$-$x$9$>$>$0$y$P#z$A$B$'$'$'$C$b$T#D$D$!$E$#F$F$G$H$I$J$K$^$L$Y#h$($($`#`#y#y#M$7#C#D#E#E#N$U@>#z@b#X@'#'.z.#.#.p+H j.!.O$K 0+m . ", - " . P$P$n$=@=@=@=@p$p$o$#$#$#$#$#$Q$K#Q$R$R$S$T$r$s$t$t$U$5$6$V$6$w$w$W$x$-$X$;$>$0$y$y$z$z$Y$Z$`$'$ % %.%T#T#!$u@+%@%#%$%%%&%*%=%J$K$-%;%>%>%($,%'%`#`#y#z#7#)%D#0#E#;#N$U@z@,#@$X@Y@'.S.#.o@H I j.I J . ", - " . !%!%~%P${%!%n$!%=@=@=@=@=@p$#$]%^%/%/%/%(%S$T$_%:%s$<%t$5$5$5$6$u$7$w$w$-$X$X$>$[%>$y$y$Y$Y$A$`$}%C$ %.%.%|%1%+%+%2%3%4%$%%%*%5%I$J$K$^$;%>%6%7%,%8%9%0%k$:$7#8#8#D#a%E#.$U@[$z@z@X@Y@Y@S.@.#.A.H q+. ", - " . b%b%c%b%d%d%!%!%!%e%f%e%n$g%g%g%^%h%h%i%j%/%R$R$T$_%:%s$k%U$U$4$6$u$V$w$7$w$x$X$X$l%l%0$m%n%z$A$o%`$p%q%.%.%|%r%+%s%2%2%3%t%u%v%*%5%J$]$w%L$x%y%6%7%,%'%z%A%`#y#B%7#l$l$D#E#E#T@[$C%z@H#X@A@I#z.#.A.. ", - " . D%E%F%F%b%b%G%b%~%~%H%I%I%I%J%J%J%g%I%I%g%]%(%R$_%R$T$T$K%k%K%U$L%M%N%u$w$O%P%Q%X$X$X$[%R%0$n%n%z$Y$Z$Z$S%q%T%|%U%V%W%s%X%3%t%4%u%v%*%Y%J$J$Z%;%;%y%y%`%8% &9%.&`#+&y#7#7#B#D#0#E#E#U@U@@&#&W@X@B@&+. ", - " . $&E%E%E%%&E%&&b%b%*&=&-&;&I%;&I%>&I%I%I%I%g%h%]%/%,&_%_%'&'&k%k%L%U$M%)&N%u$!&O%x$x$W$X$~&~&{&{&0$]&z$Y$Z$Z$T%.%^&/&U%W%s%(&2%_&3%:&u%v%<&[&}&K$K$;%>%y%y%,%8%9%9%z%|&`#y#:$7#7#C#m$E#E#.$U@U@z@@$X@. ", - " . 1&$&E%2&3&4&5&6&6&*&7&6&=&=&*&=&>&-&8&-&I%I%J%g%h%]%,&(%R$_%9&9&'&k%0&L%)&)&u$v$O%!&W$P%W$X$~&~&[%a&z$Y$b&o%c&.%d&d&e&/&U%W%s%X%2%3%t%f&f&g&<&<&h&i&Z%Z%j&y%y%k&l& &m&.&|&n&0%y#z#A#)%D#<$E#;#T@>#@&. ", - " . o&1&1&1&p&p&q&q&p&6&6&6&6&6&*&*&r&8&7&=&8&8&I%;&s&g%]%]%]%,&,&_%9&'&:%K%L%L%U$t&)&!&!&!&W$P%u&v&~&[%{&{&a&Y$w& %T%T%x&y&y&U%z&A&A&B&C&D&D&E&v%v%v%F&G&i&Z%H&x%I&J&K&8%9%m&.&|&L&M& $y#M$7#8#D#m$a%U@. ", - " . N&o&O&O&P&Q&q&q&p&6&q&q&6&6&5&6&6&6&6&=&7&*&*&=&;&;&g%R&^%^%,&,&S&T&T&U&U&k%L%L%M%N%V&W&O%!&X&u&v&Y&v&{&m%m%Z&C$Z&`&c&x&x&y&y& *.*+*s%2%C&D&t%@*f&v%<&#*G&$*%*H&x%y%`%l&8%9%m&A%&*n&**=*y#y#7#7#9#m$. ", - " . -*-*P&O&P&P&P&P&O&p&;*Q&p&p&p&q&q&5&6&q&6&6&6&6&*&=&=&>*s&s&,*'*,&)*S&T&T&!*k%k%L%M%M%V&t&!&O%P%P%X&Y&v&v&{&~*'$~*{*]*]*c&x&x&^*^& *+*/*(*_*D&t%:*E&<*[*F&#*G&$*%*}*I&I&`%K& &9%m&&*|*n&**1* $y#2*2*. ", - " 3*4*5*-*-*-*-*O&-*P&O&P&6*P&P&Q&p&p&q&p&6&5&q&6&6&6&q&6&*&7*7*>*s&,*8*8*9*S&T&U&0*U&a*b*M%M%V&W&W&c*c*X&X&Y&d*e*'$f*g*h*{*]*i*j*x&x&k* * *l*(*(*_*C&m*@*f&n*[*F&#*G&o*%*}*p*q*r*K&s*t*m&&*|*u*v*w*x*k$. ", - " 3*y*z*4*4*A*-*-*-*-*-*-*P&P&P&O&P&p&p&P&P&;*B*p&p&q&q&q&6&6&7&=&C*7*,*8*8*8*9*T&D*E*!*a*a*F*G*H*V&I*W&W&c*J*~*K*'$L*M*f*g*h*N*]*i*c&x&^*y&O* *l*P*(*Q*R*m*S*E&<*T*F&U*G&V*W*X*X*q*r*l&s*Y*Z*`*|***** =.= ", - " +=y*@=@=#=4*4*4*5*$=%=-*-*-*-*O&O&P&-*P&P&Q&Q&P&q&p&;*q&q&q&7&q&7&C*s&,*,*'*8*9*&=*=D*!*U&a*F*G*M%V&t&W&W&==c*I*S#-=;=L*>=,='=)=h*]*i*j*j*^*O*!=~=/*{=]=Q*^=S*S*<*<*T*F&/=o*(=W*X*X*J&r*_=s*:=`*I$<=-%.= ", - " +=[=}=}=[=y*@=y*z*|=z*4*1=1=-*$=-*%=-*-*-*P&P&-*P&P&P&Q&p&q&q&p&q&7&7&C*7*,*,*8*8*D*&=D*!*!*a*a*a*F*G*V&2=W&3=4=:#5=-=-=6=7=>=8=9=h*0=a=b=c=^*O*O*!=l*d={=e=R*R*R*S*E&n*F&U*U*f=o*W*g=X*h=r*G$G$&%H$I$i= ", - " j=k=l=m=l=}=}=}=}=[=@=#=@=4*#=n=1=$=o=-*1=p=-*-*P&q=-*q=-*P&O&O&;*q&6&r=C*7*7*s=t=u=&=v=9*D*0*0*a*a*F*w=w=w=2=x=:#y=z=A=B=B=6=8=C=D='=h*N*E=F=F=G=^*H=H=l*d={=I=e=R*J=K=L=L=M=N=U*o*O=P=4%Q=R=R=G$*%H${$ ", - " j=S=T=k=U=k=V=k=k=}=m=[=[=@=@=y*y*@=n=W=1=X=X=$=-*-*p=-*-*-*q=-*-*O&;*;*7&7&7&C*t=t=Y=v=&=&=*=D*D*0*a*Z=G*`= -5=_#.-+-@-#-$-%-B=&-6=7=,=*-N*=-E=----;-O*O* *l*>-d=]=,-J='-'-L=n*N=)-B&X%X%_&_&!-Q=R=R=~- ", - " j={-S={-S=S=T=S=T=k=k=V=k=V=l=[=[=[=y*y*y*n=n=o=o=n=$=p=1=%=%=$=-*-*P&O&;*;*]-r=r&C*^-t=t=/-&=/-0*0*0*0*Z=`=F*(-_-:-<-.-[-#-A=}-$-|-&-1-2-*-3-4-0=E=5-6-;-f$7-8-l*d=9-]=,-J=0-U%a-z&W%W%s%2%2%2%_&3%4%F$ ", - " b-c-c-c-d-{-d-{-S=S=S=S=T=T=k=k=V=k=V=}=[=[=y*@=n=o=e-n=1=o=1=$=p=%=-*-*P&O&;*r=]-7&f-g-t=t=Y=h-&=D**=0*0*i-j-k-(#l-m-n-.-[-@-#-o-$-p-B=&-q-2-2-3-4-r-E=5-;-G=f$H=s-8-d=x&x&y&y&q%U%U%z&W%s%s%X%2%_&2%F$ ", - " t-c-u-c-c-c-v-d-{-w-{-w-S=x-S=S=S=U=k=l=k=k=V=}=}=[=e-e-e-W=e-e-o=o=n=$=$=-*y-O&;*]-]-z-C*g-^-Y=Y=A-&=B-B-C-i-D-n#E-F-l-G-H-.-.-@-I-}-}-B=J-1->=2-3-K-4-r-5-L-6-M-f$]*]*i*c&j*x&^*^*y&e&q%z&z&N-A&s%B&+% ", - " t-O-u-u-u-u-P-Q-c-c-c-v-c-R-{-S-{-S=S=T=S=k=S=k=k=T-}=m=}=e-e-e-e-e-n=1=n=$=$=y-U-6*V-W-X-f-f-g-Y-Z-A-/-B-B-`- ;/#.;+;@;l-#;H-H-.-[-I-I-}-$;p-J->=>=2-%;4-&;r-,=3-,={*Z&]**;a=i*c&=;x&-;y&!=/&U%a-+*s%+% ", - " t-;;>;,;;;O-u-u-';Q-u-Q-Q-P-c-d-);d-);w-!;S=S=U=T=T=k=T=k=V=}=l=e-~;e-e-e-n=$={;y-$=y-U-V-];]-f-f-Y-^;Z-/;/;/;(;_;:;.;.;<;@;l-[;};n-.-|;I-1;}-$;2;J-3;4;%;6=6=6=8=8=,=3-3-h*]*a=a=i*c&j*x&x&^&!=y&U%+*+% ", - " 5;6;;;;;;;;;;;7;8;O-u-O-O-';';';';Q-c-c-);{-);w-{-{-S=k=S=U=T=k=V=k=m=e-e-~;e-e-{;1={;U-U-];V-];9;9;g-Y-^;^;/;0;_;a;a;:;.;.;b;@;[;G-H-c;[-|;I-d;$;$;J-o-}-B=B=|-&-6=8=8=,=9=3-h*0=]*`&e;a=c&x&d&^&^&y&|% ", - " f;g;g;h;h;i;j;j;;;;;8;>;k;O-u-u-O-c-u-u-';c-c-c-);c-d-w-w-S=S=S=S=T=U=k=k=V=l;l;~;m;e-1=n;o;V-U-];p;9;g-q;g-0;r;s;t;u;u;:;:;.;v;+;b;[;};w;w;x;y;[-|;|;I-o-z;}-$-%-B=&-6=6=8=8=,=*-h*h*0=]*]*i*j*j*j*x&|% ", - " f;A;B;g;g;g;g;g;h;j;6;6;;;k;;;;;O-;;O-k;u-u-c-Q-';';';c-v-);c-w-);d-S=S=U=S=S=T=S=l;~;m;{;{;C;y-y-V-];9;p;p;g-D;s;E;F;G;H;I;:;:;J;<;<;K;[;L;L;H-H-M;y;[-|;I-I-}-}-$-%-p-B=6=6=C=7=8=,=)=h*N;0=]*]*i*c&|% ", - " f;O;P;Q;R;P;Q;S;g;g;g;g;g;i;j;j;;;;;;;;;7;k;O-O-u-u-u-P-';P-u-c-c-);d-w-S={-S=!;S=S=U=k=~;{;{;n;y-o;U-T;p;p;p;U;V;W;X;Y;Y;G;Z;u;:;`;J; >b;b;.>[;};H-n-n-c;[-[-I-#-#-o-$-$-p-|-&-6=6=q-8=8=9=9=h*h*0=]*+> ", - " @>O;#>O;$>#>O;P;P;P;P;S;g;g;g;g;i;h;j;6;6;6;;;;;;;,;>;k;u-u-u-u-';u-';c-c-c-);{-);{-{-S-S=S=U=%>{;&>&>o;*>W-=>U;->;>>>,>'>Y;)>)>!>`;J;~>~>{>{>K;@;]>[;G-H-M;w;y;|;[-@-I-d;z;$-p-B=B=|-6=6=M*8=9=9=h*h*.% ", - " ^>/>(>_>(>_>_>O;O;O;$>O;A;A;P;P;S;R;g;g;i;i;i;6;6;;;;;;;;;k;k;u-O-u-O-u-Q-u-c-c-';c-c-);w-d-S=S-S-:><>n;[>[>o;}>|>1>2>3>W;'>'>)>4>5>6>7>8>J;~>~>{>{>b;K;[;[;H-H-.-c;y;[-[-#-#-}-}-p-$-B=|-&-6=>=8=,=,=.% ", - " 9>0>0>0>a>a>(>/>_>_>#>b>O;O;P;$>P;P;P;Q;g;S;c>g;g;h;i;d>j;6;e>;;;;;;k;u-;;O-u-O-Q-Q-';c-';c-);););{-S-S=n;n;[>f>|>g>g>2>'>h>h>h>h>i>)>!>7>7>8>`;`;~>~>b;b;K;.>[;[;m-w;w;c;.-[-j>I-#-z;}-k>B=B=B=&->=>=.% ", - " 9>l>m>n>0>0>0>0>a>o>(>(>_>_>p>#>p>O;O;P;P;Q;P;Q;g;g;g;g;i;g;i;h;e>j;q>;;;;;;8;7;8;>;u-O-u-u-O-';r>c-c-););w-);s>|>t>u>v>3>w>,>,>'>h>x>)>i>y>5>z>7>`;`;A>~>B>{>K;b;[;L;};H-<-w;c;[-|;#-I-#-}-}-$-B=B=C> % ", - " D>E>F>m>m>m>G>0>0>n>0>0>0>o>_>o>(>_>_>#>#>#>O;#>P;P;P;A;P;B;g;B;g;i;H>i;i;6;;;h;;;;;8;7;O-O-O-u-u-Q-I>';Q-c-c-J>K>L>M>N>O>u>v>w>P>w>Q>R>S>h>)>)>4>!>7>6>`;`;J;~>b;{>b;.>K;[;T>H-U>c;c;[-|;@-#-#-$-}-V> % ", - " W>X>E>E>m>Y>m>Y>Z>`>n>0>0>0>l>0>0>0>(>0>(>/>(>_>_>#>#>O;P;P;P;P;A;B;A;R;g;g;g;j;i;i;i;;;;;;;;;;;8;k;8;O-u-O-u- ,K>.,+,@,M>M>#,u>v>3>P>,>Q>$,$,h>)>i>%,4>6>7>6>`;J;~>~>+;b;]>]>[;L;H-w;w;y;.-[-|;#-#-o-'$ ", - " &,X>X>*,X>X>X>X>E>E>=,m>`>m>`>l>-,l>n>0>0>0>;,;,a>o>(>_>_>O;P;#>#>P;O;P;c>B;P;c>B;g;i;i;i;6;;;e>6;;;7;;;,;O-O->,_;,,',.,),!,L>N>N>#,v>v>~,w>w>w>h>h>{,i>y>4>4>7>6>:;`;J;~>{>{>b;]>.>[;L;w;w;c;[-.-[-#-'$ ", - " &,],],],],^,*,],/,X>X>E>E>E>Y>m>m>m>`>n>`>l>G>l>0>0>0>(,;,o>(>_>(>#>O;p>#>#>P;P;P;c>A;S;g;g;g;g;i;j;i;;;;;6;;;_,s;:,<,[,},.,),+,|,L>M>N>#,v>v>P>w>w>$,h>h>S>)>)>4>7>7>6>`;A>~>{>b;b;b;]>.>[;L;w;H-c;[-'$ ", - " &,1,2,3,4,2,],],],5,^,^,X>X>E>E>E>F>6,E>Y>`>`>l>`>`>`>n>l>0>o>a>_>(>_>_>_>#>p>O;O;P;$>P;P;P;g;c>g;c>g;g;i;q>i;7,s;8,8,9,:,[,[,',),.,),M>N>N>N>v>v>v>w>w>,>Q>$,Y;i>)>y>!>5>6>:;`;`;~>{>{>b;K;[;[;};H-U>'$ ", - " 0,a,a,b,a,3,3,2,3,4,],],],*,^,],^,X>X>E>E>E>E>E>6,`>m>m>`>Z>G>`>l>0>0>0>a>_>(>p>(>#>#>#>$>P;#>P;P;P;P;P;B;g;i;c,s;d,e,f,8,:,<,:,[,[,',',),@,M>N>M>#,g,v>h,P>w>'>$,h>S>)>y>y>4>6>7>`;`;~>B>b;b;b;]>[;L;S# ", - " i,j,k,k,b,j,b,a,3,3,3,2,l,3,],l,],],*,/,/,X>m,E>X>Y>Y>=,F>F>F>m>-,-,l>n>`>0>0>0>o>o>o>p>(>#>p>#>#>b>O;P;n,P;c>c,V;o,p,q,e,r,r,s,9,9,<,,,},.,.,+,L>M>M>N>O>v>v>3>w>Q>'>h>h>{,)>y>4>4>6>6>`;`;~>~>b;b;b;S# ", - " t,u,u,j,v,k,k,j,k,a,w,a,b,a,a,3,1,4,x,],l,],],/,X>X>^,y,E>Y>=,=,m>z,`>`>m>l>n>n>l>0>G>0>0>o>(>/>_>#>#>#>O;$>$>A,V;B,C,o,p,D,e,e,r,8,E,9,<,[,},',.,.,!,M>M>F,O>O>~,3>P>w>$,Q>h>S>Y;G,y>4>7>6>8>`;J;~>~>:# ", - " t,H,I,u,u,J,u,j,j,K,k,j,j,k,k,b,b,a,a,3,1,4,4,],4,],],/,/,^,X>/,*,E>E>E>E>`>m>`>`>`>`>m>0>-,0>0>0>0>(>/>_>/>p>L,|>M,N,N,C,O,P,Q,D,e,f,e,8,9,9,<,[,',.,),),|,M>N>N>u>u>v>P>w>w>,>$,h>S>)>y>4>4>7>:;8>`;R, ", - " S,T,H,H,I,U,V,V,u,v,W,u,X,j,k,k,b,b,b,b,a,a,a,3,3,3,Y,x,x,],],],],],X>X>E>E>E>E>=,F>`>`>z,`>m>`>0>G>l>0>0>0>0>L,|>Z,`, '.'N,N,+'o,P,P,e,e,@'8,9,8,:,<,[,,,#'),),M>M>F,N>u>v>3>w>,>,>h>h>h>S>i>y>4>4>6>:# ", - " S,$'%'%'T,T,I,U,I,V,U,H,u,u,J,J,u,v,v,j,j,k,b,b,a,a,b,3,3,1,l,3,],l,x,*,],*,*,/,m,X>m,E>F>Y>`>z,m>m>`>`>m>-,G>&'|>*'Z,Z,Z,=' 'M,N,B,-'o,o,d,D,e,;'8,8,9,>'[,,,',),),+,M>M>N>N>v>v>h,w>$,h>h>h>{,)>)>%,:# ", - " ,''''''''')')')'!')'I,T,T,I,H,u,u,u,u,v,W,v,j,j,j,j,k,~'~'{'a,3,3,3,2,x,4,],],],],/,*,y,/,X>m,E>z,E>F>F>Y>`>`>]'|>^'/'('*'Z,_':'M,M,M,N,o,o,<'P,D,D,e,8,s,9,:,<,[,['.,.,),M>@,M>#,O>}'v>3>w>w>h>h>h>S>_# ", - " |'1'2'3'4'''''''5'''%'T,)'T,T,I,H,u,I,6'u,u,u,v,u,u,X,v,j,j,j,7'b,a,a,b,3,3,3,Y,l,],Y,],*,*,*,*,*,X>X>E>E>E>Y>8'|>9'9'0'a'('('b'*'Z,='M,N,c'B,o,o,Q,P,Q,q,e,8,8,9,<,<,[,.,.,),),M>M>F,N>d'u>h,w>w>,>$,o# ", - " e'f'g'1'1'1'2'h'4'''4'''''''%'%'%'I,T,T,I,T,u,6'u,u,u,u,J,v,j,J,j,k,k,j,i'b,a,a,3,3,2,],4,x,],],],],^,/,/,*,X>j'k'l'l'm'n'o'p'/'('('*'_'Z,='M,q'.'-'r'o,Q,D,e,e,8,8,8,9,<,[,',',s'),L>M>M>N>O>v>3>3>w>/# ", - " t'u'v'v'e'w'x'w'1'y'1'3'3'4'4'''''5'%''')')'T,T,T,T,I,u,u,u,u,u,v,J,K,j,v,k,k,b,b,a,a,b,3,3,3,3,1,l,l,],*,*,],z'A'B'C'D'l'l'9'n'0'^'('('E'*'_'='='='F'N,O,o,P,P,P,D,e,f,8,9,:,[,[,,,.,),L>@,M>N>O>u>u>G' ", - " H'I'J'K'K'v'g'L'L'w'w'M'1'1'y'''3'N'2'''%'%'%')'%'T,T,T,T,I,T,I,u,H,u,u,u,u,j,j,k,~'b,b,~'7'3,7'3,3,3,2,1,Y,O'P'Q'R'S'B'B'l'l'o'o'T'0'p'('*'E'_' 'U'='.'N,N,O,o,D,e,D,e,f,8,8,:,V'[,[,.,',),@,|,M>/#W' ", - " X'Y'Z'`'`' ) ) )g'L'.)L'+)1'w'1'1'3'1'2'''''''''%'%'%'!')'T,)'I,T,H,@)u,H,u,u,u,J,j,j,j,k,k,b,b,a,a,b,a,3,#)P'$)%)&)R'R'S'B'D'l'l'9'9'0'0'p'('*)Z,Z, 'U'='.'N,N,r'P,D,P,D,@'e,8,s,9,<,[,=)',),@,-) ", - " ;)>),)`'`'`'`'') )g'.).).)L'))w'w'))w'1'1'4'1'3'4'N'''''%'%')'%'T,T,T,T,I,T,V,H,u,u,u,u,K,v,J,J,k,~'b,~'!)~){)])^)/)/)()R'_)S'B'l'l'm'9'n'0'('('('b'Z,Z,=' 'M,N,N,C,o,o,p,e,e,e,8,8,9,:,<,[,_;:) ", - " <)[)})`'`'`'`'`' ) ) )|)1).).)L'L'L'L'L'w'))1'1'1'3'2'3'h'h'''%'%')')'T,!'T,T,T,T,6'u,u,H,u,u,u,j,J,j,2)P'3)4){)5)5)$)$)Q'Q'S'S'B'D'6)l'T'o'o'0'0'('('*)Z,Z,M,M,.'N,-'o,o,o,P,d,e,;'8,8,:,K> ", - " 7)8)9)0)J'`'`'`'`'`' ) )a)b)c)d).).)d).)L'.)e)1'))x'1'1'1'4'''''''''%'%')'%'!')')'I,I,U,U,V,u,I,u,u,f)g)h)i)j)4)k)l)5)])$)&)&)m)S'B'D'n)6)l'9'n'o'0'p'('E'_'o)Z,M,.'F'N,r'o,P,o,e,D,p)s;q) ", - " r)X's)t)u)v)`'`'`'`'K'w)K'a)b)b)x)1).).).).).)L'w'))))1'1'1'3'1'N'1'4'''y)''%')')'T,T,T,T,6'I,V,z)g)A)A)B)h)i)i)l){){)$)$)/)C)()R'S'B'B'C'l'm'9'o'0'a'D)('_'Z,_'M,='F'N,N,r'o,P,E)s; ", - " F)G)H)I)J)`'`'`'`'`'w) )w)b)b)b)c)K)L)d).).)d).)L'))))w'e)e)1'1'y'2'''4'4'%''')'%'M)T,T,T,N)O)P)A)A)Q)B)B)R)j)j){)5)5)5)$)$)Q'&)S'S'B'D'l'l'9'0'0'p'p'('('*'Z,:'M,F'M,N,-'V;S) ", - " T)U)I'V)J'`'`'`'`'w)w)w)W)c)c)b)c)c)c)L)b)d).).).)X)L'+)w'e)e)1'1'1'h'2'4'''''%')'%'Y)Z)`) !.!P)A)A)A)B)i)j)4)4)4)4)5)$)$)/)Q'&)S'S'B'D'l'm'9'0'0'p'a'('*'_'Z,Z,:'M,V; ", - " r)+!s)t)u)v)`'`'`'`'w)w)@!W)b)b)b)c)b)c)b)L)K).).)d)d)L'L'L'w'w'1'e)1'1'1'3'4'''#!Z)$!$!%!&!.! ! !P)A)*!B)=!i)l)l)4)5)5)$)$)Q'R'S'S'B'6)l'l'l'9'n'0'D)('*)E'_'|>-! ", - " ;!>!s),!'!)!`'`'`'`'!!w)W)b)~!b)b)b)c)b)b)b)c)b)K).).)L'.).)L'))))e)+)1'1'{!]!^!/!$!$!%!%!&!.! !P)(!Q)B)B)h)j)l){)5)^)$)$)Q'&)R'S'S'B'D'6)m'm'9'9'p'|>|>_! ", - " :!)[!}!`'`'`'`'!!!!!!|!~!~!~!c)b)b)c)c)b)b)c)K)x)L).)1).)X)L'L'))1!2!3!3!4!^!/!/!$!%!5!&!.!.! !A)A)B)h)i)i)l)4)5)5)$)$)%)R'&)R'S'B'n)l'k'6!7! ", - " 8!9![)0!a!b!`'`'`'`'!!!!!!|!~!~!b)~!c)c)b)b)b)c)b)c)c)L)d).).).)c!2!d!e!3!f!4!4!g!/!%!`)`)&!.!.!P)A)h!B)B)i)i!4)4){)5)])$)$)%)&)S'k'j!k! ", - " l!H's)m!n!o!`'`'`'`'!!!!|!~!~!~!~!p!b)b)c)c)b)b)b)b)b)b)K)q!2!r!r!s!e!e!3!3!4!4!/!/!`)%!`)`).!P)t!A)Q)B)u!i)j)l)l)4)5)5)P'v! ", - " w!x![)y!z!`'`'`'`'!!!!!!A!~!~!~!~!~!p!~!b)b)c)b)b)c)q!2!B!B!B!B!r!C!e!e!3!f!D!4!/!$!%!`)E!.!.!P)A)F!B)B)G!R)P'P'H! ", - " I!>)J!K!L!`'`'`'`'!!!!|!~!~!~!~!~!~!~!b)~!b)c)M!2!B!B!B!B!B!r!r!N!C!e!3!O!3!4!^!/!/!%!P!`).!.!t!(!Q!g)R! ", - " S!T!s)U!V!o!`'`'`'!!!!!!|!W!~!~!W!~!~!~!~!X!2!B!B!B!B!B!B!B!r!B!r!Y!e!Z!e!`!D!4!^!$!$!%!5!Z)O) ~ ", - " .~+~@~I)#~`'`'`'`'!!!!A!|!W!~!W!W!W!X!2!B!B!B!B!B!B!B!B!B!B!r!r!r!r!e!Z!3!D!D!g!Z)O)$~ ", - " %~8)u'&~L!`'`'`'`'!!!!|!W!~!W!X!2!B!B!B!B!B!B!B!B!B!B!B!B!B!B!r!r!d!3!2!*~=~ ", - " -~T!s);~>~v)`'`'`'!!!!!!A!X!2!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!2!,~'~ ", - " )~t)s)!~~~)!`'`'`'!!{~2!B!B!B!B!B!B!B!B!B!B!B!B!B!B!2!,~]~ ", - " :!U)U)^~/~`'`'`'(~2!B!B!B!B!B!B!B!B!B!B!B!2!_~ ", - " :~<~@~+~[~b!`'}~2!B!B!B!B!B!B!B!B!2!|~ ", - " 1~2~3~,!'!4~2!B!B!B!B!B!2!5~ ", - " 6~x!@~7~2!B!8~2!9~ ", - " 0~a~2!b~ ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " "}; - """ + def getIcon(self): + return """ + /* XPM */ + static char * TankS_xpm[] = { + "32 32 516 2", + " c None", + ". c #2A2A2A", + "+ c #6D6C6D", + "@ c #434343", + "# c #000000", + "$ c #3C3C3C", + "% c #878787", + "& c #DADADA", + "* c #D1D2D1", + "= c #DBDBDC", + "- c #DDDDDD", + "; c #777677", + "> c #636363", + ", c #3D3D3D", + "' c #D2D2D1", + ") c #CBCBCB", + "! c #CECECE", + "~ c #D2D2D2", + "{ c #D5D5D5", + "] c #D8D9D9", + "^ c #DCDCDC", + "/ c #E6E6E6", + "( c #ACADAC", + "_ c #949494", + ": c #2B2A2B", + "< c #202020", + "[ c #838383", + "} c #D0D0D1", + "| c #C4C3C3", + "1 c #C7C7C7", + "2 c #CACACA", + "3 c #D1D1D1", + "4 c #D5D4D5", + "5 c #D8D8D8", + "6 c #DEDEDE", + "7 c #E2E2E2", + "8 c #E5E5E5", + "9 c #F5F5F6", + "0 c #B5B5B5", + "a c #747474", + "b c #393939", + "c c #7E7E7E", + "d c #7B7B7B", + "e c #7C7C7C", + "f c #D3D3D3", + "g c #CCCCCC", + "h c #CDCDCD", + "i c #D4D4D4", + "j c #DBDBDA", + "k c #DEDFDF", + "l c #E2E2E1", + "m c #E5E4E5", + "n c #E9E8E8", + "o c #ECECEC", + "p c #F2F2F1", + "q c #FEFEFE", + "r c #989898", + "s c #737373", + "t c #ADADAD", + "u c #AAAAAA", + "v c #5A5A5A", + "w c #717171", + "x c #9D9D9D", + "y c #D7D7D7", + "z c #DBDBDB", + "A c #DEDDDD", + "B c #E1E1E1", + "C c #E4E5E4", + "D c #E8E8E8", + "E c #EBEBEC", + "F c #EFEFEF", + "G c #F1F1F1", + "H c #F0F0F0", + "I c #FFFFFF", + "J c #666666", + "K c #5E5E5E", + "L c #4D4D4D", + "M c #D8D7D8", + "N c #D7D7D6", + "O c #E3E3E3", + "P c #797979", + "Q c #656565", + "R c #A9AAAA", + "S c #707070", + "T c #949493", + "U c #C3C3C3", + "V c #E0E0E0", + "W c #E1E0E0", + "X c #E4E4E4", + "Y c #E7E7E7", + "Z c #EBEBEB", + "` c #EEEDED", + " . c #585858", + ".. c #5B5B5B", + "+. c #C3C4C3", + "@. c #D3D3D2", + "#. c #D3D3D4", + "$. c #D5D5D4", + "%. c #DFDFDF", + "&. c #474747", + "*. c #858585", + "=. c #505050", + "-. c #606060", + ";. c #848485", + ">. c #F4F4F5", + ",. c #6F6F6F", + "'. c #909090", + "). c #D9DAD9", + "!. c #D4D3D4", + "~. c #D6D6D5", + "{. c #525252", + "]. c #ADACAD", + "^. c #323232", + "/. c #ABABAA", + "(. c #D0CFCF", + "_. c #D1D0D1", + ":. c #D1D2D2", + "<. c #D3D4D3", + "[. c #D5D5D6", + "}. c #D6D6D6", + "|. c #1B1B1B", + "1. c #494949", + "2. c #919191", + "3. c #CFCFCF", + "4. c #D2D3D2", + "5. c #D4D5D4", + "6. c #848384", + "7. c #B2B2B2", + "8. c #B3B2B2", + "9. c #A7A7A7", + "0. c #444344", + "a. c #CCCFD1", + "b. c #ABC2D5", + "c. c #94BBD9", + "d. c #A9C4D7", + "e. c #C1CFD8", + "f. c #D0D1D1", + "g. c #2D2D2D", + "h. c #CDCECD", + "i. c #C5C5C5", + "j. c #C9C9C9", + "k. c #CBCBCA", + "l. c #CDCECE", + "m. c #CFCFD0", + "n. c #818181", + "o. c #B0B0B0", + "p. c #B1B1B1", + "q. c #9FA4AA", + "r. c #4D6782", + "s. c #557CA0", + "t. c #90B7DB", + "u. c #8DB5D7", + "v. c #8FB7D7", + "w. c #91BAD9", + "x. c #93BCD9", + "y. c #BCD3E1", + "z. c #747C81", + "A. c #BDBCBC", + "B. c #BEBEBE", + "C. c #C0C0C0", + "D. c #C2C2C2", + "E. c #C4C4C4", + "F. c #C6C6C6", + "G. c #C7C8C7", + "H. c #CAC9C9", + "I. c #7D7D7E", + "J. c #828281", + "K. c #AEAEAD", + "L. c #ADADAE", + "M. c #A6AAB1", + "N. c #7C9ABF", + "O. c #7699C2", + "P. c #769BC3", + "Q. c #789DC3", + "R. c #6288AE", + "S. c #4F7799", + "T. c #5981A3", + "U. c #94BDDC", + "V. c #8FB9D8", + "W. c #537E9A", + "X. c #87B2CE", + "Y. c #8AB0C7", + "Z. c #A8B6BE", + "`. c #B7BABB", + " + c #BDBDBD", + ".+ c #BFBFBF", + "++ c #C1C1C1", + "@+ c #C2C3C3", + "#+ c #C4C4C5", + "$+ c #C7C7C6", + "%+ c #7A7A7B", + "&+ c #7F8080", + "*+ c #A8AAAB", + "=+ c #9EA6AF", + "-+ c #7594BE", + ";+ c #7192C0", + ">+ c #7293C0", + ",+ c #7395C1", + "'+ c #7498C1", + ")+ c #7599C1", + "!+ c #779CC2", + "~+ c #779EC3", + "{+ c #769DC0", + "]+ c #638BAD", + "^+ c #4F7897", + "/+ c #4F7D9F", + "(+ c #7DA7C4", + "_+ c #7FAAC6", + ":+ c #80ADC7", + "<+ c #83B0C8", + "[+ c #8EB4C6", + "}+ c #B5B9BB", + "|+ c #BABBBC", + "1+ c #787878", + "2+ c #717B89", + "3+ c #6F90BD", + "4+ c #6F91BD", + "5+ c #6F90BE", + "6+ c #7091BE", + "7+ c #7192BF", + "8+ c #7194BF", + "9+ c #7396C0", + "0+ c #7498C0", + "a+ c #759AC1", + "b+ c #769CC1", + "c+ c #789FC2", + "d+ c #79A1C3", + "e+ c #4A7CA2", + "f+ c #7AA3C2", + "g+ c #7BA5C2", + "h+ c #7DA8C4", + "i+ c #7FABC5", + "j+ c #81AEC6", + "k+ c #83B1C8", + "l+ c #85B4C9", + "m+ c #98B7C4", + "n+ c #BABABB", + "o+ c #747576", + "p+ c #5B71A4", + "q+ c #6D89BE", + "r+ c #678BBF", + "s+ c #6D8EBD", + "t+ c #6D8FBD", + "u+ c #6E90BD", + "v+ c #7091BD", + "w+ c #7193BE", + "x+ c #7296BF", + "y+ c #7397C0", + "z+ c #7499C0", + "A+ c #759BC1", + "B+ c #779EC1", + "C+ c #4979A1", + "D+ c #769FBF", + "E+ c #78A0C0", + "F+ c #79A4C1", + "G+ c #7BA6C2", + "H+ c #7DAAC3", + "I+ c #80ACC5", + "J+ c #82B0C6", + "K+ c #84B2C7", + "L+ c #89B4C6", + "M+ c #95AFC1", + "N+ c #59819C", + "O+ c #5A6FA3", + "P+ c #7388BC", + "Q+ c #7489BC", + "R+ c #7189BD", + "S+ c #6B89BE", + "T+ c #678BBE", + "U+ c #6D8EBC", + "V+ c #6E8FBC", + "W+ c #6F92BE", + "X+ c #7194BE", + "Y+ c #7398BF", + "Z+ c #759BBF", + "`+ c #46759F", + " @ c #729ABC", + ".@ c #749CBD", + "+@ c #769FBE", + "@@ c #77A2BF", + "#@ c #79A5C0", + "$@ c #7BA7C2", + "%@ c #7CA9C2", + "&@ c #7AA5C3", + "*@ c #7CA6C4", + "=@ c #7DA7C5", + "-@ c #577E98", + ";@ c #586CA2", + ">@ c #7184BA", + ",@ c #7185BB", + "'@ c #7286BB", + ")@ c #7287BB", + "!@ c #7388BB", + "~@ c #6C86BD", + "{@ c #6486BF", + "]@ c #6B8DBB", + "^@ c #6D8FBB", + "/@ c #6E91BC", + "(@ c #7093BC", + "_@ c #7195BD", + ":@ c #7297BD", + "<@ c #43719D", + "[@ c #6E95B8", + "}@ c #7098BA", + "|@ c #729BBB", + "1@ c #749DBC", + "2@ c #799EB9", + "3@ c #719CBF", + "4@ c #769EBF", + "5@ c #77A0C0", + "6@ c #78A2C1", + "7@ c #7AA3C3", + "8@ c #557B96", + "9@ c #576AA1", + "0@ c #6F82B9", + "a@ c #7083BA", + "b@ c #7084BA", + "c@ c #7185BA", + "d@ c #7285BB", + "e@ c #7187BC", + "f@ c #6985BF", + "g@ c #6387C0", + "h@ c #6E90BC", + "i@ c #6F92BB", + "j@ c #7095BC", + "k@ c #416D9B", + "l@ c #6A90B5", + "m@ c #6A92B7", + "n@ c #6393BD", + "o@ c #6D95B9", + "p@ c #7097BA", + "q@ c #7199BA", + "r@ c #729ABB", + "s@ c #739BBD", + "t@ c #759DBE", + "u@ c #779FBE", + "v@ c #527794", + "w@ c #5567A0", + "x@ c #6D7EB7", + "y@ c #6D7FB7", + "z@ c #6E81B8", + "A@ c #6F82B8", + "B@ c #6F83B9", + "C@ c #7186BA", + "D@ c #6F85BB", + "E@ c #6183C2", + "F@ c #698DBC", + "G@ c #3D6A9A", + "H@ c #5E8BB7", + "I@ c #688EB3", + "J@ c #6A90B4", + "K@ c #6B91B5", + "L@ c #6C93B6", + "M@ c #6F97B8", + "N@ c #7199BB", + "O@ c #739BBC", + "P@ c #507492", + "Q@ c #52639E", + "R@ c #6A7BB5", + "S@ c #6A7CB6", + "T@ c #6B7DB6", + "U@ c #6C7EB7", + "V@ c #6D7FB8", + "W@ c #6D80B7", + "X@ c #6F83BA", + "Y@ c #436587", + "Z@ c #6388AF", + "`@ c #658AB0", + " # c #668CB1", + ".# c #688DB3", + "+# c #698FB4", + "@# c #6C92B6", + "## c #6D94B7", + "$# c #6F96B9", + "%# c #4E7190", + "&# c #50619D", + "*# c #6778B4", + "=# c #6878B4", + "-# c #6979B4", + ";# c #697BB5", + "># c #6A7CB7", + ",# c #6A7DB7", + "'# c #6B7EB7", + ")# c #6C7FB7", + "!# c #6E80B8", + "~# c #416285", + "{# c #6084AC", + "]# c #6186AD", + "^# c #6389B0", + "/# c #668BB0", + "(# c #678CB1", + "_# c #6B91B4", + ":# c #4B6E8E", + "<# c #4F5F9D", + "[# c #6575B2", + "}# c #6675B2", + "|# c #6676B3", + "1# c #6776B3", + "2# c #6777B4", + "3# c #6879B4", + "4# c #697AB5", + "5# c #6A7DB6", + "6# c #6B7DB7", + "7# c #6C7EB6", + "8# c #3E5E83", + "9# c #5C80A9", + "0# c #5D81AA", + "a# c #5F83AB", + "b# c #6085AC", + "c# c #6388AE", + "d# c #648AAF", + "e# c #668BB1", + "f# c #678CB2", + "g# c #688EB4", + "h# c #486B8C", + "i# c #233077", + "j# c #314293", + "k# c #6574B5", + "l# c #6573B2", + "m# c #6473B2", + "n# c #6575B3", + "o# c #6676B2", + "p# c #697AB4", + "q# c #3C5B81", + "r# c #587CA5", + "s# c #5A7DA7", + "t# c #5B7FA8", + "u# c #5D80A9", + "v# c #5D82AA", + "w# c #6185AD", + "x# c #6287AE", + "y# c #6389AF", + "z# c #678CB3", + "A# c #385C80", + "B# c #2A3576", + "C# c #35418C", + "D# c #253584", + "E# c #4F5FA4", + "F# c #6574B3", + "G# c #6372B1", + "H# c #6473B1", + "I# c #6474B2", + "J# c #6576B3", + "K# c #6777B3", + "L# c #3A587F", + "M# c #5578A3", + "N# c #5779A3", + "O# c #577BA5", + "P# c #597CA6", + "Q# c #5B7EA7", + "R# c #5C7FA8", + "S# c #5E82AA", + "T# c #4D7299", + "U# c #0C1A71", + "V# c #1E2A74", + "W# c #38448D", + "X# c #2E3D90", + "Y# c #33428C", + "Z# c #5D6AAC", + "`# c #6371B2", + " $ c #6270B0", + ".$ c #6372B0", + "+$ c #37557D", + "@$ c #52739F", + "#$ c #5274A1", + "$$ c #5577A3", + "%$ c #577AA4", + "&$ c #587CA6", + "*$ c #597DA6", + "=$ c #5C7FA9", + "-$ c #5478A1", + ";$ c #21466F", + ">$ c #111F72", + ",$ c #2B377D", + "'$ c #34428F", + ")$ c #303F8D", + "!$ c #455293", + "~$ c #6572B3", + "{$ c #616FB0", + "]$ c #626FB0", + "^$ c #34537B", + "/$ c #4E709D", + "($ c #50719E", + "_$ c #50729F", + ":$ c #5174A0", + "<$ c #5375A1", + "[$ c #577AA5", + "}$ c #3F618C", + "|$ c #2F5786", + "1$ c #0C315B", + "2$ c #182678", + "3$ c #1C2872", + "4$ c #354087", + "5$ c #2C3A88", + "6$ c #36448A", + "7$ c #5562A4", + "8$ c #6370B1", + "9$ c #34527A", + "0$ c #4C6D9B", + "a$ c #4D6E9C", + "b$ c #51739F", + "c$ c #385A87", + "d$ c #254672", + "e$ c #1F2A6F", + "f$ c #2A367A", + "g$ c #334088", + "h$ c #33428D", + "i$ c #254673", + "j$ c #4F709E", + "k$ c #375886", + "l$ c #224473", + "m$ c #09155A", + "n$ c #2A3577", + "o$ c #1E275A", + "p$ c #244676", + "q$ c #1F4373", + " ", + " . + @ # ", + " $ % & * = - ; > ", + " , % ' ) ! ~ { ] ^ / ( _ : ", + " < [ } | 1 2 ! 3 4 5 = 6 7 8 9 0 a # ", + " b c d e e f g h 3 i 5 j k l m n o p q r s # ", + " # t 7 u v _ w w x & f y z A B C D E F G H I J K ", + " L M f i N O P Q R S T U V 6 W X Y Z ` I d _ - V . ", + " ..+.3 3 @.#.$.5 %.&.*.=.-.;.8 Z Y >.,.'.).!.~.5 Y {. ", + " % ].^./.(._.:.<.!.[.}.V |.# # 1.Q 2.} g h 3._.4.5.6. ", + " *.7.8.t 9.0.N ' a.b.c.d.e.f.'.g.h.U i.1 j.k.g l.m.n. ", + " [ o.o.p.p.7.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.k.I. ", + " J.t K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+%+ ", + " &+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+B.C.++1+ ", + " 2+3+4+5+6+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+A.o+ ", + " p+q+r+s+t+u+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+ ", + " O+P+Q+R+S+T+U+V+3+W+X+x+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@ ", + " ;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@ ", + " 9@0@a@b@c@d@'@'@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@ ", + " w@x@y@z@z@A@B@b@b@,@C@D@E@F@G@H@I@J@K@L@[@M@p@N@O@P@ ", + " Q@R@S@T@U@U@V@W@z@z@0@X@b@c@Y@Z@`@ #.#+#J@@###[@$#%# ", + " &#*#=#-#;#R@>#,#'#U@)#W@!#z@~#{#]#R.^#/#(#I@+#_#@#:# ", + " <#[#}#|#1#2#=#3#4#;#S@5#6#7#8#9#0#a#b#]#c#d#e#f#g#h# ", + " i#j#k#l#m#[#n#o#|#2#*#3#p#4#q#r#s#t#u#v#a#w#x#y#z#A# ", + " B#C#D#E#F#G#G#H#I#[#J#|#K#L#M#N#O#P#Q#R#0#S#{#T# ", + " U#V#W#X#Y#Z#`# $.$G#H#I#+$@$#$$$M#%$&$*$=$-$;$ ", + " >$,$'$)$!$~${$]$ $^$/$($_$:$<$[$}$|$1$ ", + " 2$3$4$5$6$7$8$9$0$a$a$b$c$d$ ", + " e$f$g$h$i$_$j$k$l$ ", + " m$n$o$p$q$ ", + " ", + " "}; + """ def tankWeight(obj, angles=Vector(0.0,0.0,0.0), cor=Vector(0.0,0.0,0.0)): - """ Compute tank fluid weight and their center of gravity. - @param obj Tank object. - @param angles Tank angles, Roll, Pitch and Yaw. - @param cor Center or rotation. - @return Weight and center of gravity. None if errors detected - """ - # Test if is a tank instance - props = obj.PropertiesList - try: - props.index("IsShipTank") - except ValueError: - return None - if not obj.IsShipTank: - return None - # Get object solids - Solids = obj.Shape.Solids - W = [0.0, 0.0, 0.0, 0.0] - for s in Solids: - # Get fluid volume - bbox = s.BoundBox - z0 = bbox.ZMin - z1 = bbox.ZMax - dz = obj.Level/100.0 * (z1-z0) - z = z0 + dz - dx = bbox.XMax-bbox.XMin - dy = bbox.YMax-bbox.YMin - box = Part.makeBox(3.0*(dx), 3.0*(dy), (z1-z0)+dz, Vector(bbox.XMin-dx, bbox.YMin-dy, bbox.ZMin-(z1-z0))) - fluid = s.common(box) - vol = fluid.Volume - W[0] = W[0] + vol*obj.Density - # Compute fluid solid in rotated position (non linear rotation - # are ussually computed as Roll -> Pitch -> Yaw). - s.rotate(cor, Vector(1.0,0.0,0.0), angles.x) - s.rotate(cor, Vector(0.0,1.0,0.0), angles.y) - s.rotate(cor, Vector(0.0,0.0,1.0), angles.z) - bbox = s.BoundBox - z0 = bbox.ZMin - z1 = bbox.ZMax - dx = bbox.XMax-bbox.XMin - dy = bbox.YMax-bbox.YMin - Error = 0.01*vol - z = 0.0 - v = 0.0 - while(abs(vol - v) > Error): - z = z + (vol - v) / (dx*dy) - dz = z - z0 - box = Part.makeBox(3.0*(dx), 3.0*(dy), (z1-z0)+dz, Vector(bbox.XMin-dx, bbox.YMin-dy, bbox.ZMin-(z1-z0))) - fluid = s.common(box) - v = fluid.Volume - if(abs(vol - v) / (dx*dy) <= 0.000001): - break - # Add fluid moments - for f in fluid.Solids: - cog = f.CenterOfMass - W[1] = W[1] + f.Volume*obj.Density*cog.x - W[2] = W[2] + f.Volume*obj.Density*cog.y - W[3] = W[3] + f.Volume*obj.Density*cog.z - return [W[0], W[1]/W[0], W[2]/W[0], W[3]/W[0]] + """ Compute tank fluid weight and their center of gravity. + @param obj Tank object. + @param angles Tank angles, Roll, Pitch and Yaw. + @param cor Center or rotation. + @return Weight and center of gravity. None if errors detected + """ + # Test if is a tank instance + props = obj.PropertiesList + try: + props.index("IsShipTank") + except ValueError: + return None + if not obj.IsShipTank: + return None + # Get object solids + Solids = obj.Shape.Solids + W = [0.0, 0.0, 0.0, 0.0] + for s in Solids: + # Get fluid volume + bbox = s.BoundBox + z0 = bbox.ZMin + z1 = bbox.ZMax + dz = obj.Level/100.0 * (z1-z0) + z = z0 + dz + dx = bbox.XMax-bbox.XMin + dy = bbox.YMax-bbox.YMin + box = Part.makeBox(3.0*(dx), 3.0*(dy), (z1-z0)+dz, Vector(bbox.XMin-dx, bbox.YMin-dy, bbox.ZMin-(z1-z0))) + fluid = s.common(box) + vol = fluid.Volume + W[0] = W[0] + vol*obj.Density + # Compute fluid solid in rotated position (non linear rotation + # are ussually computed as Roll -> Pitch -> Yaw). + s.rotate(cor, Vector(1.0,0.0,0.0), angles.x) + s.rotate(cor, Vector(0.0,1.0,0.0), angles.y) + s.rotate(cor, Vector(0.0,0.0,1.0), angles.z) + bbox = s.BoundBox + z0 = bbox.ZMin + z1 = bbox.ZMax + dx = bbox.XMax-bbox.XMin + dy = bbox.YMax-bbox.YMin + Error = 0.01*vol + z = 0.0 + v = 0.0 + while(abs(vol - v) > Error): + z = z + (vol - v) / (dx*dy) + dz = z - z0 + box = Part.makeBox(3.0*(dx), 3.0*(dy), (z1-z0)+dz, Vector(bbox.XMin-dx, bbox.YMin-dy, bbox.ZMin-(z1-z0))) + fluid = s.common(box) + v = fluid.Volume + if(abs(vol - v) / (dx*dy) <= 0.000001): + break + # Add fluid moments + for f in fluid.Solids: + cog = f.CenterOfMass + W[1] = W[1] + f.Volume*obj.Density*cog.x + W[2] = W[2] + f.Volume*obj.Density*cog.y + W[3] = W[3] + f.Volume*obj.Density*cog.z + return [W[0], W[1]/W[0], W[2]/W[0], W[3]/W[0]] diff --git a/src/Mod/Ship/makeResources.sh b/src/Mod/Ship/makeResources.sh new file mode 100755 index 0000000000..f1c67a8428 --- /dev/null +++ b/src/Mod/Ship/makeResources.sh @@ -0,0 +1,56 @@ +#!/bin/bash +## Create resources stuff for Ship module. + +# Perform trnaslations +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship.ts +lrelease resources/translations/Ship.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_af.ts +lrelease resources/translations/Ship_af.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_cs.ts +lrelease resources/translations/Ship_cs.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_de.ts +lrelease resources/translations/Ship_de.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_es-ES.ts +lrelease resources/translations/Ship_es-ES.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_fi.ts +lrelease resources/translations/Ship_fi.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_fr.ts +lrelease resources/translations/Ship_fr.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_hr.ts +lrelease resources/translations/Ship_hr.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_hu.ts +lrelease resources/translations/Ship_hu.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_it.ts +lrelease resources/translations/Ship_it.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_ja.ts +lrelease resources/translations/Ship_ja.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_nl.ts +lrelease resources/translations/Ship_nl.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_no.ts +lrelease resources/translations/Ship_no.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_pl.ts +lrelease resources/translations/Ship_pl.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_pt-BR.ts +lrelease resources/translations/Ship_pt-BR.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_ro.ts +lrelease resources/translations/Ship_ro.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_ru.ts +lrelease resources/translations/Ship_ru.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_sk.ts +lrelease resources/translations/Ship_sk.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_sv-SE.ts +lrelease resources/translations/Ship_sv-SE.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_tr.ts +lrelease resources/translations/Ship_tr.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_uk.ts +lrelease resources/translations/Ship_uk.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_zh-CN.ts +lrelease resources/translations/Ship_zh-CN.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_zh-TW.ts +lrelease resources/translations/Ship_zh-TW.ts + +# Create resources +rm -f Ship_rc.py +cd resources +pyrcc4 Ship.qrc -o ../Ship_rc.py +cd .. diff --git a/src/Mod/Ship/resources/Ship.qrc b/src/Mod/Ship/resources/Ship.qrc new file mode 100644 index 0000000000..e5a2525c3f --- /dev/null +++ b/src/Mod/Ship/resources/Ship.qrc @@ -0,0 +1,38 @@ + + + icons/AreaCurveIco.png + icons/HydrostaticsIco.png + icons/Ico.png + icons/LoadIco.png + icons/OutlineDrawIco.png + icons/SimCreateIco.png + icons/SimPostIco.png + icons/SimRunIco.png + icons/SimStopIco.png + icons/Tank.png + icons/Weight.png + translations/Ship.qm + translations/Ship_af.qm + translations/Ship_cs.qm + translations/Ship_de.qm + translations/Ship_es-ES.qm + translations/Ship_fi.qm + translations/Ship_fr.qm + translations/Ship_hr.qm + translations/Ship_hu.qm + translations/Ship_it.qm + translations/Ship_ja.qm + translations/Ship_nl.qm + translations/Ship_no.qm + translations/Ship_pl.qm + translations/Ship_pt-BR.qm + translations/Ship_ro.qm + translations/Ship_ru.qm + translations/Ship_sk.qm + translations/Ship_sv-SE.qm + translations/Ship_tr.qm + translations/Ship_uk.qm + translations/Ship_zh-CN.qm + translations/Ship_zh-TW.qm + + diff --git a/src/Mod/Ship/Examples/s60.fcstd b/src/Mod/Ship/resources/examples/s60.fcstd similarity index 100% rename from src/Mod/Ship/Examples/s60.fcstd rename to src/Mod/Ship/resources/examples/s60.fcstd diff --git a/src/Mod/Ship/Examples/s60_katamaran.fcstd b/src/Mod/Ship/resources/examples/s60_katamaran.fcstd similarity index 100% rename from src/Mod/Ship/Examples/s60_katamaran.fcstd rename to src/Mod/Ship/resources/examples/s60_katamaran.fcstd diff --git a/src/Mod/Ship/Examples/wigley.fcstd b/src/Mod/Ship/resources/examples/wigley.fcstd similarity index 100% rename from src/Mod/Ship/Examples/wigley.fcstd rename to src/Mod/Ship/resources/examples/wigley.fcstd diff --git a/src/Mod/Ship/Examples/wigley_katamaran.fcstd b/src/Mod/Ship/resources/examples/wigley_katamaran.fcstd similarity index 100% rename from src/Mod/Ship/Examples/wigley_katamaran.fcstd rename to src/Mod/Ship/resources/examples/wigley_katamaran.fcstd diff --git a/src/Mod/Ship/Icons/AreaCurveIco.png b/src/Mod/Ship/resources/icons/AreaCurveIco.png similarity index 100% rename from src/Mod/Ship/Icons/AreaCurveIco.png rename to src/Mod/Ship/resources/icons/AreaCurveIco.png diff --git a/src/Mod/Ship/Icons/AreaCurveIco.xcf b/src/Mod/Ship/resources/icons/AreaCurveIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/AreaCurveIco.xcf rename to src/Mod/Ship/resources/icons/AreaCurveIco.xcf diff --git a/src/Mod/Ship/Icons/AreaCurveIco.xpm b/src/Mod/Ship/resources/icons/AreaCurveIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/AreaCurveIco.xpm rename to src/Mod/Ship/resources/icons/AreaCurveIco.xpm diff --git a/src/Mod/Ship/Icons/HydrostaticsIco.png b/src/Mod/Ship/resources/icons/HydrostaticsIco.png similarity index 100% rename from src/Mod/Ship/Icons/HydrostaticsIco.png rename to src/Mod/Ship/resources/icons/HydrostaticsIco.png diff --git a/src/Mod/Ship/Icons/HydrostaticsIco.xcf b/src/Mod/Ship/resources/icons/HydrostaticsIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/HydrostaticsIco.xcf rename to src/Mod/Ship/resources/icons/HydrostaticsIco.xcf diff --git a/src/Mod/Ship/Icons/HydrostaticsIco.xpm b/src/Mod/Ship/resources/icons/HydrostaticsIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/HydrostaticsIco.xpm rename to src/Mod/Ship/resources/icons/HydrostaticsIco.xpm diff --git a/src/Mod/Ship/Icons/Ico.png b/src/Mod/Ship/resources/icons/Ico.png similarity index 100% rename from src/Mod/Ship/Icons/Ico.png rename to src/Mod/Ship/resources/icons/Ico.png diff --git a/src/Mod/Ship/Icons/Ico.xcf b/src/Mod/Ship/resources/icons/Ico.xcf similarity index 100% rename from src/Mod/Ship/Icons/Ico.xcf rename to src/Mod/Ship/resources/icons/Ico.xcf diff --git a/src/Mod/Ship/Icons/Ico.xpm b/src/Mod/Ship/resources/icons/Ico.xpm similarity index 100% rename from src/Mod/Ship/Icons/Ico.xpm rename to src/Mod/Ship/resources/icons/Ico.xpm diff --git a/src/Mod/Ship/Icons/LoadIco.png b/src/Mod/Ship/resources/icons/LoadIco.png similarity index 100% rename from src/Mod/Ship/Icons/LoadIco.png rename to src/Mod/Ship/resources/icons/LoadIco.png diff --git a/src/Mod/Ship/Icons/LoadIco.xcf b/src/Mod/Ship/resources/icons/LoadIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/LoadIco.xcf rename to src/Mod/Ship/resources/icons/LoadIco.xcf diff --git a/src/Mod/Ship/Icons/LoadIco.xpm b/src/Mod/Ship/resources/icons/LoadIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/LoadIco.xpm rename to src/Mod/Ship/resources/icons/LoadIco.xpm diff --git a/src/Mod/Ship/Icons/OutlineDrawIco.png b/src/Mod/Ship/resources/icons/OutlineDrawIco.png similarity index 100% rename from src/Mod/Ship/Icons/OutlineDrawIco.png rename to src/Mod/Ship/resources/icons/OutlineDrawIco.png diff --git a/src/Mod/Ship/Icons/OutlineDrawIco.xcf b/src/Mod/Ship/resources/icons/OutlineDrawIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/OutlineDrawIco.xcf rename to src/Mod/Ship/resources/icons/OutlineDrawIco.xcf diff --git a/src/Mod/Ship/Icons/OutlineDrawIco.xpm b/src/Mod/Ship/resources/icons/OutlineDrawIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/OutlineDrawIco.xpm rename to src/Mod/Ship/resources/icons/OutlineDrawIco.xpm diff --git a/src/Mod/Ship/Icons/Ship.xcf b/src/Mod/Ship/resources/icons/Ship.xcf similarity index 100% rename from src/Mod/Ship/Icons/Ship.xcf rename to src/Mod/Ship/resources/icons/Ship.xcf diff --git a/src/Mod/Ship/Icons/Ship.xpm b/src/Mod/Ship/resources/icons/Ship.xpm similarity index 100% rename from src/Mod/Ship/Icons/Ship.xpm rename to src/Mod/Ship/resources/icons/Ship.xpm diff --git a/src/Mod/Ship/Icons/Sim.xpm b/src/Mod/Ship/resources/icons/Sim.xpm similarity index 100% rename from src/Mod/Ship/Icons/Sim.xpm rename to src/Mod/Ship/resources/icons/Sim.xpm diff --git a/src/Mod/Ship/Icons/SimCreateIco.png b/src/Mod/Ship/resources/icons/SimCreateIco.png similarity index 100% rename from src/Mod/Ship/Icons/SimCreateIco.png rename to src/Mod/Ship/resources/icons/SimCreateIco.png diff --git a/src/Mod/Ship/Icons/SimCreateIco.xcf b/src/Mod/Ship/resources/icons/SimCreateIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/SimCreateIco.xcf rename to src/Mod/Ship/resources/icons/SimCreateIco.xcf diff --git a/src/Mod/Ship/Icons/SimCreateIco.xpm b/src/Mod/Ship/resources/icons/SimCreateIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/SimCreateIco.xpm rename to src/Mod/Ship/resources/icons/SimCreateIco.xpm diff --git a/src/Mod/Ship/Icons/SimIco.xcf b/src/Mod/Ship/resources/icons/SimIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/SimIco.xcf rename to src/Mod/Ship/resources/icons/SimIco.xcf diff --git a/src/Mod/Ship/Icons/SimPostIco.png b/src/Mod/Ship/resources/icons/SimPostIco.png similarity index 100% rename from src/Mod/Ship/Icons/SimPostIco.png rename to src/Mod/Ship/resources/icons/SimPostIco.png diff --git a/src/Mod/Ship/Icons/SimPostIco.xpm b/src/Mod/Ship/resources/icons/SimPostIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/SimPostIco.xpm rename to src/Mod/Ship/resources/icons/SimPostIco.xpm diff --git a/src/Mod/Ship/Icons/SimRunIco.png b/src/Mod/Ship/resources/icons/SimRunIco.png similarity index 100% rename from src/Mod/Ship/Icons/SimRunIco.png rename to src/Mod/Ship/resources/icons/SimRunIco.png diff --git a/src/Mod/Ship/Icons/SimRunIco.xpm b/src/Mod/Ship/resources/icons/SimRunIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/SimRunIco.xpm rename to src/Mod/Ship/resources/icons/SimRunIco.xpm diff --git a/src/Mod/Ship/Icons/SimStopIco.png b/src/Mod/Ship/resources/icons/SimStopIco.png similarity index 100% rename from src/Mod/Ship/Icons/SimStopIco.png rename to src/Mod/Ship/resources/icons/SimStopIco.png diff --git a/src/Mod/Ship/Icons/SimStopIco.xpm b/src/Mod/Ship/resources/icons/SimStopIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/SimStopIco.xpm rename to src/Mod/Ship/resources/icons/SimStopIco.xpm diff --git a/src/Mod/Ship/Icons/Tank.png b/src/Mod/Ship/resources/icons/Tank.png similarity index 100% rename from src/Mod/Ship/Icons/Tank.png rename to src/Mod/Ship/resources/icons/Tank.png diff --git a/src/Mod/Ship/Icons/Tank.xcf b/src/Mod/Ship/resources/icons/Tank.xcf similarity index 100% rename from src/Mod/Ship/Icons/Tank.xcf rename to src/Mod/Ship/resources/icons/Tank.xcf diff --git a/src/Mod/Ship/Icons/Tank.xpm b/src/Mod/Ship/resources/icons/Tank.xpm similarity index 100% rename from src/Mod/Ship/Icons/Tank.xpm rename to src/Mod/Ship/resources/icons/Tank.xpm diff --git a/src/Mod/Ship/Icons/Weight.png b/src/Mod/Ship/resources/icons/Weight.png similarity index 100% rename from src/Mod/Ship/Icons/Weight.png rename to src/Mod/Ship/resources/icons/Weight.png diff --git a/src/Mod/Ship/Icons/Weight.xcf b/src/Mod/Ship/resources/icons/Weight.xcf similarity index 100% rename from src/Mod/Ship/Icons/Weight.xcf rename to src/Mod/Ship/resources/icons/Weight.xcf diff --git a/src/Mod/Ship/Icons/Weight.xpm b/src/Mod/Ship/resources/icons/Weight.xpm similarity index 100% rename from src/Mod/Ship/Icons/Weight.xpm rename to src/Mod/Ship/resources/icons/Weight.xpm diff --git a/src/Mod/Ship/resources/translations/Ship.qm b/src/Mod/Ship/resources/translations/Ship.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship.ts b/src/Mod/Ship/resources/translations/Ship.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_af.qm b/src/Mod/Ship/resources/translations/Ship_af.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_af.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_af.ts b/src/Mod/Ship/resources/translations/Ship_af.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_af.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_cs.qm b/src/Mod/Ship/resources/translations/Ship_cs.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_cs.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_cs.ts b/src/Mod/Ship/resources/translations/Ship_cs.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_cs.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_de.qm b/src/Mod/Ship/resources/translations/Ship_de.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_de.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_de.ts b/src/Mod/Ship/resources/translations/Ship_de.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_de.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_es-ES.qm b/src/Mod/Ship/resources/translations/Ship_es-ES.qm new file mode 100644 index 0000000000000000000000000000000000000000..a72de36ef96dcd2ba715300d9867c6369acb4807 GIT binary patch literal 20755 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 literal 0 HcmV?d00001 diff --git a/src/Mod/Ship/resources/translations/Ship_es-ES.ts b/src/Mod/Ship/resources/translations/Ship_es-ES.ts new file mode 100644 index 0000000000..26f2a40702 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_es-ES.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + True si se trata de una entidad tanque de buque valida + + + + Fluid filling level percentage + Porcentage de llenado + + + + Inside fluid density + Densidad del fluido del interior + + + + True if is a valid ship simulation instance + True si se trata de una entidad simulacion de buques válida + + + + Waves (Amplitude,period,phase) + Olas (amplitud,periodo,phase) + + + + Waves direction (0 deg to stern waves) + Direccion de las olas (0 grados para olas de popa) + + + + Free surface number of elements at x direction + Numero de elementos en la dirección x en la superficie libre + + + + Free surface number of elements at y direction + Numero de elementos en la dirección y en la superficie libre + + + + Free surface elements position + Posiciones de los elementos de la superficie libre + + + + Free surface elements area + Area de los elementos de la superficie libre + + + + Free surface elements normal + Normales de los elementos de la superficie libre + + + + Ship + Buque + + + + Ship module provides some of the commonly used tool to design ship forms + El módulo de diseño de buques provee algunas de las herramientas más comunes + + + + Ship design + Buques + + + + Weights + Pesos + + + + Simulation + Simulación + + + + True if is a valid ship instance + True si se trata de una entidad buque valida + + + + Ship Weights names + Nombres de los pesos del buque + + + + Lightweight + Peso en rosca + + + + Ship Weights masses + Masas de los pesos del buque + + + + Ship Weights centers of gravity + Centros de gravedad de los pesos del buque + + + + Ship_AreasCurve + + + Areas curve + Curva de áreas + + + + Plot transversal areas curve + Grafica la curva de áreas + + + + Ship_CreateShip + + + Create a new ship + Crear nuevo barco + + + + Create a new ship in order to work with them + Crea un nuevo barco para poder trabajar con él + + + + Ship_CreateSim + + + Create a new simulation + Crear nueva simulación + + + + Create a new simulation in order to process later + Crea una nueva simulación para procesarla más tarde + + + + Ship_CreateTank + + + Create a new tank + Crear nuevo tanque + + + + Create a new ship tank + Crea un nuevo tanque + + + + Ship_GZ + + + GZ curve + Curva de GZ + + + + Transversal stability GZ curve computation + Calcula la curva de brazos adrizantes GZ (estabilidad transversal) + + + + Ship_Hydrostatics + + + Hydrostatics + Hidrostáticas + + + + Plot ship hydrostatics + Grafica las curvas de hidrostáticas + + + + Ship_LoadExample + + + Load an example ship geometry + Cargar formas de buque de ejemplo + + + + Load an example ship geometry able to be converted into a ship. + Carga formas de ejemplo de buques que pueden ser directamente convertidas en buques + + + + Ship_OutlineDraw + + + Outline draw + Plano de formas + + + + Plot ship outline draw + Traza el plano de formas de buque + + + + Ship_RunSim + + + Run a simulation + Lanzar simulación + + + + Ship_StopSim + + + Stop active simulation + Deterner la simulación activa + + + + Ship_TrackSim + + + Track simulation + Seguimiento de la simulación + + + + Ship_Weights + + + Set ship weights + Establecer los pesos del buque + + + + Set ship weights, tanks must be added later + Establezca los pesos del buque. Los tanque se añadirán más tarde + + + + ship_areas + + + Plot transversal areas curve + Graficar la curva de áreas + + + + Draft + Calado + + + + Trim + Trimado + + + + Displacement + Desplazamiento + + + + Areas curve tool draft selected [m] + Calado seleccionado en la herramienta de curva de areas + + + + Areas curve tool trim selected + Trimado seleccionado en la herramienta de curva de areas + + + + ship_console + + + Plot module is disabled, can't perform plot + El módulo de graficado está desactivado, no se podran trazar los graficos + + + + Can't create folder + No se puede crear la carpeta + + + + Can't write to file + No se puede esbribir el archivo + + + + Data saved + Datos guardados + + + + Ship instance must be selected (no object selected) + Una entidad de buque debe ser seleccionada (Ningun objeto seleccionado) + + + + More than one ship selected (extra ships will be neglected) + Mas de un buque ha sido seleccionado (solo se considerara el primero de ellos) + + + + Ship instance must be selected (no valid ship found at selected objects) + Una entidad de buque debe ser seleccionada (Ningun objeto seleccionado) + + + + Ussually you don't want to modify manually this option + Normalmente usted no deseara modificar esta opcion manualmente + + + + Object is not a valid ship simulation + El objeto no es una simulacion de buques valida + + + + Object is not a ship simulation + El objeto no es una simulacion de buques + + + + Can't find any active simulation + No se encuentra ninguna simulacion activa + + + + Ship objects can only be created on top of hull geometry (any object selected) + Los buques solo se puede crear a partir de la geometria del casco (Ningun objeto seleccionado) + + + + Please create or load a ship hull geometry before using this tool + Por favor, cree o cargue una geometria para el casco antes de usar esta herramienta + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + Los buques solo se puede crear a partir de la geometria del casco (No existen solidos en los objetos seleccionados) + + + + Plot module is disabled, tools can't graph output curves + El modulo de graficado esta desactivado, no se podran trazar los graficos + + + + pyOpenCL not installed, simulations stuff will disabled therefore + pyOpenCL no se encuentra instalado, las herramientas para simular seran desactivadas + + + + numpy not installed, simulations stuff will disabled therefore + numpy no se encuentra instalado, las herramientas para simular seran desactivadas + + + + Can't detect external faces from ship object + No se pueden extraer las caras exteriores del buque + + + + Computing hydrostatics + Calculando hidrostaticas + + + + Computing external faces + Calculando caras externas + + + + Initializating + Iniciando + + + + Iterating + Iterando + + + + Generating linear system matrix + Generando matriz del sistema linear de ecuaciones + + + + Solving linear systems + Resolviendo sistema linear de ecuaciones + + + + Time integrating + Integrando en el tiempo + + + + Building data + Construyendo datos + + + + Launching simulation + Lanzando simulacion + + + + Done + Hecho + + + + Ship simulation instance must be selected (no object selected) + Una entidad de simulacion debe ser seleccionada (Ningun objeto seleccionado) + + + + More than one ship simulation selected (extra simulations will be neglected) + Mas de una simulacion ha sido seleccionada (solo se considerara la primera de ellas) + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + Una entidad de simulacion debe ser seleccionada (No existe una simulacion valida en los objetos seleccionados) + + + + Can't find OpenCL devices + No se puede encontrar ningun dispositivo OpenCL + + + + Simulation already stopped + La simulacion ya se encuentra detenida + + + + Any active simulation to stop + No se encuentra ninguna simulacion activa + + + + Simulation will stop at the end of actual iteration + La simulacion se detendra al final de la actual iteracion + + + + Computing GZ + Calculando curva de GZ + + + + Ship weights has not been set. You need to set weights before use this tool + Los pesos del buque no has sido establecidos. Necesita establecerlos antes de usar esta herramienta + + + + Performing plot + Graficando + + + + Computing sections + Calculando secciones + + + + Any valid ship section found + No se encontro ninguna seccion valida + + + + Tank has not been created + El tanque no ha sido creado + + + + Tank objects can only be created on top of structure geometry (no object selected) + Las entidades tanque solo se pueden crear a partir de la geometria de la estructura (Ningun objeto seleccionado) + + + + Please create a tank geometry before using this tool + Por favor, cree la geometria del tanque antes de usar esta herramienta + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + Las entidades tanque solo se pueden crear a partir de la geometria de la estructura (No existen solidos en los objetos seleccionados) + + + + ship_create + + + Base line + Linea base + + + + Free surface + Superficie libre + + + + Forward perpendicular + Perpendicular de proa + + + + After perpendicular + Perpendicular de popa + + + + Main frame + Cuaderna maestra + + + + Create a new ship + Crear nuevo barco + + + + Length + Eslora + + + + Breadth + Manga + + + + Draft + Calado + + + + ship_hydrostatic + + + Plot hydrostatics + Graficar hidorstaticas + + + + Trim + Trimado + + + + Minimum draft + Calado mínimo + + + + Maximum draft + Calado máximo + + + + Number of points + Número de puntos + + + + Hydrostatics tool trim selected + Trimado seleccionado en la herramienta de hidrostaticas + + + + Hydrostatics tool minimum draft selected [m] + Calado minimo seleccionado en la herramienta de hidrostaticas + + + + Hydrostatics tool maximum draft selected [m] + Calado maximo seleccionado en la herramienta de hidrostaticas + + + + Hydrostatics tool number of points selected + Numero de puntos seleccionado en la herramienta de hidrostaticas + + + + ship_load + + + Load example ship + Cargar buque de ejemplo + + + + Select ship example geometry + Elija la geometria del buque de ejemplo + + + + ship_outline + + + Outline draw + Plano de formas + + + + Auto create + Auto-generar + + + + Scale + Escala + + + + Delete all sections + Eliminar todas las secciones + + + + Create sections + Generar secciones + + + + Transversal + Transversal + + + + Longitudinal + Longitudinal + + + + Water lines + Lineas de agua + + + + Transversal sections position [m] + Posiciones de las secciones transversales [m] + + + + Longitudinal sections position [m] + Posiciones de las secciones longitudinales [m] + + + + Water lines position [m] + Posiciones de las lineas de agua [m] + + + + Plot scale (1:scale format) + Escala del grafico (formato 1:escala) + + + + shipsim_create + + + Create a new ship simulation + Crear nueva simulacion de buques + + + + Free surface + Superficie libre + + + + Length + Largo + + + + Breadth + Ancho + + + + Number of points + Número de puntos + + + + Waves + Olas + + + + Amplitude + Amplitud + + + + Period + Periodo + + + + Phase + Fase + + + + Heading + Dirección + + + + shipsim_stop + + + Run the simulation + Lanza la simulación + + + + Simulation time + Tiempo de simulación + + + + Output + Salida + + + + OpenCL device + Dispositivo OpenCL + + + + shipsim_track + + + Track simulation + Seguimiento de la simulación + + + + Now + Ahora + + + + shiptank_create + + + Create a new tank + Crear nuevo tanque + + + + Filling level + Nivel de llenado + + + + Fluid density + Densidad del fluido + + + + shiptank_gz + + + Draft + Calado + + + + GZ curve computation + Cálculo de la curva de GZ + + + + Loading condition + Condición de carga + + + + Roll angles + Ãngulos de escora + + + + Trim + Trimado + + + + Start + Inicial + + + + End + Final + + + + Number of points + Número de puntos + + + + Displacement + Desplazamiento + + + + Press update to compute + Presiona actualizar para calcularlo + + + + Update displacement and draft + Actualizar desplazamiento y calado + + + + shiptank_weights + + + Set weights + Establecer pesos + + + + Name + Nombre + + + + Mass + Masa + + + diff --git a/src/Mod/Ship/resources/translations/Ship_fi.qm b/src/Mod/Ship/resources/translations/Ship_fi.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_fi.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_fi.ts b/src/Mod/Ship/resources/translations/Ship_fi.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_fi.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_fr.qm b/src/Mod/Ship/resources/translations/Ship_fr.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_fr.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_fr.ts b/src/Mod/Ship/resources/translations/Ship_fr.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_fr.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_hr.qm b/src/Mod/Ship/resources/translations/Ship_hr.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_hr.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_hr.ts b/src/Mod/Ship/resources/translations/Ship_hr.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_hr.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_hu.qm b/src/Mod/Ship/resources/translations/Ship_hu.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_hu.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_hu.ts b/src/Mod/Ship/resources/translations/Ship_hu.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_hu.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_it.qm b/src/Mod/Ship/resources/translations/Ship_it.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_it.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_it.ts b/src/Mod/Ship/resources/translations/Ship_it.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_it.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_ja.qm b/src/Mod/Ship/resources/translations/Ship_ja.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ja.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_ja.ts b/src/Mod/Ship/resources/translations/Ship_ja.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ja.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_nl.qm b/src/Mod/Ship/resources/translations/Ship_nl.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_nl.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_nl.ts b/src/Mod/Ship/resources/translations/Ship_nl.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_nl.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_no.qm b/src/Mod/Ship/resources/translations/Ship_no.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_no.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_no.ts b/src/Mod/Ship/resources/translations/Ship_no.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_no.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_pl.qm b/src/Mod/Ship/resources/translations/Ship_pl.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_pl.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_pl.ts b/src/Mod/Ship/resources/translations/Ship_pl.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_pl.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_pt-BR.qm b/src/Mod/Ship/resources/translations/Ship_pt-BR.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_pt-BR.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_pt-BR.ts b/src/Mod/Ship/resources/translations/Ship_pt-BR.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_pt-BR.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_ro.qm b/src/Mod/Ship/resources/translations/Ship_ro.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ro.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_ro.ts b/src/Mod/Ship/resources/translations/Ship_ro.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ro.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_ru.qm b/src/Mod/Ship/resources/translations/Ship_ru.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ru.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_ru.ts b/src/Mod/Ship/resources/translations/Ship_ru.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ru.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_sk.qm b/src/Mod/Ship/resources/translations/Ship_sk.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_sk.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_sk.ts b/src/Mod/Ship/resources/translations/Ship_sk.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_sk.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_sv-SE.qm b/src/Mod/Ship/resources/translations/Ship_sv-SE.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_sv-SE.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_sv-SE.ts b/src/Mod/Ship/resources/translations/Ship_sv-SE.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_sv-SE.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_tr.qm b/src/Mod/Ship/resources/translations/Ship_tr.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_tr.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_tr.ts b/src/Mod/Ship/resources/translations/Ship_tr.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_tr.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_uk.qm b/src/Mod/Ship/resources/translations/Ship_uk.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_uk.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_uk.ts b/src/Mod/Ship/resources/translations/Ship_uk.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_uk.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_zh-CN.qm b/src/Mod/Ship/resources/translations/Ship_zh-CN.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_zh-CN.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_zh-CN.ts b/src/Mod/Ship/resources/translations/Ship_zh-CN.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_zh-CN.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_zh-TW.qm b/src/Mod/Ship/resources/translations/Ship_zh-TW.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_zh-TW.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_zh-TW.ts b/src/Mod/Ship/resources/translations/Ship_zh-TW.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_zh-TW.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/shipAreasCurve/Plot.py b/src/Mod/Ship/shipAreasCurve/Plot.py deleted file mode 100644 index 4c2bc46e57..0000000000 --- a/src/Mod/Ship/shipAreasCurve/Plot.py +++ /dev/null @@ -1,211 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import os -# FreeCAD modules -import FreeCAD,FreeCADGui -from FreeCAD import Base -import Image, ImageGui -# FreeCADShip modules -from shipUtils import Paths, Translator - -header = """ ################################################################# - - ##### #### ### #### ##### # # ### #### - # # # # # # # # # # # # - # ## #### #### # # # # # # # # # # # - #### # # # # # # # ##### # # ## ## ##### # #### - # # #### #### # # # # # # # # # # - # # # # # # # # # # # # # # - # # #### #### ### # # #### ##### # # ### # - - ################################################################# -""" - -class Plot(object): - def __init__(self, x, y, disp, xcb, ship): - """ Constructor. performs plot and show it (Using pyxplot). - @param x X coordinates. - @param y Transversal areas. - @param disp Ship displacement. - @param xcb Bouyancy center length. - @param ship Active ship instance. - """ - if self.createDirectory(): - return - if self.saveData(x,y,ship): - return - if self.saveLayout(x,y,disp,xcb,ship): - return - if self.execute(): - return - ImageGui.open(self.path + 'areas.png') - - def createDirectory(self): - """ Create needed folder to write data and scripts. - @return True if error happens. - """ - self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" - if not os.path.exists(self.path): - os.makedirs(self.path) - if not os.path.exists(self.path): - msg = Translator.translate("Can't create '" + self.path + "' folder.\n") - FreeCAD.Console.PrintError(msg) - return False - - def saveData(self,x,y,ship): - """ Write data file. - @param x X coordinates. - @param y Transversal areas. - @param ship Active ship instance. - @return True if error happens. - """ - # Open the file - filename = self.path + 'areas.dat' - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Print header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains transversal areas data, filled with following columns:\n") - Output.write(" # 1: X coordiante [m]\n") - Output.write(" # 2: Transversal area [m2]\n") - Output.write(" # 3: X FP coordinate [m]\n") - Output.write(" # 4: Y FP coordinate (bounds in order to draw it)\n") - Output.write(" # 3: X AP coordinate [m]\n") - Output.write(" # 4: Y AP coordinate (bounds in order to draw it)\n") - Output.write(" #\n") - Output.write(" #################################################################\n") - # Get perpendiculars data - Lpp = ship.Length - FPx = 0.5*Lpp - APx = -0.5*Lpp - maxArea = max(y) - # Print data - if len(x) < 2: - msg = Translator.translate("Not enough data to plot.\n") - FreeCAD.Console.PrintError(msg) - string = "%f %f %f %f %f %f\n" % (x[0], y[0], FPx, 0.0, APx, 0.0) - Output.write(string) - for i in range(1, len(x)): - string = "%f %f %f %f %f %f\n" % (x[i], y[i], FPx, maxArea, APx, maxArea) - Output.write(string) - # Close file - Output.close() - self.dataFile = filename - msg = Translator.translate("Data saved at '" + self.dataFile + "'.\n") - FreeCAD.Console.PrintMessage(msg) - return False - - def saveLayout(self, x, y, disp, xcb, ship): - """ Prints the data output. - @param x X coordinates. - @param y Transversal areas. - @param disp Ship displacement. - @param xcb Bouyancy center length. - @param ship Active ship instance. - @return True if error happens. - """ - filename = self.path + 'areas.pyxplot' - # Open the file - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Write header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains a script to plot transversal areas curve.\n") - Output.write(" # To use it execute:\n") - Output.write(" #\n") - Output.write(" # pyxplot %s\n" % (filename)) - Output.write(" #\n") - Output.write(" #################################################################\n") - # Write general options for hydrostatics - Output.write("set numeric display latex\n") - Output.write("set output '%s'\n" % (self.path + 'areas.eps')) - Output.write("set nokey\n") - Output.write("set grid\n") - Output.write("# X axis\n") - Output.write("set xlabel 'x / $m$'\n") - Output.write("set xtic\n") - Output.write("# Y axis\n") - Output.write("set ylabel 'Area / $m^2$'\n") - Output.write("set ytic\n") - Output.write("# Line styles\n") - Output.write("set style 1 line linetype 1 linewidth 1 colour rgb (0):(0):(0)\n") - Output.write("set style 2 line linetype 1 linewidth 2 colour rgb (0):(0):(0)\n") - # Get perpendiculars data - Lpp = ship.Length - FPx = 0.5*Lpp - APx = -0.5*Lpp - maxArea = max(y) - # Perpendicular labels - Output.write("# Perpendiculars labels\n") - Output.write("set label (1) AP %f,%f\n" % (APx+0.01*Lpp, 0.01*maxArea)) - Output.write("set label (2) AP %f,%f\n" % (APx+0.01*Lpp, 0.95*maxArea)) - Output.write("set label (3) FP %f,%f\n" % (FPx+0.01*Lpp, 0.01*maxArea)) - Output.write("set label (4) FP %f,%f\n" % (FPx+0.01*Lpp, 0.95*maxArea)) - # Additional data - Output.write("# Additional data\n") - Output.write("set label (5) 'XCB = %g m' %f,%f\n" % (xcb, -0.25*Lpp, 0.25*maxArea)) - Output.write("set label (6) 'Maximum area = %g m2' %f,%f\n" % (maxArea, -0.25*Lpp, 0.15*maxArea)) - Output.write("set label (7) 'Displacement = %g tons' %f,%f\n" % (disp, -0.25*Lpp, 0.05*maxArea)) - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 1:2 title 'Transversal areas' axes x1y1 with lines style 1, \\\n" % (self.dataFile)) - Output.write(" '%s' using 3:4 title 'FP' axes x1y1 with lines style 2, \\\n" % (self.dataFile)) - Output.write(" '%s' using 5:6 title 'AP' axes x1y1 with lines style 2\n" % (self.dataFile)) - # Close file - self.layoutFile = filename - Output.close() - return False - - def execute(self): - """ Calls pyxplot in order to plot an save an image. - @return True if error happens. - """ - filename = self.path + 'areas' - comm = "pyxplot %s" % (self.layoutFile) - if os.system(comm): - msg = Translator.translate("Can't execute pyxplot. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Plot will not generated\n") - FreeCAD.Console.PrintError(msg) - return True - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - return False diff --git a/src/Mod/Ship/shipAreasCurve/PlotAux.py b/src/Mod/Ship/shipAreasCurve/PlotAux.py new file mode 100644 index 0000000000..42699539f6 --- /dev/null +++ b/src/Mod/Ship/shipAreasCurve/PlotAux.py @@ -0,0 +1,185 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import os +# Qt library +from PyQt4 import QtGui,QtCore +# FreeCAD modules +import FreeCAD,FreeCADGui +from FreeCAD import Base +import Image, ImageGui +# FreeCADShip modules +from shipUtils import Paths + +header = """ ################################################################# + + ##### #### ### #### ##### # # ### #### + # # # # # # # # # # # # + # ## #### #### # # # # # # # # # # # + #### # # # # # # # ##### # # ## ## ##### # #### + # # #### #### # # # # # # # # # # + # # # # # # # # # # # # # # + # # #### #### ### # # #### ##### # # ### # + + ################################################################# +""" + +class Plot(object): + def __init__(self, x, y, disp, xcb, ship): + """ Constructor. performs plot and show it. + @param x X coordinates. + @param y Transversal areas. + @param disp Ship displacement. + @param xcb Bouyancy center length. + @param ship Active ship instance. + """ + # Try to plot + self.plot(x,y,disp,xcb,ship) + # Save data + if self.createDirectory(): + return + if self.saveData(x,y,ship): + return + + def plot(self, x, y, disp, xcb, ship): + """ Perform areas curve plot. + @param x X coordinates. + @param y Transversal areas. + @param disp Ship displacement. + @param xcb Bouyancy center length. + @param ship Active ship instance. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('Areas curve') + except ImportError: + msg = QtGui.QApplication.translate("ship_console", "Plot module is disabled, can't perform plot", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + '\n') + return True + # Plot areas curve + areas = Plot.plot(x,y,r'Transversal areas') + areas.line.set_linestyle('-') + areas.line.set_linewidth(2.0) + areas.line.set_color((0.0, 0.0, 0.0)) + # Get perpendiculars data + Lpp = ship.Length + FPx = 0.5*Lpp + APx = -0.5*Lpp + maxArea = max(y) + # Plot perpendiculars + FP = Plot.plot([FPx,FPx], [0.0,maxArea]) + FP.line.set_linestyle('-') + FP.line.set_linewidth(1.0) + FP.line.set_color((0.0, 0.0, 0.0)) + AP = Plot.plot([APx,APx], [0.0,maxArea]) + AP.line.set_linestyle('-') + AP.line.set_linewidth(1.0) + AP.line.set_color((0.0, 0.0, 0.0)) + # Add annotations for prependiculars + ax = Plot.axes() + ax.annotate('AP', xy=(APx+0.01*Lpp, 0.01*maxArea), size=15) + ax.annotate('AP', xy=(APx+0.01*Lpp, 0.95*maxArea), size=15) + ax.annotate('FP', xy=(FPx+0.01*Lpp, 0.01*maxArea), size=15) + ax.annotate('FP', xy=(FPx+0.01*Lpp, 0.95*maxArea), size=15) + # Add some additional data + addInfo = r"""$XCB = %g \; \mathrm{m}$ +$Area_{max} = %g \; \mathrm{m}^2$ +$\bigtriangleup = %g \; \mathrm{tons}$""" % (xcb,maxArea,disp) + ax.text(0.0, 0.01*maxArea, addInfo, + verticalalignment='bottom',horizontalalignment='center', fontsize=20) + # Write axes titles + Plot.xlabel(r'$x \; \mathrm{m}$') + Plot.ylabel(r'$Area \; \mathrm{m}^2$') + ax.xaxis.label.set_fontsize(20) + ax.yaxis.label.set_fontsize(20) + # Show grid + Plot.grid(True) + # End + plt.update() + return False + + def createDirectory(self): + """ Create needed folder to write data. + @return True if error happens. + """ + self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" + if not os.path.exists(self.path): + os.makedirs(self.path) + if not os.path.exists(self.path): + msg = QtGui.QApplication.translate("ship_console", "Can't create folder", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ self.path + "\'\n") + return True + return False + + def saveData(self,x,y,ship): + """ Write data file. + @param x X coordinates. + @param y Transversal areas. + @param ship Active ship instance. + @return True if error happens. + """ + # Open the file + filename = self.path + 'areas.dat' + try: + Output = open(filename, "w") + except IOError: + msg = QtGui.QApplication.translate("ship_console", "Can't write to file", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ filename + "\'\n") + return True + # Print header + Output.write(header) + Output.write(" #\n") + Output.write(" # File automatically exported by FreeCAD-Ship\n") + Output.write(" # This file contains transversal areas data, filled with following columns:\n") + Output.write(" # 1: X coordiante [m]\n") + Output.write(" # 2: Transversal area [m2]\n") + Output.write(" # 3: X FP coordinate [m]\n") + Output.write(" # 4: Y FP coordinate (bounds in order to draw it)\n") + Output.write(" # 3: X AP coordinate [m]\n") + Output.write(" # 4: Y AP coordinate (bounds in order to draw it)\n") + Output.write(" #\n") + Output.write(" #################################################################\n") + # Get perpendiculars data + Lpp = ship.Length + FPx = 0.5*Lpp + APx = -0.5*Lpp + maxArea = max(y) + # Print data + string = "%f %f %f %f %f %f\n" % (x[0], y[0], FPx, 0.0, APx, 0.0) + Output.write(string) + for i in range(1, len(x)): + string = "%f %f %f %f %f %f\n" % (x[i], y[i], FPx, maxArea, APx, maxArea) + Output.write(string) + # Close file + Output.close() + self.dataFile = filename + msg = QtGui.QApplication.translate("ship_console", "Data saved", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + ':\n\t' + "\'"+ self.dataFile + "\'\n") + return False + diff --git a/src/Mod/Ship/shipAreasCurve/Preview.py b/src/Mod/Ship/shipAreasCurve/Preview.py index 6af80580d8..4cd17bf924 100644 --- a/src/Mod/Ship/shipAreasCurve/Preview.py +++ b/src/Mod/Ship/shipAreasCurve/Preview.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -26,53 +26,53 @@ import FreeCAD,FreeCADGui from FreeCAD import Base import Part # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths class Preview(object): - def __init__(self): - """ Constructor. - """ - self.reinit() + def __init__(self): + """ Constructor. + """ + self.reinit() - def reinit(self): - """ Reinitializate drawer. - """ - self.obj = None - self.clean() + def reinit(self): + """ Reinitializate drawer. + """ + self.obj = None + self.clean() - def update(self, draft, trim, ship): - """ Update free surface 3D view - @param traft Draft. - @param trim Trim in degrees. - """ - # Destroy old object if exist - self.clean() - # Set free surface bounds - bbox = ship.Shape.BoundBox - L = 1.5 * bbox.XLength - B = 3.0 * bbox.YLength - # Create plane - x = - 0.5 * L - y = - 0.5 * B - point = Base.Vector(x,y,0.0) - plane = Part.makePlane(L,B, point, Base.Vector(0,0,1)) - # Set position - plane.rotate(Base.Vector(0,0,0), Base.Vector(0,1,0), trim) - plane.translate(Base.Vector(0,0,draft)) - # Create the FreeCAD object - Part.show(plane) - objs = FreeCAD.ActiveDocument.Objects - self.obj = objs[len(objs)-1] - self.obj.Label = 'FreeSurface' - # Set properties of object - guiObj = FreeCADGui.ActiveDocument.getObject(self.obj.Name) - guiObj.ShapeColor = (0.4,0.8,0.85) - guiObj.Transparency = 50 + def update(self, draft, trim, ship): + """ Update free surface 3D view + @param traft Draft. + @param trim Trim in degrees. + """ + # Destroy old object if exist + self.clean() + # Set free surface bounds + bbox = ship.Shape.BoundBox + L = 1.5 * bbox.XLength + B = 3.0 * bbox.YLength + # Create plane + x = - 0.5 * L + y = - 0.5 * B + point = Base.Vector(x,y,0.0) + plane = Part.makePlane(L,B, point, Base.Vector(0,0,1)) + # Set position + plane.rotate(Base.Vector(0,0,0), Base.Vector(0,1,0), trim) + plane.translate(Base.Vector(0,0,draft)) + # Create the FreeCAD object + Part.show(plane) + objs = FreeCAD.ActiveDocument.Objects + self.obj = objs[len(objs)-1] + self.obj.Label = 'FreeSurface' + # Set properties of object + guiObj = FreeCADGui.ActiveDocument.getObject(self.obj.Name) + guiObj.ShapeColor = (0.4,0.8,0.85) + guiObj.Transparency = 50 - def clean(self): - """ Erase all annotations from screen. - """ - if not self.obj: - return - FreeCAD.ActiveDocument.removeObject(self.obj.Name) - self.obj=None + def clean(self): + """ Erase all annotations from screen. + """ + if not self.obj: + return + FreeCAD.ActiveDocument.removeObject(self.obj.Name) + self.obj=None diff --git a/src/Mod/Ship/shipAreasCurve/TaskPanel.py b/src/Mod/Ship/shipAreasCurve/TaskPanel.py index e027f5f9e1..258f487b7e 100644 --- a/src/Mod/Ship/shipAreasCurve/TaskPanel.py +++ b/src/Mod/Ship/shipAreasCurve/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import math @@ -28,207 +28,218 @@ import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore # Module -import Preview, Plot +import Preview, PlotAux import Instance -from shipUtils import Paths, Translator +from shipUtils import Paths from shipHydrostatics import Tools as Hydrostatics class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipAreasCurve/TaskPanel.ui" - self.preview = Preview.Preview() - self.ship = None + def __init__(self): + self.ui = Paths.modulePath() + "/shipAreasCurve/TaskPanel.ui" + self.preview = Preview.Preview() + self.ship = None - def accept(self): - if not self.ship: - return False - self.save() - # Plot data - data = Hydrostatics.displacement(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) - disp = data[0] - xcb = data[1].x - data = Hydrostatics.areas(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) - x = [] - y = [] - for i in range(0,len(data)): - x.append(data[i][0]) - y.append(data[i][1]) - Plot.Plot(x,y,disp,xcb, self.ship) - self.preview.clean() - return True + def accept(self): + if not self.ship: + return False + self.save() + # Plot data + data = Hydrostatics.displacement(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) + disp = data[0] + xcb = data[1].x + data = Hydrostatics.areas(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) + x = [] + y = [] + for i in range(0,len(data)): + x.append(data[i][0]) + y.append(data[i][1]) + PlotAux.Plot(x,y,disp,xcb, self.ship) + self.preview.clean() + return True - def reject(self): - self.preview.clean() - return True + def reject(self): + self.preview.clean() + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") - form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") - form.output = form.findChild(QtGui.QTextEdit, "OutputData") - form.doc = QtGui.QTextDocument(form.output) - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.draft, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.trim, QtCore.SIGNAL("valueChanged(double)"), self.onData) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") + form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") + form.output = form.findChild(QtGui.QTextEdit, "OutputData") + form.doc = QtGui.QTextDocument(form.output) + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.draft, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.trim, QtCore.SIGNAL("valueChanged(double)"), self.onData) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get bounds - bbox = self.ship.Shape.BoundBox - self.form.draft.setMaximum(bbox.ZMax) - self.form.draft.setMinimum(bbox.ZMin) - self.form.draft.setValue(self.ship.Draft) - # Try to use saved values - props = self.ship.PropertiesList - flag = True - try: - props.index("AreaCurveDraft") - except ValueError: - flag = False - if flag: - self.form.draft.setValue(self.ship.AreaCurveDraft) - flag = True - try: - props.index("AreaCurveTrim") - except ValueError: - flag = False - if flag: - self.form.trim.setValue(self.ship.AreaCurveTrim) - # Update GUI - self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) - self.onUpdate() - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", "Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get bounds + bbox = self.ship.Shape.BoundBox + self.form.draft.setMaximum(bbox.ZMax) + self.form.draft.setMinimum(bbox.ZMin) + self.form.draft.setValue(self.ship.Draft) + # Try to use saved values + props = self.ship.PropertiesList + flag = True + try: + props.index("AreaCurveDraft") + except ValueError: + flag = False + if flag: + self.form.draft.setValue(self.ship.AreaCurveDraft) + flag = True + try: + props.index("AreaCurveTrim") + except ValueError: + flag = False + if flag: + self.form.trim.setValue(self.ship.AreaCurveTrim) + # Update GUI + self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) + self.onUpdate() + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Plot transversal areas curve")) - self.form.findChild(QtGui.QLabel, "DraftLabel").setText(Translator.translate("Draft")) - self.form.findChild(QtGui.QLabel, "TrimLabel").setText(Translator.translate("Trim")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_areas","Plot transversal areas curve", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "DraftLabel").setText(QtGui.QApplication.translate("ship_areas","Draft", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "TrimLabel").setText(QtGui.QApplication.translate("ship_areas","Trim", + None,QtGui.QApplication.UnicodeUTF8)) - def onData(self, value): - """ Method called when input data is changed. - @param value Changed value. - """ - if not self.ship: - return - self.onUpdate() - self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) + def onData(self, value): + """ Method called when input data is changed. + @param value Changed value. + """ + if not self.ship: + return + self.onUpdate() + self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) - def onUpdate(self): - """ Method called when update data request. - """ - if not self.ship: - return - # Calculate drafts - angle = math.radians(self.form.trim.value()) - L = self.ship.Length - draftAP = self.form.draft.value() + 0.5*L*math.tan(angle) - if draftAP < 0.0: - draftAP = 0.0 - draftFP = self.form.draft.value() - 0.5*L*math.tan(angle) - if draftFP < 0.0: - draftFP = 0.0 - # Calculate hydrostatics involved - data = Hydrostatics.displacement(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) - # Prepare the string in html format - string = 'L = %g [m]
' % (self.ship.Length) - string = string + 'B = %g [m]
' % (self.ship.Beam) - string = string + 'T = %g [m]


' % (self.form.draft.value()) - string = string + 'Trim = %g [degrees]
' % (self.form.trim.value()) - string = string + 'TAP = %g [m]
' % (draftAP) - string = string + 'TFP = %g [m]
' % (draftFP) - string = string + Translator.translate('Displacement') + ' = %g [ton]
' % (data[0]) - string = string + 'XCB = %g [m]' % (data[1].x) - # Set the document - self.form.output.setHtml(string) + def onUpdate(self): + """ Method called when update data request. + """ + if not self.ship: + return + # Calculate drafts + angle = math.radians(self.form.trim.value()) + L = self.ship.Length + draftAP = self.form.draft.value() + 0.5*L*math.tan(angle) + if draftAP < 0.0: + draftAP = 0.0 + draftFP = self.form.draft.value() - 0.5*L*math.tan(angle) + if draftFP < 0.0: + draftFP = 0.0 + # Calculate hydrostatics involved + data = Hydrostatics.displacement(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) + # Prepare the string in html format + string = 'L = %g [m]
' % (self.ship.Length) + string = string + 'B = %g [m]
' % (self.ship.Beam) + string = string + 'T = %g [m]
' % (self.form.draft.value()) + string = string + 'Trim = %g [degrees]
' % (self.form.trim.value()) + string = string + 'TAP = %g [m]
' % (draftAP) + string = string + 'TFP = %g [m]
' % (draftFP) + dispText = QtGui.QApplication.translate("ship_areas",'Displacement', + None,QtGui.QApplication.UnicodeUTF8) + string = string + dispText + ' = %g [ton]
' % (data[0]) + string = string + 'XCB = %g [m]' % (data[1].x) + # Set the document + self.form.output.setHtml(string) - def save(self): - """ Saves data into ship instance. - """ - props = self.ship.PropertiesList - try: - props.index("AreaCurveDraft") - except ValueError: - self.ship.addProperty("App::PropertyFloat","AreaCurveDraft","Ship", str(Translator.translate("Areas curve draft selected [m]"))) - self.ship.AreaCurveDraft = self.form.draft.value() - try: - props.index("AreaCurveTrim") - except ValueError: - self.ship.addProperty("App::PropertyFloat","AreaCurveTrim","Ship", str(Translator.translate("Areas curve trim selected [m]"))) - self.ship.AreaCurveTrim = self.form.trim.value() + def save(self): + """ Saves data into ship instance. + """ + props = self.ship.PropertiesList + try: + props.index("AreaCurveDraft") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_areas","Areas curve tool draft selected [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","AreaCurveDraft","Ship", tooltip) + self.ship.AreaCurveDraft = self.form.draft.value() + try: + props.index("AreaCurveTrim") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_areas","Areas curve tool trim selected", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","AreaCurveTrim","Ship", tooltip) + self.ship.AreaCurveTrim = self.form.trim.value() def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipAreasCurve/TaskPanel.ui b/src/Mod/Ship/shipAreasCurve/TaskPanel.ui index 8e03561851..efed908cd2 100644 --- a/src/Mod/Ship/shipAreasCurve/TaskPanel.ui +++ b/src/Mod/Ship/shipAreasCurve/TaskPanel.ui @@ -11,19 +11,51 @@ - Create new ship + Transversal areas curve - - + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + + 0 + 0 + + Draft - + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + m + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -36,31 +68,20 @@ - - - - - 24 - 16777215 - - - - m - - - - - - - - + + + + 0 + 0 + + Trim - + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -76,11 +97,17 @@ - + + + + 0 + 0 + + - 24 + 16777215 16777215 @@ -91,13 +118,6 @@ - - - - Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - - - diff --git a/src/Mod/Ship/shipAreasCurve/__init__.py b/src/Mod/Ship/shipAreasCurve/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/shipAreasCurve/__init__.py +++ b/src/Mod/Ship/shipAreasCurve/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipCreateShip/Preview.py b/src/Mod/Ship/shipCreateShip/Preview.py index 72f6014328..60a61dec19 100644 --- a/src/Mod/Ship/shipCreateShip/Preview.py +++ b/src/Mod/Ship/shipCreateShip/Preview.py @@ -1,130 +1,142 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base import Part +# Qt library +from PyQt4 import QtGui,QtCore # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths class Preview(object): - def __init__(self): - """ Constructor. - """ - self.baseLine = None - self.baseLineLabel = None - self.reinit() + def __init__(self): + """ Constructor. + """ + self.baseLine = None + self.baseLineLabel = None + self.reinit() - def reinit(self): - """ Reinitializate drawer. - """ - self.clean() + def reinit(self): + """ Reinitializate drawer. + """ + self.clean() - def update(self, L, B, T): - """ Update the 3D view printing annotations. - @param L Ship length. - @param B Ship beam. - @param T Ship draft. - """ - # Destroy all previous entities - self.clean() - # Draw base line - xStart = -0.6*L; - xEnd = 0.6*L; - baseLine = Part.makeLine((xStart,0,0),(xEnd,0,0)) - Part.show(baseLine) - objs = FreeCAD.ActiveDocument.Objects - self.baseLine = objs[len(objs)-1] - self.baseLine.Label = 'BaseLine' - self.baseLineLabel = DrawText('BaseLineText', str(Translator.translate('Base line')), Base.Vector(xEnd,0,0)) - # Draw free surface - fsLine = Part.makeLine((xStart,0,T),(xEnd,0,T)) - Part.show(fsLine) - objs = FreeCAD.ActiveDocument.Objects - self.fsLine = objs[len(objs)-1] - self.fsLine.Label = 'FreeSurface' - self.fsLineLabel = DrawText('FSText', str(Translator.translate('Free surface')), Base.Vector(xEnd,0,T)) - # Draw forward perpendicular - zStart = -0.1*T - zEnd = 1.1*T - fpLine = Part.makeLine((0.5*L,0,zStart),(0.5*L,0,zEnd)) - Part.show(fpLine) - objs = FreeCAD.ActiveDocument.Objects - self.fpLine = objs[len(objs)-1] - self.fpLine.Label = 'ForwardPerpendicular' - self.fpLineLabel = DrawText('FPText', str(Translator.translate('Forward perpendicular')), Base.Vector(0.5*L,0,zEnd)) - # Draw after perpendicular - apLine = Part.makeLine((-0.5*L,0,zStart),(-0.5*L,0,zEnd)) - Part.show(apLine) - objs = FreeCAD.ActiveDocument.Objects - self.apLine = objs[len(objs)-1] - self.apLine.Label = 'AfterPerpendicular' - self.apLineLabel = DrawText('APText', str(Translator.translate('After perpendicular')), Base.Vector(-0.5*L,0,zEnd)) - # Draw amin frame - amLine = Part.makeLine((0,-0.5*B,zStart),(0,-0.5*B,zEnd)) - Part.show(amLine) - objs = FreeCAD.ActiveDocument.Objects - self.amLine = objs[len(objs)-1] - self.amLine.Label = 'AminFrame' - self.amLineLabel = DrawText('AMText', str(Translator.translate('Amin frame')), Base.Vector(0,-0.5*B,zEnd)) - - def clean(self): - """ Erase all annotations from screen. - """ - if not self.baseLine: - return - FreeCAD.ActiveDocument.removeObject(self.baseLine.Name) - FreeCAD.ActiveDocument.removeObject(self.baseLineLabel.Name) - FreeCAD.ActiveDocument.removeObject(self.fsLine.Name) - FreeCAD.ActiveDocument.removeObject(self.fsLineLabel.Name) - FreeCAD.ActiveDocument.removeObject(self.fpLine.Name) - FreeCAD.ActiveDocument.removeObject(self.fpLineLabel.Name) - FreeCAD.ActiveDocument.removeObject(self.apLine.Name) - FreeCAD.ActiveDocument.removeObject(self.apLineLabel.Name) - FreeCAD.ActiveDocument.removeObject(self.amLine.Name) - FreeCAD.ActiveDocument.removeObject(self.amLineLabel.Name) + def update(self, L, B, T): + """ Update the 3D view printing annotations. + @param L Ship length. + @param B Ship beam. + @param T Ship draft. + """ + # Destroy all previous entities + self.clean() + # Draw base line + xStart = -0.6*L; + xEnd = 0.6*L; + baseLine = Part.makeLine((xStart,0,0),(xEnd,0,0)) + Part.show(baseLine) + objs = FreeCAD.ActiveDocument.Objects + self.baseLine = objs[len(objs)-1] + self.baseLine.Label = 'BaseLine' + text = str(QtGui.QApplication.translate("ship_create","Base line", + None,QtGui.QApplication.UnicodeUTF8)) + self.baseLineLabel = DrawText('BaseLineText', text, Base.Vector(xEnd,0,0)) + # Draw free surface + fsLine = Part.makeLine((xStart,0,T),(xEnd,0,T)) + Part.show(fsLine) + objs = FreeCAD.ActiveDocument.Objects + self.fsLine = objs[len(objs)-1] + self.fsLine.Label = 'FreeSurface' + text = str(QtGui.QApplication.translate("ship_create","Free surface", + None,QtGui.QApplication.UnicodeUTF8)) + self.fsLineLabel = DrawText('FSText', text, Base.Vector(xEnd,0,T)) + # Draw forward perpendicular + zStart = -0.1*T + zEnd = 1.1*T + fpLine = Part.makeLine((0.5*L,0,zStart),(0.5*L,0,zEnd)) + Part.show(fpLine) + objs = FreeCAD.ActiveDocument.Objects + self.fpLine = objs[len(objs)-1] + self.fpLine.Label = 'ForwardPerpendicular' + text = str(QtGui.QApplication.translate("ship_create","Forward perpendicular", + None,QtGui.QApplication.UnicodeUTF8)) + self.fpLineLabel = DrawText('FPText', text, Base.Vector(0.5*L,0,zEnd)) + # Draw after perpendicular + apLine = Part.makeLine((-0.5*L,0,zStart),(-0.5*L,0,zEnd)) + Part.show(apLine) + objs = FreeCAD.ActiveDocument.Objects + self.apLine = objs[len(objs)-1] + self.apLine.Label = 'AfterPerpendicular' + text = str(QtGui.QApplication.translate("ship_create","After perpendicular", + None,QtGui.QApplication.UnicodeUTF8)) + self.apLineLabel = DrawText('APText', text, Base.Vector(-0.5*L,0,zEnd)) + # Draw amin frame + amLine = Part.makeLine((0,-0.5*B,zStart),(0,-0.5*B,zEnd)) + Part.show(amLine) + objs = FreeCAD.ActiveDocument.Objects + self.amLine = objs[len(objs)-1] + self.amLine.Label = 'AminFrame' + text = str(QtGui.QApplication.translate("ship_create","Main frame", + None,QtGui.QApplication.UnicodeUTF8)) + self.amLineLabel = DrawText('AMText', text, Base.Vector(0,-0.5*B,zEnd)) + + def clean(self): + """ Erase all annotations from screen. + """ + if not self.baseLine: + return + FreeCAD.ActiveDocument.removeObject(self.baseLine.Name) + FreeCAD.ActiveDocument.removeObject(self.baseLineLabel.Name) + FreeCAD.ActiveDocument.removeObject(self.fsLine.Name) + FreeCAD.ActiveDocument.removeObject(self.fsLineLabel.Name) + FreeCAD.ActiveDocument.removeObject(self.fpLine.Name) + FreeCAD.ActiveDocument.removeObject(self.fpLineLabel.Name) + FreeCAD.ActiveDocument.removeObject(self.apLine.Name) + FreeCAD.ActiveDocument.removeObject(self.apLineLabel.Name) + FreeCAD.ActiveDocument.removeObject(self.amLine.Name) + FreeCAD.ActiveDocument.removeObject(self.amLineLabel.Name) def DrawText(name, string, position, displayMode="Screen", angle=0.0, justification="Left", colour=(0.00,0.00,0.00), size=12): - """ Draws a text in a desired position. - @param name Name of the object - @param string Text to draw (recommended format u'') - @param position Point to draw the text - @param angle Counter clockwise rotation of text - @param justification Alignement of the text ("Left", "Right" or "Center") - @param colour Colour of the text - @param size Font size - @return FreeCAD annotation object - """ - # Create the object - text = FreeCAD.ActiveDocument.addObject("App::Annotation",name) - # Set the text - text.LabelText = [string, u''] - # Set the options - text.Position = position - FreeCADGui.ActiveDocument.getObject(text.Name).Rotation = angle - FreeCADGui.ActiveDocument.getObject(text.Name).Justification = justification - FreeCADGui.ActiveDocument.getObject(text.Name).FontSize = size - FreeCADGui.ActiveDocument.getObject(text.Name).TextColor = colour - FreeCADGui.ActiveDocument.getObject(text.Name).DisplayMode = displayMode - return FreeCAD.ActiveDocument.getObject(text.Name) + """ Draws a text in a desired position. + @param name Name of the object + @param string Text to draw (recommended format u'') + @param position Point to draw the text + @param angle Counter clockwise rotation of text + @param justification Alignement of the text ("Left", "Right" or "Center") + @param colour Colour of the text + @param size Font size + @return FreeCAD annotation object + """ + # Create the object + text = FreeCAD.ActiveDocument.addObject("App::Annotation",name) + # Set the text + text.LabelText = [string, u''] + # Set the options + text.Position = position + FreeCADGui.ActiveDocument.getObject(text.Name).Rotation = angle + FreeCADGui.ActiveDocument.getObject(text.Name).Justification = justification + FreeCADGui.ActiveDocument.getObject(text.Name).FontSize = size + FreeCADGui.ActiveDocument.getObject(text.Name).TextColor = colour + FreeCADGui.ActiveDocument.getObject(text.Name).DisplayMode = displayMode + return FreeCAD.ActiveDocument.getObject(text.Name) diff --git a/src/Mod/Ship/shipCreateShip/TaskPanel.py b/src/Mod/Ship/shipCreateShip/TaskPanel.py index de26764502..a92770759d 100644 --- a/src/Mod/Ship/shipCreateShip/TaskPanel.py +++ b/src/Mod/Ship/shipCreateShip/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -29,192 +29,202 @@ from PyQt4 import QtGui,QtCore # Module import Preview import Instance -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipCreateShip/TaskPanel.ui" - self.preview = Preview.Preview() + def __init__(self): + self.ui = Paths.modulePath() + "/shipCreateShip/TaskPanel.ui" + self.preview = Preview.Preview() - def accept(self): - self.preview.clean() - # Create new ship instance - obj = App.ActiveDocument.addObject("Part::FeaturePython","Ship") - ship = Instance.Ship(obj, self.solids) - Instance.ViewProviderShip(obj.ViewObject) - # Set main dimensions - obj.Length = self.form.length.value() - obj.Beam = self.form.beam.value() - obj.Draft = self.form.draft.value() - # Discretize it - App.ActiveDocument.recompute() - return True + def accept(self): + self.preview.clean() + # Create new ship instance + obj = App.ActiveDocument.addObject("Part::FeaturePython","Ship") + ship = Instance.Ship(obj, self.solids) + Instance.ViewProviderShip(obj.ViewObject) + # Set main dimensions + obj.Length = self.form.length.value() + obj.Beam = self.form.beam.value() + obj.Draft = self.form.draft.value() + # Discretize it + App.ActiveDocument.recompute() + return True - def reject(self): - self.preview.clean() - return True + def reject(self): + self.preview.clean() + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") - form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") - form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") - form.mainLogo = form.findChild(QtGui.QLabel, "MainLogo") - iconPath = Paths.iconsPath() + "/Ico.xpm" - form.mainLogo.setPixmap(QtGui.QPixmap(iconPath)) - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - self.preview.update(self.L, self.B, self.T) - # Connect Signals and Slots - QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.draft, QtCore.SIGNAL("valueChanged(double)"), self.onData) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") + form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") + form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") + form.mainLogo = form.findChild(QtGui.QLabel, "MainLogo") + iconPath = Paths.iconsPath() + "/Ico.xpm" + form.mainLogo.setPixmap(QtGui.QPixmap(iconPath)) + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + self.preview.update(self.L, self.B, self.T) + # Connect Signals and Slots + QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.draft, QtCore.SIGNAL("valueChanged(double)"), self.onData) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get objects - self.solids = None - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship objects can only be created on top of hull geometry (any object selected).\n") - App.Console.PrintError(msg) - msg = Translator.translate("Please create or load a ship hull geometry before using this tool.\n") - App.Console.PrintError(msg) - return True - self.solids = [] - for i in range(0, len(selObjs)): - solids = self.getSolids(selObjs[i]) - for j in range(0, len(solids)): - self.solids.append(solids[j]) - if not self.solids: - msg = Translator.translate("Ship objects can only be created on top of hull geometry (no solid found at selected objects).\n") - App.Console.PrintError(msg) - msg = Translator.translate("Please create or load a ship hull geometry before using this tool\n") - App.Console.PrintError(msg) - return True - # Get bounds - bounds = [0.0, 0.0, 0.0] - bbox = self.solids[0].BoundBox - minX = bbox.XMin - maxX = bbox.XMax - minY = bbox.YMin - maxY = bbox.YMax - minZ = bbox.ZMin - maxZ = bbox.ZMax - for i in range(1,len(self.solids)): - bbox = self.solids[i].BoundBox - if minX > bbox.XMin: - minX = bbox.XMin - if maxX < bbox.XMax: - maxX = bbox.XMax - if minY > bbox.YMin: - minY = bbox.YMin - if maxY < bbox.YMax: - maxY = bbox.YMax - if minZ > bbox.ZMin: - minZ = bbox.ZMin - if maxZ < bbox.ZMax: - maxZ = bbox.ZMax - bounds[0] = maxX - minX - bounds[1] = max(maxY - minY, abs(maxY), abs(minY)) - bounds[2] = maxZ - minZ - # Set UI fields - self.form.length.setMaximum(bounds[0]) - self.form.length.setMinimum(0.001) - self.form.length.setValue(bounds[0]) - self.L = bounds[0] - self.form.beam.setMaximum(bounds[1]) - self.form.beam.setMinimum(0.001) - self.form.beam.setValue(bounds[1]) - self.B = bounds[1] - self.form.draft.setMaximum(bounds[2]) - self.form.draft.setMinimum(0.001) - self.form.draft.setValue(0.5*bounds[2]) - self.T = 0.5*bounds[2] - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get objects + self.solids = None + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", + "Ship objects can only be created on top of hull geometry (any object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + msg = QtGui.QApplication.translate("ship_console", + "Please create or load a ship hull geometry before using this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + self.solids = [] + for i in range(0, len(selObjs)): + solids = self.getSolids(selObjs[i]) + for j in range(0, len(solids)): + self.solids.append(solids[j]) + if not self.solids: + msg = QtGui.QApplication.translate("ship_console", + "Ship objects can only be created on top of hull geometry (no solid found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + msg = QtGui.QApplication.translate("ship_console", + "Please create or load a ship hull geometry before using this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get bounds + bounds = [0.0, 0.0, 0.0] + bbox = self.solids[0].BoundBox + minX = bbox.XMin + maxX = bbox.XMax + minY = bbox.YMin + maxY = bbox.YMax + minZ = bbox.ZMin + maxZ = bbox.ZMax + for i in range(1,len(self.solids)): + bbox = self.solids[i].BoundBox + if minX > bbox.XMin: + minX = bbox.XMin + if maxX < bbox.XMax: + maxX = bbox.XMax + if minY > bbox.YMin: + minY = bbox.YMin + if maxY < bbox.YMax: + maxY = bbox.YMax + if minZ > bbox.ZMin: + minZ = bbox.ZMin + if maxZ < bbox.ZMax: + maxZ = bbox.ZMax + bounds[0] = maxX - minX + bounds[1] = max(maxY - minY, abs(maxY), abs(minY)) + bounds[2] = maxZ - minZ + # Set UI fields + self.form.length.setMaximum(bounds[0]) + self.form.length.setMinimum(0.001) + self.form.length.setValue(bounds[0]) + self.L = bounds[0] + self.form.beam.setMaximum(bounds[1]) + self.form.beam.setMinimum(0.001) + self.form.beam.setValue(bounds[1]) + self.B = bounds[1] + self.form.draft.setMaximum(bounds[2]) + self.form.draft.setMinimum(0.001) + self.form.draft.setValue(0.5*bounds[2]) + self.T = 0.5*bounds[2] + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Create a new ship")) - self.form.findChild(QtGui.QLabel, "LengthLabel").setText(Translator.translate("Length")) - self.form.findChild(QtGui.QLabel, "BeamLabel").setText(Translator.translate("Beam")) - self.form.findChild(QtGui.QLabel, "DraftLabel").setText(Translator.translate("Draft")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_create","Create a new ship", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "LengthLabel").setText(QtGui.QApplication.translate("ship_create","Length", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "BeamLabel").setText(QtGui.QApplication.translate("ship_create","Breadth", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "DraftLabel").setText(QtGui.QApplication.translate("ship_create","Draft", + None,QtGui.QApplication.UnicodeUTF8)) - def onData(self, value): - """ Method called when ship data is changed. - Annotations must be showed. - @param value Changed value. - """ - self.L = self.form.length.value() - self.B = self.form.beam.value() - self.T = self.form.draft.value() - self.preview.update(self.L, self.B, self.T) + def onData(self, value): + """ Method called when ship data is changed. + Annotations must be showed. + @param value Changed value. + """ + self.L = self.form.length.value() + self.B = self.form.beam.value() + self.T = self.form.draft.value() + self.preview.update(self.L, self.B, self.T) - def getSolids(self, obj): - """ Returns object solids (list of them) - @param obj Object to extract solids. - @return Solids. None if errors happens - """ - if not obj: - return None - if obj.isDerivedFrom('Part::Feature'): - # get shape - shape = obj.Shape - if not shape: - return None - obj = shape - if not obj.isDerivedFrom('Part::TopoShape'): - return None - # get face - solids = obj.Solids - if not solids: - return None - return solids + def getSolids(self, obj): + """ Returns object solids (list of them) + @param obj Object to extract solids. + @return Solids. None if errors happens + """ + if not obj: + return None + if obj.isDerivedFrom('Part::Feature'): + # get shape + shape = obj.Shape + if not shape: + return None + obj = shape + if not obj.isDerivedFrom('Part::TopoShape'): + return None + # get face + solids = obj.Solids + if not solids: + return None + return solids def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipCreateShip/TaskPanel.ui b/src/Mod/Ship/shipCreateShip/TaskPanel.ui index 5cd6a79b64..117e9324d8 100644 --- a/src/Mod/Ship/shipCreateShip/TaskPanel.ui +++ b/src/Mod/Ship/shipCreateShip/TaskPanel.ui @@ -68,126 +68,120 @@ false - - - - 0 - 20 - 241 - 141 - - - - - 6 - - - QLayout::SetDefaultConstraint - - - - - QLayout::SetDefaultConstraint - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Length - - - - - - - 3 - - - 0.010000000000000 - - - - - - - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Beam - - - - - - - 3 - - - 0.010000000000000 - - - - - - - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Draft - - - - - - - 3 - - - 0.010000000000000 - - - - - - - + + + + + 6 + + + QLayout::SetDefaultConstraint + + + + + QLayout::SetDefaultConstraint + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Length + + + + + + + 3 + + + 0.010000000000000 + + + + + + + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Beam + + + + + + + 3 + + + 0.010000000000000 + + + + + + + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Draft + + + + + + + 3 + + + 0.010000000000000 + + + + + + + + diff --git a/src/Mod/Ship/shipCreateShip/__init__.py b/src/Mod/Ship/shipCreateShip/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/shipCreateShip/__init__.py +++ b/src/Mod/Ship/shipCreateShip/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipHydrostatics/Plot.py b/src/Mod/Ship/shipHydrostatics/Plot.py deleted file mode 100644 index d209bbf59d..0000000000 --- a/src/Mod/Ship/shipHydrostatics/Plot.py +++ /dev/null @@ -1,345 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import os -import math -# FreeCAD modules -import FreeCAD,FreeCADGui -from FreeCAD import Base, Vector -import Part, Image, ImageGui -# FreeCADShip modules -from shipUtils import Paths, Translator -import Tools - -header = """ ################################################################# - - ##### #### ### #### ##### # # ### #### - # # # # # # # # # # # # - # ## #### #### # # # # # # # # # # # - #### # # # # # # # ##### # # ## ## ##### # #### - # # #### #### # # # # # # # # # # - # # # # # # # # # # # # # # - # # #### #### ### # # #### ##### # # ### # - - ################################################################# -""" - -class Plot(object): - def __init__(self, ship, trim, drafts): - """ Constructor. performs plot and show it (Using pyxplot). - @param ship Selected ship instance - @param trim Trim in degrees. - @param drafts List of drafts to be performed. - """ - if self.createDirectory(): - return - if self.saveData(ship, trim, drafts): - return - if self.saveLayout(trim): - return - if self.execute(): - return - ImageGui.open(self.path + 'volume.png') - ImageGui.open(self.path + 'stability.png') - ImageGui.open(self.path + 'coeffs.png') - - def createDirectory(self): - """ Create needed folder to write data and scripts. - @return True if error happens. - """ - self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" - if not os.path.exists(self.path): - os.makedirs(self.path) - if not os.path.exists(self.path): - msg = Translator.translate("Can't create '" + self.path + "' folder.\n") - FreeCAD.Console.PrintError(msg) - return False - - def saveData(self, ship, trim, drafts): - """ Write data file. - @param ship Selected ship instance - @param trim Trim in degrees. - @param drafts List of drafts to be performed. - @return True if error happens. - """ - # Open the file - filename = self.path + 'hydrostatics.dat' - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Print header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains transversal areas data, filled with following columns:\n") - Output.write(" # 1: Ship displacement [ton]\n") - Output.write(" # 2: Draft [m]\n") - Output.write(" # 3: Wetted surface [m2]\n") - Output.write(" # 4: 1cm triming ship moment [ton m]\n") - Output.write(" # 5: Bouyance center x coordinate\n") - Output.write(" # 6: Floating area\n") - Output.write(" # 7: KBt\n") - Output.write(" # 8: BMt\n") - Output.write(" # 9: Cb (block coefficient)\n") - Output.write(" # 10: Cf (Floating coefficient)\n") - Output.write(" # 11: Cm (Main frame coefficient)\n") - Output.write(" #\n") - Output.write(" #################################################################\n") - # Get external faces - faces = self.externalFaces(ship.Shape) - if len(faces) == 0: - msg = Translator.translate("Can't detect external faces from ship object.\n") - FreeCAD.Console.PrintError(msg) - else: - faces = Part.makeShell(faces) - # Print data - FreeCAD.Console.PrintMessage("Computing hydrostatics...\n") - for i in range(0,len(drafts)): - FreeCAD.Console.PrintMessage("\t%d / %d\n" % (i+1, len(drafts))) - draft = drafts[i] - point = Tools.Point(ship,faces,draft,trim) - string = "%f %f %f %f %f %f %f %f %f %f %f\n" % (point.disp, point.draft, point.wet, point.mom, point.xcb, point.farea, point.KBt, point.BMt, point.Cb, point.Cf, point.Cm) - Output.write(string) - # Close file - Output.close() - self.dataFile = filename - msg = Translator.translate("Data saved at '" + self.dataFile + "'.\n") - FreeCAD.Console.PrintMessage(msg) - return False - - def saveLayout(self, trim): - """ Prints the pyxplot layout. - @param trim Trim in degrees. - @return True if error happens. - """ - filename = self.path + 'volume.pyxplot' - # Open the file - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Write header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains a script to plot transversal areas curve.\n") - Output.write(" # To use it execute:\n") - Output.write(" #\n") - Output.write(" # pyxplot %s\n" % (filename)) - Output.write(" #\n") - Output.write(" #################################################################\n") - # Write general options for hydrostatics - Output.write("set numeric display latex\n") - Output.write("set output '%s'\n" % (self.path + 'volume.eps')) - Output.write("set title '$trim$ = %g [degrees]'\n" % (trim)) - Output.write("set key below\n") - Output.write("set grid\n") - # Configure axis - Output.write("# Y axis\n") - Output.write("set ylabel '$\\bigtriangleup$ / $\\mathrm{ton}$'\n") - Output.write("set ytic\n") - Output.write("# X axis\n") - Output.write("set xlabel '$Draft$ / $\\mathrm{m}$'\n") - Output.write("set xtic\n") - Output.write("set x2label '\\textit{Wetted area} / $\\mathrm{m}^2$'\n") - Output.write("set x2tic\n") - Output.write("set x3label '\\textit{1cm trim moment} / $\\mathrm{ton} \\times \\mathrm{m}$'\n") - Output.write("set x3tic\n") - Output.write("set x4label '$XCB$ / $\\mathrm{m}$'\n") - Output.write("set x4tic\n") - Output.write("set axis x2 top\n") - Output.write("set axis x4 top\n") - Output.write("# Line styles\n") - Output.write("set style 1 line linetype 1 linewidth 1 colour rgb (0):(0):(0)\n") - Output.write("set style 2 line linetype 1 linewidth 1 colour rgb (1):(0):(0)\n") - Output.write("set style 3 line linetype 1 linewidth 1 colour rgb (0):(0):(1)\n") - Output.write("set style 4 line linetype 1 linewidth 1 colour rgb (0.1):(0.5):(0.1)\n") - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 2:1 title 'Draft' axes x1y1 with lines style 1, \\\n" % (self.dataFile)) - Output.write(" '' using 3:1 title 'Wetted area' axes x2y1 with lines style 2, \\\n") - Output.write(" '' using 4:1 title '1cm trim moment' axes x3y1 with lines style 3, \\\n") - Output.write(" '' using 5:1 title 'XCB' axes x4y1 with lines style 4\n") - # Prepare second plot - Output.write("set output '%s'\n" % (self.path + 'stability.eps')) - Output.write("# X axis\n") - Output.write("set x2label '\\textit{Floating area} / $\\mathrm{m}^2$'\n") - Output.write("set x2tic\n") - Output.write("set x3label '$KB_{T}$ / $\\mathrm{m}$'\n") - Output.write("set x3tic\n") - Output.write("set x4label '$BM_{T}$ / $\\mathrm{m}$'\n") - Output.write("set x4tic\n") - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 2:1 title 'Draft' axes x1y1 with lines style 1, \\\n" % (self.dataFile)) - Output.write(" '' using 6:1 title 'Floating area' axes x2y1 with lines style 2, \\\n") - Output.write(" '' using 7:1 title '$KB_{T}$' axes x3y1 with lines style 3, \\\n") - Output.write(" '' using 8:1 title '$BM_{T}$' axes x4y1 with lines style 4\n") - # Prepare third plot - Output.write("set output '%s'\n" % (self.path + 'coeffs.eps')) - Output.write("# X axis\n") - Output.write("set x2label '$C_{B}$'\n") - Output.write("set x2tic\n") - Output.write("set x3label '$C_{F}$'\n") - Output.write("set x3tic\n") - Output.write("set x4label '$C_{M}$'\n") - Output.write("set x4tic\n") - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 2:1 title 'Draft' axes x1y1 with lines style 1, \\\n" % (self.dataFile)) - Output.write(" '' using 9:1 title '$C_{B}$' axes x2y1 with lines style 2, \\\n") - Output.write(" '' using 10:1 title '$C_{F}$' axes x3y1 with lines style 3, \\\n") - Output.write(" '' using 11:1 title '$C_{M}$' axes x4y1 with lines style 4\n") - # Close file - self.layoutFile = filename - Output.close() - return False - - def execute(self): - """ Calls pyxplot in order to plot an save an image. - @return True if error happens. - """ - # Plot - filename = self.path + 'volume' - comm = "pyxplot %s" % (self.layoutFile) - if os.system(comm): - msg = Translator.translate("Can't execute pyxplot. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Plot will not generated\n") - FreeCAD.Console.PrintError(msg) - return True - # Convert volume image - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - # Convert stability image - filename = self.path + 'stability' - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - # Convert coefficients image - filename = self.path + 'coeffs' - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - return False - - def lineFaceSection(self,line,surface): - """ Returns the point of section of a line with a face - @param line Line object, that can be a curve. - @param surface Surface object (must be a Part::Shape) - @return Section points array, [] if line don't cut surface - """ - # Get initial data - result = [] - vertexes = line.Vertexes - nVertex = len(vertexes) - # Perform the cut - section = line.cut(surface) - # Filter all old points - points = section.Vertexes - return points - - def externalFaces(self, shape): - """ Returns detected external faces. - @param shape Shape where external faces wanted. - @return List of external faces detected. - """ - result = [] - faces = shape.Faces - bbox = shape.BoundBox - L = bbox.XMax - bbox.XMin - B = bbox.YMax - bbox.YMin - T = bbox.ZMax - bbox.ZMin - dist = math.sqrt(L*L + B*B + T*T) - FreeCAD.Console.PrintMessage("Computing external faces...\n") - # Valid/unvalid faces detection loop - for i in range(0,len(faces)): - FreeCAD.Console.PrintMessage("\t%d / %d\n" % (i+1, len(faces))) - f = faces[i] - # Create a line normal to surface at middle point - u = 0.0 - v = 0.0 - try: - surf = f.Surface - u = 0.5*(surf.getUKnots()[0]+surf.getUKnots()[-1]) - v = 0.5*(surf.getVKnots()[0]+surf.getVKnots()[-1]) - except: - cog = f.CenterOfMass - [u,v] = f.Surface.parameter(cog) - p0 = f.valueAt(u,v) - try: - n = f.normalAt(u,v).normalize() - except: - continue - p1 = p0 + n.multiply(1.5*dist) - line = Part.makeLine(p0, p1) - # Look for faces in front of this - nPoints = 0 - for j in range(0,len(faces)): - f2 = faces[j] - section = self.lineFaceSection(line, f2) - if len(section) <= 2: - continue - # Add points discarding start and end - nPoints = nPoints + len(section) - 2 - # In order to avoid special directions we can modify line - # normal a little bit. - angle = 5 - line.rotate(p0,Vector(1,0,0),angle) - line.rotate(p0,Vector(0,1,0),angle) - line.rotate(p0,Vector(0,0,1),angle) - nPoints2 = 0 - for j in range(0,len(faces)): - if i == j: - continue - f2 = faces[j] - section = self.lineFaceSection(line, f2) - if len(section) <= 2: - continue - # Add points discarding start and end - nPoints2 = nPoints + len(section) - 2 - # If the number of intersection points is pair, is a - # external face. So if we found an odd points intersection, - # face must be discarded. - if (nPoints % 2) or (nPoints2 % 2): - continue - result.append(f) - return result diff --git a/src/Mod/Ship/shipHydrostatics/PlotAux.py b/src/Mod/Ship/shipHydrostatics/PlotAux.py new file mode 100644 index 0000000000..316bed13e6 --- /dev/null +++ b/src/Mod/Ship/shipHydrostatics/PlotAux.py @@ -0,0 +1,478 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import os +import math +# Qt library +from PyQt4 import QtGui,QtCore +# FreeCAD modules +import FreeCAD,FreeCADGui +from FreeCAD import Base, Vector +import Part, Image, ImageGui +# FreeCADShip modules +from shipUtils import Paths +import Tools + +header = """ ################################################################# + + ##### #### ### #### ##### # # ### #### + # # # # # # # # # # # # + # ## #### #### # # # # # # # # # # # + #### # # # # # # # ##### # # ## ## ##### # #### + # # #### #### # # # # # # # # # # + # # # # # # # # # # # # # # + # # #### #### ### # # #### ##### # # ### # + + ################################################################# +""" + +class Plot(object): + def __init__(self, ship, trim, drafts): + """ Constructor. performs plot and show it (Using pyxplot). + @param ship Selected ship instance + @param trim Trim in degrees. + @param drafts List of drafts to be performed. + """ + # Compute data + # Get external faces + faces = self.externalFaces(ship.Shape) + if len(faces) == 0: + msg = QtGui.QApplication.translate("ship_console", "Can't detect external faces from ship object", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + '\n') + return + else: + faces = Part.makeShell(faces) + # Print data + msg = QtGui.QApplication.translate("ship_console", "Computing hydrostatics", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '...\n') + self.points = [] + for i in range(0,len(drafts)): + FreeCAD.Console.PrintMessage("\t%d / %d\n" % (i+1, len(drafts))) + draft = drafts[i] + point = Tools.Point(ship,faces,draft,trim) + self.points.append(point) + # Try to plot + self.plotVolume() + self.plotStability() + self.plotCoeffs() + # Save data + if self.createDirectory(): + return + if self.saveData(ship, trim, drafts): + return + + def plotVolume(self): + """ Perform volumetric hydrostatics. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('Volume') + except ImportError: + msg = QtGui.QApplication.translate("ship_console", "Plot module is disabled, can't perform plot", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + '\n') + return True + # Generate sets of axes + Plot.grid(True) + for i in range(0,3): + ax = Plot.addNewAxes() + # Y axes can be moved to right + ax.yaxis.tick_right() + ax.spines['right'].set_color((0.0,0.0,0.0)) + ax.spines['left'].set_color('none') + ax.yaxis.set_ticks_position('right') + ax.yaxis.set_label_position('right') + # And X axes moved down with an offset + for loc, spine in ax.spines.iteritems(): + if loc in ['bottom', 'top']: + spine.set_position(('outward',(i+1)*35)) + Plot.grid(True) + # Setup data + disp = [] + draft = [] + warea = [] + t1cm = [] + xcb = [] + for i in range(0,len(self.points)): + disp.append(self.points[i].disp) + draft.append(self.points[i].draft) + warea.append(self.points[i].wet) + t1cm.append(self.points[i].mom) + xcb.append(self.points[i].xcb) + # Set plot size + axes = Plot.axesList() + for ax in axes: + ax.set_position([0.1, 0.2, 0.8, 0.75]) + # Plot curves + plt.axes = axes[0] + serie = Plot.plot(draft,disp,r'$T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,0.0)) + Plot.xlabel(r'$T \; \mathrm{m}$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[1] + serie = Plot.plot(warea,disp,r'Wetted area') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((1.0,0.0,0.0)) + Plot.xlabel(r'$Wetted \; area \; \mathrm{m}^2$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[2] + serie = Plot.plot(t1cm,disp,r'Moment to trim 1cm') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,1.0)) + Plot.xlabel(r'$Moment \; to \; trim \; 1 \mathrm{cm} \; \mathrm{tons} \; \times \; \mathrm{m}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[3] + serie = Plot.plot(xcb,disp,r'$XCB$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.2,0.8,0.2)) + Plot.xlabel(r'$XCB \; \mathrm{m}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + # Show legend + Plot.legend(True) + # End + plt.update() + return False + + def plotStability(self): + """ Perform stability hydrostatics. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('Stability') + except ImportError: + return True + # Generate sets of axes + Plot.grid(True) + for i in range(0,3): + ax = Plot.addNewAxes() + # Y axes can be moved to right + ax.yaxis.tick_right() + ax.spines['right'].set_color((0.0,0.0,0.0)) + ax.spines['left'].set_color('none') + ax.yaxis.set_ticks_position('right') + ax.yaxis.set_label_position('right') + # And X axes moved down with an offset + for loc, spine in ax.spines.iteritems(): + if loc in ['bottom', 'top']: + spine.set_position(('outward',(i+1)*35)) + Plot.grid(True) + # Setup data + disp = [] + draft = [] + farea = [] + kbt = [] + bmt = [] + for i in range(0,len(self.points)): + disp.append(self.points[i].disp) + draft.append(self.points[i].draft) + farea.append(self.points[i].farea) + kbt.append(self.points[i].KBt) + bmt.append(self.points[i].BMt) + # Set plot size + axes = Plot.axesList() + for ax in axes: + ax.set_position([0.1, 0.2, 0.8, 0.75]) + # Plot curves + plt.axes = axes[0] + serie = Plot.plot(draft,disp,r'$T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,0.0)) + Plot.xlabel(r'$T \; \mathrm{m}$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[1] + serie = Plot.plot(farea,disp,r'Floating area') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((1.0,0.0,0.0)) + Plot.xlabel(r'$Floating \; area \; \mathrm{m}^2$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[2] + serie = Plot.plot(kbt,disp,r'$KB_T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,1.0)) + Plot.xlabel(r'$KB_T \; \mathrm{m}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[3] + serie = Plot.plot(bmt,disp,r'$BM_T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.2,0.8,0.2)) + Plot.xlabel(r'$BM_T \; \mathrm{m}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + # Show legend + Plot.legend(True) + # End + plt.update() + return False + + def plotCoeffs(self): + """ Perform stability hydrostatics. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('Coefficients') + except ImportError: + return True + # Generate sets of axes + Plot.grid(True) + for i in range(0,3): + ax = Plot.addNewAxes() + # Y axes can be moved to right + ax.yaxis.tick_right() + ax.spines['right'].set_color((0.0,0.0,0.0)) + ax.spines['left'].set_color('none') + ax.yaxis.set_ticks_position('right') + ax.yaxis.set_label_position('right') + # And X axes moved down with an offset + for loc, spine in ax.spines.iteritems(): + if loc in ['bottom', 'top']: + spine.set_position(('outward',(i+1)*40)) + Plot.grid(True) + # Setup data + disp = [] + draft = [] + cb = [] + cf = [] + cm = [] + for i in range(0,len(self.points)): + disp.append(self.points[i].disp) + draft.append(self.points[i].draft) + cb.append(self.points[i].Cb) + cf.append(self.points[i].Cf) + cm.append(self.points[i].Cm) + # Set plot size + axes = Plot.axesList() + for ax in axes: + ax.set_position([0.1, 0.2, 0.8, 0.75]) + # Plot curves + plt.axes = axes[0] + serie = Plot.plot(draft,disp,r'$T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,0.0)) + Plot.xlabel(r'$T \; \mathrm{m}$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[1] + serie = Plot.plot(cb,disp,r'$Cb$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((1.0,0.0,0.0)) + Plot.xlabel(r'$Cb$ (Block coefficient)') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[2] + serie = Plot.plot(cf,disp,r'$Cf$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,1.0)) + Plot.xlabel(r'$Cf$ (floating area coefficient)') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[3] + serie = Plot.plot(cm,disp,r'$Cm$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.2,0.8,0.2)) + Plot.xlabel(r'$Cm$ (Main section coefficient)') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + # Show legend + Plot.legend(True) + # End + plt.update() + return False + + def createDirectory(self): + """ Create needed folder to write data and scripts. + @return True if error happens. + """ + self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" + if not os.path.exists(self.path): + os.makedirs(self.path) + if not os.path.exists(self.path): + msg = QtGui.QApplication.translate("ship_console", "Can't create folder", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ self.path + "\'\n") + return False + + def saveData(self, ship, trim, drafts): + """ Write data file. + @param ship Selected ship instance + @param trim Trim in degrees. + @param drafts List of drafts to be performed. + @return True if error happens. + """ + # Open the file + filename = self.path + 'hydrostatics.dat' + try: + Output = open(filename, "w") + except IOError: + msg = QtGui.QApplication.translate("ship_console", "Can't write to file", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ filename + "\'\n") + return True + # Print header + Output.write(header) + Output.write(" #\n") + Output.write(" # File automatically exported by FreeCAD-Ship\n") + Output.write(" # This file contains transversal areas data, filled with following columns:\n") + Output.write(" # 1: Ship displacement [ton]\n") + Output.write(" # 2: Draft [m]\n") + Output.write(" # 3: Wetted surface [m2]\n") + Output.write(" # 4: 1cm triming ship moment [ton m]\n") + Output.write(" # 5: Bouyance center x coordinate\n") + Output.write(" # 6: Floating area\n") + Output.write(" # 7: KBt\n") + Output.write(" # 8: BMt\n") + Output.write(" # 9: Cb (block coefficient)\n") + Output.write(" # 10: Cf (Floating coefficient)\n") + Output.write(" # 11: Cm (Main frame coefficient)\n") + Output.write(" #\n") + Output.write(" #################################################################\n") + # Print data + for i in range(0,len(drafts)): + point = self.points[i] + string = "%f %f %f %f %f %f %f %f %f %f %f\n" % (point.disp, point.draft, point.wet, point.mom, point.xcb, point.farea, point.KBt, point.BMt, point.Cb, point.Cf, point.Cm) + Output.write(string) + # Close file + Output.close() + self.dataFile = filename + msg = QtGui.QApplication.translate("ship_console", "Data saved", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + ':\n\t' + "\'"+ self.dataFile + "\'\n") + return False + + def lineFaceSection(self,line,surface): + """ Returns the point of section of a line with a face + @param line Line object, that can be a curve. + @param surface Surface object (must be a Part::Shape) + @return Section points array, [] if line don't cut surface + """ + # Get initial data + result = [] + vertexes = line.Vertexes + nVertex = len(vertexes) + # Perform the cut + section = line.cut(surface) + # Filter all old points + points = section.Vertexes + return points + + def externalFaces(self, shape): + """ Returns detected external faces. + @param shape Shape where external faces wanted. + @return List of external faces detected. + """ + result = [] + faces = shape.Faces + bbox = shape.BoundBox + L = bbox.XMax - bbox.XMin + B = bbox.YMax - bbox.YMin + T = bbox.ZMax - bbox.ZMin + dist = math.sqrt(L*L + B*B + T*T) + msg = QtGui.QApplication.translate("ship_console", "Computing external faces", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '...\n') + # Valid/unvalid faces detection loop + for i in range(0,len(faces)): + FreeCAD.Console.PrintMessage("\t%d / %d\n" % (i+1, len(faces))) + f = faces[i] + # Create a line normal to surface at middle point + u = 0.0 + v = 0.0 + try: + surf = f.Surface + u = 0.5*(surf.getUKnots()[0]+surf.getUKnots()[-1]) + v = 0.5*(surf.getVKnots()[0]+surf.getVKnots()[-1]) + except: + cog = f.CenterOfMass + [u,v] = f.Surface.parameter(cog) + p0 = f.valueAt(u,v) + try: + n = f.normalAt(u,v).normalize() + except: + continue + p1 = p0 + n.multiply(1.5*dist) + line = Part.makeLine(p0, p1) + # Look for faces in front of this + nPoints = 0 + for j in range(0,len(faces)): + f2 = faces[j] + section = self.lineFaceSection(line, f2) + if len(section) <= 2: + continue + # Add points discarding start and end + nPoints = nPoints + len(section) - 2 + # In order to avoid special directions we can modify line + # normal a little bit. + angle = 5 + line.rotate(p0,Vector(1,0,0),angle) + line.rotate(p0,Vector(0,1,0),angle) + line.rotate(p0,Vector(0,0,1),angle) + nPoints2 = 0 + for j in range(0,len(faces)): + if i == j: + continue + f2 = faces[j] + section = self.lineFaceSection(line, f2) + if len(section) <= 2: + continue + # Add points discarding start and end + nPoints2 = nPoints + len(section) - 2 + # If the number of intersection points is pair, is a + # external face. So if we found an odd points intersection, + # face must be discarded. + if (nPoints % 2) or (nPoints2 % 2): + continue + result.append(f) + return result diff --git a/src/Mod/Ship/shipHydrostatics/TaskPanel.py b/src/Mod/Ship/shipHydrostatics/TaskPanel.py index b5398690eb..bc5e2d967f 100644 --- a/src/Mod/Ship/shipHydrostatics/TaskPanel.py +++ b/src/Mod/Ship/shipHydrostatics/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import math @@ -28,202 +28,217 @@ import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore # Module -import Plot +import PlotAux import Instance -from shipUtils import Paths, Translator +from shipUtils import Paths import Tools class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipHydrostatics/TaskPanel.ui" - self.ship = None + def __init__(self): + self.ui = Paths.modulePath() + "/shipHydrostatics/TaskPanel.ui" + self.ship = None - def accept(self): - if not self.ship: - return False - self.save() - draft = self.form.minDraft.value() - drafts = [draft] - dDraft = (self.form.maxDraft.value() - self.form.minDraft.value())/(self.form.nDraft.value()-1) - for i in range(1,self.form.nDraft.value()): - draft = draft + dDraft - drafts.append(draft) - Plot.Plot(self.ship, self.form.trim.value(), drafts) - return True + def accept(self): + if not self.ship: + return False + self.save() + draft = self.form.minDraft.value() + drafts = [draft] + dDraft = (self.form.maxDraft.value() - self.form.minDraft.value())/(self.form.nDraft.value()-1) + for i in range(1,self.form.nDraft.value()): + draft = draft + dDraft + drafts.append(draft) + PlotAux.Plot(self.ship, self.form.trim.value(), drafts) + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") - form.minDraft = form.findChild(QtGui.QDoubleSpinBox, "MinDraft") - form.maxDraft = form.findChild(QtGui.QDoubleSpinBox, "MaxDraft") - form.nDraft = form.findChild(QtGui.QSpinBox, "NDraft") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.trim, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.minDraft, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.maxDraft, QtCore.SIGNAL("valueChanged(double)"), self.onData) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") + form.minDraft = form.findChild(QtGui.QDoubleSpinBox, "MinDraft") + form.maxDraft = form.findChild(QtGui.QDoubleSpinBox, "MaxDraft") + form.nDraft = form.findChild(QtGui.QSpinBox, "NDraft") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.trim, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.minDraft, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.maxDraft, QtCore.SIGNAL("valueChanged(double)"), self.onData) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get bounds - bbox = self.ship.Shape.BoundBox - # Set trim - flag = True - try: - props.index("HydrostaticsTrim") - except ValueError: - flag = False - if flag: - self.form.trim.setValue(self.ship.HydrostaticsTrim) - # Set drafts - self.form.maxDraft.setValue(1.1*self.ship.Draft) - self.form.minDraft.setValue(0.9*self.ship.Draft) - # Try to use saved values - props = self.ship.PropertiesList - flag = True - try: - props.index("HydrostaticsMinDraft") - except ValueError: - flag = False - if flag: - self.form.minDraft.setValue(self.ship.HydrostaticsMinDraft) - flag = True - try: - props.index("HydrostaticsMaxDraft") - except ValueError: - flag = False - if flag: - self.form.maxDraft.setValue(self.ship.HydrostaticsMaxDraft) - self.form.maxDraft.setMaximum(bbox.ZMax) - self.form.minDraft.setMinimum(bbox.ZMin) - self.form.maxDraft.setMinimum(self.form.minDraft.value()) - self.form.minDraft.setMaximum(self.form.maxDraft.value()) - flag = True - try: - props.index("HydrostaticsNDraft") - except ValueError: - flag = False - if flag: - self.form.nDraft.setValue(self.ship.HydrostaticsNDraft) - # Update GUI - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", "Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get bounds + bbox = self.ship.Shape.BoundBox + # Set trim + flag = True + try: + props.index("HydrostaticsTrim") + except ValueError: + flag = False + if flag: + self.form.trim.setValue(self.ship.HydrostaticsTrim) + # Set drafts + self.form.maxDraft.setValue(1.1*self.ship.Draft) + self.form.minDraft.setValue(0.9*self.ship.Draft) + # Try to use saved values + props = self.ship.PropertiesList + flag = True + try: + props.index("HydrostaticsMinDraft") + except ValueError: + flag = False + if flag: + self.form.minDraft.setValue(self.ship.HydrostaticsMinDraft) + flag = True + try: + props.index("HydrostaticsMaxDraft") + except ValueError: + flag = False + if flag: + self.form.maxDraft.setValue(self.ship.HydrostaticsMaxDraft) + self.form.maxDraft.setMaximum(bbox.ZMax) + self.form.minDraft.setMinimum(bbox.ZMin) + self.form.maxDraft.setMinimum(self.form.minDraft.value()) + self.form.minDraft.setMaximum(self.form.maxDraft.value()) + flag = True + try: + props.index("HydrostaticsNDraft") + except ValueError: + flag = False + if flag: + self.form.nDraft.setValue(self.ship.HydrostaticsNDraft) + # Update GUI + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Plot hydrostatics")) - self.form.findChild(QtGui.QLabel, "TrimLabel").setText(Translator.translate("Trim")) - self.form.findChild(QtGui.QLabel, "MinDraftLabel").setText(Translator.translate("Minimum draft")) - self.form.findChild(QtGui.QLabel, "MaxDraftLabel").setText(Translator.translate("Maximum draft")) - self.form.findChild(QtGui.QLabel, "NDraftLabel").setText(Translator.translate("Number of points")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_hydrostatic","Plot hydrostatics", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "TrimLabel").setText(QtGui.QApplication.translate("ship_hydrostatic","Trim", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "MinDraftLabel").setText(QtGui.QApplication.translate("ship_hydrostatic","Minimum draft", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "MaxDraftLabel").setText(QtGui.QApplication.translate("ship_hydrostatic","Maximum draft", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "NDraftLabel").setText(QtGui.QApplication.translate("ship_hydrostatic","Number of points", + None,QtGui.QApplication.UnicodeUTF8)) - def onData(self, value): - """ Method called when input data is changed. - @param value Changed value. - """ - if not self.ship: - return - self.form.maxDraft.setMinimum(self.form.minDraft.value()) - self.form.minDraft.setMaximum(self.form.maxDraft.value()) + def onData(self, value): + """ Method called when input data is changed. + @param value Changed value. + """ + if not self.ship: + return + self.form.maxDraft.setMinimum(self.form.minDraft.value()) + self.form.minDraft.setMaximum(self.form.maxDraft.value()) - def save(self): - """ Saves data into ship instance. - """ - props = self.ship.PropertiesList - try: - props.index("HydrostaticsTrim") - except ValueError: - self.ship.addProperty("App::PropertyFloat","HydrostaticsTrim","Ship", str(Translator.translate("Hydrostatics trim selected [m]"))) - self.ship.HydrostaticsTrim = self.form.trim.value() - try: - props.index("HydrostaticsMinDraft") - except ValueError: - self.ship.addProperty("App::PropertyFloat","HydrostaticsMinDraft","Ship", str(Translator.translate("Hydrostatics minimum draft selected [m]"))) - self.ship.HydrostaticsMinDraft = self.form.minDraft.value() - try: - props.index("HydrostaticsMaxDraft") - except ValueError: - self.ship.addProperty("App::PropertyFloat","HydrostaticsMaxDraft","Ship", str(Translator.translate("Hydrostatics maximum draft selected [m]"))) - self.ship.HydrostaticsMaxDraft = self.form.maxDraft.value() - try: - props.index("HydrostaticsNDraft") - except ValueError: - self.ship.addProperty("App::PropertyInteger","HydrostaticsNDraft","Ship", str(Translator.translate("Hydrostatics number of points selected [m]"))) - self.ship.HydrostaticsNDraft = self.form.nDraft.value() + def save(self): + """ Saves data into ship instance. + """ + props = self.ship.PropertiesList + try: + props.index("HydrostaticsTrim") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_hydrostatic","Hydrostatics tool trim selected", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","HydrostaticsTrim","Ship", tooltip) + self.ship.HydrostaticsTrim = self.form.trim.value() + try: + props.index("HydrostaticsMinDraft") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_hydrostatic","Hydrostatics tool minimum draft selected [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","HydrostaticsMinDraft","Ship", tooltip) + self.ship.HydrostaticsMinDraft = self.form.minDraft.value() + try: + props.index("HydrostaticsMaxDraft") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_hydrostatic","Hydrostatics tool maximum draft selected [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","HydrostaticsMaxDraft","Ship", tooltip) + self.ship.HydrostaticsMaxDraft = self.form.maxDraft.value() + try: + props.index("HydrostaticsNDraft") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_hydrostatic","Hydrostatics tool number of points selected", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyInteger","HydrostaticsNDraft","Ship", tooltip) + self.ship.HydrostaticsNDraft = self.form.nDraft.value() def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipHydrostatics/TaskPanel.ui b/src/Mod/Ship/shipHydrostatics/TaskPanel.ui index 23367df691..8542a7ab1f 100644 --- a/src/Mod/Ship/shipHydrostatics/TaskPanel.ui +++ b/src/Mod/Ship/shipHydrostatics/TaskPanel.ui @@ -17,7 +17,7 @@ - Create new ship + Plot Hydrostatics @@ -25,7 +25,7 @@ - + 0 0 @@ -53,9 +53,15 @@ + + + 0 + 0 + + - 24 + 16777215 16777215 @@ -77,131 +83,125 @@ Drafts - - - - 9 - 19 - 231 - 181 - - - - - QLayout::SetDefaultConstraint - - - - - - 0 - 0 - - - - Minimum draft - - - - - - - 3 - - - 0.010000000000000 - - - - - - - - 0 - 0 - - - - Maximum draft - - - - - - - - 0 - 0 - - - - 3 - - - 0.010000000000000 - - - - - - - - 0 - 0 - - - - Number of points - - - - - - - - 0 - 0 - - - - m - - - - - - - - 0 - 0 - - - - m - - - - - - - - 0 - 0 - - - - 2 - - - 9999 - - - 11 - - - - - + + + + + QLayout::SetDefaultConstraint + + + + + + 0 + 0 + + + + m + + + + + + + + 0 + 0 + + + + Number of points + + + + + + + + 0 + 0 + + + + Minimum draft + + + + + + + + 0 + 0 + + + + m + + + + + + + + 0 + 0 + + + + 2 + + + 9999 + + + 11 + + + + + + + + 0 + 0 + + + + 3 + + + 0.010000000000000 + + + + + + + 3 + + + 0.010000000000000 + + + + + + + + 0 + 0 + + + + Maximum draft + + + + + + diff --git a/src/Mod/Ship/shipHydrostatics/Tools.py b/src/Mod/Ship/shipHydrostatics/Tools.py index a42c9b774b..8e4faab288 100644 --- a/src/Mod/Ship/shipHydrostatics/Tools.py +++ b/src/Mod/Ship/shipHydrostatics/Tools.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import math @@ -32,393 +32,393 @@ import Instance from shipUtils import Math def areas(ship, draft, roll=0.0, trim=0.0, yaw=0.0, n=30): - """ Compute ship transversal areas. - @param ship Ship instance. - @param draft Ship draft. - @param roll Ship roll angle. - @param trim Ship trim angle. - @param yaw Ship yaw angle. Ussually you don't want to use this - value. - @param n Number of sections to perform. - @return Transversal areas (every area value is composed by x - coordinate and computed area) - """ - if n < 2: - return [] - # We will take a duplicate of ship shape in order to place it - shape = ship.Shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - # Rotations composition is Roll->Trim->Yaw - shape.rotate(Vector(0.0,0.0,0.0), Vector(1.0,0.0,0.0), roll) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,0.0,1.0), yaw) - # Now we need to know the x range of values - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - dx = (xmax - xmin) / (n-1.0) - # First area is equal to zero. - areas = [[xmin, 0.0]] - # Since we need face entities, in order to compute sections we will - # create boxes with front face at transversal area position, - # compute solid common, divide by faces, and preserve only desired - # ones. - App.Console.PrintMessage("Computing transversal areas...\n") - App.Console.PrintMessage("Some Inventor representation errors can be shown, ignore it please.\n") - for i in range(1,n-1): - App.Console.PrintMessage("%d / %d\n" % (i, n-2)) - x = xmin + i*dx - area = 0.0 - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(1.5*L + x, 3.0*B, - bbox.ZMin + 1.0, p) - # Compute common part with ship - for s in shape.Solids: - # Get solids intersection - try: - common = box.common(s) - except: - continue - if common.Volume == 0.0: - continue - # Recompute object adding it to the scene, when we have - # computed desired data we can remove it. - try: - Part.show(common) - except: - continue - # Divide by faces and compute only section placed ones - faces = common.Faces - for f in faces: - faceBounds = f.BoundBox - # Orientation filter - if faceBounds.XMax - faceBounds.XMin > 0.00001: - continue - # Place filter - if abs(faceBounds.XMax - x) > 0.00001: - continue - # Valid face, compute area - area = area + f.Area - # Destroy last object generated - App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) - # Append transversal area - areas.append([x, area]) - # Last area is equal to zero - areas.append([xmax, 0.0]) - App.Console.PrintMessage("Done!\n") - return areas + """ Compute ship transversal areas. + @param ship Ship instance. + @param draft Ship draft. + @param roll Ship roll angle. + @param trim Ship trim angle. + @param yaw Ship yaw angle. Ussually you don't want to use this + value. + @param n Number of sections to perform. + @return Transversal areas (every area value is composed by x + coordinate and computed area) + """ + if n < 2: + return [] + # We will take a duplicate of ship shape in order to place it + shape = ship.Shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + # Rotations composition is Roll->Trim->Yaw + shape.rotate(Vector(0.0,0.0,0.0), Vector(1.0,0.0,0.0), roll) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,0.0,1.0), yaw) + # Now we need to know the x range of values + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + dx = (xmax - xmin) / (n-1.0) + # First area is equal to zero. + areas = [[xmin, 0.0]] + # Since we need face entities, in order to compute sections we will + # create boxes with front face at transversal area position, + # compute solid common, divide by faces, and preserve only desired + # ones. + App.Console.PrintMessage("Computing transversal areas...\n") + App.Console.PrintMessage("Some Inventor representation errors can be shown, ignore it please.\n") + for i in range(1,n-1): + App.Console.PrintMessage("%d / %d\n" % (i, n-2)) + x = xmin + i*dx + area = 0.0 + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(1.5*L + x, 3.0*B, - bbox.ZMin + 1.0, p) + # Compute common part with ship + for s in shape.Solids: + # Get solids intersection + try: + common = box.common(s) + except: + continue + if common.Volume == 0.0: + continue + # Recompute object adding it to the scene, when we have + # computed desired data we can remove it. + try: + Part.show(common) + except: + continue + # Divide by faces and compute only section placed ones + faces = common.Faces + for f in faces: + faceBounds = f.BoundBox + # Orientation filter + if faceBounds.XMax - faceBounds.XMin > 0.00001: + continue + # Place filter + if abs(faceBounds.XMax - x) > 0.00001: + continue + # Valid face, compute area + area = area + f.Area + # Destroy last object generated + App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) + # Append transversal area + areas.append([x, area]) + # Last area is equal to zero + areas.append([xmax, 0.0]) + App.Console.PrintMessage("Done!\n") + return areas def displacement(ship, draft, roll=0.0, trim=0.0, yaw=0.0): - """ Compute ship displacement. - @param ship Ship instance. - @param draft Ship draft. - @param roll Ship roll angle. - @param trim Ship trim angle. - @param yaw Ship yaw angle. Ussually you don't want to use this - value. - @return [disp, B, Cb], \n - disp = Ship displacement [ton]. - B = Bouyance center [m]. - Cb = Block coefficient. - @note Bouyance center will returned as FreeCAD.Vector class. - @note Returned Bouyance center is in non modified ship coordinates - """ - # We will take a duplicate of ship shape in order to place it - shape = ship.Shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - # Rotations composition is Roll->Trim->Yaw - shape.rotate(Vector(0.0,0.0,0.0), Vector(1.0,0.0,0.0), roll) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,0.0,1.0), yaw) - # Now we need to know box dimensions - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(3.0*L, 3.0*B, -bbox.ZMin + 1.0, p) - vol = 0.0 - cog = Vector() - for solid in shape.Solids: - # Compute common part with ship - try: - common = box.common(solid) - except: - continue - # Get data - vol = vol + common.Volume - for s in common.Solids: - sCoG = s.CenterOfMass - cog.x = cog.x + sCoG.x*s.Volume - cog.y = cog.y + sCoG.y*s.Volume - cog.z = cog.z + sCoG.z*s.Volume - cog.x = cog.x / vol - cog.y = cog.y / vol - cog.z = cog.z / vol - Vol = L*B*abs(bbox.ZMin) - # Undo transformations - B = Vector() - B.x = cog.x*math.cos(math.radians(-yaw)) - cog.y*math.sin(math.radians(-yaw)) - B.y = cog.x*math.sin(math.radians(-yaw)) + cog.y*math.cos(math.radians(-yaw)) - B.z = cog.z - cog.x = B.x*math.cos(math.radians(-trim)) - B.z*math.sin(math.radians(-trim)) - cog.y = B.y - cog.z = B.x*math.sin(math.radians(-trim)) + B.z*math.cos(math.radians(-trim)) - B.x = cog.x - B.y = cog.y*math.cos(math.radians(-roll)) - cog.z*math.sin(math.radians(-roll)) - B.z = cog.y*math.sin(math.radians(-roll)) + cog.z*math.cos(math.radians(-roll)) - B.z = B.z + draft - # Return data - dens = 1.025 # [tons/m3], salt water - return [dens*vol, B, vol/Vol] + """ Compute ship displacement. + @param ship Ship instance. + @param draft Ship draft. + @param roll Ship roll angle. + @param trim Ship trim angle. + @param yaw Ship yaw angle. Ussually you don't want to use this + value. + @return [disp, B, Cb], \n + disp = Ship displacement [ton]. + B = Bouyance center [m]. + Cb = Block coefficient. + @note Bouyance center will returned as FreeCAD.Vector class. + @note Returned Bouyance center is in non modified ship coordinates + """ + # We will take a duplicate of ship shape in order to place it + shape = ship.Shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + # Rotations composition is Roll->Trim->Yaw + shape.rotate(Vector(0.0,0.0,0.0), Vector(1.0,0.0,0.0), roll) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,0.0,1.0), yaw) + # Now we need to know box dimensions + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(3.0*L, 3.0*B, -bbox.ZMin + 1.0, p) + vol = 0.0 + cog = Vector() + for solid in shape.Solids: + # Compute common part with ship + try: + common = box.common(solid) + except: + continue + # Get data + vol = vol + common.Volume + for s in common.Solids: + sCoG = s.CenterOfMass + cog.x = cog.x + sCoG.x*s.Volume + cog.y = cog.y + sCoG.y*s.Volume + cog.z = cog.z + sCoG.z*s.Volume + cog.x = cog.x / vol + cog.y = cog.y / vol + cog.z = cog.z / vol + Vol = L*B*abs(bbox.ZMin) + # Undo transformations + B = Vector() + B.x = cog.x*math.cos(math.radians(-yaw)) - cog.y*math.sin(math.radians(-yaw)) + B.y = cog.x*math.sin(math.radians(-yaw)) + cog.y*math.cos(math.radians(-yaw)) + B.z = cog.z + cog.x = B.x*math.cos(math.radians(-trim)) - B.z*math.sin(math.radians(-trim)) + cog.y = B.y + cog.z = B.x*math.sin(math.radians(-trim)) + B.z*math.cos(math.radians(-trim)) + B.x = cog.x + B.y = cog.y*math.cos(math.radians(-roll)) - cog.z*math.sin(math.radians(-roll)) + B.z = cog.y*math.sin(math.radians(-roll)) + cog.z*math.cos(math.radians(-roll)) + B.z = B.z + draft + # Return data + dens = 1.025 # [tons/m3], salt water + return [dens*vol, B, vol/Vol] def wettedArea(shape, draft, trim): - """ Calculate wetted ship area. - @param shape Ship external faces instance. - @param draft Draft. - @param trim Trim in degrees. - @return Wetted ship area. - """ - area = 0.0 - nObjects = 0 - # We will take a duplicate of ship shape in order to place it - shape = shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) - # Now we need to know the x range of values - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(3.0*L, 3.0*B, - bbox.ZMin + 1.0, p) - # Compute common part with ship - for f in shape.Faces: - # Get solids intersection - try: - common = box.common(f) - except: - continue - area = area + common.Area - return area + """ Calculate wetted ship area. + @param shape Ship external faces instance. + @param draft Draft. + @param trim Trim in degrees. + @return Wetted ship area. + """ + area = 0.0 + nObjects = 0 + # We will take a duplicate of ship shape in order to place it + shape = shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) + # Now we need to know the x range of values + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(3.0*L, 3.0*B, - bbox.ZMin + 1.0, p) + # Compute common part with ship + for f in shape.Faces: + # Get solids intersection + try: + common = box.common(f) + except: + continue + area = area + common.Area + return area def moment(ship, draft, trim, disp, xcb): - """ Calculate triming 1cm ship moment. - @param ship Selected ship instance - @param draft Draft. - @param trim Trim in degrees. - @param disp Displacement at selected draft and trim. - @param xcb Bouyance center at selected draft and trim. - @return Moment to trim ship 1cm (ton m). - @note Moment is positive when produce positive trim. - """ - factor = 10.0 - angle = factor*math.degrees(math.atan2(0.01,0.5*ship.Length)) - newTrim = trim + angle - data = displacement(ship,draft,0.0,newTrim,0.0) - mom0 = -disp*xcb - mom1 = -data[0]*data[1].x - return (mom1 - mom0) / factor + """ Calculate triming 1cm ship moment. + @param ship Selected ship instance + @param draft Draft. + @param trim Trim in degrees. + @param disp Displacement at selected draft and trim. + @param xcb Bouyance center at selected draft and trim. + @return Moment to trim ship 1cm (ton m). + @note Moment is positive when produce positive trim. + """ + factor = 10.0 + angle = factor*math.degrees(math.atan2(0.01,0.5*ship.Length)) + newTrim = trim + angle + data = displacement(ship,draft,0.0,newTrim,0.0) + mom0 = -disp*xcb + mom1 = -data[0]*data[1].x + return (mom1 - mom0) / factor def FloatingArea(ship, draft, trim): - """ Calculate ship floating area. - @param ship Selected ship instance - @param draft Draft. - @param trim Trim in degrees. - @return Ship floating area, and floating coefficient. - """ - area = 0.0 - cf = 0.0 - maxX = 0.0 - minX = 0.0 - maxY = 0.0 - minY = 0.0 - # We will take a duplicate of ship shape in order to place it - shape = ship.Shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) - # Now we need to know the x range of values - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(3.0*L, 3.0*B, - bbox.ZMin + 1.0, p) - # Compute common part with ship - for s in shape.Solids: - # Get solids intersection - try: - common = box.common(s) - except: - continue - if common.Volume == 0.0: - continue - # Recompute object adding it to the scene, when we have - # computed desired data we can remove it. - try: - Part.show(common) - except: - continue - # Divide by faces and compute only section placed ones - faces = common.Faces - for f in faces: - faceBounds = f.BoundBox - # Orientation filter - if faceBounds.ZMax - faceBounds.ZMin > 0.00001: - continue - # Place filter - if abs(faceBounds.ZMax) > 0.00001: - continue - # Valid face, compute area - area = area + f.Area - maxX = max(maxX, faceBounds.XMax) - minX = min(minX, faceBounds.XMin) - maxY = max(maxY, faceBounds.YMax) - minY = min(minY, faceBounds.YMin) - # Destroy last object generated - App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) - dx = maxX - minX - dy = maxY - minY - if dx*dy > 0.0: - cf = area / (dx*dy) - return [area, cf] + """ Calculate ship floating area. + @param ship Selected ship instance + @param draft Draft. + @param trim Trim in degrees. + @return Ship floating area, and floating coefficient. + """ + area = 0.0 + cf = 0.0 + maxX = 0.0 + minX = 0.0 + maxY = 0.0 + minY = 0.0 + # We will take a duplicate of ship shape in order to place it + shape = ship.Shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) + # Now we need to know the x range of values + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(3.0*L, 3.0*B, - bbox.ZMin + 1.0, p) + # Compute common part with ship + for s in shape.Solids: + # Get solids intersection + try: + common = box.common(s) + except: + continue + if common.Volume == 0.0: + continue + # Recompute object adding it to the scene, when we have + # computed desired data we can remove it. + try: + Part.show(common) + except: + continue + # Divide by faces and compute only section placed ones + faces = common.Faces + for f in faces: + faceBounds = f.BoundBox + # Orientation filter + if faceBounds.ZMax - faceBounds.ZMin > 0.00001: + continue + # Place filter + if abs(faceBounds.ZMax) > 0.00001: + continue + # Valid face, compute area + area = area + f.Area + maxX = max(maxX, faceBounds.XMax) + minX = min(minX, faceBounds.XMin) + maxY = max(maxY, faceBounds.YMax) + minY = min(minY, faceBounds.YMin) + # Destroy last object generated + App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) + dx = maxX - minX + dy = maxY - minY + if dx*dy > 0.0: + cf = area / (dx*dy) + return [area, cf] def BMT(ship, draft, trim=0.0): - """ Calculate ship Bouyance center transversal distance. - @param ship Ship instance. - @param draft Ship draft. - @param trim Ship trim angle. - @return BM Bouyance to metacenter height [m]. - """ - nRoll = 2 - maxRoll = 7.0 - B0 = displacement(ship,draft,0.0,trim,0.0)[1] - BM = 0.0 - for i in range(0,nRoll): - roll = (maxRoll/nRoll)*(i+1) - B1 = displacement(ship,draft,roll,trim,0.0)[1] - # * M - # / \ - # / \ BM ==|> BM = (BB/2) / sin(alpha/2) - # / \ - # *-------* - # BB - BB = [B1.y - B0.y, B1.z - B0.z] - BB = math.sqrt(BB[0]*BB[0] + BB[1]*BB[1]) - BM = BM + 0.5*BB/math.sin(math.radians(0.5*roll)) / nRoll # nRoll is the weight function - return BM + """ Calculate ship Bouyance center transversal distance. + @param ship Ship instance. + @param draft Ship draft. + @param trim Ship trim angle. + @return BM Bouyance to metacenter height [m]. + """ + nRoll = 2 + maxRoll = 7.0 + B0 = displacement(ship,draft,0.0,trim,0.0)[1] + BM = 0.0 + for i in range(0,nRoll): + roll = (maxRoll/nRoll)*(i+1) + B1 = displacement(ship,draft,roll,trim,0.0)[1] + # * M + # / \ + # / \ BM ==|> BM = (BB/2) / sin(alpha/2) + # / \ + # *-------* + # BB + BB = [B1.y - B0.y, B1.z - B0.z] + BB = math.sqrt(BB[0]*BB[0] + BB[1]*BB[1]) + BM = BM + 0.5*BB/math.sin(math.radians(0.5*roll)) / nRoll # nRoll is the weight function + return BM def mainFrameCoeff(ship, draft): - """ Calculate main frame coefficient. - @param ship Selected ship instance - @param draft Draft. - @return Main frame coefficient - """ - cm = 0.0 - maxY = 0.0 - minY = 0.0 - # We will take a duplicate of ship shape in order to place it - shape = ship.Shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - x = 0.0 - area = 0.0 - # Now we need to know the x range of values - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(1.5*L + x, 3.0*B, - bbox.ZMin + 1.0, p) - # Compute common part with ship - for s in shape.Solids: - # Get solids intersection - try: - common = box.common(s) - except: - continue - if common.Volume == 0.0: - continue - # Recompute object adding it to the scene, when we have - # computed desired data we can remove it. - try: - Part.show(common) - except: - continue - # Divide by faces and compute only section placed ones - faces = common.Faces - for f in faces: - faceBounds = f.BoundBox - # Orientation filter - if faceBounds.XMax - faceBounds.XMin > 0.00001: - continue - # Place filter - if abs(faceBounds.XMax - x) > 0.00001: - continue - # Valid face, compute area - area = area + f.Area - maxY = max(maxY, faceBounds.YMax) - minY = max(minY, faceBounds.YMin) - # Destroy last object generated - App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) - dy = maxY - minY - if dy*draft > 0.0: - cm = area / (dy*draft) - return cm + """ Calculate main frame coefficient. + @param ship Selected ship instance + @param draft Draft. + @return Main frame coefficient + """ + cm = 0.0 + maxY = 0.0 + minY = 0.0 + # We will take a duplicate of ship shape in order to place it + shape = ship.Shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + x = 0.0 + area = 0.0 + # Now we need to know the x range of values + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(1.5*L + x, 3.0*B, - bbox.ZMin + 1.0, p) + # Compute common part with ship + for s in shape.Solids: + # Get solids intersection + try: + common = box.common(s) + except: + continue + if common.Volume == 0.0: + continue + # Recompute object adding it to the scene, when we have + # computed desired data we can remove it. + try: + Part.show(common) + except: + continue + # Divide by faces and compute only section placed ones + faces = common.Faces + for f in faces: + faceBounds = f.BoundBox + # Orientation filter + if faceBounds.XMax - faceBounds.XMin > 0.00001: + continue + # Place filter + if abs(faceBounds.XMax - x) > 0.00001: + continue + # Valid face, compute area + area = area + f.Area + maxY = max(maxY, faceBounds.YMax) + minY = max(minY, faceBounds.YMin) + # Destroy last object generated + App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) + dy = maxY - minY + if dy*draft > 0.0: + cm = area / (dy*draft) + return cm class Point: - """ Hydrostatics point, that conatins: \n - draft Ship draft [m]. \n - trim Ship trim [deg]. \n - disp Ship displacement [ton]. \n - xcb Bouyance center X coordinate [m]. - wet Wetted ship area [m2]. - mom Triming 1cm ship moment [ton m]. - farea Floating area [m2]. - KBt Transversal KB height [m]. - BMt Transversal BM height [m]. - Cb Block coefficient. - Cf Floating coefficient. - Cm Main frame coefficient. - @note Moment is positive when produce positive trim. - """ - def __init__(self, ship, faces, draft, trim): - """ Use all hydrostatics tools to define a hydrostatics - point. - @param ship Selected ship instance - @param faces Ship external faces - @param draft Draft. - @param trim Trim in degrees. - """ - # Hydrostatics computation - dispData = displacement(ship,draft,0.0,trim,0.0) - if not faces: - wet = 0.0 - else: - wet = wettedArea(faces,draft,trim) - mom = moment(ship,draft,trim,dispData[0],dispData[1].x) - farea = FloatingArea(ship,draft,trim) - bm = BMT(ship,draft,trim) - cm = mainFrameCoeff(ship,draft) - # Store final data - self.draft = draft - self.trim = trim - self.disp = dispData[0] - self.xcb = dispData[1].x - self.wet = wet - self.farea = farea[0] - self.mom = mom - self.KBt = dispData[1].z - self.BMt = bm - self.Cb = dispData[2] - self.Cf = farea[1] - self.Cm = cm + """ Hydrostatics point, that conatins: \n + draft Ship draft [m]. \n + trim Ship trim [deg]. \n + disp Ship displacement [ton]. \n + xcb Bouyance center X coordinate [m]. + wet Wetted ship area [m2]. + mom Triming 1cm ship moment [ton m]. + farea Floating area [m2]. + KBt Transversal KB height [m]. + BMt Transversal BM height [m]. + Cb Block coefficient. + Cf Floating coefficient. + Cm Main frame coefficient. + @note Moment is positive when produce positive trim. + """ + def __init__(self, ship, faces, draft, trim): + """ Use all hydrostatics tools to define a hydrostatics + point. + @param ship Selected ship instance + @param faces Ship external faces + @param draft Draft. + @param trim Trim in degrees. + """ + # Hydrostatics computation + dispData = displacement(ship,draft,0.0,trim,0.0) + if not faces: + wet = 0.0 + else: + wet = wettedArea(faces,draft,trim) + mom = moment(ship,draft,trim,dispData[0],dispData[1].x) + farea = FloatingArea(ship,draft,trim) + bm = BMT(ship,draft,trim) + cm = mainFrameCoeff(ship,draft) + # Store final data + self.draft = draft + self.trim = trim + self.disp = dispData[0] + self.xcb = dispData[1].x + self.wet = wet + self.farea = farea[0] + self.mom = mom + self.KBt = dispData[1].z + self.BMt = bm + self.Cb = dispData[2] + self.Cf = farea[1] + self.Cm = cm diff --git a/src/Mod/Ship/shipHydrostatics/__init__.py b/src/Mod/Ship/shipHydrostatics/__init__.py index 5b9a3c477c..50a43c8a65 100644 --- a/src/Mod/Ship/shipHydrostatics/__init__.py +++ b/src/Mod/Ship/shipHydrostatics/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** @@ -33,5 +33,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipLoadExample/TaskPanel.py b/src/Mod/Ship/shipLoadExample/TaskPanel.py index b325a92364..9c463c99b0 100644 --- a/src/Mod/Ship/shipLoadExample/TaskPanel.py +++ b/src/Mod/Ship/shipLoadExample/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -27,79 +27,82 @@ import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore # Module -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipLoadExample/TaskPanel.ui" + def __init__(self): + self.ui = Paths.modulePath() + "/shipLoadExample/TaskPanel.ui" - def accept(self): - path = Paths.modulePath() + "/Examples/" - if(self.form.ship.currentIndex() == 0): # s60 from Iowa University - App.open(path + "s60.fcstd") - elif(self.form.ship.currentIndex() == 1): # Wigley canonical ship - App.open(path + "wigley.fcstd") - elif(self.form.ship.currentIndex() == 2): # s60 (Katamaran) - App.open(path + "s60_katamaran.fcstd") - elif(self.form.ship.currentIndex() == 2): # Wigley (Katamaran) - App.open(path + "wigley_katamaran.fcstd") - return True + def accept(self): + path = Paths.modulePath() + "/resources/examples/" + if(self.form.ship.currentIndex() == 0): # s60 from Iowa University + App.open(path + "s60.fcstd") + elif(self.form.ship.currentIndex() == 1): # Wigley canonical ship + App.open(path + "wigley.fcstd") + elif(self.form.ship.currentIndex() == 2): # s60 (Katamaran) + App.open(path + "s60_katamaran.fcstd") + elif(self.form.ship.currentIndex() == 2): # Wigley (Katamaran) + App.open(path + "wigley_katamaran.fcstd") + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.ship = form.findChild(QtGui.QComboBox, "Ship") - form.mainLogo = form.findChild(QtGui.QLabel, "MainLogo") - iconPath = Paths.iconsPath() + "/Ico.xpm" - form.mainLogo.setPixmap(QtGui.QPixmap(iconPath)) - self.form = form - self.retranslateUi() + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.ship = form.findChild(QtGui.QComboBox, "Ship") + form.mainLogo = form.findChild(QtGui.QLabel, "MainLogo") + iconPath = Paths.iconsPath() + "/Ico.xpm" + form.mainLogo.setPixmap(QtGui.QPixmap(iconPath)) + self.form = form + self.retranslateUi() - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Load example ship")) - self.form.findChild(QtGui.QGroupBox, "ShipSelectionBox").setTitle(Translator.translate("Select ship example geometry")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_load","Load example ship", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "ShipSelectionBox").setTitle(QtGui.QApplication.translate("ship_load", + "Select ship example geometry", + None,QtGui.QApplication.UnicodeUTF8)) def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipLoadExample/TaskPanel.ui b/src/Mod/Ship/shipLoadExample/TaskPanel.ui index 19a2c8da9d..299c174fa9 100644 --- a/src/Mod/Ship/shipLoadExample/TaskPanel.ui +++ b/src/Mod/Ship/shipLoadExample/TaskPanel.ui @@ -62,58 +62,52 @@ Select ship example geometry - - - - 0 - 20 - 241 - 101 - - - - - - - - Series 60 from Iowa University + + + + + + + + Series 60 from Iowa University + + + + + Wigley canonical ship + + + + + Series 60 (Katamaran) + + + + + Wigley (Katamaran) + + + + + + + + Qt::Vertical - - - - Wigley canonical ship + + QSizePolicy::Fixed - - - - Series 60 (Katamaran) + + + 20 + 20 + - - - - Wigley (Katamaran) - - - - - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 20 - - - - - - + +
+
+
+ diff --git a/src/Mod/Ship/shipLoadExample/__init__.py b/src/Mod/Ship/shipLoadExample/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/shipLoadExample/__init__.py +++ b/src/Mod/Ship/shipLoadExample/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipOutlineDraw/Plot.py b/src/Mod/Ship/shipOutlineDraw/Plot.py index 7715540da2..919fc87206 100644 --- a/src/Mod/Ship/shipOutlineDraw/Plot.py +++ b/src/Mod/Ship/shipOutlineDraw/Plot.py @@ -1,124 +1,127 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** +# Qt library +from PyQt4 import QtGui,QtCore # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base, Vector import Part # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths def Plot(scale, sections, shape): - """ Creates the outline draw. - @param scale Plane scale (format 1:scale) - @param sections Sections computed. - @param shape Ship surfaces shell - @return plotted object (DocumentObject) - """ - msg = Translator.translate('Performing plot (Scale 1:%d)...\n' % (scale)) - FreeCAD.Console.PrintMessage(msg) - scale = 1000.0 / scale - # Take positions - bounds = [0.0, 0.0, 0.0] - bbox = shape.BoundBox - bounds[0] = bbox.XLength - bounds[1] = bbox.YLength - bounds[2] = bbox.ZLength - xTot = scale*bounds[1] + 32.0 + scale*bounds[0] - yTot = scale*bounds[2] + 32.0 + scale*bounds[1] - xMid = 210.0 - yMid = 185.0 - x0 = xMid - 0.5*xTot - y0 = 297.0 - yMid - 0.5*yTot # 297 = A3_width - # Get border - edges = getEdges([shape]) - border = edges[0] - for i in range(0,len(edges)): - border = border.oldFuse(edges[i]) # Only group objects, don't try to build more complex entities - border = border.oldFuse(edges[i].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0))) - # Fuse sections & borders - # obj = sections.oldFuse(border) - obj = border.oldFuse(sections) - # Send to 3D view - Part.show(obj) - objs = FreeCAD.ActiveDocument.Objects - obj = objs[len(objs)-1] - # Create a new plane - FreeCAD.ActiveDocument.addObject('Drawing::FeaturePage','OutlineDrawPlot') - FreeCAD.ActiveDocument.OutlineDrawPlot.Template = FreeCAD.getResourceDir()+'Mod/Drawing/Templates/A3_Landscape.svg' - # Side view - FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawSideView') - FreeCAD.ActiveDocument.OutlineDrawSideView.Source = obj - FreeCAD.ActiveDocument.OutlineDrawSideView.Direction = (1.0,0.0,0.0) - FreeCAD.ActiveDocument.OutlineDrawSideView.Rotation = -90.0 - FreeCAD.ActiveDocument.OutlineDrawSideView.Scale = scale - FreeCAD.ActiveDocument.OutlineDrawSideView.X = 420.0 - x0 - 0.5*scale*bounds[1] # 420 = A3_height - FreeCAD.ActiveDocument.OutlineDrawSideView.Y = y0 + 0.5*scale*bounds[2] - FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawSideView) - # Front view - FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawFrontView') - FreeCAD.ActiveDocument.OutlineDrawFrontView.Source = obj - FreeCAD.ActiveDocument.OutlineDrawFrontView.Direction = (0.0,1.0,0.0) - FreeCAD.ActiveDocument.OutlineDrawFrontView.Rotation = -90.0 - FreeCAD.ActiveDocument.OutlineDrawFrontView.Scale = scale - FreeCAD.ActiveDocument.OutlineDrawFrontView.X = 420.0 - x0 - scale*bounds[1] - 32 - 0.5*scale*bounds[0] - FreeCAD.ActiveDocument.OutlineDrawFrontView.Y = y0 + 0.5*scale*bounds[2] - FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawFrontView) - # Up view - FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawUpView') - FreeCAD.ActiveDocument.OutlineDrawUpView.Source = obj - FreeCAD.ActiveDocument.OutlineDrawUpView.Direction = (0.0,0.0,1.0) - FreeCAD.ActiveDocument.OutlineDrawUpView.Scale = scale - FreeCAD.ActiveDocument.OutlineDrawUpView.X = 420.0 - x0 - scale*bounds[1] - 32 - 0.5*scale*bounds[0] - FreeCAD.ActiveDocument.OutlineDrawUpView.Y = y0 + scale*bounds[2] + 32 - FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawUpView) - FreeCAD.ActiveDocument.recompute() - return obj + """ Creates the outline draw. + @param scale Plane scale (format 1:scale) + @param sections Sections computed. + @param shape Ship surfaces shell + @return plotted object (DocumentObject) + """ + msg = QtGui.QApplication.translate("ship_console", "Performing plot", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + ' (1:%d)...\n' % (scale)) + scale = 1000.0 / scale + # Take positions + bounds = [0.0, 0.0, 0.0] + bbox = shape.BoundBox + bounds[0] = bbox.XLength + bounds[1] = bbox.YLength + bounds[2] = bbox.ZLength + xTot = scale*bounds[1] + 32.0 + scale*bounds[0] + yTot = scale*bounds[2] + 32.0 + scale*bounds[1] + xMid = 210.0 + yMid = 185.0 + x0 = xMid - 0.5*xTot + y0 = 297.0 - yMid - 0.5*yTot # 297 = A3_width + # Get border + edges = getEdges([shape]) + border = edges[0] + for i in range(0,len(edges)): + border = border.oldFuse(edges[i]) # Only group objects, don't try to build more complex entities + border = border.oldFuse(edges[i].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0))) + # Fuse sections & borders + # obj = sections.oldFuse(border) + obj = border.oldFuse(sections) + # Send to 3D view + Part.show(obj) + objs = FreeCAD.ActiveDocument.Objects + obj = objs[len(objs)-1] + # Create a new plane + FreeCAD.ActiveDocument.addObject('Drawing::FeaturePage','OutlineDrawPlot') + FreeCAD.ActiveDocument.OutlineDrawPlot.Template = FreeCAD.getResourceDir()+'Mod/Drawing/Templates/A3_Landscape.svg' + # Side view + FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawSideView') + FreeCAD.ActiveDocument.OutlineDrawSideView.Source = obj + FreeCAD.ActiveDocument.OutlineDrawSideView.Direction = (1.0,0.0,0.0) + FreeCAD.ActiveDocument.OutlineDrawSideView.Rotation = -90.0 + FreeCAD.ActiveDocument.OutlineDrawSideView.Scale = scale + FreeCAD.ActiveDocument.OutlineDrawSideView.X = 420.0 - x0 - 0.5*scale*bounds[1] # 420 = A3_height + FreeCAD.ActiveDocument.OutlineDrawSideView.Y = y0 + 0.5*scale*bounds[2] + FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawSideView) + # Front view + FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawFrontView') + FreeCAD.ActiveDocument.OutlineDrawFrontView.Source = obj + FreeCAD.ActiveDocument.OutlineDrawFrontView.Direction = (0.0,1.0,0.0) + FreeCAD.ActiveDocument.OutlineDrawFrontView.Rotation = -90.0 + FreeCAD.ActiveDocument.OutlineDrawFrontView.Scale = scale + FreeCAD.ActiveDocument.OutlineDrawFrontView.X = 420.0 - x0 - scale*bounds[1] - 32 - 0.5*scale*bounds[0] + FreeCAD.ActiveDocument.OutlineDrawFrontView.Y = y0 + 0.5*scale*bounds[2] + FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawFrontView) + # Up view + FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawUpView') + FreeCAD.ActiveDocument.OutlineDrawUpView.Source = obj + FreeCAD.ActiveDocument.OutlineDrawUpView.Direction = (0.0,0.0,1.0) + FreeCAD.ActiveDocument.OutlineDrawUpView.Scale = scale + FreeCAD.ActiveDocument.OutlineDrawUpView.X = 420.0 - x0 - scale*bounds[1] - 32 - 0.5*scale*bounds[0] + FreeCAD.ActiveDocument.OutlineDrawUpView.Y = y0 + scale*bounds[2] + 32 + FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawUpView) + FreeCAD.ActiveDocument.recompute() + return obj def getEdges(objs=None): - """ Returns object edges (list of them) - @param objs Object to get the faces, none if selected - object may used. - @return Selected edges. None if errors happens - """ - edges = [] - if not objs: - objs = FreeCADGui.Selection.getSelection() - if not objs: - return None - for i in range(0, len(objs)): - obj = objs[i] - if obj.isDerivedFrom('Part::Feature'): - # get shape - shape = obj.Shape - if not shape: - return None - obj = shape - if not obj.isDerivedFrom('Part::TopoShape'): - return None - objEdges = obj.Edges - if not objEdges: - continue - for j in range(0, len(objEdges)): - edges.append(objEdges[j]) - return edges + """ Returns object edges (list of them) + @param objs Object to get the faces, none if selected + object may used. + @return Selected edges. None if errors happens + """ + edges = [] + if not objs: + objs = FreeCADGui.Selection.getSelection() + if not objs: + return None + for i in range(0, len(objs)): + obj = objs[i] + if obj.isDerivedFrom('Part::Feature'): + # get shape + shape = obj.Shape + if not shape: + return None + obj = shape + if not obj.isDerivedFrom('Part::TopoShape'): + return None + objEdges = obj.Edges + if not objEdges: + continue + for j in range(0, len(objEdges)): + edges.append(objEdges[j]) + return edges diff --git a/src/Mod/Ship/shipOutlineDraw/Preview.py b/src/Mod/Ship/shipOutlineDraw/Preview.py index a1ccb20123..3897912b76 100644 --- a/src/Mod/Ship/shipOutlineDraw/Preview.py +++ b/src/Mod/Ship/shipOutlineDraw/Preview.py @@ -1,146 +1,151 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** +# Qt library +from PyQt4 import QtGui,QtCore # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base, Vector import Part # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths class Preview(object): - def __init__(self): - """ Constructor. - """ - self.obj = None - self.reinit() + def __init__(self): + """ Constructor. + """ + self.obj = None + self.reinit() - def reinit(self): - """ Reinitializate drawer. - """ - self.clean() + def reinit(self): + """ Reinitializate drawer. + """ + self.clean() - def update(self, L, B, T, sectionsL, sectionsB, sectionsT, shape): - """ Update the 3D view printing annotations. - @param L Ship Lpp. - @param B Ship beam. - @param T Ship draft. - @param sectionsL Transversal sections. - @param sectionsB Longitudinal sections. - @param sectionsT Water lines. - @param shape Ship surfaces shell - @return Sections object. None if errors happens. - """ - FreeCAD.Console.PrintMessage(Translator.translate('Computing sections...\n')) - # Destroy all previous entities - self.clean() - # Receive data - nL = len(sectionsL) - nB = len(sectionsB) - nT = len(sectionsT) - if not (nL or nB or nT): - return None - # Found sections - sections = [] - for i in range(0,nL): - pos = sectionsL[i] - # Cut ship - section = shape.slice(Vector(1.0,0.0,0.0), pos) - for j in range(0,len(section)): - edges = section[j].Edges - # We have 3 cases, - # * when section is before midship, then only starboard section will be considered - # * When section is midship, then all section must be preserved - # * When section is after midship, then only board will be considered - if pos > 0.01: - # Look for edges at the wrong side and delete it - for k in range(len(edges)-1,-1,-1): - edge = edges[k] - bbox = edge.BoundBox - if bbox.YMin < -0.001: - del edges[k] - elif pos < -0.01: - # Look for edges at the wrong side and delete it - for k in range(len(edges)-1,-1,-1): - edge = edges[k] - bbox = edge.BoundBox - if bbox.YMax > 0.001: - del edges[k] - sections.extend(edges) - for i in range(0,nB): - pos = sectionsB[i] - section = shape.slice(Vector(0.0,1.0,0.0), pos) - for j in range(0,len(section)): - edges = section[j].Edges - # Longitudinal sections will preserve board and starboard ever. Since we take from one side, - # we nned to mirror it. - section[j] = section[j].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0)) - edges2 = section[j].Edges - sections.extend(edges) - sections.extend(edges2) - for i in range(0,nT): - pos = sectionsT[i] - section = shape.slice(Vector(0.0,0.0,1.0), pos) - for j in range(0,len(section)): - edges = section[j].Edges - # We have 3 cases, - # * when section is below draft, then only board section will be considered - # * When section is draft, then all section must be preserved - # * When section is above draft, then only starboard will be considered - if pos > T + 0.01: - # Look for edges at the wrong side and delete it - for k in range(len(edges)-1,-1,-1): - edge = edges[k] - bbox = edge.BoundBox - if bbox.YMax > 0.001: - del edges[k] - elif pos < T - 0.01: - # Look for edges at the wrong side and delete it - for k in range(len(edges)-1,-1,-1): - edge = edges[k] - bbox = edge.BoundBox - if bbox.YMin < -0.001: - del edges[k] - sections.extend(edges) - # Convert all BSplines into a shape - if not sections: - msg = Translator.translate('Any valid ship section found') - FreeCAD.Console.PrintWarning(msg) - return - obj = sections[0] - for i in range(1,len(sections)): - obj = obj.oldFuse(sections[i]) # Only group the edges, don't try to build more complex entities - # Create the representable object - Part.show(obj) - objs = FreeCAD.ActiveDocument.Objects - self.obj = objs[len(objs)-1] - self.obj.Label = 'OutlineDraw' - return self.obj - - def clean(self): - """ Erase all annotations from screen. - """ - if not self.obj: - return - FreeCAD.ActiveDocument.removeObject(self.obj.Name) - self.obj = None + def update(self, L, B, T, sectionsL, sectionsB, sectionsT, shape): + """ Update the 3D view printing annotations. + @param L Ship Lpp. + @param B Ship beam. + @param T Ship draft. + @param sectionsL Transversal sections. + @param sectionsB Longitudinal sections. + @param sectionsT Water lines. + @param shape Ship surfaces shell + @return Sections object. None if errors happens. + """ + msg = QtGui.QApplication.translate("ship_console", "Computing sections", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '...\n') + # Destroy all previous entities + self.clean() + # Receive data + nL = len(sectionsL) + nB = len(sectionsB) + nT = len(sectionsT) + if not (nL or nB or nT): + return None + # Found sections + sections = [] + for i in range(0,nL): + pos = sectionsL[i] + # Cut ship + section = shape.slice(Vector(1.0,0.0,0.0), pos) + for j in range(0,len(section)): + edges = section[j].Edges + # We have 3 cases, + # * when section is before midship, then only starboard section will be considered + # * When section is midship, then all section must be preserved + # * When section is after midship, then only board will be considered + if pos > 0.01: + # Look for edges at the wrong side and delete it + for k in range(len(edges)-1,-1,-1): + edge = edges[k] + bbox = edge.BoundBox + if bbox.YMin < -0.001: + del edges[k] + elif pos < -0.01: + # Look for edges at the wrong side and delete it + for k in range(len(edges)-1,-1,-1): + edge = edges[k] + bbox = edge.BoundBox + if bbox.YMax > 0.001: + del edges[k] + sections.extend(edges) + for i in range(0,nB): + pos = sectionsB[i] + section = shape.slice(Vector(0.0,1.0,0.0), pos) + for j in range(0,len(section)): + edges = section[j].Edges + # Longitudinal sections will preserve board and starboard ever. Since we take from one side, + # we nned to mirror it. + section[j] = section[j].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0)) + edges2 = section[j].Edges + sections.extend(edges) + sections.extend(edges2) + for i in range(0,nT): + pos = sectionsT[i] + section = shape.slice(Vector(0.0,0.0,1.0), pos) + for j in range(0,len(section)): + edges = section[j].Edges + # We have 3 cases, + # * when section is below draft, then only board section will be considered + # * When section is draft, then all section must be preserved + # * When section is above draft, then only starboard will be considered + if pos > T + 0.01: + # Look for edges at the wrong side and delete it + for k in range(len(edges)-1,-1,-1): + edge = edges[k] + bbox = edge.BoundBox + if bbox.YMax > 0.001: + del edges[k] + elif pos < T - 0.01: + # Look for edges at the wrong side and delete it + for k in range(len(edges)-1,-1,-1): + edge = edges[k] + bbox = edge.BoundBox + if bbox.YMin < -0.001: + del edges[k] + sections.extend(edges) + # Convert all BSplines into a shape + if not sections: + msg = QtGui.QApplication.translate("ship_console", "Any valid ship section found", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + '\n') + return + obj = sections[0] + for i in range(1,len(sections)): + obj = obj.oldFuse(sections[i]) # Only group the edges, don't try to build more complex entities + # Create the representable object + Part.show(obj) + objs = FreeCAD.ActiveDocument.Objects + self.obj = objs[len(objs)-1] + self.obj.Label = 'OutlineDraw' + return self.obj + + def clean(self): + """ Erase all annotations from screen. + """ + if not self.obj: + return + FreeCAD.ActiveDocument.removeObject(self.obj.Name) + self.obj = None diff --git a/src/Mod/Ship/shipOutlineDraw/TaskPanel.py b/src/Mod/Ship/shipOutlineDraw/TaskPanel.py index 393e11ea8c..239b21a00c 100644 --- a/src/Mod/Ship/shipOutlineDraw/TaskPanel.py +++ b/src/Mod/Ship/shipOutlineDraw/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -29,320 +29,345 @@ from PyQt4 import QtGui,QtCore # Module import Preview, Plot import Instance -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipOutlineDraw/TaskPanel.ui" - self.ship = None - self.skip = False - self.LSections = [] - self.BSections = [] - self.TSections = [] - self.obj = None - self.preview = Preview.Preview() + def __init__(self): + self.ui = Paths.modulePath() + "/shipOutlineDraw/TaskPanel.ui" + self.ship = None + self.skip = False + self.LSections = [] + self.BSections = [] + self.TSections = [] + self.obj = None + self.preview = Preview.Preview() - def accept(self): - self.saveSections() - self.obj = Plot.Plot(self.form.scale.value(), self.obj.Shape, self.ship.Shape) - self.preview.clean() - self.obj.Label = 'OutlineDraw' - return True + def accept(self): + self.saveSections() + self.obj = Plot.Plot(self.form.scale.value(), self.obj.Shape, self.ship.Shape) + self.preview.clean() + self.obj.Label = 'OutlineDraw' + return True - def reject(self): - self.preview.clean() - return True + def reject(self): + self.preview.clean() + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.sections = form.findChild(QtGui.QTableWidget, "Sections") - try: - form.sections.setInputMethodHints(QtCore.Qt.ImhFormattedNumbersOnly) - except: - msg = Translator.translate("QtCore.Qt.ImhFormattedNumbersOnly not supported, will not used.\n") - App.Console.PrintWarning(msg) - form.sectionType = form.findChild(QtGui.QComboBox, "SectionType") - form.deleteButton = form.findChild(QtGui.QPushButton, "DeleteButton") - form.nSections = form.findChild(QtGui.QSpinBox, "NSections") - form.createButton = form.findChild(QtGui.QPushButton, "CreateButton") - form.scale = form.findChild(QtGui.QSpinBox, "Scale") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) - # Connect Signals and Slots - QtCore.QObject.connect(form.sectionType,QtCore.SIGNAL("activated(QString)"),self.onSectionType) - QtCore.QObject.connect(form.sections,QtCore.SIGNAL("cellChanged(int,int)"),self.onTableItem); - QtCore.QObject.connect(form.deleteButton,QtCore.SIGNAL("pressed()"),self.onDeleteButton) - QtCore.QObject.connect(form.createButton,QtCore.SIGNAL("pressed()"),self.onCreateButton) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.sections = form.findChild(QtGui.QTableWidget, "Sections") + try: + form.sections.setInputMethodHints(QtCore.Qt.ImhFormattedNumbersOnly) + hasImhFormattedNumbersOnly = True + except: + hasImhFormattedNumbersOnly = False + form.sectionType = form.findChild(QtGui.QComboBox, "SectionType") + form.deleteButton = form.findChild(QtGui.QPushButton, "DeleteButton") + form.nSections = form.findChild(QtGui.QSpinBox, "NSections") + form.createButton = form.findChild(QtGui.QPushButton, "CreateButton") + form.scale = form.findChild(QtGui.QSpinBox, "Scale") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) + # Connect Signals and Slots + QtCore.QObject.connect(form.sectionType,QtCore.SIGNAL("activated(QString)"),self.onSectionType) + QtCore.QObject.connect(form.sections,QtCore.SIGNAL("cellChanged(int,int)"),self.onTableItem); + QtCore.QObject.connect(form.deleteButton,QtCore.SIGNAL("pressed()"),self.onDeleteButton) + QtCore.QObject.connect(form.createButton,QtCore.SIGNAL("pressed()"),self.onCreateButton) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get selected objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Load sections (if exist) - self.loadSections() - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get selected objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", + "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Load sections (if exist) + self.loadSections() + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Outline draw")) - self.form.findChild(QtGui.QGroupBox, "AutoCreateBox").setTitle(Translator.translate("Auto create")) - self.form.findChild(QtGui.QGroupBox, "ScaleBox").setTitle(Translator.translate("Scale")) - self.form.findChild(QtGui.QPushButton, "DeleteButton").setText(Translator.translate("Delete all sections")) - self.form.findChild(QtGui.QPushButton, "CreateButton").setText(Translator.translate("Create sections")) - self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(0, Translator.translate("Transversal")) - self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(1, Translator.translate("Longitudinal")) - self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(2, Translator.translate("Water lines")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_outline","Outline draw", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "AutoCreateBox").setTitle(QtGui.QApplication.translate("ship_outline","Auto create", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "ScaleBox").setTitle(QtGui.QApplication.translate("ship_outline","Scale", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QPushButton, "DeleteButton").setText(QtGui.QApplication.translate("ship_outline", + "Delete all sections", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QPushButton, "CreateButton").setText(QtGui.QApplication.translate("ship_outline", + "Create sections", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(0, QtGui.QApplication.translate("ship_outline", + "Transversal", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(1, QtGui.QApplication.translate("ship_outline", + "Longitudinal", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(2, QtGui.QApplication.translate("ship_outline", + "Water lines", + None,QtGui.QApplication.UnicodeUTF8)) - def onSectionType(self): - """ Function called when the section type is changed. - """ - # Search section type - ID = self.form.sectionType.currentIndex() - self.setSectionType(ID) + def onSectionType(self): + """ Function called when the section type is changed. + """ + # Search section type + ID = self.form.sectionType.currentIndex() + self.setSectionType(ID) - def setSectionType(self, ID): - """ Function that set the type section related table. - @param ID Id of the section to set: \n - 0 = Transversal sections \n - 1 = Longitudinal sections \n - 2 = Water lines - """ - SectionList = [] - if ID == 0: - SectionList = self.LSections[:] - elif ID == 1: - SectionList = self.BSections[:] - elif ID == 2: - SectionList = self.TSections[:] - nRow = len(SectionList) - self.form.sections.clearContents() - self.form.sections.setRowCount(nRow+1) - if not nRow: - self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) - return - self.skip = True # Avoid recursive call to OnItem - for i in range(0,nRow): - if i == nRow-1: - self.skip = False - string = '%f' % (SectionList[i]) - item = QtGui.QTableWidgetItem(string) - self.form.sections.setItem(i,0,item) + def setSectionType(self, ID): + """ Function that set the type section related table. + @param ID Id of the section to set: \n + 0 = Transversal sections \n + 1 = Longitudinal sections \n + 2 = Water lines + """ + SectionList = [] + if ID == 0: + SectionList = self.LSections[:] + elif ID == 1: + SectionList = self.BSections[:] + elif ID == 2: + SectionList = self.TSections[:] + nRow = len(SectionList) + self.form.sections.clearContents() + self.form.sections.setRowCount(nRow+1) + if not nRow: + self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) + return + self.skip = True # Avoid recursive call to OnItem + for i in range(0,nRow): + if i == nRow-1: + self.skip = False + string = '%f' % (SectionList[i]) + item = QtGui.QTableWidgetItem(string) + self.form.sections.setItem(i,0,item) - def onTableItem(self, row, column): - """ Function called when an item of table is changed. - @param row Changed item row - @param column Changed item column - """ - if self.skip: - return - # Ensure that exist one empty item at least - nRow = self.form.sections.rowCount() - item = self.form.sections.item(nRow-1,0) - if item : - if(item.text() != ''): - self.form.sections.setRowCount(nRow+1) - # Ensure that new item is a number - ID = self.form.sectionType.currentIndex() - if ID == 0: - SectionList = self.LSections[:] - elif ID == 1: - SectionList = self.BSections[:] - elif ID == 2: - SectionList = self.TSections[:] - item = self.form.sections.item(row,column) - (number,flag) = item.text().toFloat() - if not flag: - if len(SectionList) > nRow-1: - number = SectionList[nRow-1] - else: - number = 0.0 - string = '%f' % (number) - item.setText(string) - # Regenerate the list - SectionList = [] - for i in range(0,nRow): - item = self.form.sections.item(i,0) - if item: - (number,flag) = item.text().toFloat() - SectionList.append(number) - # Paste it into the class list - ID = self.form.sectionType.currentIndex() - if ID == 0: - self.LSections = SectionList[:] - elif ID == 1: - self.BSections = SectionList[:] - elif ID == 2: - self.TSections = SectionList[:] - self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) - - def onDeleteButton(self): - """ Function called when the delete button is pressed. - All sections mustt be erased - """ - self.form.sections.clearContents() - self.form.sections.setRowCount(1) - # Clear active list - ID = self.form.sectionType.currentIndex() - if ID == 0: - self.LSections = [] - elif ID == 1: - self.BSections = [] - elif ID == 2: - self.TSections = [] - self.setSectionType(ID) - - def onCreateButton(self): - """ Function called when create button is pressed. - Several sections must be added to list - """ - # Recolect data - nSections = self.form.nSections.value() - SectionList = [] - L = 0.0 - ID = self.form.sectionType.currentIndex() - if ID == 0: - L = self.ship.Length - d = L / (nSections-1) # Distance between sections - start = - L/2.0 # Ship must have 0.0 at coordinates origin - elif ID == 1: - L = -0.5*self.ship.Beam # Ship must be in y<0.0 - d = L / (nSections+1.0) # Distance between sections - start = d - elif ID == 2: - L = self.ship.Draft - d = L / (nSections) # Distance between sections - start = d - # Calculate sections - for i in range(0,nSections): - sec = i*d + start - SectionList.append(sec) - # Paste into class table - if ID == 0: - self.LSections = SectionList[:] - elif ID == 1: - self.BSections = SectionList[:] - elif ID == 2: - self.TSections = SectionList[:] - # Print the table - self.setSectionType(ID) + def onTableItem(self, row, column): + """ Function called when an item of table is changed. + @param row Changed item row + @param column Changed item column + """ + if self.skip: + return + # Ensure that exist one empty item at least + nRow = self.form.sections.rowCount() + item = self.form.sections.item(nRow-1,0) + if item : + if(item.text() != ''): + self.form.sections.setRowCount(nRow+1) + # Ensure that new item is a number + ID = self.form.sectionType.currentIndex() + if ID == 0: + SectionList = self.LSections[:] + elif ID == 1: + SectionList = self.BSections[:] + elif ID == 2: + SectionList = self.TSections[:] + item = self.form.sections.item(row,column) + (number,flag) = item.text().toFloat() + if not flag: + if len(SectionList) > nRow-1: + number = SectionList[nRow-1] + else: + number = 0.0 + string = '%f' % (number) + item.setText(string) + # Regenerate the list + SectionList = [] + for i in range(0,nRow): + item = self.form.sections.item(i,0) + if item: + (number,flag) = item.text().toFloat() + SectionList.append(number) + # Paste it into the class list + ID = self.form.sectionType.currentIndex() + if ID == 0: + self.LSections = SectionList[:] + elif ID == 1: + self.BSections = SectionList[:] + elif ID == 2: + self.TSections = SectionList[:] + self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) + + def onDeleteButton(self): + """ Function called when the delete button is pressed. + All sections mustt be erased + """ + self.form.sections.clearContents() + self.form.sections.setRowCount(1) + # Clear active list + ID = self.form.sectionType.currentIndex() + if ID == 0: + self.LSections = [] + elif ID == 1: + self.BSections = [] + elif ID == 2: + self.TSections = [] + self.setSectionType(ID) + + def onCreateButton(self): + """ Function called when create button is pressed. + Several sections must be added to list + """ + # Recolect data + nSections = self.form.nSections.value() + SectionList = [] + L = 0.0 + ID = self.form.sectionType.currentIndex() + if ID == 0: + L = self.ship.Length + d = L / (nSections-1) # Distance between sections + start = - L/2.0 # Ship must have 0.0 at coordinates origin + elif ID == 1: + L = -0.5*self.ship.Beam # Ship must be in y<0.0 + d = L / (nSections+1.0) # Distance between sections + start = d + elif ID == 2: + L = self.ship.Draft + d = L / (nSections) # Distance between sections + start = d + # Calculate sections + for i in range(0,nSections): + sec = i*d + start + SectionList.append(sec) + # Paste into class table + if ID == 0: + self.LSections = SectionList[:] + elif ID == 1: + self.BSections = SectionList[:] + elif ID == 2: + self.TSections = SectionList[:] + # Print the table + self.setSectionType(ID) - def loadSections(self): - """ Loads from ship object previously selected sections. - """ - # Load sections - props = self.ship.PropertiesList - flag=True - try: - props.index("LSections") - except ValueError: - flag=False - if flag: - self.LSections = self.ship.LSections[:] - self.BSections = self.ship.BSections[:] - self.TSections = self.ship.TSections[:] - # Load scale too - flag=True - try: - props.index("PlotScale") - except ValueError: - flag=False - if flag: - self.form.scale.setValue(self.ship.PlotScale) - # Set UI - self.setSectionType(self.form.sectionType.currentIndex()) + def loadSections(self): + """ Loads from ship object previously selected sections. + """ + # Load sections + props = self.ship.PropertiesList + flag=True + try: + props.index("LSections") + except ValueError: + flag=False + if flag: + self.LSections = self.ship.LSections[:] + self.BSections = self.ship.BSections[:] + self.TSections = self.ship.TSections[:] + # Load scale too + flag=True + try: + props.index("PlotScale") + except ValueError: + flag=False + if flag: + self.form.scale.setValue(self.ship.PlotScale) + # Set UI + self.setSectionType(self.form.sectionType.currentIndex()) - def saveSections(self): - """ Save selected sections into ship object. - """ - # Test if previous section have been created - props = self.ship.PropertiesList - try: - props.index("LSections") - except ValueError: - # Create new sections list - self.ship.addProperty("App::PropertyFloatList","LSections","Ship", str(Translator.translate("Transversal sections position [m]"))).LSections=[] - self.ship.addProperty("App::PropertyFloatList","BSections","Ship", str(Translator.translate("Longitudinal sections position [m]"))).BSections=[] - self.ship.addProperty("App::PropertyFloatList","TSections","Ship", str(Translator.translate("Water lines position [m]"))).TSections=[] - # Save sections - self.ship.LSections = self.LSections[:] - self.ship.BSections = self.BSections[:] - self.ship.TSections = self.TSections[:] - # Save also scale - try: - props.index("PlotScale") - except ValueError: - self.ship.addProperty("App::PropertyInteger","PlotScale","Ship", str(Translator.translate("Plot scale (1:scale format)"))).PlotScale=250 - self.ship.PlotScale = self.form.scale.value() + def saveSections(self): + """ Save selected sections into ship object. + """ + # Test if previous section have been created + props = self.ship.PropertiesList + try: + props.index("LSections") + except ValueError: + # Create new sections list + tooltip = str(QtGui.QApplication.translate("ship_outline","Transversal sections position [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloatList","LSections","Ship", tooltip).LSections=[] + tooltip = str(QtGui.QApplication.translate("ship_outline","Longitudinal sections position [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloatList","BSections","Ship", tooltip).BSections=[] + tooltip = str(QtGui.QApplication.translate("ship_outline","Water lines position [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloatList","TSections","Ship", tooltip).TSections=[] + # Save sections + self.ship.LSections = self.LSections[:] + self.ship.BSections = self.BSections[:] + self.ship.TSections = self.TSections[:] + # Save also scale + try: + props.index("PlotScale") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_outline","Plot scale (1:scale format)", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyInteger","PlotScale","Ship", tooltip).PlotScale=250 + self.ship.PlotScale = self.form.scale.value() def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipOutlineDraw/TaskPanel.ui b/src/Mod/Ship/shipOutlineDraw/TaskPanel.ui index 0d41cbda2e..9d6f67ad94 100644 --- a/src/Mod/Ship/shipOutlineDraw/TaskPanel.ui +++ b/src/Mod/Ship/shipOutlineDraw/TaskPanel.ui @@ -6,7 +6,7 @@ 0 0 - 298 + 316 402 @@ -20,10 +20,16 @@ 0 - QLayout::SetMinimumSize + QLayout::SetDefaultConstraint + + + 0 + 0 + + 142 @@ -32,7 +38,7 @@ - 160 + 16777215 32 @@ -61,6 +67,12 @@ + + + 0 + 0 + + 142 @@ -69,7 +81,7 @@ - 160 + 16777215 32 @@ -80,9 +92,15 @@ + + + 0 + 0 + + - 142 + 0 256 @@ -95,53 +113,71 @@ Auto create - - - - 0 - 30 - 142 - 27 - - - - - 142 - 24 - - - - - 160 - 32 - - - - - - - 0 - 70 - 142 - 27 - - - - - 142 - 24 - - - - - 160 - 32 - - - - Create sections - - + + + + + + 0 + 0 + + + + + 142 + 24 + + + + + 16777215 + 32 + + + + + + + + + 0 + 0 + + + + + 142 + 24 + + + + + 16777215 + 32 + + + + Create sections + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 140 + + + + + @@ -156,6 +192,12 @@ + + + 0 + 0 + + 128 @@ -164,7 +206,7 @@ - 128 + 16777215 16777215 @@ -199,75 +241,69 @@ - 128 + 0 72 - 256 + 16777215 96 Plane scale - - - - 0 - 30 - 251 - 41 - - - - - - - - 16 - 16 - - - - - 32 - 16777215 - - - - 1: - - - Qt::AlignCenter - - - - - - - - 0 - 16 - - - - 1 - - - 1000000 - - - 50 - - - 250 - - - - - + + + + + + + + 16 + 16 + + + + + 32 + 16777215 + + + + 1: + + + Qt::AlignCenter + + + + + + + + 0 + 16 + + + + 1 + + + 1000000 + + + 50 + + + 250 + + + + + + diff --git a/src/Mod/Ship/shipOutlineDraw/__init__.py b/src/Mod/Ship/shipOutlineDraw/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/shipOutlineDraw/__init__.py +++ b/src/Mod/Ship/shipOutlineDraw/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipUtils/Math.py b/src/Mod/Ship/shipUtils/Math.py index 018467c58f..6b89a5279a 100644 --- a/src/Mod/Ship/shipUtils/Math.py +++ b/src/Mod/Ship/shipUtils/Math.py @@ -1,57 +1,57 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** def isAprox(a,b,tol=0.000001): - """returns if a value is into (b-tol,b+tol) - @param a Value to compare. - @param b Center of valid interval - @param tol Radius of valid interval - @return True if a is into (b-tol,b+tol), False otherwise - """ - if (a < b+abs(tol)) and (a > b-abs(tol)): - return True - return False + """returns if a value is into (b-tol,b+tol) + @param a Value to compare. + @param b Center of valid interval + @param tol Radius of valid interval + @return True if a is into (b-tol,b+tol), False otherwise + """ + if (a < b+abs(tol)) and (a > b-abs(tol)): + return True + return False def isSamePoint(a,b,tol=0.000001): - """returns if two points are the same with a provided tolerance - @param a Point to compare. - @param b Reference point. - @param tol Radius of valid interval - @return True if twice point are the same, False otherwise - @note FreeCAD::Base::Vector types must be provided - """ - if isAprox(a.x,b.x,tol) and isAprox(a.y,b.y,tol) and isAprox(a.z,b.z,tol): - return True - return False + """returns if two points are the same with a provided tolerance + @param a Point to compare. + @param b Reference point. + @param tol Radius of valid interval + @return True if twice point are the same, False otherwise + @note FreeCAD::Base::Vector types must be provided + """ + if isAprox(a.x,b.x,tol) and isAprox(a.y,b.y,tol) and isAprox(a.z,b.z,tol): + return True + return False def isSameVertex(a,b,tol=0.0001): - """returns if two points are the same with a provided tolerance - @param a Point to compare. - @param b Reference point. - @param tol Radius of valid interval - @return True if twice point are the same, False otherwise - @note FreeCAD::Part::Vertex types must be provided - """ - if isAprox(a.X,b.X,tol) and isAprox(a.Y,b.Y,tol) and isAprox(a.Z,b.Z,tol): - return True - return False + """returns if two points are the same with a provided tolerance + @param a Point to compare. + @param b Reference point. + @param tol Radius of valid interval + @return True if twice point are the same, False otherwise + @note FreeCAD::Part::Vertex types must be provided + """ + if isAprox(a.X,b.X,tol) and isAprox(a.Y,b.Y,tol) and isAprox(a.Z,b.Z,tol): + return True + return False diff --git a/src/Mod/Ship/shipUtils/Paths.py b/src/Mod/Ship/shipUtils/Paths.py index 0ea1168ea0..e9798b50a8 100644 --- a/src/Mod/Ship/shipUtils/Paths.py +++ b/src/Mod/Ship/shipUtils/Paths.py @@ -1,55 +1,55 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import FreeCAD, FreeCADGui, os def modulePath(): - """returns the current Ship design module path - @return Module path""" - path1 = FreeCAD.ConfigGet("AppHomePath") + "Mod/Ship" - path2 = FreeCAD.ConfigGet("UserAppData") + "Mod/Ship" - if os.path.exists(path2): - return path2 - else: - return path1 + """returns the current Ship design module path + @return Module path""" + path1 = FreeCAD.ConfigGet("AppHomePath") + "Mod/Ship" + path2 = FreeCAD.ConfigGet("UserAppData") + "Mod/Ship" + if os.path.exists(path2): + return path2 + else: + return path1 def iconsPath(): - """returns the current Ship design module icons path - @return Icons path""" - path = modulePath() + "/Icons" - return path + """returns the current Ship design module icons path + @return Icons path""" + path = modulePath() + "/resources/icons" + return path def getPathFromFile(fileName): - """ Gets the directory path from a file name - @param fileName Name of the file - @return Directory path. - """ - if not fileName: - return '' - i = 1 - try: - while 1: - i = fileName.index("/", i+1) - except ValueError: - pass - return fileName[0:i+1] + """ Gets the directory path from a file name + @param fileName Name of the file + @return Directory path. + """ + if not fileName: + return '' + i = 1 + try: + while 1: + i = fileName.index("/", i+1) + except ValueError: + pass + return fileName[0:i+1] diff --git a/src/Mod/Ship/shipUtils/Translator.py b/src/Mod/Ship/shipUtils/Translator.py deleted file mode 100644 index 1fe7f61e8d..0000000000 --- a/src/Mod/Ship/shipUtils/Translator.py +++ /dev/null @@ -1,30 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import FreeCAD, FreeCADGui, os -from PyQt4 import QtCore,QtGui - -def translate(text,context="ship"): - "convenience function for Qt translator" - return QtGui.QApplication.translate(context, text, None, - QtGui.QApplication.UnicodeUTF8) diff --git a/src/Mod/Ship/simCreate/TaskPanel.py b/src/Mod/Ship/simCreate/TaskPanel.py index 38ea00b96a..7e200532b2 100644 --- a/src/Mod/Ship/simCreate/TaskPanel.py +++ b/src/Mod/Ship/simCreate/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -28,150 +28,158 @@ import FreeCADGui as Gui from PyQt4 import QtGui,QtCore # Module import SimInstance -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/simCreate/TaskPanel.ui" + def __init__(self): + self.ui = Paths.modulePath() + "/simCreate/TaskPanel.ui" - def accept(self): - form = self.form - # Read waves data - w = [] - for i in range(0,form.waves.rowCount() - 1): - item = form.waves.item(i,0) - A = item.text().toFloat()[0] - item = form.waves.item(i,1) - T = item.text().toFloat()[0] - item = form.waves.item(i,2) - phi = item.text().toFloat()[0] - item = form.waves.item(i,3) - head = item.text().toFloat()[0] - w.append([A,T,phi,head]) - obj = App.ActiveDocument.addObject("Part::FeaturePython","ShipSimulation") - sim = SimInstance.ShipSimulation(obj, - [form.length.value(), form.beam.value(), form.n.value()], - w) - SimInstance.ViewProviderShipSimulation(obj.ViewObject) - return True + def accept(self): + form = self.form + # Read waves data + w = [] + for i in range(0,form.waves.rowCount() - 1): + item = form.waves.item(i,0) + A = item.text().toFloat()[0] + item = form.waves.item(i,1) + T = item.text().toFloat()[0] + item = form.waves.item(i,2) + phi = item.text().toFloat()[0] + item = form.waves.item(i,3) + head = item.text().toFloat()[0] + w.append([A,T,phi,head]) + obj = App.ActiveDocument.addObject("Part::FeaturePython","ShipSimulation") + sim = SimInstance.ShipSimulation(obj, + [form.length.value(), form.beam.value(), form.n.value()], + w) + SimInstance.ViewProviderShipSimulation(obj.ViewObject) + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") - form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") - form.n = form.findChild(QtGui.QSpinBox, "N") - form.waves = form.findChild(QtGui.QTableWidget, "Waves") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onFS) - QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onFS) - QtCore.QObject.connect(form.n, QtCore.SIGNAL("valueChanged(int)"), self.onFS) - QtCore.QObject.connect(form.waves,QtCore.SIGNAL("cellChanged(int,int)"),self.onWaves); + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") + form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") + form.n = form.findChild(QtGui.QSpinBox, "N") + form.waves = form.findChild(QtGui.QTableWidget, "Waves") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onFS) + QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onFS) + QtCore.QObject.connect(form.n, QtCore.SIGNAL("valueChanged(int)"), self.onFS) + QtCore.QObject.connect(form.waves,QtCore.SIGNAL("cellChanged(int,int)"),self.onWaves); - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Create a new ship simulation")) - self.form.findChild(QtGui.QGroupBox, "FSDataBox").setTitle(Translator.translate("Free surface")) - self.form.findChild(QtGui.QLabel, "LengthLabel").setText(Translator.translate("Length")) - self.form.findChild(QtGui.QLabel, "BeamLabel").setText(Translator.translate("Beam")) - self.form.findChild(QtGui.QLabel, "NLabel").setText(Translator.translate("Number of points")) - self.form.findChild(QtGui.QGroupBox, "WavesDataBox").setTitle(Translator.translate("Waves")) - labels = [] - labels.append(Translator.translate("Amplitude") + " [m]") - labels.append(Translator.translate("Period") + " [s]") - labels.append(Translator.translate("Phase") + " [rad]") - labels.append(Translator.translate("Heading") + " [deg]") - self.form.waves.setHorizontalHeaderLabels(labels) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shipsim_create","Create a new ship simulation", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "FSDataBox").setTitle(QtGui.QApplication.translate("shipsim_create","Free surface", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "LengthLabel").setText(QtGui.QApplication.translate("shipsim_create","Length", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "BeamLabel").setText(QtGui.QApplication.translate("shipsim_create","Breadth", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "NLabel").setText(QtGui.QApplication.translate("shipsim_create","Number of points", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "WavesDataBox").setTitle(QtGui.QApplication.translate("shipsim_create","Waves", + None,QtGui.QApplication.UnicodeUTF8)) + labels = [] + labels.append(QtGui.QApplication.translate("shipsim_create","Amplitude", + None,QtGui.QApplication.UnicodeUTF8) + " [m]") + labels.append(QtGui.QApplication.translate("shipsim_create","Period", + None,QtGui.QApplication.UnicodeUTF8) + " [s]") + labels.append(QtGui.QApplication.translate("shipsim_create","Phase", + None,QtGui.QApplication.UnicodeUTF8) + " [rad]") + labels.append(QtGui.QApplication.translate("shipsim_create","Heading", + None,QtGui.QApplication.UnicodeUTF8) + " [deg]") + self.form.waves.setHorizontalHeaderLabels(labels) - def onFS(self, value): - """ Method called when free surface data is changed. - @param value Changed value. - """ - pass + def onFS(self, value): + """ Method called when free surface data is changed. + @param value Changed value. + """ + pass - def onWaves(self, row, column): - """ Method called when waves data is changed. - @param row Affected row. - @param col Affected column. - """ - item = self.form.waves.item(row,column) - # Row deletion - if column == 0: - if not item.text(): - self.form.waves.removeRow(row) - # Ensure that exist one empty item at the end - nRow = self.form.waves.rowCount() - if not nRow: - self.form.waves.setRowCount(1) - else: - last = self.form.waves.item(nRow-1,0) - if last: - if(last.text() != ''): - self.form.waves.setRowCount(nRow+1) - # Fields must be numbers - for i in range(0,self.form.waves.rowCount()-1): # Avoid last row - for j in range(0,self.form.waves.columnCount()): # Avoid name column - item = self.form.waves.item(i,j) - if not item: - item = QtGui.QTableWidgetItem('0.0') - self.form.waves.setItem(i,j,item) - continue - (number,flag) = item.text().toFloat() - if not flag: - item.setText('0.0') + def onWaves(self, row, column): + """ Method called when waves data is changed. + @param row Affected row. + @param col Affected column. + """ + item = self.form.waves.item(row,column) + # Row deletion + if column == 0: + if not item.text(): + self.form.waves.removeRow(row) + # Ensure that exist one empty item at the end + nRow = self.form.waves.rowCount() + if not nRow: + self.form.waves.setRowCount(1) + else: + last = self.form.waves.item(nRow-1,0) + if last: + if(last.text() != ''): + self.form.waves.setRowCount(nRow+1) + # Fields must be numbers + for i in range(0,self.form.waves.rowCount()-1): # Avoid last row + for j in range(0,self.form.waves.columnCount()): # Avoid name column + item = self.form.waves.item(i,j) + if not item: + item = QtGui.QTableWidgetItem('0.0') + self.form.waves.setItem(i,j,item) + continue + (number,flag) = item.text().toFloat() + if not flag: + item.setText('0.0') def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/simCreate/__init__.py b/src/Mod/Ship/simCreate/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/simCreate/__init__.py +++ b/src/Mod/Ship/simCreate/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/simPost/TaskPanel.py b/src/Mod/Ship/simPost/TaskPanel.py index 9c6ca53c33..a607c71472 100644 --- a/src/Mod/Ship/simPost/TaskPanel.py +++ b/src/Mod/Ship/simPost/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -30,127 +30,127 @@ from PyQt4 import QtGui,QtCore import pyopencl as cl # Module import SimInstance -from shipUtils import Paths, Translator +from shipUtils import Paths from simRun import Simulation Sim = Simulation.FreeCADShipSimulation -# from Simulation import FreeCADShipSimulation as Sim class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/simPost/TaskPanel.ui" + def __init__(self): + self.ui = Paths.modulePath() + "/simPost/TaskPanel.ui" - def accept(self): - return True + def accept(self): + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.time = form.findChild(QtGui.QLabel, "TimeLabel") - form.first = form.findChild(QtGui.QPushButton, "First") - form.prev = form.findChild(QtGui.QPushButton, "Prev") - form.now = form.findChild(QtGui.QPushButton, "Now") - form.next = form.findChild(QtGui.QPushButton, "Next") - form.last = form.findChild(QtGui.QPushButton, "Last") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.first, QtCore.SIGNAL("pressed()"), self.onFirst) - QtCore.QObject.connect(form.prev, QtCore.SIGNAL("pressed()"), self.onPrev) - QtCore.QObject.connect(form.now, QtCore.SIGNAL("pressed()"), self.onNow) - QtCore.QObject.connect(form.next, QtCore.SIGNAL("pressed()"), self.onNext) - QtCore.QObject.connect(form.last, QtCore.SIGNAL("pressed()"), self.onLast) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.time = form.findChild(QtGui.QLabel, "TimeLabel") + form.first = form.findChild(QtGui.QPushButton, "First") + form.prev = form.findChild(QtGui.QPushButton, "Prev") + form.now = form.findChild(QtGui.QPushButton, "Now") + form.next = form.findChild(QtGui.QPushButton, "Next") + form.last = form.findChild(QtGui.QPushButton, "Last") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.first, QtCore.SIGNAL("pressed()"), self.onFirst) + QtCore.QObject.connect(form.prev, QtCore.SIGNAL("pressed()"), self.onPrev) + QtCore.QObject.connect(form.now, QtCore.SIGNAL("pressed()"), self.onNow) + QtCore.QObject.connect(form.next, QtCore.SIGNAL("pressed()"), self.onNext) + QtCore.QObject.connect(form.last, QtCore.SIGNAL("pressed()"), self.onLast) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Track simulation")) - self.form.findChild(QtGui.QPushButton, "Now").setText(Translator.translate("Now")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shipsim_track","Track simulation", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QPushButton, "Now").setText(QtGui.QApplication.translate("shipsim_track","Now", + None,QtGui.QApplication.UnicodeUTF8)) - def onFirst(self): - """ Called when first frame button is pressed. - """ + def onFirst(self): + """ Called when first frame button is pressed. + """ - def onPrev(self): - """ Called when previous frame button is pressed. - """ + def onPrev(self): + """ Called when previous frame button is pressed. + """ - def onNow(self): - """ Called when actual frame button is pressed. - """ - sim = Sim() - pos = sim.sim.FS_Position[:] - nx = sim.FS['Nx'] - ny = sim.FS['Ny'] - for i in range(0, nx): - for j in range(0, ny): - pos[i*ny+j].z = float(sim.FS['pos'][i,j][2]) - sim.sim.FS_Position = pos[:] - App.ActiveDocument.recompute() - self.form.time.setText("t = %g s" % (sim.t)) + def onNow(self): + """ Called when actual frame button is pressed. + """ + sim = Sim() + pos = sim.sim.FS_Position[:] + nx = sim.FS['Nx'] + ny = sim.FS['Ny'] + for i in range(0, nx): + for j in range(0, ny): + pos[i*ny+j].z = float(sim.FS['pos'][i,j][2]) + sim.sim.FS_Position = pos[:] + App.ActiveDocument.recompute() + self.form.time.setText("t = %g s" % (sim.t)) - def onNext(self): - """ Called when next frame button is pressed. - """ + def onNext(self): + """ Called when next frame button is pressed. + """ - def onLast(self): - """ Called when last frame button is pressed. - """ + def onLast(self): + """ Called when last frame button is pressed. + """ def createTask(): - try: - simulator = Sim() - except: - msg = Translator.translate("Can't find any active simulation!\n") - App.Console.PrintError(msg) - return - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + try: + simulator = Sim() + except: + msg = QtGui.QApplication.translate("ship_console", "Can't find any active simulation", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/simPost/__init__.py b/src/Mod/Ship/simPost/__init__.py index 64c597c02c..b153dc051f 100644 --- a/src/Mod/Ship/simPost/__init__.py +++ b/src/Mod/Ship/simPost/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,9 +32,9 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() def stop(): - """ Stops the simulation """ - TaskPanel.stopSimulation() + """ Stops the simulation """ + TaskPanel.stopSimulation() diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index aa8373df89..06773fc4e1 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -1,29 +1,32 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** from math import * import threading +# Qt library +from PyQt4 import QtGui,QtCore + # pyOpenCL import pyopencl as cl import numpy as np @@ -34,96 +37,101 @@ from FreeCAD import Base, Vector import Part # Ship design module -from shipUtils import Paths, Translator, Math +from shipUtils import Paths, Math class Singleton(type): - def __init__(cls, name, bases, dct): - cls.__instance = None - type.__init__(cls, name, bases, dct) + def __init__(cls, name, bases, dct): + cls.__instance = None + type.__init__(cls, name, bases, dct) - def __call__(cls, *args, **kw): - if cls.__instance is None: - cls.__instance = type.__call__(cls, *args,**kw) - return cls.__instance + def __call__(cls, *args, **kw): + if cls.__instance is None: + cls.__instance = type.__call__(cls, *args,**kw) + return cls.__instance class FreeCADShipSimulation(threading.Thread): - __metaclass__ = Singleton - def __init__ (self, device, endTime, output, simInstance, FSmesh, waves): - """ Thread constructor. - @param device Device to use. - @param endTime Maximum simulation time. - @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. - @param simInstance Simulaation instance. - @param FSmesh Free surface mesh faces. - @param waves Waves parameters (A,T,phi,heading) - """ - threading.Thread.__init__(self) - # Setup as stopped - self.active = False - # Build OpenCL context and command queue - self.device = device - if self.device == None: # Can't use OpenCL - self.context = None - self.queue = None - else: - self.context = cl.Context(devices=[self.device]) - self.queue = cl.CommandQueue(self.context) - # Storage data - self.endTime = endTime - self.output = output - self.sim = simInstance - self.FSmesh = FSmesh - self.waves = waves - - def run(self): - """ Runs the simulation. - """ - self.active = True - # Simulation stuff - if self.device == None: - from Sim import * - else: - from clSim import * - msg = Translator.translate("\t[Sim]: Initializating...\n") - FreeCAD.Console.PrintMessage(msg) - init = simInitialization(self.FSmesh,self.waves,self.context,self.queue) - matGen = simMatrixGen(self.context,self.queue) - solver = simComputeSources(self.context,self.queue) - fsEvol = simFSEvolution(self.context,self.queue) - A = init.A - FS = init.fs - waves = init.waves - dt = init.dt - self.t = 0.0 - self.FS = FS - nx = FS['Nx'] - ny = FS['Ny'] - msg = Translator.translate("\t[Sim]: Iterating...\n") - FreeCAD.Console.PrintMessage(msg) - while self.active and self.t < self.endTime: - msg = Translator.translate("\t\t[Sim]: Generating linear system matrix...\n") - FreeCAD.Console.PrintMessage(msg) - matGen.execute(FS, A) - msg = Translator.translate("\t\t[Sim]: Solving linear systems...\n") - FreeCAD.Console.PrintMessage(msg) - solver.execute(FS, A) - msg = Translator.translate("\t\t[Sim]: Time integrating...\n") - FreeCAD.Console.PrintMessage(msg) - fsEvol.execute(FS, waves, dt, self.t) - self.t = self.t + dt - FreeCAD.Console.PrintMessage('t = %g s\n' % (self.t)) - # Set thread as stopped (and prepare it to restarting) - self.active = False - threading.Event().set() - threading.Thread.__init__(self) + __metaclass__ = Singleton + def __init__ (self, device, endTime, output, simInstance, FSmesh, waves): + """ Thread constructor. + @param device Device to use. + @param endTime Maximum simulation time. + @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. + @param simInstance Simulaation instance. + @param FSmesh Free surface mesh faces. + @param waves Waves parameters (A,T,phi,heading) + """ + threading.Thread.__init__(self) + # Setup as stopped + self.active = False + # Build OpenCL context and command queue + self.device = device + if self.device == None: # Can't use OpenCL + self.context = None + self.queue = None + else: + self.context = cl.Context(devices=[self.device]) + self.queue = cl.CommandQueue(self.context) + # Storage data + self.endTime = endTime + self.output = output + self.sim = simInstance + self.FSmesh = FSmesh + self.waves = waves + + def run(self): + """ Runs the simulation. + """ + self.active = True + # Simulation stuff + if self.device == None: + from Sim import * + else: + from clSim import * + msg = QtGui.QApplication.translate("ship_console","Initializating", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t[Sim]: " + msg + "...\n") + init = simInitialization(self.FSmesh,self.waves,self.context,self.queue) + matGen = simMatrixGen(self.context,self.queue) + solver = simComputeSources(self.context,self.queue) + fsEvol = simFSEvolution(self.context,self.queue) + A = init.A + FS = init.fs + waves = init.waves + dt = init.dt + self.t = 0.0 + self.FS = FS + nx = FS['Nx'] + ny = FS['Ny'] + msg = QtGui.QApplication.translate("ship_console","Iterating", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t[Sim]: " + msg + "...\n") + while self.active and self.t < self.endTime: + msg = QtGui.QApplication.translate("ship_console","Generating linear system matrix", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t\t[Sim]: " + msg + "...\n") + matGen.execute(FS, A) + msg = QtGui.QApplication.translate("ship_console","Solving linear systems", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t\t[Sim]: " + msg + "...\n") + solver.execute(FS, A) + msg = QtGui.QApplication.translate("ship_console","Time integrating", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t\t[Sim]: " + msg + "...\n") + fsEvol.execute(FS, waves, dt, self.t) + self.t = self.t + dt + FreeCAD.Console.PrintMessage('\t[Sim]: t = %g s\n' % (self.t)) + # Set thread as stopped (and prepare it to restarting) + self.active = False + threading.Event().set() + threading.Thread.__init__(self) - def stop(self): - """ Call to stop execution. - """ - self.active = False - - def isRunning(self): - """ Report thread state - @return True if thread is running, False otherwise. - """ - return self.active + def stop(self): + """ Call to stop execution. + """ + self.active = False + + def isRunning(self): + """ Report thread state + @return True if thread is running, False otherwise. + """ + return self.active diff --git a/src/Mod/Ship/simRun/TaskPanel.py b/src/Mod/Ship/simRun/TaskPanel.py index 58faa2b2d5..628347458e 100644 --- a/src/Mod/Ship/simRun/TaskPanel.py +++ b/src/Mod/Ship/simRun/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -30,175 +30,189 @@ from PyQt4 import QtGui,QtCore import pyopencl as cl # Module import SimInstance -from shipUtils import Paths, Translator +from shipUtils import Paths from Simulation import FreeCADShipSimulation as Sim import time class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/simRun/TaskPanel.ui" - self.sim = False + def __init__(self): + self.ui = Paths.modulePath() + "/simRun/TaskPanel.ui" + self.sim = False - def accept(self): - msg = Translator.translate("Building data...\n") - App.Console.PrintMessage(msg) - # Get GUI data - endTime = self.form.time.value() - output = [] - output.append(self.form.output.value()) - output.append(self.form.outputType.currentIndex()) - devId = self.form.device.currentIndex() - 1 # First is not OpenCL - # Get OpenCL device - device = None - count = 0 - platforms = cl.get_platforms() - for p in platforms: - devs = p.get_devices() - for d in devs: - if count == devId: - device = d - count = count + 1 - # Get free surfaces data - FSMesh = SimInstance.FSMesh(self.sim) - wData = self.sim.Waves - wDir = self.sim.Waves_Dir - waves = [] - for i in range(0,len(wData)): - waves.append([wData[i].x, wData[i].y, wData[i].z, wDir[i]]) - msg = Translator.translate("Launching simulation...\n") - App.Console.PrintMessage(msg) - # Build simulation thread - simulator = Sim(device, endTime, output, self.sim, FSMesh, waves) - simulator.start() - msg = Translator.translate("Done!\n") - App.Console.PrintMessage(msg) - return True + def accept(self): + msg = QtGui.QApplication.translate("ship_console","Building data", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + "...\n") + # Get GUI data + endTime = self.form.time.value() + output = [] + output.append(self.form.output.value()) + output.append(self.form.outputType.currentIndex()) + devId = self.form.device.currentIndex() - 1 # First is not OpenCL + # Get OpenCL device + device = None + count = 0 + platforms = cl.get_platforms() + for p in platforms: + devs = p.get_devices() + for d in devs: + if count == devId: + device = d + count = count + 1 + # Get free surfaces data + FSMesh = SimInstance.FSMesh(self.sim) + wData = self.sim.Waves + wDir = self.sim.Waves_Dir + waves = [] + for i in range(0,len(wData)): + waves.append([wData[i].x, wData[i].y, wData[i].z, wDir[i]]) + msg = QtGui.QApplication.translate("ship_console","Launching simulation", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + "...\n") + # Build simulation thread + simulator = Sim(device, endTime, output, self.sim, FSMesh, waves) + simulator.start() + msg = QtGui.QApplication.translate("ship_console","Done", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + "!\n") + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.time = form.findChild(QtGui.QDoubleSpinBox, "SimTime") - form.output = form.findChild(QtGui.QDoubleSpinBox, "Output") - form.outputType = form.findChild(QtGui.QComboBox, "OutputType") - form.device = form.findChild(QtGui.QComboBox, "Device") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - # QtCore.QObject.connect(form.time, QtCore.SIGNAL("valueChanged(double)"), self.onData) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.time = form.findChild(QtGui.QDoubleSpinBox, "SimTime") + form.output = form.findChild(QtGui.QDoubleSpinBox, "Output") + form.outputType = form.findChild(QtGui.QComboBox, "OutputType") + form.device = form.findChild(QtGui.QComboBox, "Device") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + # QtCore.QObject.connect(form.time, QtCore.SIGNAL("valueChanged(double)"), self.onData) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship simulation instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShipSimulation") - except ValueError: - continue - if obj.IsShipSimulation: - # Test if another ship already selected - if self.sim: - msg = Translator.translate("More than one ship simulation selected (extra simulations will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.sim = obj - # Test if any valid ship was selected - if not self.sim: - msg = Translator.translate("Ship simulation instance must be selected (no valid simulation found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get the list of devices - self.form.device.addItem("CPU based version (No OpenCL)") - devices = [] - platforms = cl.get_platforms() - for p in platforms: - devs = p.get_devices() - for d in devs: - devices.append([p,d]) - dname = d.get_info(cl.device_info.NAME) - pname = p.get_info(cl.platform_info.NAME) - self.form.device.addItem(dname + " (" + pname + ")") - if not len(devices): - msg = Translator.translate("Can't find OpenCL devices\n") - App.Console.PrintWarning(msg) - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", "Ship simulation instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShipSimulation") + except ValueError: + continue + if obj.IsShipSimulation: + # Test if another ship already selected + if self.sim: + msg = QtGui.QApplication.translate("ship_console", + "More than one ship simulation selected (extra simulations will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.sim = obj + # Test if any valid ship was selected + if not self.sim: + msg = QtGui.QApplication.translate("ship_console", + "Ship simulation instance must be selected (no valid simulation found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get the list of devices + self.form.device.addItem("CPU based version (No OpenCL)") + devices = [] + platforms = cl.get_platforms() + for p in platforms: + devs = p.get_devices() + for d in devs: + devices.append([p,d]) + dname = d.get_info(cl.device_info.NAME) + pname = p.get_info(cl.platform_info.NAME) + self.form.device.addItem(dname + " (" + pname + ")") + if not len(devices): + msg = QtGui.QApplication.translate("ship_console", "Can't find OpenCL devices", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Run the simulation")) - self.form.findChild(QtGui.QLabel, "SimTimeLabel").setText(Translator.translate("Simulation time")) - self.form.findChild(QtGui.QLabel, "OutputLabel").setText(Translator.translate("Output")) - self.form.findChild(QtGui.QLabel, "DeviceLabel").setText(Translator.translate("OpenCL device")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shipsim_stop","Run the simulation", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "SimTimeLabel").setText(QtGui.QApplication.translate("shipsim_stop","Simulation time", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "OutputLabel").setText(QtGui.QApplication.translate("shipsim_stop","Output", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "DeviceLabel").setText(QtGui.QApplication.translate("shipsim_stop","OpenCL device", + None,QtGui.QApplication.UnicodeUTF8)) def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel def stopSimulation(): - try: - simulator = Sim() - if not simulator.isRunning(): - msg = Translator.translate("Simulation already stopped\n") - App.Console.PrintWarning(msg) - return - except: - msg = Translator.translate("Any active simulation to stop!\n") - App.Console.PrintError(msg) - return - simulator.stop() - msg = Translator.translate("Simulation will stop at the end of actual iteration\n") - App.Console.PrintMessage(msg) + try: + simulator = Sim() + if not simulator.isRunning(): + msg = QtGui.QApplication.translate("ship_console", "Simulation already stopped", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + return + except: + msg = QtGui.QApplication.translate("ship_console", "Any active simulation to stop", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return + simulator.stop() + msg = QtGui.QApplication.translate("ship_console", "Simulation will stop at the end of actual iteration", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + '\n') diff --git a/src/Mod/Ship/simRun/__init__.py b/src/Mod/Ship/simRun/__init__.py index 64c597c02c..b153dc051f 100644 --- a/src/Mod/Ship/simRun/__init__.py +++ b/src/Mod/Ship/simRun/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,9 +32,9 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() def stop(): - """ Stops the simulation """ - TaskPanel.stopSimulation() + """ Stops the simulation """ + TaskPanel.stopSimulation() diff --git a/src/Mod/Ship/tankCreateTank/TaskPanel.py b/src/Mod/Ship/tankCreateTank/TaskPanel.py index 15305ca901..e03f897d9b 100644 --- a/src/Mod/Ship/tankCreateTank/TaskPanel.py +++ b/src/Mod/Ship/tankCreateTank/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -29,140 +29,148 @@ import Part from PyQt4 import QtGui,QtCore # Module from TankInstance import * -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/tankCreateTank/TaskPanel.ui" + def __init__(self): + self.ui = Paths.modulePath() + "/tankCreateTank/TaskPanel.ui" - def accept(self): - # Create new ship instance - obj = App.ActiveDocument.addObject("Part::FeaturePython","Tank") - ShipTank(obj, self.solid, self.form.level.value(), self.form.dens.value()) - if not obj.IsShipTank: - msg = Translator.translate("Tank has not been created.\n") - App.Console.PrintError(msg) - ViewProviderShipTank(obj.ViewObject) - App.ActiveDocument.recompute() - return True + def accept(self): + # Create new ship instance + obj = App.ActiveDocument.addObject("Part::FeaturePython","Tank") + ShipTank(obj, self.solid, self.form.level.value(), self.form.dens.value()) + if not obj.IsShipTank: + msg = QtGui.QApplication.translate("ship_console", "Tank has not been created", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + ViewProviderShipTank(obj.ViewObject) + App.ActiveDocument.recompute() + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.level = form.findChild(QtGui.QDoubleSpinBox, "Level") - form.dens = form.findChild(QtGui.QDoubleSpinBox, "Density") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.level, QtCore.SIGNAL("valueChanged(double)"), self.onLevel) - QtCore.QObject.connect(form.dens , QtCore.SIGNAL("valueChanged(double)"), self.onDens) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.level = form.findChild(QtGui.QDoubleSpinBox, "Level") + form.dens = form.findChild(QtGui.QDoubleSpinBox, "Density") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.level, QtCore.SIGNAL("valueChanged(double)"), self.onLevel) + QtCore.QObject.connect(form.dens , QtCore.SIGNAL("valueChanged(double)"), self.onDens) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Get selected geometry. - @return False if sucessfully find valid geometry. - """ - self.solid = None - solids = [] - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Tank objects can only be created on top of structure geometry (no object selected).\n") - App.Console.PrintError(msg) - msg = Translator.translate("Please create a tank geometry before using this tool.\n") - App.Console.PrintError(msg) - return True - for i in range(0, len(selObjs)): - solid = selObjs[i] - if solid.isDerivedFrom('Part::Feature'): - # Get shape - shape = solid.Shape - if not shape: - continue - solid = shape - if not solid.isDerivedFrom('Part::TopoShape'): - return None - # Get shells - shells = solid.Shells - if not shells: - continue - # Build solids - for s in shells: - solids.append(Part.Solid(s)) - if not solids: - msg = Translator.translate("Ship objects can only be created on top of structure geometry (no solids can't be computed).\n") - App.Console.PrintError(msg) - msg = Translator.translate("Please create or download a tank geometry before using this tool\n") - App.Console.PrintError(msg) - return True - self.solid = Part.CompSolid(solids) - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Get selected geometry. + @return False if sucessfully find valid geometry. + """ + self.solid = None + solids = [] + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", + "Tank objects can only be created on top of structure geometry (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + msg = QtGui.QApplication.translate("ship_console", + "Please create a tank geometry before using this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0, len(selObjs)): + solid = selObjs[i] + if solid.isDerivedFrom('Part::Feature'): + # Get shape + shape = solid.Shape + if not shape: + continue + solid = shape + if not solid.isDerivedFrom('Part::TopoShape'): + return None + # Get shells + shells = solid.Shells + if not shells: + continue + # Build solids + for s in shells: + solids.append(Part.Solid(s)) + if not solids: + msg = QtGui.QApplication.translate("ship_console", + "Tank objects can only be created on top of structure geometry (no solids can't be computed)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + msg = QtGui.QApplication.translate("ship_console", + "Please create a tank geometry before using this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + self.solid = Part.CompSolid(solids) + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Create a new tank")) - name = Translator.translate("Filling level") + " (%)" - self.form.findChild(QtGui.QLabel, "LevelLabel").setText(name) - name = '\n' - name = name + Translator.translate("Density") - name = name + '(kg/m3)' - self.form.findChild(QtGui.QLabel, "DensityLabel").setText(name) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shiptank_create","Create a new tank", + None,QtGui.QApplication.UnicodeUTF8)) + name = QtGui.QApplication.translate("shiptank_create","Filling level", None,QtGui.QApplication.UnicodeUTF8) + " (%)" + self.form.findChild(QtGui.QLabel, "LevelLabel").setText(name) + name = '\n' + name = name + QtGui.QApplication.translate("shiptank_create","Fluid density", None,QtGui.QApplication.UnicodeUTF8) + name = name + '(kg/m3)' + self.form.findChild(QtGui.QLabel, "DensityLabel").setText(name) - def onLevel(self, value): - """ Method called when tank filling level has been modified. - @param value Changed value. - """ - pass + def onLevel(self, value): + """ Method called when tank filling level has been modified. + @param value Changed value. + """ + pass - def onDens(self, value): - """ Method called when fluid density has been modified. - @param value Changed value. - """ - pass + def onDens(self, value): + """ Method called when fluid density has been modified. + @param value Changed value. + """ + pass def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/tankCreateTank/TaskPanel.ui b/src/Mod/Ship/tankCreateTank/TaskPanel.ui index 635af00900..a5c246863b 100644 --- a/src/Mod/Ship/tankCreateTank/TaskPanel.ui +++ b/src/Mod/Ship/tankCreateTank/TaskPanel.ui @@ -15,124 +15,114 @@ - - - - - - 240 - 160 - - - - Fluid - - - false - - - - - 0 - 20 - 241 - 141 - + + + + 240 + 160 + + + + Fluid + + + false + + + + + + 6 - - - 6 - - - QLayout::SetDefaultConstraint - - - - - QLayout::SetDefaultConstraint - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Filling level (%) - - - - - - - 1 - - - 100.000000000000000 - - - 1.000000000000000 - - - - - - - - - 10 - - - 0 - - - 10 - - - 0 - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + + QLayout::SetDefaultConstraint + + + + + QLayout::SetDefaultConstraint + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Filling level (%) + + + + + + + 1 + + + 100.000000000000000 + + + 1.000000000000000 + + + + + + + + + 10 + + + 0 + + + 10 + + + 0 + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Density (kg/m<span style=" vertical-align:super;">3</span>)</p></body></html> - - - - - - - 1 - - - 1000000.000000000000000 - - - 10.000000000000000 - - - 998.000000000000000 - - - - - - - - - - + + + + + + + 1 + + + 1000000.000000000000000 + + + 10.000000000000000 + + + 998.000000000000000 + + + + + + + + + diff --git a/src/Mod/Ship/tankCreateTank/__init__.py b/src/Mod/Ship/tankCreateTank/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/tankCreateTank/__init__.py +++ b/src/Mod/Ship/tankCreateTank/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/tankGZ/Plot.py b/src/Mod/Ship/tankGZ/Plot.py deleted file mode 100644 index 320f201854..0000000000 --- a/src/Mod/Ship/tankGZ/Plot.py +++ /dev/null @@ -1,186 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import os -# FreeCAD modules -import FreeCAD,FreeCADGui -from FreeCAD import Base -import Part, Image, ImageGui -# FreeCADShip modules -from shipUtils import Paths, Translator - -header = """ ################################################################# - - ##### #### ### #### ##### # # ### #### - # # # # # # # # # # # # - # ## #### #### # # # # # # # # # # # - #### # # # # # # # ##### # # ## ## ##### # #### - # # #### #### # # # # # # # # # # - # # # # # # # # # # # # # # - # # #### #### ### # # #### ##### # # ### # - - ################################################################# -""" - -class Plot(object): - def __init__(self, x, y, disp, draft, trim): - """ Constructor. performs plot and show it (Using pyxplot). - @param x Roll angles [deg]. - @param y GZ value [m]. - @param disp Ship displacement [tons]. - @param draft Ship draft [m]. - @param trim Ship trim angle [deg]. - """ - if self.createDirectory(): - return - if self.saveData(x,y): - return - if self.saveLayout(x,y, disp, draft, trim): - return - if self.execute(): - return - ImageGui.open(self.path + 'gz.png') - - def createDirectory(self): - """ Create needed folder to write data and scripts. - @return True if error happens. - """ - self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" - if not os.path.exists(self.path): - os.makedirs(self.path) - if not os.path.exists(self.path): - msg = Translator.translate("Can't create '" + self.path + "' folder.\n") - FreeCAD.Console.PrintError(msg) - return False - - def saveData(self,x,y): - """ Write data file. - @param x Roll angles. - @param y GZ value. - @return True if error happens. - """ - # Open the file - filename = self.path + 'gz.dat' - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Print header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains transversal GZ stability parameter, filled with following columns:\n") - Output.write(" # 1: Roll angles [deg]\n") - Output.write(" # 2: GZ [m]\n") - Output.write(" #\n") - Output.write(" #################################################################\n") - # Print data - if len(x) < 2: - msg = Translator.translate("Not enough data to plot.\n") - FreeCAD.Console.PrintError(msg) - return True - for i in range(0, len(x)): - string = "%f %f\n" % (x[i], y[i]) - Output.write(string) - # Close file - Output.close() - self.dataFile = filename - msg = Translator.translate("Data saved at '" + self.dataFile + "'.\n") - FreeCAD.Console.PrintMessage(msg) - return False - - def saveLayout(self, x, y, disp, draft, trim): - """ Prints the data output. - @param x Roll angles. - @param y GZ value. - @param disp Ship displacement. - @param draft Ship draft. - @param trim Ship trim angle. - @return True if error happens. - """ - filename = self.path + 'gz.pyxplot' - # Open the file - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Write header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains a script to plot transversal GZ stability parameter.\n") - Output.write(" # To use it execute:\n") - Output.write(" #\n") - Output.write(" # pyxplot %s\n" % (filename)) - Output.write(" #\n") - Output.write(" #################################################################\n") - # Write general options for hydrostatics - Output.write("set numeric display latex\n") - Output.write("set output '%s'\n" % (self.path + 'gz.eps')) - Output.write("set nokey\n") - Output.write("set grid\n") - Output.write("# X axis\n") - Output.write("set xlabel '$roll$ / degrees'\n") - Output.write("set xtic\n") - Output.write("# Y axis\n") - Output.write("set ylabel '$GZ$ / m'\n") - Output.write("set ytic\n") - Output.write("# Line styles\n") - Output.write("set style 1 line linetype 1 linewidth 2 colour rgb (0):(0):(0)\n") - # Additional data - Output.write("# Additional data\n") - Output.write("set label (1) '$\\Delta = %g \\mathrm{tons}$' %f,%f\n" % (disp, x[0] + 0.65*(x[-1] - x[0]), min(y) + 0.95*(max(y)-min(y)))) - Output.write("set label (2) '$T = %g \\mathrm{m}$' %f,%f\n" % (draft, x[0] + 0.65*(x[-1] - x[0]), min(y) + 0.85*(max(y)-min(y)))) - Output.write("set label (3) '$Trim = %g^\\circ$' %f,%f\n" % (trim, x[0] + 0.65*(x[-1] - x[0]), min(y) + 0.75*(max(y)-min(y)))) - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 1:2 title 'GZ' axes x1y1 with lines style 1\n" % (self.dataFile)) - # Close file - self.layoutFile = filename - Output.close() - return False - - def execute(self): - """ Calls pyxplot in order to plot an save an image. - @return True if error happens. - """ - filename = self.path + 'gz' - comm = "pyxplot %s" % (self.layoutFile) - if os.system(comm): - msg = Translator.translate("Can't execute pyxplot. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Plot will not generated\n") - FreeCAD.Console.PrintError(msg) - return True - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - return False diff --git a/src/Mod/Ship/tankGZ/PlotAux.py b/src/Mod/Ship/tankGZ/PlotAux.py new file mode 100644 index 0000000000..e74a8375f3 --- /dev/null +++ b/src/Mod/Ship/tankGZ/PlotAux.py @@ -0,0 +1,154 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import os +# Qt library +from PyQt4 import QtGui,QtCore +# FreeCAD modules +import FreeCAD,FreeCADGui +from FreeCAD import Base +import Part, Image, ImageGui +# FreeCADShip modules +from shipUtils import Paths + +header = """ ################################################################# + + ##### #### ### #### ##### # # ### #### + # # # # # # # # # # # # + # ## #### #### # # # # # # # # # # # + #### # # # # # # # ##### # # ## ## ##### # #### + # # #### #### # # # # # # # # # # + # # # # # # # # # # # # # # + # # #### #### ### # # #### ##### # # ### # + + ################################################################# +""" + +class Plot(object): + def __init__(self, x, y, disp, draft, trim): + """ Constructor. performs plot and show it (Using pyxplot). + @param x Roll angles [deg]. + @param y GZ value [m]. + @param disp Ship displacement [tons]. + @param draft Ship draft [m]. + @param trim Ship trim angle [deg]. + """ + # Try to plot + self.plot(x,y,disp,draft,trim) + # Save data + if self.createDirectory(): + return + if self.saveData(x,y): + return + + def plot(self, x, y, disp, draft, trim): + """ Perform GZ stability plot. + @param x X coordinates. + @param y Transversal areas. + @param disp Ship displacement [tons]. + @param draft Ship draft [m]. + @param trim Ship trim angle [deg]. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('GZ') + except ImportError: + msg = QtGui.QApplication.translate("ship_console", "Plot module is disabled, can't perform plot", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + '\n') + return True + # Plot areas curve + gz = Plot.plot(x,y,r'GZ') + gz.line.set_linestyle('-') + gz.line.set_linewidth(3.0) + gz.line.set_color((0.0, 0.0, 0.0)) + # Add some additional data + ax = Plot.axes() + addInfo = r"""$\bigtriangleup = %g \; \mathrm{tons}$ +$T = %g \; \mathrm{m}$ +$Trim = %g^\circ$""" % (disp, draft, trim) + ax.text(x[-1] - 0.001*(x[-1] - x[0]), max(y) - 0.01*(max(y)-min(y)), addInfo, + verticalalignment='top',horizontalalignment='right', fontsize=20) + # Write axes titles + Plot.xlabel(r'$x \; \mathrm{m}$') + Plot.ylabel(r'$GZ \; \mathrm{m}$') + ax.xaxis.label.set_fontsize(20) + ax.yaxis.label.set_fontsize(20) + # Show grid + Plot.grid(True) + # End + plt.update() + return False + + def createDirectory(self): + """ Create needed folder to write data and scripts. + @return True if error happens. + """ + self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" + if not os.path.exists(self.path): + os.makedirs(self.path) + if not os.path.exists(self.path): + msg = QtGui.QApplication.translate("ship_console", "Can't create folder", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ self.path + "\'\n") + return True + return False + + def saveData(self,x,y): + """ Write data file. + @param x Roll angles. + @param y GZ value. + @return True if error happens. + """ + # Open the file + filename = self.path + 'gz.dat' + try: + Output = open(filename, "w") + except IOError: + msg = QtGui.QApplication.translate("ship_console", "Can't write to file", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ filename + "\'\n") + return True + # Print header + Output.write(header) + Output.write(" #\n") + Output.write(" # File automatically exported by FreeCAD-Ship\n") + Output.write(" # This file contains transversal GZ stability parameter, filled with following columns:\n") + Output.write(" # 1: Roll angles [deg]\n") + Output.write(" # 2: GZ [m]\n") + Output.write(" #\n") + Output.write(" #################################################################\n") + # Print data + for i in range(0, len(x)): + string = "%f %f\n" % (x[i], y[i]) + Output.write(string) + # Close file + Output.close() + self.dataFile = filename + msg = QtGui.QApplication.translate("ship_console", "Data saved", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + ':\n\t' + "\'"+ self.dataFile + "\'\n") + return False + diff --git a/src/Mod/Ship/tankGZ/TaskPanel.py b/src/Mod/Ship/tankGZ/TaskPanel.py index a27b5a0331..ce7943139e 100644 --- a/src/Mod/Ship/tankGZ/TaskPanel.py +++ b/src/Mod/Ship/tankGZ/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import math @@ -28,350 +28,377 @@ import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore # Module -from Plot import * +import PlotAux from Instance import * from TankInstance import * -from shipUtils import Paths, Translator +from shipUtils import Paths from shipHydrostatics import Tools as Hydrostatics class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/tankGZ/TaskPanel.ui" - self.ship = None - self.tanks = {} + def __init__(self): + self.ui = Paths.modulePath() + "/tankGZ/TaskPanel.ui" + self.ship = None + self.tanks = {} - def accept(self): - if not self.ship: - return False - # Get general data - disp = self.computeDisplacement() - draft = self.computeDraft(disp[0], self.form.trim.value()) - trim = self.form.trim.value() - # Get roll angles - roll0 = self.form.roll0.value() - roll1 = self.form.roll1.value() - nRoll = self.form.nRoll.value() - dRoll = (roll1 - roll0) / (nRoll - 1) - roll = [] - GZ = [] - msg = Translator.translate("Computing GZ...\n") - App.Console.PrintMessage(msg) - for i in range(0, nRoll): - App.Console.PrintMessage("\t%d/%d\n" % (i+1,nRoll)) - roll.append(i*dRoll) - GZ.append(self.computeGZ(draft[0], trim, roll[-1])) - Plot(roll, GZ, disp[0]/1000.0, draft[0], trim) - return True + def accept(self): + if not self.ship: + return False + # Get general data + disp = self.computeDisplacement() + draft = self.computeDraft(disp[0], self.form.trim.value()) + trim = self.form.trim.value() + # Get roll angles + roll0 = self.form.roll0.value() + roll1 = self.form.roll1.value() + nRoll = self.form.nRoll.value() + dRoll = (roll1 - roll0) / (nRoll - 1) + roll = [] + GZ = [] + msg = QtGui.QApplication.translate("ship_console","Computing GZ", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + "...\n") + for i in range(0, nRoll): + App.Console.PrintMessage("\t%d/%d\n" % (i+1,nRoll)) + roll.append(i*dRoll) + GZ.append(self.computeGZ(draft[0], trim, roll[-1])) + PlotAux.Plot(roll, GZ, disp[0]/1000.0, draft[0], trim) + return True - def reject(self): - if not self.ship: - return False - return True + def reject(self): + if not self.ship: + return False + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.tanks = form.findChild(QtGui.QListWidget, "Tanks") - form.disp = form.findChild(QtGui.QLabel, "DisplacementLabel") - form.draft = form.findChild(QtGui.QLabel, "DraftLabel") - form.update = form.findChild(QtGui.QPushButton, "UpdateData") - form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") - form.autoTrim = form.findChild(QtGui.QPushButton, "TrimAutoCompute") - form.roll0 = form.findChild(QtGui.QDoubleSpinBox, "StartAngle") - form.roll1 = form.findChild(QtGui.QDoubleSpinBox, "EndAngle") - form.nRoll = form.findChild(QtGui.QSpinBox, "NAngle") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.tanks,QtCore.SIGNAL("itemSelectionChanged()"),self.onTanksSelection) - QtCore.QObject.connect(form.update,QtCore.SIGNAL("pressed()"),self.onUpdate) - QtCore.QObject.connect(form.trim,QtCore.SIGNAL("valueChanged(double)"),self.onTrim) - QtCore.QObject.connect(form.autoTrim,QtCore.SIGNAL("pressed()"),self.onAutoTrim) - QtCore.QObject.connect(form.roll0,QtCore.SIGNAL("valueChanged(double)"),self.onRoll) - QtCore.QObject.connect(form.roll1,QtCore.SIGNAL("valueChanged(double)"),self.onRoll) - QtCore.QObject.connect(form.nRoll,QtCore.SIGNAL("valueChanged(int)"),self.onRoll) - return False + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.tanks = form.findChild(QtGui.QListWidget, "Tanks") + form.disp = form.findChild(QtGui.QLabel, "DisplacementLabel") + form.draft = form.findChild(QtGui.QLabel, "DraftLabel") + form.update = form.findChild(QtGui.QPushButton, "UpdateData") + form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") + form.autoTrim = form.findChild(QtGui.QPushButton, "TrimAutoCompute") + form.roll0 = form.findChild(QtGui.QDoubleSpinBox, "StartAngle") + form.roll1 = form.findChild(QtGui.QDoubleSpinBox, "EndAngle") + form.nRoll = form.findChild(QtGui.QSpinBox, "NAngle") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.tanks,QtCore.SIGNAL("itemSelectionChanged()"),self.onTanksSelection) + QtCore.QObject.connect(form.update,QtCore.SIGNAL("pressed()"),self.onUpdate) + QtCore.QObject.connect(form.trim,QtCore.SIGNAL("valueChanged(double)"),self.onTrim) + QtCore.QObject.connect(form.autoTrim,QtCore.SIGNAL("pressed()"),self.onAutoTrim) + QtCore.QObject.connect(form.roll0,QtCore.SIGNAL("valueChanged(double)"),self.onRoll) + QtCore.QObject.connect(form.roll1,QtCore.SIGNAL("valueChanged(double)"),self.onRoll) + QtCore.QObject.connect(form.nRoll,QtCore.SIGNAL("valueChanged(int)"),self.onRoll) + return False - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Get selected geometry. - @return False if sucessfully values initialized. - """ - # Get selected objects - selObjs = FreeCADGui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - props = self.ship.PropertiesList - try: - props.index("WeightNames") - except: - msg = Translator.translate("Ship weights has not been set. You need to set weights before use this tool.\n") - App.Console.PrintError(msg) - return True - # Setup available tanks list - objs = App.ActiveDocument.Objects - iconPath = Paths.iconsPath() + "/Tank.xpm" - icon = QtGui.QIcon(QtGui.QPixmap(iconPath)) - for obj in objs: - # Try to get valid tank property - props = obj.PropertiesList - try: - props.index("IsShipTank") - except ValueError: - continue - if not obj.IsShipTank: - continue - # Add tank to list - name = obj.Name - label = obj.Label - tag = label + ' (' + name + ')' - self.tanks[tag] = name - # self.tanks.append([name, tag]) - item = QtGui.QListWidgetItem(tag) - item.setIcon(icon) - self.form.tanks.addItem(item) - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Get selected geometry. + @return False if sucessfully values initialized. + """ + # Get selected objects + selObjs = FreeCADGui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console","Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg) + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", + "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + props = self.ship.PropertiesList + try: + props.index("WeightNames") + except: + msg = QtGui.QApplication.translate("ship_console", + "Ship weights has not been set. You need to set weights before use this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Setup available tanks list + objs = App.ActiveDocument.Objects + iconPath = Paths.iconsPath() + "/Tank.xpm" + icon = QtGui.QIcon(QtGui.QPixmap(iconPath)) + for obj in objs: + # Try to get valid tank property + props = obj.PropertiesList + try: + props.index("IsShipTank") + except ValueError: + continue + if not obj.IsShipTank: + continue + # Add tank to list + name = obj.Name + label = obj.Label + tag = label + ' (' + name + ')' + self.tanks[tag] = name + # self.tanks.append([name, tag]) + item = QtGui.QListWidgetItem(tag) + item.setIcon(icon) + self.form.tanks.addItem(item) + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("GZ curve computation")) - self.form.findChild(QtGui.QGroupBox, "LoadConditionGroup").setTitle(Translator.translate("Loading condition.")) - self.form.findChild(QtGui.QGroupBox, "AnglesGroup").setTitle(Translator.translate("Roll angles.")) - self.form.findChild(QtGui.QLabel, "TrimLabel").setText(Translator.translate("Trim") + " [deg]") - self.form.findChild(QtGui.QLabel, "StartAngleLabel").setText(Translator.translate("Start") + " [deg]") - self.form.findChild(QtGui.QLabel, "EndAngleLabel").setText(Translator.translate("End") + " [deg]") - self.form.findChild(QtGui.QLabel, "NAngleLabel").setText(Translator.translate("Number of points")) - self.form.disp.setText(Translator.translate("Displacement = Press update to compute")) - self.form.draft.setText(Translator.translate("Draft = Press update to compute")) - self.form.update.setText(Translator.translate("Update displacement and draft")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.findChild(QtGui.QLabel, "DraftLabel").setText(QtGui.QApplication.translate("shiptank_gz","Draft", + None,QtGui.QApplication.UnicodeUTF8)) - def onTanksSelection(self): - """ Called when tanks are selected or deselected. - """ - pass - - def onUpdate(self): - """ Called when update displacement and draft is requested. - """ - # Set displacement label - disp = self.computeDisplacement() - self.form.disp.setText(Translator.translate("Displacement") + ' = %g [kg]' % (disp[0])) - # Set draft label - draft = self.computeDraft(disp[0], self.form.trim.value()) - self.form.draft.setText(Translator.translate("Draft") + ' = %g [m]' % (draft[0])) - def onTrim(self, trim): - """ Called when trim angle value is changed. - @param trim Selected trim angle. - """ - self.onTanksSelection() - - def onAutoTrim(self): - """ Called when trim angle must be auto computed. - """ - # Start at null trim angle - trim = 0.0 - # Get center of gravity - disp = self.computeDisplacement(trim) - G = [disp[1], disp[2], disp[3]] - disp = disp[0] - # Get bouyancy center - draft = self.computeDraft(disp) - B = [draft[1].x, draft[1].y, draft[1].z] - draft = draft[0] - # Get stability initial condition - BG = [G[0]-B[0], G[1]-B[1], G[2]-B[2]] - x = BG[0]*math.cos(math.radians(trim)) - BG[2]*math.sin(math.radians(trim)) - y = BG[1] - z = BG[0]*math.sin(math.radians(trim)) + BG[2]*math.cos(math.radians(trim)) - var = math.degrees(math.atan2(x,z)) - # Iterate looking stability point - dVar = math.copysign(0.01, var) - while True: - if (dVar*var < 0.0) or (abs(var) < 0.1): - break - trim = trim - math.copysign(max(dVar, abs(var)/200.0), var) - # Get center of gravity - disp = self.computeDisplacement(trim) - G = [disp[1], disp[2], disp[3]] - disp = disp[0] - # Get bouyancy center - draft = self.computeDraft(disp, trim) - B = [draft[1].x, draft[1].y, draft[1].z] - draft = draft[0] - # Get stability initial condition - BG = [G[0]-B[0], G[1]-B[1], G[2]-B[2]] - x = BG[0]*math.cos(math.radians(trim)) - BG[2]*math.sin(math.radians(trim)) - y = BG[1] - z = BG[0]*math.sin(math.radians(trim)) + BG[2]*math.cos(math.radians(trim)) - var = math.degrees(math.atan2(x,z)) - self.form.trim.setValue(trim) + self.form.setWindowTitle(QtGui.QApplication.translate("shiptank_gz","GZ curve computation", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "LoadConditionGroup").setTitle(QtGui.QApplication.translate("shiptank_gz", + "Loading condition", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "AnglesGroup").setTitle(QtGui.QApplication.translate("shiptank_gz","Roll angles", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "TrimLabel").setText(QtGui.QApplication.translate("shiptank_gz","Trim", + None,QtGui.QApplication.UnicodeUTF8) + " [deg]") + self.form.findChild(QtGui.QLabel, "StartAngleLabel").setText(QtGui.QApplication.translate("shiptank_gz","Start", + None,QtGui.QApplication.UnicodeUTF8) + " [deg]") + self.form.findChild(QtGui.QLabel, "EndAngleLabel").setText(QtGui.QApplication.translate("shiptank_gz","End", + None,QtGui.QApplication.UnicodeUTF8) + " [deg]") + self.form.findChild(QtGui.QLabel, "NAngleLabel").setText(QtGui.QApplication.translate("shiptank_gz","Number of points", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.disp.setText(QtGui.QApplication.translate("shiptank_gz","Displacement", + None,QtGui.QApplication.UnicodeUTF8) + ' = ' + \ + QtGui.QApplication.translate("shiptank_gz","Press update to compute", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.draft.setText(QtGui.QApplication.translate("shiptank_gz","Draft", + None,QtGui.QApplication.UnicodeUTF8) + ' = ' + \ + QtGui.QApplication.translate("shiptank_gz","Press update to compute", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.update.setText(QtGui.QApplication.translate("shiptank_gz","Update displacement and draft", + None,QtGui.QApplication.UnicodeUTF8)) - def onRoll(self, value): - """ Called when roll angles options are modified. - @param value Dummy changed value. - """ - roll0 = self.form.roll0.value() - self.form.roll1.setMinimum(roll0) - roll1 = self.form.roll1.value() - self.form.roll0.setMaximum(roll1) + def onTanksSelection(self): + """ Called when tanks are selected or deselected. + """ + pass + + def onUpdate(self): + """ Called when update displacement and draft is requested. + """ + # Set displacement label + disp = self.computeDisplacement() + self.form.disp.setText(QtGui.QApplication.translate("shiptank_gz","Displacement", + None,QtGui.QApplication.UnicodeUTF8) + ' = %g [kg]' % (disp[0])) + # Set draft label + draft = self.computeDraft(disp[0], self.form.trim.value()) + self.form.draft.setText(QtGui.QApplication.translate("shiptank_gz","Draft", + None,QtGui.QApplication.UnicodeUTF8) + ' = %g [m]' % (draft[0])) - def getTanks(self): - """ Get the selected tanks objects list. - @return Selected tanks list. - """ - items = self.form.tanks.selectedItems() - tanks = [] - for item in items: - tag = str(item.text()) - name = self.tanks[tag] - t = App.ActiveDocument.getObject(name) - if not t: - continue - tanks.append(t) - return tanks + def onTrim(self, trim): + """ Called when trim angle value is changed. + @param trim Selected trim angle. + """ + self.onTanksSelection() + + def onAutoTrim(self): + """ Called when trim angle must be auto computed. + """ + # Start at null trim angle + trim = 0.0 + # Get center of gravity + disp = self.computeDisplacement(trim) + G = [disp[1], disp[2], disp[3]] + disp = disp[0] + # Get bouyancy center + draft = self.computeDraft(disp) + B = [draft[1].x, draft[1].y, draft[1].z] + draft = draft[0] + # Get stability initial condition + BG = [G[0]-B[0], G[1]-B[1], G[2]-B[2]] + x = BG[0]*math.cos(math.radians(trim)) - BG[2]*math.sin(math.radians(trim)) + y = BG[1] + z = BG[0]*math.sin(math.radians(trim)) + BG[2]*math.cos(math.radians(trim)) + var = math.degrees(math.atan2(x,z)) + # Iterate looking stability point + dVar = math.copysign(0.01, var) + while True: + if (dVar*var < 0.0) or (abs(var) < 0.1): + break + trim = trim - math.copysign(max(dVar, abs(var)/200.0), var) + # Get center of gravity + disp = self.computeDisplacement(trim) + G = [disp[1], disp[2], disp[3]] + disp = disp[0] + # Get bouyancy center + draft = self.computeDraft(disp, trim) + B = [draft[1].x, draft[1].y, draft[1].z] + draft = draft[0] + # Get stability initial condition + BG = [G[0]-B[0], G[1]-B[1], G[2]-B[2]] + x = BG[0]*math.cos(math.radians(trim)) - BG[2]*math.sin(math.radians(trim)) + y = BG[1] + z = BG[0]*math.sin(math.radians(trim)) + BG[2]*math.cos(math.radians(trim)) + var = math.degrees(math.atan2(x,z)) + self.form.trim.setValue(trim) - def computeDisplacement(self, trim=0.0, roll=0.0): - """ Computes ship displacement. - @param trim Trim angle [degrees]. - @return Ship displacement and center of gravity. None if errors - detected. - @note Returned center of gravity is refered to ship attached - axis coordinates. - """ - if not self.ship: - return None - # Get ship structure weights - W = [0.0, 0.0, 0.0, 0.0] - sWeights = weights(self.ship) - for w in sWeights: - W[0] = W[0] + w[1] - W[1] = W[1] + w[1]*w[2][0] - W[2] = W[2] + w[1]*w[2][1] - W[3] = W[3] + w[1]*w[2][2] - # Get selected tanks weights - tanks = self.getTanks() - for t in tanks: - w = tankWeight(t, App.Base.Vector(roll,-trim,0.0)) - # Unrotate center of gravity - x = w[1]*math.cos(math.radians(-trim)) - w[3]*math.sin(math.radians(-trim)) - y = w[2] - z = w[1]*math.sin(math.radians(-trim)) + w[3]*math.cos(math.radians(-trim)) - w[1] = x - w[2] = y*math.cos(math.radians(-roll)) - z*math.sin(math.radians(-roll)) - w[3] = y*math.sin(math.radians(-roll)) + z*math.cos(math.radians(-roll)) - W[0] = W[0] + w[0] - W[1] = W[1] + w[0]*w[1] - W[2] = W[2] + w[0]*w[2] - W[3] = W[3] + w[0]*w[3] - return [W[0], W[1]/W[0], W[2]/W[0], W[3]/W[0]] + def onRoll(self, value): + """ Called when roll angles options are modified. + @param value Dummy changed value. + """ + roll0 = self.form.roll0.value() + self.form.roll1.setMinimum(roll0) + roll1 = self.form.roll1.value() + self.form.roll0.setMaximum(roll1) - def computeDraft(self, disp, trim=0.0): - """ Computes ship draft. - @param disp Ship displacement. - @param trim Trim angle [degrees]. - @return Ship draft, and bouyance center position. None if errors detected. - """ - if not self.ship: - return None - # Initial condition - dens = 1025 - bbox = self.ship.Shape.BoundBox - draft = bbox.ZMin - dx = bbox.XMax - bbox.XMin - dy = bbox.YMax - bbox.YMin - w = 0.0 - xcb = 0.0 - while(abs(disp - w)/disp > 0.01): - draft = draft + (disp - w) / (dens*dx*dy) - ww = Hydrostatics.displacement(self.ship, draft, 0.0, trim, 0.0) - w = 1000.0*ww[0] - B = ww[1] - return [draft,B] + def getTanks(self): + """ Get the selected tanks objects list. + @return Selected tanks list. + """ + items = self.form.tanks.selectedItems() + tanks = [] + for item in items: + tag = str(item.text()) + name = self.tanks[tag] + t = App.ActiveDocument.getObject(name) + if not t: + continue + tanks.append(t) + return tanks - def computeGZ(self, draft, trim, roll): - """ Compute GZ value. - @param draft Ship draft. - @param trim Ship trim angle [degrees]. - @param roll Ship roll angle [degrees]. - @return GZ value [m]. - """ - # Get center of gravity (x coordinate not relevant) - disp = self.computeDisplacement(trim, roll) - G = [disp[2], disp[3]] - disp = disp[0] - # Get bouyancy center (x coordinate not relevant) - disp = Hydrostatics.displacement(self.ship, draft, roll, trim, 0.0) - B = [disp[1].y, disp[1].z] - # GZ computation - BG = [G[0] - B[0], G[1] - B[1]] - y = BG[0]*math.cos(math.radians(roll)) - BG[1]*math.sin(math.radians(roll)) - z = BG[0]*math.sin(math.radians(roll)) + BG[1]*math.cos(math.radians(roll)) - return y + def computeDisplacement(self, trim=0.0, roll=0.0): + """ Computes ship displacement. + @param trim Trim angle [degrees]. + @return Ship displacement and center of gravity. None if errors + detected. + @note Returned center of gravity is refered to ship attached + axis coordinates. + """ + if not self.ship: + return None + # Get ship structure weights + W = [0.0, 0.0, 0.0, 0.0] + sWeights = weights(self.ship) + for w in sWeights: + W[0] = W[0] + w[1] + W[1] = W[1] + w[1]*w[2][0] + W[2] = W[2] + w[1]*w[2][1] + W[3] = W[3] + w[1]*w[2][2] + # Get selected tanks weights + tanks = self.getTanks() + for t in tanks: + w = tankWeight(t, App.Base.Vector(roll,-trim,0.0)) + # Unrotate center of gravity + x = w[1]*math.cos(math.radians(-trim)) - w[3]*math.sin(math.radians(-trim)) + y = w[2] + z = w[1]*math.sin(math.radians(-trim)) + w[3]*math.cos(math.radians(-trim)) + w[1] = x + w[2] = y*math.cos(math.radians(-roll)) - z*math.sin(math.radians(-roll)) + w[3] = y*math.sin(math.radians(-roll)) + z*math.cos(math.radians(-roll)) + W[0] = W[0] + w[0] + W[1] = W[1] + w[0]*w[1] + W[2] = W[2] + w[0]*w[2] + W[3] = W[3] + w[0]*w[3] + return [W[0], W[1]/W[0], W[2]/W[0], W[3]/W[0]] + + def computeDraft(self, disp, trim=0.0): + """ Computes ship draft. + @param disp Ship displacement. + @param trim Trim angle [degrees]. + @return Ship draft, and bouyance center position. None if errors detected. + """ + if not self.ship: + return None + # Initial condition + dens = 1025 + bbox = self.ship.Shape.BoundBox + draft = bbox.ZMin + dx = bbox.XMax - bbox.XMin + dy = bbox.YMax - bbox.YMin + w = 0.0 + xcb = 0.0 + while(abs(disp - w)/disp > 0.01): + draft = draft + (disp - w) / (dens*dx*dy) + ww = Hydrostatics.displacement(self.ship, draft, 0.0, trim, 0.0) + w = 1000.0*ww[0] + B = ww[1] + return [draft,B] + + def computeGZ(self, draft, trim, roll): + """ Compute GZ value. + @param draft Ship draft. + @param trim Ship trim angle [degrees]. + @param roll Ship roll angle [degrees]. + @return GZ value [m]. + """ + # Get center of gravity (x coordinate not relevant) + disp = self.computeDisplacement(trim, roll) + G = [disp[2], disp[3]] + disp = disp[0] + # Get bouyancy center (x coordinate not relevant) + disp = Hydrostatics.displacement(self.ship, draft, roll, trim, 0.0) + B = [disp[1].y, disp[1].z] + # GZ computation + BG = [G[0] - B[0], G[1] - B[1]] + y = BG[0]*math.cos(math.radians(roll)) - BG[1]*math.sin(math.radians(roll)) + z = BG[0]*math.sin(math.radians(roll)) + BG[1]*math.cos(math.radians(roll)) + return y def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/tankGZ/TaskPanel.ui b/src/Mod/Ship/tankGZ/TaskPanel.ui index 6f2da22e24..49dfa031d8 100644 --- a/src/Mod/Ship/tankGZ/TaskPanel.ui +++ b/src/Mod/Ship/tankGZ/TaskPanel.ui @@ -37,98 +37,92 @@ Loading condition - - - - 0 - 20 - 231 - 231 - - - - - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::MultiSelection - - - - - - - Displacement = 0 [kg] - - - - - - - Draft = 0 [m] - - - - - - - Update displacement and draft - - - - - - - - - - 3 - 0 - - - - Trim [deg] - - - - - - - - 3 - 0 - - - - -45.000000000000000 - - - 45.000000000000000 - - - 0.100000000000000 - - - - - - - - 1 - 0 - - - - Auto - - - - - - - + + + + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::MultiSelection + + + + + + + Displacement = 0 [kg] + + + + + + + Draft = 0 [m] + + + + + + + Update displacement and draft + + + + + + + + + + 3 + 0 + + + + Trim [deg] + + + + + + + + 3 + 0 + + + + -45.000000000000000 + + + 45.000000000000000 + + + 0.100000000000000 + + + + + + + + 1 + 0 + + + + Auto + + + + + + + + @@ -142,75 +136,69 @@ Roll angles - - - - 0 - 20 - 231 - 101 - - - - - QLayout::SetMinimumSize - - - - - Start [deg] - - - - - - - End [deg] - - - - - - - Number of points - - - - - - - 0.000000000000000 - - - 90.000000000000000 - - - - - - - 180.000000000000000 - - - 45.000000000000000 - - - - - - - 2 - - - 10000 - - - 46 - - - - - + + + + + QLayout::SetMinimumSize + + + + + Start [deg] + + + + + + + End [deg] + + + + + + + Number of points + + + + + + + 0.000000000000000 + + + 90.000000000000000 + + + + + + + 180.000000000000000 + + + 45.000000000000000 + + + + + + + 2 + + + 10000 + + + 46 + + + + + + diff --git a/src/Mod/Ship/tankGZ/__init__.py b/src/Mod/Ship/tankGZ/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/tankGZ/__init__.py +++ b/src/Mod/Ship/tankGZ/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/tankWeights/Preview.py b/src/Mod/Ship/tankWeights/Preview.py index 23bb7fae6c..4a5b59fcaa 100644 --- a/src/Mod/Ship/tankWeights/Preview.py +++ b/src/Mod/Ship/tankWeights/Preview.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -26,81 +26,81 @@ import FreeCAD,FreeCADGui from FreeCAD import Base import Part # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths class Preview(object): - def __init__(self): - """ Constructor. - """ - self.objects = [] + def __init__(self): + """ Constructor. + """ + self.objects = [] - def reinit(self): - """ Reinitializate drawer. - """ - self.clean() + def reinit(self): + """ Reinitializate drawer. + """ + self.clean() - def update(self, names, pos): - """ Update the 3D view printing annotations. - @param names Weight names. - @param pos Weight positions (FreeCAD::Base::Vector). - """ - # Destroy all previous entities - self.clean() - for i in range(0, len(names)): - # Draw gravity line - line = Part.makeLine((pos[i].x,pos[i].y,pos[i].z),(pos[i].x,pos[i].y,pos[i].z - 9.81)) - Part.show(line) - objs = FreeCAD.ActiveDocument.Objects - self.objects.append(objs[-1]) - objs[-1].Label = names[i] + 'Line' - # Draw circles - circle = Part.makeCircle(0.5, pos[i], Base.Vector(1.0,0.0,0.0)) - Part.show(circle) - objs = FreeCAD.ActiveDocument.Objects - self.objects.append(objs[-1]) - objs[-1].Label = names[i] + 'CircleX' - circle = Part.makeCircle(0.5, pos[i], Base.Vector(0.0,1.0,0.0)) - Part.show(circle) - objs = FreeCAD.ActiveDocument.Objects - self.objects.append(objs[-1]) - objs[-1].Label = names[i] + 'CircleY' - circle = Part.makeCircle(0.5, pos[i], Base.Vector(0.0,0.0,1.0)) - Part.show(circle) - objs = FreeCAD.ActiveDocument.Objects - self.objects.append(objs[-1]) - objs[-1].Label = names[i] + 'CircleZ' - # Draw annotation - self.objects.append(DrawText(names[i] + 'Text', names[i], Base.Vector(pos[i].x+1.0,pos[i].y,pos[i].z))) - - def clean(self): - """ Erase all annotations from screen. - """ - for i in range(0,len(self.objects)): - if not FreeCAD.ActiveDocument.getObject(self.objects[i].Name): - continue - FreeCAD.ActiveDocument.removeObject(self.objects[i].Name) - self.objects = [] + def update(self, names, pos): + """ Update the 3D view printing annotations. + @param names Weight names. + @param pos Weight positions (FreeCAD::Base::Vector). + """ + # Destroy all previous entities + self.clean() + for i in range(0, len(names)): + # Draw gravity line + line = Part.makeLine((pos[i].x,pos[i].y,pos[i].z),(pos[i].x,pos[i].y,pos[i].z - 9.81)) + Part.show(line) + objs = FreeCAD.ActiveDocument.Objects + self.objects.append(objs[-1]) + objs[-1].Label = names[i] + 'Line' + # Draw circles + circle = Part.makeCircle(0.5, pos[i], Base.Vector(1.0,0.0,0.0)) + Part.show(circle) + objs = FreeCAD.ActiveDocument.Objects + self.objects.append(objs[-1]) + objs[-1].Label = names[i] + 'CircleX' + circle = Part.makeCircle(0.5, pos[i], Base.Vector(0.0,1.0,0.0)) + Part.show(circle) + objs = FreeCAD.ActiveDocument.Objects + self.objects.append(objs[-1]) + objs[-1].Label = names[i] + 'CircleY' + circle = Part.makeCircle(0.5, pos[i], Base.Vector(0.0,0.0,1.0)) + Part.show(circle) + objs = FreeCAD.ActiveDocument.Objects + self.objects.append(objs[-1]) + objs[-1].Label = names[i] + 'CircleZ' + # Draw annotation + self.objects.append(DrawText(names[i] + 'Text', names[i], Base.Vector(pos[i].x+1.0,pos[i].y,pos[i].z))) + + def clean(self): + """ Erase all annotations from screen. + """ + for i in range(0,len(self.objects)): + if not FreeCAD.ActiveDocument.getObject(self.objects[i].Name): + continue + FreeCAD.ActiveDocument.removeObject(self.objects[i].Name) + self.objects = [] def DrawText(name, string, position, displayMode="Screen", angle=0.0, justification="Left", colour=(0.00,0.00,0.00), size=12): - """ Draws a text in a desired position. - @param name Name of the object - @param string Text to draw (recommended format u'') - @param position Point to draw the text - @param angle Counter clockwise rotation of text - @param justification Alignement of the text ("Left", "Right" or "Center") - @param colour Colour of the text - @param size Font size - @return FreeCAD annotation object - """ - # Create the object - text = FreeCAD.ActiveDocument.addObject("App::Annotation",name) - # Set the text - text.LabelText = [string, u''] - # Set the options - text.Position = position - FreeCADGui.ActiveDocument.getObject(text.Name).Rotation = angle - FreeCADGui.ActiveDocument.getObject(text.Name).Justification = justification - FreeCADGui.ActiveDocument.getObject(text.Name).FontSize = size - FreeCADGui.ActiveDocument.getObject(text.Name).TextColor = colour - FreeCADGui.ActiveDocument.getObject(text.Name).DisplayMode = displayMode - return FreeCAD.ActiveDocument.getObject(text.Name) + """ Draws a text in a desired position. + @param name Name of the object + @param string Text to draw (recommended format u'') + @param position Point to draw the text + @param angle Counter clockwise rotation of text + @param justification Alignement of the text ("Left", "Right" or "Center") + @param colour Colour of the text + @param size Font size + @return FreeCAD annotation object + """ + # Create the object + text = FreeCAD.ActiveDocument.addObject("App::Annotation",name) + # Set the text + text.LabelText = [string, u''] + # Set the options + text.Position = position + FreeCADGui.ActiveDocument.getObject(text.Name).Rotation = angle + FreeCADGui.ActiveDocument.getObject(text.Name).Justification = justification + FreeCADGui.ActiveDocument.getObject(text.Name).FontSize = size + FreeCADGui.ActiveDocument.getObject(text.Name).TextColor = colour + FreeCADGui.ActiveDocument.getObject(text.Name).DisplayMode = displayMode + return FreeCAD.ActiveDocument.getObject(text.Name) diff --git a/src/Mod/Ship/tankWeights/TaskPanel.py b/src/Mod/Ship/tankWeights/TaskPanel.py index a01f7c73c2..7a336bfffc 100644 --- a/src/Mod/Ship/tankWeights/TaskPanel.py +++ b/src/Mod/Ship/tankWeights/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -29,218 +29,224 @@ from PyQt4 import QtGui,QtCore # Module import Preview from Instance import * -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/tankWeights/TaskPanel.ui" - self.ship = None - self.preview = Preview.Preview() + def __init__(self): + self.ui = Paths.modulePath() + "/tankWeights/TaskPanel.ui" + self.ship = None + self.preview = Preview.Preview() - def accept(self): - self.preview.clean() - if not self.ship: - return False - # Setup lists - name = [] - mass = [] - pos = [] - for i in range(0,self.form.weights.rowCount() - 1): - item = self.form.weights.item(i,0) - name.append(item.text().__str__()) - item = self.form.weights.item(i,1) - mass.append(item.text().toFloat()[0]) - vec = [] - item = self.form.weights.item(i,2) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,3) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,4) - vec.append(item.text().toFloat()[0]) - pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) - # Send to ship - self.ship.WeightNames = name[:] - self.ship.WeightMass = mass[:] - self.ship.WeightPos = pos[:] - return True + def accept(self): + self.preview.clean() + if not self.ship: + return False + # Setup lists + name = [] + mass = [] + pos = [] + for i in range(0,self.form.weights.rowCount() - 1): + item = self.form.weights.item(i,0) + name.append(item.text().__str__()) + item = self.form.weights.item(i,1) + mass.append(item.text().toFloat()[0]) + vec = [] + item = self.form.weights.item(i,2) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,3) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,4) + vec.append(item.text().toFloat()[0]) + pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) + # Send to ship + self.ship.WeightNames = name[:] + self.ship.WeightMass = mass[:] + self.ship.WeightPos = pos[:] + return True - def reject(self): - self.preview.clean() - if not self.ship: - return False - return True + def reject(self): + self.preview.clean() + if not self.ship: + return False + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.weights = form.findChild(QtGui.QTableWidget, "Weights") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.weights,QtCore.SIGNAL("cellChanged(int,int)"),self.onTableItem); - # Update screen - name = [] - pos = [] - for i in range(0,self.form.weights.rowCount() - 1): - item = self.form.weights.item(i,0) - name.append(item.text().__str__()) - vec = [] - item = self.form.weights.item(i,2) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,3) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,4) - vec.append(item.text().toFloat()[0]) - pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) - self.preview.update(name, pos) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.weights = form.findChild(QtGui.QTableWidget, "Weights") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.weights,QtCore.SIGNAL("cellChanged(int,int)"),self.onTableItem); + # Update screen + name = [] + pos = [] + for i in range(0,self.form.weights.rowCount() - 1): + item = self.form.weights.item(i,0) + name.append(item.text().__str__()) + vec = [] + item = self.form.weights.item(i,2) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,3) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,4) + vec.append(item.text().toFloat()[0]) + pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) + self.preview.update(name, pos) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Get selected geometry. - @return False if sucessfully values initialized. - """ - # Get selected objects - selObjs = FreeCADGui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get weights - w = weights(self.ship) - # Set the items - self.form.weights.setRowCount(len(w)+1) - for i in range(0,len(w)): - item = QtGui.QTableWidgetItem(w[i][0]) - self.form.weights.setItem(i,0,item) - string = '%g' % (w[i][1]) - item = QtGui.QTableWidgetItem(string) - self.form.weights.setItem(i,1,item) - string = '%g' % (w[i][2].x) - item = QtGui.QTableWidgetItem(string) - self.form.weights.setItem(i,2,item) - string = '%g' % (w[i][2].y) - item = QtGui.QTableWidgetItem(string) - self.form.weights.setItem(i,3,item) - string = '%g' % (w[i][2].z) - item = QtGui.QTableWidgetItem(string) - self.form.weights.setItem(i,4,item) - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Get selected geometry. + @return False if sucessfully values initialized. + """ + # Get selected objects + selObjs = FreeCADGui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", "Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", + "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get weights + w = weights(self.ship) + # Set the items + self.form.weights.setRowCount(len(w)+1) + for i in range(0,len(w)): + item = QtGui.QTableWidgetItem(w[i][0]) + self.form.weights.setItem(i,0,item) + string = '%g' % (w[i][1]) + item = QtGui.QTableWidgetItem(string) + self.form.weights.setItem(i,1,item) + string = '%g' % (w[i][2].x) + item = QtGui.QTableWidgetItem(string) + self.form.weights.setItem(i,2,item) + string = '%g' % (w[i][2].y) + item = QtGui.QTableWidgetItem(string) + self.form.weights.setItem(i,3,item) + string = '%g' % (w[i][2].z) + item = QtGui.QTableWidgetItem(string) + self.form.weights.setItem(i,4,item) + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Set weights")) - labels = [] - labels.append(Translator.translate("Name")) - labels.append(Translator.translate("Mass") + " [kg]") - labels.append(QtCore.QString("g.x [m]")) - labels.append(QtCore.QString("g.y [m]")) - labels.append(QtCore.QString("g.z [m]")) - self.form.weights.setHorizontalHeaderLabels(labels) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shiptank_weights","Set weights", + None,QtGui.QApplication.UnicodeUTF8)) + labels = [] + labels.append(QtGui.QApplication.translate("shiptank_weights","Name", + None,QtGui.QApplication.UnicodeUTF8)) + labels.append(QtGui.QApplication.translate("shiptank_weights","Mass", + None,QtGui.QApplication.UnicodeUTF8) + " [kg]") + labels.append(QtCore.QString("g.x [m]")) + labels.append(QtCore.QString("g.y [m]")) + labels.append(QtCore.QString("g.z [m]")) + self.form.weights.setHorizontalHeaderLabels(labels) - def onTableItem(self, row, column): - """ Function called when an item of table is changed. - @param row Changed item row - @param column Changed item column - """ - item = self.form.weights.item(row,column) - # Row deletion - if column == 0: - if not item.text(): - self.form.weights.removeRow(row) - # Ensure that exist one empty item at the end - nRow = self.form.weights.rowCount() - last = self.form.weights.item(nRow-1,0) - if last: - if(last.text() != ''): - self.form.weights.setRowCount(nRow+1) - # Fields must be numbers - for i in range(0,self.form.weights.rowCount()-1): # Avoid last row - for j in range(1,self.form.weights.columnCount()): # Avoid name column - item = self.form.weights.item(i,j) - if not item: - item = QtGui.QTableWidgetItem('0.0') - self.form.weights.setItem(i,j,item) - continue - (number,flag) = item.text().toFloat() - if not flag: - item.setText('0.0') - # Update screen annotations - name = [] - pos = [] - for i in range(0,self.form.weights.rowCount() - 1): - item = self.form.weights.item(i,0) - name.append(item.text().__str__()) - vec = [] - item = self.form.weights.item(i,2) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,3) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,4) - vec.append(item.text().toFloat()[0]) - pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) - self.preview.update(name, pos) + def onTableItem(self, row, column): + """ Function called when an item of table is changed. + @param row Changed item row + @param column Changed item column + """ + item = self.form.weights.item(row,column) + # Row deletion + if column == 0: + if not item.text(): + self.form.weights.removeRow(row) + # Ensure that exist one empty item at the end + nRow = self.form.weights.rowCount() + last = self.form.weights.item(nRow-1,0) + if last: + if(last.text() != ''): + self.form.weights.setRowCount(nRow+1) + # Fields must be numbers + for i in range(0,self.form.weights.rowCount()-1): # Avoid last row + for j in range(1,self.form.weights.columnCount()): # Avoid name column + item = self.form.weights.item(i,j) + if not item: + item = QtGui.QTableWidgetItem('0.0') + self.form.weights.setItem(i,j,item) + continue + (number,flag) = item.text().toFloat() + if not flag: + item.setText('0.0') + # Update screen annotations + name = [] + pos = [] + for i in range(0,self.form.weights.rowCount() - 1): + item = self.form.weights.item(i,0) + name.append(item.text().__str__()) + vec = [] + item = self.form.weights.item(i,2) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,3) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,4) + vec.append(item.text().toFloat()[0]) + pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) + self.preview.update(name, pos) def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/tankWeights/TaskPanel.ui b/src/Mod/Ship/tankWeights/TaskPanel.ui index 23dc4ff1bb..5123b44cab 100644 --- a/src/Mod/Ship/tankWeights/TaskPanel.ui +++ b/src/Mod/Ship/tankWeights/TaskPanel.ui @@ -11,7 +11,7 @@ - Set wieghts + Set weights diff --git a/src/Mod/Ship/tankWeights/__init__.py b/src/Mod/Ship/tankWeights/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/tankWeights/__init__.py +++ b/src/Mod/Ship/tankWeights/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/WindowsInstaller/FreeCAD.wxs b/src/WindowsInstaller/FreeCAD.wxs index 3194e5c57e..4cb65dfd12 100644 --- a/src/WindowsInstaller/FreeCAD.wxs +++ b/src/WindowsInstaller/FreeCAD.wxs @@ -163,8 +163,10 @@ + + diff --git a/src/WindowsInstaller/ModShip.wxi b/src/WindowsInstaller/ModShip.wxi index 029fe06c32..17cff640b7 100644 --- a/src/WindowsInstaller/ModShip.wxi +++ b/src/WindowsInstaller/ModShip.wxi @@ -29,38 +29,94 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -77,7 +133,7 @@ - + @@ -155,7 +211,7 @@ - + From f268a0ddb0ae7a8e06f86d86a4f8dcb52bb1f5da Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 16 Nov 2012 19:43:24 +0100 Subject: [PATCH 09/16] Add TKFeat to PartDesign module --- src/Mod/PartDesign/App/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Mod/PartDesign/App/Makefile.am b/src/Mod/PartDesign/App/Makefile.am index 80f971f496..62dcad9234 100644 --- a/src/Mod/PartDesign/App/Makefile.am +++ b/src/Mod/PartDesign/App/Makefile.am @@ -69,6 +69,7 @@ libPartDesign_la_LIBADD = \ -lTKGeomBase \ -lTKOffset \ -lTKPrim \ + -lTKFeat \ -lTKFillet \ -lTKShHealing \ -lTKBool \ From d6bed677ac9eea9b92ccf7e1d1f0f29346f303c1 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Fri, 16 Nov 2012 19:59:36 +0100 Subject: [PATCH 10/16] Removed resources folder on windows installer stuff (not needed) --- src/WindowsInstaller/ModPlot.wxi | 45 -------------------------------- 1 file changed, 45 deletions(-) diff --git a/src/WindowsInstaller/ModPlot.wxi b/src/WindowsInstaller/ModPlot.wxi index d83cb7832e..f536a491dc 100644 --- a/src/WindowsInstaller/ModPlot.wxi +++ b/src/WindowsInstaller/ModPlot.wxi @@ -29,51 +29,6 @@ - - - - - - - - - - - - From 4c5c737c186a722e0d8e54abee75a48f2fe13204 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Fri, 16 Nov 2012 19:13:50 +0100 Subject: [PATCH 11/16] Regenerated branch --- src/Mod/Ship/CMakeLists.txt | 59 +- src/Mod/Ship/Icons/DataIco.png | Bin 11365 -> 0 bytes src/Mod/Ship/Icons/DataIco.xcf | Bin 85943 -> 0 bytes src/Mod/Ship/Icons/DataIco.xpm | 1021 -- src/Mod/Ship/Icons/DiscretizeIco.png | Bin 14038 -> 0 bytes src/Mod/Ship/Icons/DiscretizeIco.xcf | Bin 54067 -> 0 bytes src/Mod/Ship/Icons/DiscretizeIco.xpm | 2028 ---- src/Mod/Ship/Icons/ReparametrizeIco.png | Bin 12178 -> 0 bytes src/Mod/Ship/Icons/ReparametrizeIco.xcf | Bin 53229 -> 0 bytes src/Mod/Ship/Icons/ReparametrizeIco.xpm | 1737 ---- src/Mod/Ship/InitGui.py | 119 +- src/Mod/Ship/Instance.py | 1114 +-- src/Mod/Ship/Makefile.am | 61 +- src/Mod/Ship/ShipGui.py | 101 +- src/Mod/Ship/Ship_rc.py | 8700 +++++++++++++++++ src/Mod/Ship/SimInstance.py | 1285 +-- src/Mod/Ship/TankInstance.py | 2642 ++--- src/Mod/Ship/makeResources.sh | 56 + src/Mod/Ship/resources/Ship.qrc | 38 + .../examples}/s60.fcstd | Bin .../examples}/s60_katamaran.fcstd | Bin .../examples}/wigley.fcstd | Bin .../examples}/wigley_katamaran.fcstd | Bin .../icons}/AreaCurveIco.png | Bin .../icons}/AreaCurveIco.xcf | Bin .../icons}/AreaCurveIco.xpm | 0 .../icons}/HydrostaticsIco.png | Bin .../icons}/HydrostaticsIco.xcf | Bin .../icons}/HydrostaticsIco.xpm | 0 .../Ship/{Icons => resources/icons}/Ico.png | Bin .../Ship/{Icons => resources/icons}/Ico.xcf | Bin .../Ship/{Icons => resources/icons}/Ico.xpm | 0 .../{Icons => resources/icons}/LoadIco.png | Bin .../{Icons => resources/icons}/LoadIco.xcf | Bin .../{Icons => resources/icons}/LoadIco.xpm | 0 .../icons}/OutlineDrawIco.png | Bin .../icons}/OutlineDrawIco.xcf | Bin .../icons}/OutlineDrawIco.xpm | 0 .../Ship/{Icons => resources/icons}/Ship.xcf | Bin .../Ship/{Icons => resources/icons}/Ship.xpm | 0 .../Ship/{Icons => resources/icons}/Sim.xpm | 0 .../icons}/SimCreateIco.png | Bin .../icons}/SimCreateIco.xcf | Bin .../icons}/SimCreateIco.xpm | 0 .../{Icons => resources/icons}/SimIco.xcf | Bin .../{Icons => resources/icons}/SimPostIco.png | Bin .../{Icons => resources/icons}/SimPostIco.xpm | 0 .../{Icons => resources/icons}/SimRunIco.png | Bin .../{Icons => resources/icons}/SimRunIco.xpm | 0 .../{Icons => resources/icons}/SimStopIco.png | Bin .../{Icons => resources/icons}/SimStopIco.xpm | 0 .../Ship/{Icons => resources/icons}/Tank.png | Bin .../Ship/{Icons => resources/icons}/Tank.xcf | Bin .../Ship/{Icons => resources/icons}/Tank.xpm | 0 .../{Icons => resources/icons}/Weight.png | Bin .../{Icons => resources/icons}/Weight.xcf | Bin .../{Icons => resources/icons}/Weight.xpm | 0 src/Mod/Ship/resources/translations/Ship.qm | 1 + src/Mod/Ship/resources/translations/Ship.ts | 863 ++ .../Ship/resources/translations/Ship_af.qm | 1 + .../Ship/resources/translations/Ship_af.ts | 863 ++ .../Ship/resources/translations/Ship_cs.qm | 1 + .../Ship/resources/translations/Ship_cs.ts | 863 ++ .../Ship/resources/translations/Ship_de.qm | 1 + .../Ship/resources/translations/Ship_de.ts | 863 ++ .../Ship/resources/translations/Ship_es-ES.qm | Bin 0 -> 20755 bytes .../Ship/resources/translations/Ship_es-ES.ts | 863 ++ .../Ship/resources/translations/Ship_fi.qm | 1 + .../Ship/resources/translations/Ship_fi.ts | 863 ++ .../Ship/resources/translations/Ship_fr.qm | 1 + .../Ship/resources/translations/Ship_fr.ts | 863 ++ .../Ship/resources/translations/Ship_hr.qm | 1 + .../Ship/resources/translations/Ship_hr.ts | 863 ++ .../Ship/resources/translations/Ship_hu.qm | 1 + .../Ship/resources/translations/Ship_hu.ts | 863 ++ .../Ship/resources/translations/Ship_it.qm | 1 + .../Ship/resources/translations/Ship_it.ts | 863 ++ .../Ship/resources/translations/Ship_ja.qm | 1 + .../Ship/resources/translations/Ship_ja.ts | 863 ++ .../Ship/resources/translations/Ship_nl.qm | 1 + .../Ship/resources/translations/Ship_nl.ts | 863 ++ .../Ship/resources/translations/Ship_no.qm | 1 + .../Ship/resources/translations/Ship_no.ts | 863 ++ .../Ship/resources/translations/Ship_pl.qm | 1 + .../Ship/resources/translations/Ship_pl.ts | 863 ++ .../Ship/resources/translations/Ship_pt-BR.qm | 1 + .../Ship/resources/translations/Ship_pt-BR.ts | 863 ++ .../Ship/resources/translations/Ship_ro.qm | 1 + .../Ship/resources/translations/Ship_ro.ts | 863 ++ .../Ship/resources/translations/Ship_ru.qm | 1 + .../Ship/resources/translations/Ship_ru.ts | 863 ++ .../Ship/resources/translations/Ship_sk.qm | 1 + .../Ship/resources/translations/Ship_sk.ts | 863 ++ .../Ship/resources/translations/Ship_sv-SE.qm | 1 + .../Ship/resources/translations/Ship_sv-SE.ts | 863 ++ .../Ship/resources/translations/Ship_tr.qm | 1 + .../Ship/resources/translations/Ship_tr.ts | 863 ++ .../Ship/resources/translations/Ship_uk.qm | 1 + .../Ship/resources/translations/Ship_uk.ts | 863 ++ .../Ship/resources/translations/Ship_zh-CN.qm | 1 + .../Ship/resources/translations/Ship_zh-CN.ts | 863 ++ .../Ship/resources/translations/Ship_zh-TW.qm | 1 + .../Ship/resources/translations/Ship_zh-TW.ts | 863 ++ src/Mod/Ship/shipAreasCurve/Plot.py | 211 - src/Mod/Ship/shipAreasCurve/PlotAux.py | 185 + src/Mod/Ship/shipAreasCurve/Preview.py | 124 +- src/Mod/Ship/shipAreasCurve/TaskPanel.py | 409 +- src/Mod/Ship/shipAreasCurve/TaskPanel.ui | 84 +- src/Mod/Ship/shipAreasCurve/__init__.py | 38 +- src/Mod/Ship/shipCreateShip/Preview.py | 238 +- src/Mod/Ship/shipCreateShip/TaskPanel.py | 384 +- src/Mod/Ship/shipCreateShip/TaskPanel.ui | 234 +- src/Mod/Ship/shipCreateShip/__init__.py | 38 +- src/Mod/Ship/shipHydrostatics/Plot.py | 345 - src/Mod/Ship/shipHydrostatics/PlotAux.py | 478 + src/Mod/Ship/shipHydrostatics/TaskPanel.py | 405 +- src/Mod/Ship/shipHydrostatics/TaskPanel.ui | 256 +- src/Mod/Ship/shipHydrostatics/Tools.py | 786 +- src/Mod/Ship/shipHydrostatics/__init__.py | 38 +- src/Mod/Ship/shipLoadExample/TaskPanel.py | 157 +- src/Mod/Ship/shipLoadExample/TaskPanel.ui | 92 +- src/Mod/Ship/shipLoadExample/__init__.py | 38 +- src/Mod/Ship/shipOutlineDraw/Plot.py | 221 +- src/Mod/Ship/shipOutlineDraw/Preview.py | 267 +- src/Mod/Ship/shipOutlineDraw/TaskPanel.py | 649 +- src/Mod/Ship/shipOutlineDraw/TaskPanel.ui | 258 +- src/Mod/Ship/shipOutlineDraw/__init__.py | 38 +- src/Mod/Ship/shipUtils/Math.py | 92 +- src/Mod/Ship/shipUtils/Paths.py | 84 +- src/Mod/Ship/shipUtils/Translator.py | 30 - src/Mod/Ship/simCreate/TaskPanel.py | 298 +- src/Mod/Ship/simCreate/__init__.py | 38 +- src/Mod/Ship/simPost/TaskPanel.py | 234 +- src/Mod/Ship/simPost/__init__.py | 42 +- src/Mod/Ship/simRun/Simulation.py | 216 +- src/Mod/Ship/simRun/TaskPanel.py | 348 +- src/Mod/Ship/simRun/__init__.py | 42 +- src/Mod/Ship/tankCreateTank/TaskPanel.py | 278 +- src/Mod/Ship/tankCreateTank/TaskPanel.ui | 216 +- src/Mod/Ship/tankCreateTank/__init__.py | 38 +- src/Mod/Ship/tankGZ/Plot.py | 186 - src/Mod/Ship/tankGZ/PlotAux.py | 154 + src/Mod/Ship/tankGZ/TaskPanel.py | 701 +- src/Mod/Ship/tankGZ/TaskPanel.ui | 310 +- src/Mod/Ship/tankGZ/__init__.py | 38 +- src/Mod/Ship/tankWeights/Preview.py | 178 +- src/Mod/Ship/tankWeights/TaskPanel.py | 434 +- src/Mod/Ship/tankWeights/TaskPanel.ui | 2 +- src/Mod/Ship/tankWeights/__init__.py | 38 +- src/WindowsInstaller/FreeCAD.wxs | 2 + src/WindowsInstaller/ModShip.wxi | 112 +- 151 files changed, 35919 insertions(+), 12997 deletions(-) delete mode 100644 src/Mod/Ship/Icons/DataIco.png delete mode 100644 src/Mod/Ship/Icons/DataIco.xcf delete mode 100644 src/Mod/Ship/Icons/DataIco.xpm delete mode 100644 src/Mod/Ship/Icons/DiscretizeIco.png delete mode 100644 src/Mod/Ship/Icons/DiscretizeIco.xcf delete mode 100644 src/Mod/Ship/Icons/DiscretizeIco.xpm delete mode 100644 src/Mod/Ship/Icons/ReparametrizeIco.png delete mode 100644 src/Mod/Ship/Icons/ReparametrizeIco.xcf delete mode 100644 src/Mod/Ship/Icons/ReparametrizeIco.xpm create mode 100644 src/Mod/Ship/Ship_rc.py create mode 100755 src/Mod/Ship/makeResources.sh create mode 100644 src/Mod/Ship/resources/Ship.qrc rename src/Mod/Ship/{Examples => resources/examples}/s60.fcstd (100%) rename src/Mod/Ship/{Examples => resources/examples}/s60_katamaran.fcstd (100%) rename src/Mod/Ship/{Examples => resources/examples}/wigley.fcstd (100%) rename src/Mod/Ship/{Examples => resources/examples}/wigley_katamaran.fcstd (100%) rename src/Mod/Ship/{Icons => resources/icons}/AreaCurveIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/AreaCurveIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/AreaCurveIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/HydrostaticsIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/HydrostaticsIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/HydrostaticsIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ico.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ico.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ico.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/LoadIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/LoadIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/LoadIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/OutlineDrawIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/OutlineDrawIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/OutlineDrawIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ship.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/Ship.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Sim.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimCreateIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimCreateIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimCreateIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimIco.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimPostIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimPostIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimRunIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimRunIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimStopIco.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/SimStopIco.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Tank.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/Tank.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/Tank.xpm (100%) rename src/Mod/Ship/{Icons => resources/icons}/Weight.png (100%) rename src/Mod/Ship/{Icons => resources/icons}/Weight.xcf (100%) rename src/Mod/Ship/{Icons => resources/icons}/Weight.xpm (100%) create mode 100644 src/Mod/Ship/resources/translations/Ship.qm create mode 100644 src/Mod/Ship/resources/translations/Ship.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_af.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_af.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_cs.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_cs.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_de.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_de.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_es-ES.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_es-ES.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_fi.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_fi.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_fr.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_fr.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_hr.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_hr.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_hu.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_hu.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_it.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_it.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_ja.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_ja.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_nl.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_nl.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_no.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_no.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_pl.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_pl.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_pt-BR.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_pt-BR.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_ro.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_ro.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_ru.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_ru.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_sk.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_sk.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_sv-SE.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_sv-SE.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_tr.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_tr.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_uk.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_uk.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_zh-CN.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_zh-CN.ts create mode 100644 src/Mod/Ship/resources/translations/Ship_zh-TW.qm create mode 100644 src/Mod/Ship/resources/translations/Ship_zh-TW.ts delete mode 100644 src/Mod/Ship/shipAreasCurve/Plot.py create mode 100644 src/Mod/Ship/shipAreasCurve/PlotAux.py delete mode 100644 src/Mod/Ship/shipHydrostatics/Plot.py create mode 100644 src/Mod/Ship/shipHydrostatics/PlotAux.py delete mode 100644 src/Mod/Ship/shipUtils/Translator.py delete mode 100644 src/Mod/Ship/tankGZ/Plot.py create mode 100644 src/Mod/Ship/tankGZ/PlotAux.py diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index cb2a119ba9..9ca8c21bbc 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -4,60 +4,20 @@ SET(ShipMain_SRCS Instance.py SimInstance.py TankInstance.py + Ship_rc.py ) SOURCE_GROUP("" FILES ${ShipMain_SRCS}) SET(ShipIcons_SRCS - Icons/AreaCurveIco.png - Icons/AreaCurveIco.xcf - Icons/AreaCurveIco.xpm - Icons/DataIco.png - Icons/DataIco.xcf - Icons/DataIco.xpm - Icons/DiscretizeIco.png - Icons/DiscretizeIco.xcf - Icons/DiscretizeIco.xpm - Icons/HydrostaticsIco.png - Icons/HydrostaticsIco.xcf - Icons/HydrostaticsIco.xpm - Icons/Ico.png - Icons/Ico.xcf - Icons/Ico.xpm - Icons/LoadIco.png - Icons/LoadIco.xcf - Icons/LoadIco.xpm - Icons/OutlineDrawIco.png - Icons/OutlineDrawIco.xcf - Icons/OutlineDrawIco.xpm - Icons/ReparametrizeIco.png - Icons/ReparametrizeIco.xcf - Icons/ReparametrizeIco.xpm - Icons/Ship.xcf - Icons/Ship.xpm - Icons/Weight.png - Icons/Weight.xcf - Icons/Weight.xpm - Icons/SimIco.xcf - Icons/Sim.xpm - Icons/SimCreateIco.png - Icons/SimCreateIco.xpm - Icons/SimRunIco.png - Icons/SimRunIco.xpm - Icons/SimStopIco.png - Icons/SimStopIco.xpm - Icons/SimPostIco.png - Icons/SimPostIco.xpm - Icons/Tank.png - Icons/Tank.xcf - Icons/Tank.xpm + resources/icons/Ico.xpm ) SOURCE_GROUP("shipicons" FILES ${ShipIcons_SRCS}) SET(ShipExamples_SRCS - Examples/s60.fcstd - Examples/s60_katamaran.fcstd - Examples/wigley.fcstd - Examples/wigley_katamaran.fcstd + resources/examples/s60.fcstd + resources/examples/s60_katamaran.fcstd + resources/examples/wigley.fcstd + resources/examples/wigley_katamaran.fcstd ) SOURCE_GROUP("shipexamples" FILES ${ShipExamples_SRCS}) @@ -87,7 +47,7 @@ SOURCE_GROUP("shipoutlinedraw" FILES ${ShipOutlineDraw_SRCS}) SET(ShipAreasCurve_SRCS shipAreasCurve/__init__.py - shipAreasCurve/Plot.py + shipAreasCurve/PlotAux.py shipAreasCurve/Preview.py shipAreasCurve/TaskPanel.py shipAreasCurve/TaskPanel.ui @@ -96,7 +56,7 @@ SOURCE_GROUP("shipareascurve" FILES ${ShipAreasCurve_SRCS}) SET(ShipHydrostatics_SRCS shipHydrostatics/__init__.py - shipHydrostatics/Plot.py + shipHydrostatics/PlotAux.py shipHydrostatics/TaskPanel.py shipHydrostatics/TaskPanel.ui shipHydrostatics/Tools.py @@ -107,7 +67,6 @@ SET(ShipUtils_SRCS shipUtils/__init__.py shipUtils/Math.py shipUtils/Paths.py - shipUtils/Translator.py ) SOURCE_GROUP("shiputils" FILES ${ShipUtils_SRCS}) @@ -128,7 +87,7 @@ SOURCE_GROUP("shipcreatetank" FILES ${ShipCreateTank_SRCS}) SET(ShipGZ_SRCS tankGZ/__init__.py - tankGZ/Plot.py + tankGZ/PlotAux.py tankGZ/TaskPanel.py tankGZ/TaskPanel.ui ) diff --git a/src/Mod/Ship/Icons/DataIco.png b/src/Mod/Ship/Icons/DataIco.png deleted file mode 100644 index 223338ceae17dcf8c11298f9d79b76cdaeb8f68d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11365 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 Y)4}H8-f2<+9ry*vNhwR#ikpP|2Nop=iU0rr diff --git a/src/Mod/Ship/Icons/DataIco.xcf b/src/Mod/Ship/Icons/DataIco.xcf deleted file mode 100644 index 81e05ac42dbb609ebfb16f223a591fcbdc7753fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85943 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 h0~b`s#Lczj0mLT~s7GeMZ diff --git a/src/Mod/Ship/Icons/DataIco.xpm b/src/Mod/Ship/Icons/DataIco.xpm deleted file mode 100644 index 19aed7ffa0..0000000000 --- a/src/Mod/Ship/Icons/DataIco.xpm +++ /dev/null @@ -1,1021 +0,0 @@ -/* XPM */ -static char * DataIco_xpm[] = { -"128 128 890 2", -" c None", -". c #A7A7A7", -"+ c #A7A7A6", -"@ c #A6A5A6", -"# c #A5A6A5", -"$ c #A5A5A5", -"% c #A5A5A4", -"& c #A4A4A4", -"* c #A7A7A8", -"= c #A6A6A6", -"- c #A5A4A5", -"; c #A5A4A4", -"> c #A8A8A7", -", c #A8A7A7", -"' c #979797", -") c #989898", -"! c #999899", -"~ c #A5A6A6", -"{ c #A8A8A8", -"] c #A7A8A8", -"^ c #979898", -"/ c #999999", -"( c #999A9A", -"_ c #A9A9A8", -": c #99999A", -"< c #9A9A9B", -"[ c #B2B2B2", -"} c #A9A9AA", -"| c #A9A9A9", -"1 c #9B9A9A", -"2 c #9C9B9B", -"3 c #A7A6A6", -"4 c #B3B4B3", -"5 c #B3B3B3", -"6 c #AAAAAA", -"7 c #9A9A9A", -"8 c #9B9B9B", -"9 c #9C9C9C", -"0 c #A7A6A7", -"a c #9E9E9E", -"b c #9D9D9D", -"c c #B5B5B5", -"d c #B5B4B5", -"e c #B4B4B4", -"f c #B4B3B4", -"g c #B2B3B3", -"h c #9D9C9C", -"i c #9F9E9E", -"j c #9E9E9F", -"k c #B7B6B7", -"l c #B6B6B6", -"m c #B6B5B5", -"n c #B4B4B5", -"o c #828181", -"p c #B3B3B4", -"q c #ABAAAB", -"r c #9C9C9B", -"s c #9C9C9D", -"t c #9F9FA0", -"u c #9E9F9E", -"v c #9E9F9F", -"w c #9E9D9E", -"x c #9E9D9D", -"y c #9C9D9C", -"z c #807F7F", -"A c #818080", -"B c #828281", -"C c #B4B5B4", -"D c #ABABAB", -"E c #A9A8A8", -"F c #A0A0A0", -"G c #A09FA0", -"H c #9F9F9F", -"I c #ADADAD", -"J c #ADAEAE", -"K c #9D9D9E", -"L c #B7B7B7", -"M c #B6B6B5", -"N c #818081", -"O c #828282", -"P c #838383", -"Q c #ADADAC", -"R c #ABACAC", -"S c #ABACAB", -"T c #A8A9A8", -"U c #A6A7A7", -"V c #A0A1A0", -"W c #AFAFAF", -"X c #B7B6B6", -"Y c #818181", -"Z c #828383", -"` c #848383", -" . c #B4B3B3", -".. c #AFB0AF", -"+. c #AEAEAF", -"@. c #AFAEAE", -"#. c #AEAEAE", -"$. c #ACADAD", -"%. c #ACACAC", -"&. c #A0A1A1", -"*. c #A5A5A6", -"=. c #A1A2A2", -"-. c #A1A1A1", -";. c #A1A1A0", -">. c #B0B0B0", -",. c #B1B1B0", -"'. c #838382", -"). c #848484", -"!. c #858585", -"~. c #B5B5B4", -"{. c #B4B4B3", -"]. c #B2B1B2", -"^. c #B1B1B1", -"/. c #B0B1B0", -"(. c #AEAFAF", -"_. c #9C9D9D", -":. c #9E9E9D", -"<. c #A2A2A2", -"[. c #A3A3A4", -"}. c #A6A6A5", -"|. c #A4A4A5", -"1. c #A1A2A1", -"2. c #B2B1B1", -"3. c #A09F9F", -"4. c #B7B7B8", -"5. c #B6B6B7", -"6. c #868585", -"7. c #868786", -"8. c #B3B2B3", -"9. c #B2B2B3", -"0. c #B1B2B1", -"a. c #B0B1B1", -"b. c #949494", -"c. c #959595", -"d. c #969696", -"e. c #979798", -"f. c #989899", -"g. c #A0A09F", -"h. c #A3A3A3", -"i. c #A4A4A3", -"j. c #A6A5A5", -"k. c #A4A3A3", -"l. c #A3A2A2", -"m. c #A1A0A0", -"n. c #B8B8B8", -"o. c #848584", -"p. c #858686", -"q. c #868787", -"r. c #888888", -"s. c #919090", -"t. c #919192", -"u. c #929392", -"v. c #969697", -"w. c #979897", -"x. c #999898", -"y. c #9D9C9D", -"z. c #A8A7A8", -"A. c #A8A9A9", -"B. c #A9AAAA", -"C. c #AAABAB", -"D. c #ACACAD", -"E. c #A4A5A4", -"F. c #A3A2A3", -"G. c #B3B4B4", -"H. c #898888", -"I. c #898989", -"J. c #8B8A8A", -"K. c #8C8C8B", -"L. c #8D8D8D", -"M. c #8E8E8E", -"N. c #8F8F8F", -"O. c #909090", -"P. c #929291", -"Q. c #939393", -"R. c #959495", -"S. c #969695", -"T. c #979796", -"U. c #9B9B9C", -"V. c #A0A0A1", -"W. c #AAAAA9", -"X. c #ACABAB", -"Y. c #ACADAC", -"Z. c #AEADAE", -"`. c #AFB0B0", -" + c #B1B0B1", -".+ c #B3B2B2", -"++ c #A2A1A2", -"@+ c #B7B8B7", -"#+ c #878787", -"$+ c #888988", -"%+ c #8A8A8A", -"&+ c #8A8B8B", -"*+ c #8C8C8C", -"=+ c #8E8D8D", -"-+ c #8F8E8F", -";+ c #919091", -">+ c #929292", -",+ c #949495", -"'+ c #969596", -")+ c #9B9C9C", -"!+ c #A2A3A3", -"~+ c #A7A8A7", -"{+ c #AEAFAE", -"]+ c #A2A1A1", -"^+ c #B9B8B8", -"/+ c #868686", -"(+ c #888787", -"_+ c #898889", -":+ c #8B8B8B", -"<+ c #8D8E8D", -"[+ c #8F8E8E", -"}+ c #919191", -"|+ c #939392", -"1+ c #949393", -"2+ c #959494", -"3+ c #989798", -"4+ c #989998", -"5+ c #9A9999", -"6+ c #9A9B9B", -"7+ c #A1A0A1", -"8+ c #ACABAC", -"9+ c #B0AFB0", -"0+ c #B8B8B7", -"a+ c #A2A3A2", -"b+ c #B9B9B9", -"c+ c #868687", -"d+ c #878887", -"e+ c #8D8C8C", -"f+ c #8F8F8E", -"g+ c #909091", -"h+ c #929192", -"i+ c #939493", -"j+ c #9A9A99", -"k+ c #9D9D9C", -"l+ c #A2A2A3", -"m+ c #A4A5A5", -"n+ c #AAA9A9", -"o+ c #B2B2B1", -"p+ c #BABABA", -"q+ c #BAB9BA", -"r+ c #B9B9BA", -"s+ c #878687", -"t+ c #888887", -"u+ c #8C8C8D", -"v+ c #929393", -"w+ c #949493", -"x+ c #969796", -"y+ c #A1A1A2", -"z+ c #A6A6A7", -"A+ c #A9A8A9", -"B+ c #AFAEAF", -"C+ c #B0AFAF", -"D+ c #B5B6B6", -"E+ c #B8B7B8", -"F+ c #BABAB9", -"G+ c #BBBBBA", -"H+ c #BABABB", -"I+ c #8C8D8C", -"J+ c #8E8D8E", -"K+ c #919190", -"L+ c #929191", -"M+ c #939293", -"N+ c #979697", -"O+ c #999998", -"P+ c #9C9B9C", -"Q+ c #A6A7A6", -"R+ c #ABABAC", -"S+ c #ADACAC", -"T+ c #BCBBBB", -"U+ c #A3A3A2", -"V+ c #BCBCBC", -"W+ c #BBBBBC", -"X+ c #BBBBBB", -"Y+ c #979696", -"Z+ c #989797", -"`+ c #9FA09F", -" @ c #ABAAAA", -".@ c #ACACAB", -"+@ c #B0B0AF", -"@@ c #B3B3B2", -"#@ c #B6B7B7", -"$@ c #B9B9B8", -"%@ c #BBBCBB", -"&@ c #BCBDBC", -"*@ c #BDBCBD", -"=@ c #BDBDBD", -"-@ c #818182", -";@ c #858586", -">@ c #8B8B8C", -",@ c #8C8D8D", -"'@ c #8F9090", -")@ c #909190", -"!@ c #919292", -"~@ c #959695", -"{@ c #9D9E9D", -"]@ c #AAAAAB", -"^@ c #BBBABA", -"/@ c #BBBCBC", -"(@ c #BEBDBD", -"_@ c #BEBDBE", -":@ c #BBBABB", -"<@ c #C3C3C4", -"[@ c #BDBDBE", -"}@ c #808181", -"|@ c #828283", -"1@ c #848485", -"2@ c #868685", -"3@ c #8B8C8B", -"4@ c #908F8F", -"5@ c #B1B0B0", -"6@ c #AFAFAE", -"7@ c #ADAEAD", -"8@ c #BEBFBE", -"9@ c #BEBEBE", -"0@ c #B9BAB9", -"a@ c #C4C4C4", -"b@ c #C3C3C3", -"c@ c #C3C2C3", -"d@ c #BFBFBE", -"e@ c #7F7F80", -"f@ c #878686", -"g@ c #8A8B8A", -"h@ c #8D8E8E", -"i@ c #929293", -"j@ c #AFAFB0", -"k@ c #AEAEAD", -"l@ c #AEADAD", -"m@ c #B5B5B6", -"n@ c #BABBBA", -"o@ c #BCBBBC", -"p@ c #BDBEBD", -"q@ c #C5C5C5", -"r@ c #C3C4C3", -"s@ c #BFC0C0", -"t@ c #BFBFBF", -"u@ c #7E7E7E", -"v@ c #7F7F7F", -"w@ c #808081", -"x@ c #818281", -"y@ c #838282", -"z@ c #8F8F90", -"A@ c #B9BABA", -"B@ c #BABBBB", -"C@ c #9FA0A0", -"D@ c #C4C5C4", -"E@ c #6F6F6F", -"F@ c #C4C3C4", -"G@ c #C2C3C3", -"H@ c #C3C3C2", -"I@ c #C0C0C0", -"J@ c #7C7D7C", -"K@ c #808080", -"L@ c #838283", -"M@ c #858685", -"N@ c #B8B9B8", -"O@ c #B8B9B9", -"P@ c #B8B7B7", -"Q@ c #A2A2A1", -"R@ c #C6C6C6", -"S@ c #6D6E6D", -"T@ c #6F6E6F", -"U@ c #707071", -"V@ c #C3C4C4", -"W@ c #C4C3C3", -"X@ c #C2C2C2", -"Y@ c #C2C1C1", -"Z@ c #C1C1C1", -"`@ c #C1C0C1", -" # c #7D7D7D", -".# c #7E7D7E", -"+# c #888989", -"@# c #8C8B8B", -"## c #B9B8B9", -"$# c #C7C7C7", -"%# c #6E6D6E", -"&# c #707070", -"*# c #717172", -"=# c #727372", -"-# c #C3C2C2", -";# c #7B7B7B", -"># c #7D7D7E", -",# c #828382", -"'# c #848483", -")# c #858584", -"!# c #888788", -"~# c #888889", -"{# c #B7B8B8", -"]# c #ADACAD", -"^# c #C7C8C8", -"/# c #C6C7C7", -"(# c #C6C7C6", -"_# c #C5C6C5", -":# c #717271", -"<# c #727272", -"[# c #747374", -"}# c #757575", -"|# c #767676", -"1# c #777878", -"2# c #797978", -"3# c #797A7A", -"4# c #7D7E7D", -"5# c #878788", -"6# c #959596", -"7# c #AAABAA", -"8# c #B1B2B2", -"9# c #C6C6C5", -"0# c #717171", -"a# c #737372", -"b# c #777777", -"c# c #797879", -"d# c #7A7A7A", -"e# c #7C7C7D", -"f# c #7E7D7D", -"g# c #7E7F7F", -"h# c #B6B7B6", -"i# c #C7C6C7", -"j# c #737474", -"k# c #747574", -"l# c #767675", -"m# c #797878", -"n# c #7B7C7C", -"o# c #7F7E7F", -"p# c #939494", -"q# c #C5C6C6", -"r# c #757474", -"s# c #787878", -"t# c #797A79", -"u# c #7A7A7B", -"v# c #767777", -"w# c #797979", -"x# c #7B7B7A", -"y# c #7C7C7B", -"z# c #7D7D7C", -"A# c #808180", -"B# c #BEBFBF", -"C# c #B2B3B2", -"D# c #ABABAA", -"E# c #747474", -"F# c #767677", -"G# c #787777", -"H# c #7C7B7B", -"I# c #7D7C7C", -"J# c #B1B1B2", -"K# c #A4A3A4", -"L# c #C7C7C6", -"M# c #747473", -"N# c #7A7A79", -"O# c #C1C0C0", -"P# c #C7C8C7", -"Q# c #737373", -"R# c #787879", -"S# c #7C7B7C", -"T# c #B7B7B6", -"U# c #C1C1C0", -"V# c #AAA9AA", -"W# c #C8C8C8", -"X# c #C8C8C7", -"Y# c #737374", -"Z# c #7A7979", -"`# c #7A7B7A", -" $ c #C8C9C8", -".$ c #C8C8C9", -"+$ c #727171", -"@$ c #757576", -"#$ c #777677", -"$$ c #C2C2C1", -"%$ c #CAC9C9", -"&$ c #C8C9C9", -"*$ c #737273", -"=$ c #7C7C7C", -"-$ c #A9AAA9", -";$ c #CACBCA", -">$ c #C9C9CA", -",$ c #757676", -"'$ c #777877", -")$ c #C4C4C3", -"!$ c #CBCBCB", -"~$ c #CBCACB", -"{$ c #6F7070", -"]$ c #757475", -"^$ c #787877", -"/$ c #7B7A7A", -"($ c #8E8E8F", -"_$ c #C5C5C4", -":$ c #CBCACA", -"<$ c #717071", -"[$ c #727271", -"}$ c #767575", -"|$ c #767776", -"1$ c #787978", -"2$ c #A3A4A3", -"3$ c #6F6F6E", -"4$ c #737473", -"5$ c #79797A", -"6$ c #C5C5C6", -"7$ c #CDCCCD", -"8$ c #CCCCCC", -"9$ c #CBCCCC", -"0$ c #70706F", -"a$ c #707171", -"b$ c #C6C6C7", -"c$ c #ADADAE", -"d$ c #9F9F9E", -"e$ c #CDCDCC", -"f$ c #CCCDCD", -"g$ c #6D6D6D", -"h$ c #6E6E6E", -"i$ c #706F6F", -"j$ c #727172", -"k$ c #737272", -"l$ c #747373", -"m$ c #777676", -"n$ c #9D9E9E", -"o$ c #CDCECE", -"p$ c #CDCDCD", -"q$ c #6D6D6C", -"r$ c #757675", -"s$ c #C8C7C7", -"t$ c #CECECE", -"u$ c #CECDCE", -"v$ c #6C6C6C", -"w$ c #9F9E9F", -"x$ c #D3D3D3", -"y$ c #D2D3D2", -"z$ c #D2D2D2", -"A$ c #D2D2D1", -"B$ c #D1D1D1", -"C$ c #D0D0D1", -"D$ c #D0D0D0", -"E$ c #D0D0CF", -"F$ c #D0CFCF", -"G$ c #CFCFCF", -"H$ c #CFCECF", -"I$ c #727273", -"J$ c #C9C8C9", -"K$ c #9B9A9B", -"L$ c #D3D4D3", -"M$ c #D3D2D2", -"N$ c #D2D1D1", -"O$ c #D1D1D0", -"P$ c #CECFCE", -"Q$ c #6A6A6A", -"R$ c #6B6C6C", -"S$ c #6C6D6D", -"T$ c #757574", -"U$ c #C9C9C9", -"V$ c #9B9B9A", -"W$ c #9A9B9A", -"X$ c #D4D4D4", -"Y$ c #D3D4D4", -"Z$ c #5F5F5F", -"`$ c #606061", -" % c #616161", -".% c #636263", -"+% c #646464", -"@% c #656465", -"#% c #666666", -"$% c #676767", -"%% c #686969", -"&% c #696A69", -"*% c #6B6B6B", -"=% c #706F70", -"-% c #CAC9CA", -";% c #9A999A", -">% c #969797", -",% c #D4D5D4", -"'% c #5F5F5E", -")% c #606060", -"!% c #626263", -"~% c #636463", -"{% c #656566", -"]% c #686868", -"^% c #696969", -"/% c #6E6F6F", -"(% c #717170", -"_% c #C9CAC9", -":% c #CACACA", -"<% c #B0B0B1", -"[% c #D4D5D5", -"}% c #D4D4D5", -"|% c #606161", -"1% c #626261", -"2% c #636363", -"3% c #656565", -"4% c #696869", -"5% c #6C6B6C", -"6% c #707170", -"7% c #717272", -"8% c #CBCBCA", -"9% c #989999", -"0% c #D5D5D5", -"a% c #D5D4D4", -"b% c #D2D3D3", -"c% c #D0D1D1", -"d% c #6A6B6B", -"e% c #6B6B6C", -"f% c #6D6C6D", -"g% c #6E6E6D", -"h% c #949595", -"i% c #949594", -"j% c #D6D5D6", -"k% c #D5D4D5", -"l% c #D3D3D4", -"m% c #D3D2D3", -"n% c #D1D2D2", -"o% c #69696A", -"p% c #6F6E6E", -"q% c #959696", -"r% c #939394", -"s% c #D1D2D1", -"t% c #6D6E6E", -"u% c #6E6F6E", -"v% c #CBCCCB", -"w% c #676768", -"x% c #696868", -"y% c #6A696A", -"z% c #6B6C6B", -"A% c #CCCCCD", -"B% c #666766", -"C% c #6F706F", -"D% c #807F80", -"E% c #919291", -"F% c #909191", -"G% c #90908F", -"H% c #676766", -"I% c #676867", -"J% c #6D6D6E", -"K% c #C1C1C2", -"L% c #B5B4B4", -"M% c #908F90", -"N% c #676666", -"O% c #6B6A6A", -"P% c #6C6B6B", -"Q% c #6D6C6C", -"R% c #8E8F8E", -"S% c #666767", -"T% c #686968", -"U% c #6A6969", -"V% c #CECECD", -"W% c #8F908F", -"X% c #8D8C8D", -"Y% c #8D8D8C", -"Z% c #656666", -"`% c #676667", -" & c #8C8B8C", -".& c #CECFCF", -"+& c #8B8B8A", -"@& c #D5D5D4", -"#& c #666565", -"$& c #676868", -"%& c #B8B8B9", -"&& c #D6D6D5", -"*& c #646364", -"=& c #CFD0CF", -"-& c #CFCECE", -";& c #8A8A8B", -">& c #898A8A", -",& c #8A8989", -"'& c #D6D6D6", -")& c #646564", -"!& c #89898A", -"~& c #898A89", -"{& c #8A8A89", -"]& c #878888", -"^& c #626262", -"/& c #646465", -"(& c #D6D6D7", -"_& c #D7D6D6", -":& c #636362", -"<& c #636464", -"[& c #656665", -"}& c #686867", -"|& c #D0CFD0", -"1& c #D7D7D7", -"2& c #D6D7D7", -"3& c #6E6D6D", -"4& c #CFD0D0", -"5& c #BCBCBB", -"6& c #838483", -"7& c #D8D9D8", -"8& c #D8D8D7", -"9& c #656564", -"0& c #6A6B6A", -"a& c #BCBDBD", -"b& c #858485", -"c& c #848384", -"d& c #838484", -"e& c #DAD9DA", -"f& c #D9D9D9", -"g& c #D8D8D8", -"h& c #5E5E5E", -"i& c #5F5F60", -"j& c #606160", -"k& c #636364", -"l& c #838384", -"m& c #818282", -"n& c #DBDBDB", -"o& c #DADADA", -"p& c #DAD9D9", -"q& c #5D5D5D", -"r& c #5E5D5E", -"s& c #5E5F5E", -"t& c #605F5F", -"u& c #686768", -"v& c #BFBEBF", -"w& c #828182", -"x& c #7F8080", -"y& c #B4B5B5", -"z& c #DCDCDC", -"A& c #DCDCDB", -"B& c #DBDADB", -"C& c #5A5A5A", -"D& c #5A5B5B", -"E& c #5C5C5C", -"F& c #605F60", -"G& c #616160", -"H& c #696A6A", -"I& c #6B6A6B", -"J& c #6C6C6D", -"K& c #818180", -"L& c #7F7F7E", -"M& c #DDDCDD", -"N& c #DCDDDD", -"O& c #585858", -"P& c #595859", -"Q& c #595A59", -"R& c #5B5A5A", -"S& c #5B5B5C", -"T& c #D8D9D9", -"U& c #D8D7D8", -"V& c #626162", -"W& c #636262", -"X& c #646463", -"Y& c #666667", -"Z& c #80807F", -"`& c #7F807F", -" * c #7F7E7E", -".* c #DDDDDD", -"+* c #DDDDDC", -"@* c #575657", -"#* c #585857", -"$* c #595959", -"%* c #D9DADA", -"&* c #D8D8D9", -"** c #696968", -"=* c #6C6C6B", -"-* c #C1C2C1", -";* c #C2C1C2", -">* c #7E7F7E", -",* c #7E7E7D", -"'* c #BAB9B9", -")* c #7B7B7C", -"!* c #DCDCDD", -"~* c #575757", -"{* c #DBDCDC", -"]* c #DBDADA", -"^* c #D9DAD9", -"/* c #D7D6D7", -"(* c #616162", -"_* c #6A6A69", -":* c #6C6D6C", -"<* c #C0BFBF", -"[* c #CECECF", -"}* c #C2C2C3", -"|* c #7D7E7E", -"1* c #7C7D7D", -"2* c #DCDBDC", -"3* c #DCDBDB", -"4* c #616262", -"5* c #626362", -"6* c #C8C7C8", -"7* c #C5C4C5", -"8* c #DEDEDE", -"9* c #D7D8D7", -"0* c #626363", -"a* c #686767", -"b* c #CECDCD", -"c* c #7A7B7B", -"d* c #7B7A7B", -"e* c #A4A2A2", -"f* c #DEDDDD", -"g* c #D9D8D8", -"h* c #616061", -"i* c #626161", -"j* c #646565", -"k* c #CCCBCB", -"l* c #CACBCB", -"m* c #7A797A", -"n* c #BCBCBD", -"o* c #AEB0B0", -"p* c #A9A7A7", -"q* c #D7D8D8", -"r* c #616060", -"s* c #6A6A6B", -"t* c #C4C5C5", -"u* c #CACAC9", -"v* c #787778", -"w* c #787979", -"x* c #A8A8A9", -"y* c #656464", -"z* c #686869", -"A* c #727373", -"B* c #777778", -"C* c #A6A6A4", -"D* c #A3A3A5", -"E* c #6E6E6F", -"F* c #D8D7D7", -"G* c #747475", -"H* c #747575", -"I* c #C0C1C0", -"J* c #D9D8D9", -"K* c #C0C1C1", -"L* c #646363", -"M* c #949394", -"N* c #5F6060", -"O* c #666566", -"P* c #AAAAA8", -"Q* c #5F5E5F", -"R* c #5D5D5E", -"S* c #5F605F", -"T* c #6B6B6A", -"U* c #5D5D5C", -"V* c #DBDBDA", -"W* c #5A5A5B", -"X* c #5B5B5B", -"Y* c #5B5C5C", -"Z* c #D6D7D6", -"`* c #D6D5D5", -" = c #666665", -".= c #C9CACA", -"+= c #C4C4C5", -"@= c #5A595A", -"#= c #5B5B5A", -"$= c #D9D9D8", -"%= c #D5D6D6", -"&= c #D4D3D4", -"*= c #CCCBCC", -"== c #CACACB", -"-= c #B9B7B9", -";= c #DBDBDC", -">= c #585757", -",= c #D9D9DA", -"'= c #D4D4D3", -")= c #D3D3D2", -"!= c #CDCDCE", -"~= c #CDCCCC", -"{= c #CBCBCC", -"]= c #C7C7C8", -"^= c #C5C4C4", -"/= c #B5B7B7", -"(= c #A9A9A7", -"_= c #565555", -":= c #565656", -"<= c #DADBDB", -"[= c #DEDEDD", -"}= c #555454", -"|= c #555555", -"1= c #767576", -"2= c #DFDEDF", -"3= c #DDDEDD", -"4= c #545554", -"5= c #D1D0D1", -"6= c #DDDEDE", -"7= c #DDDDDE", -"8= c #D0D1D0", -"9= c #C7C6C6", -"0= c #777776", -"a= c #5E5F5F", -"b= c #5E5E5F", -"c= c #5C5C5D", -"d= c #5C5D5C", -"e= c #BBB9B9", -"f= c #5B5C5B", -"g= c #D4D3D3", -"h= c #959594", -"i= c #5B5A5B", -"j= c #A7A5A5", -"k= c #AAAAAC", -"l= c #D5D6D5", -"m= c #8E8F8F", -"n= c #6A6A6C", -"o= c #828482", -"p= c #CBCDCB", -"q= c #ABAAA9", -"r= c #A3A4A4", -"s= c #6F6F70", -"t= c #757577", -"u= c #C7C7C5", -"v= c #C0C2C2", -"w= c #D5D5D7", -" ", -" ", -" . + @ # $ % & ", -" * . = # $ - ; ", -" > , ' ) ! ~ $ ", -" { ] ^ / ( @ # ", -" _ { ) : < = ~ ", -" [ [ } | / 1 2 3 + ", -" 4 5 [ 6 | 7 8 9 ] 0 a b ", -" c d e f 4 g 6 6 < 9 h { . i j b b b ", -" k l m c n o p 5 q 6 r s b { ] t u v w x b y ", -" l l z A B C f 5 D 6 9 b a E { F G H I J a K b ", -" L l M N O P e e I I Q R S D b w H | | T * . U . V F W W W j a K ", -" L X Y Z ` d e . ..W +.@.#.I I $.%.9 b i t &.| E { > , U 0 = *.$ =.-.;.>.,.>.H v ", -" L k l '.).!.~.e {. ].^./.>.>.W (.#.) / 7 8 _.:.H F -.<.[.& }.+ * U 0 = ~ *.; |. <.1.^.^.2.3.t i ", -" 4.L 5.).6.7.e n e 5 8.9.[ 0.a.,.b.c.d.e.f.: 8 9 b a g.F <.h.i.$ = . { | 6 D = j.# |.& & k.h.l.<.g g 8.m.g. ", -" n.L o.p.q.r.n e {.5 5 [ s.t.u.b.c.v.w.x.7 8 y.b H F V <.h.; $ + z.A.B.C.%.D.J W $ & E.& h.F. .G.e -.F F ", -" n.4.L p.q.H.I.J.K.L.M.N.O.P.Q.R.S.T.) / 7 U.h a H V.-.h.i.% = . { W.6 X.Y.Z.W `. +2..+5 4 e e c c ++-. ", -" n.@+p.#+$+%+&+*+=+-+O.;+>+Q.,+'+' f./ 8 )+y.a H -.<.!+& j.U ~+T 6 D %.I {+W >.].[ 5 {.n c M l X <.]+ ", -" ^+L /+(+_+%+:+*+<+[+O.}+|+1+2+d.3+4+5+6+9 b i F 7+<.h.E.*.U { | C.8+Y.#.(.9+^.[ 8.e c l k L 0+n.a+<. ", -" b+n.c+d+I.%+:+e+=+f+g+h+Q.i+c.d.) 4+j+8 k+w j F 1.l+& m+j.. T n+D %.I #.W >.o+5 {.c l k L n.b+b+!+l. ", -" p+q+r+^+s+t+$+%+:+u+L.N.O.t.v+w+c.x+w./ 7 8 y.a H V y+l+k.$ z+* A+6 D %.I B+C+,.[ p C D+k E+^+b+F+p+[.h.F.<. ", -" G+H+p+r+!.s+t+_+%+K.I+J+N.K+L+M+b.c.N+) O+7 P+_.a H ;.-.h.& $ Q+~+_ 6 R+S+#.W >.0.8.e c l L n.b+p+G+T+T+k.U+a+<. ", -" V+W+X+Z ).6.#+#+I.J.:+L.M.N.O.h+Q.b.d.Y+Z+/ 8 r y a `+&.1.h.& j.3 > | @.@Q #.+@>.[ @@e m #@L $@p+X+%@&@*@V+X+!+!+<. ", -" =@V+V+-@P ).;@7.r.I.%+>@,@M.'@)@!@Q.b.~@N+) {@h.> R+#.{+W B+#.J S+S ]@6 D .@Q {+W /.o+5 C c #@n.r+^@/@*@(@_@=@V+:@h.l+<. ", -" <@ [@=@=@}@-@|@1@2@c+r.I.&+3@L.M.4@;+>+Q.b.{@> `. .5 9.[ 2.^.5@>.W W 6@#.#.7@I R+%.I W ,.[ 5 C m L n.b+:@T+=@8@9@_@V+X+0@h.l.<. ", -" a@a@b@c@ d@9@9@e@A O P ).6.f@t+I.g@K.e+h@N.)@i@<.j@c c e {.G.5 #.k@l@I I Y.S I ^.5 n m@#@0+b+n@o@*@p@=@=@o@X+0@b+h.U+<. H a a ", -" q@a@a@r@b@ s@t@9@u@v@w@x@y@).!.q.r.I.J.3@L.M.z@<.e 5.l M c I %.%.R D W e c #@4.b+A@B@V+V+*@V+X+X+b+n.L h.!+a+ C@`+H v ", -" q@q@D@E@F@r@G@H@ I@s@J@u@v@K@Y L@).M@/+#+I.%+:+L.8 0.n.4.L 5. S+%..@D %.^.D+L N@r+^@X+o@T+X+p+p+O@P@5.c h.U+<.Q@y+&.V G G v i ", -" R@q@S@T@U@V@W@b@X@X@Y@Z@`@I@ #.#u@A Y P ).!.7.r.+#%+@#. r+b+n.n. %.8+D D {+l n.O@b+q+p+p+r+b+##E+L l c 5 h.F.<.<.y+-.S @F v ", -" $#$#R@%#E@&#*#=#b@b@-#X@X@Z@;# #>#v@K@Y ,#'#)#/+!#~#>+^.p+p+b+ .@D q %.e {#n.$@b+##O@n.@+L l c e 5 [ /.>.(.l@]#D 6 F H H ", -" ^#/#(#R@_#&#:#<#[#}#|#1#2#3#;#J@4#v@K@Y |@'#o./+5#6#n.X+X+ R+7#7#8.L {#@+0+L L X l m e 5 .+8#/.W #.]#%.D ;.7+F g. ", -" $#/#R@9#0#a#[#}#|#b#c#d#;#e#f#g#K@Y O ` o.p.' T+V+V+ %.D ]@2.h#5.5.h#m@M c C p 5 ].,.>.W J %..@=.-.-.V ", -" i#R@_#q@j#k#l#b#m#3#;#n#>#o#K@Y O P 1@p#*@=@*@ X.D 6 [ c m c e e f 5 g 0.^...W #.I %.U+l+<. ", -" (#R@q#q@r#}#b#s#t#u#n# #u@K@N B P L.b+9@[@ D D @].e p p 4 .+8.o+^.>.W #.I %.X.h.h. ", -" R@_#r#}#v#s#w#x#y#z#u@v@A#-@'.[ B#9@ .@D S g C#C#[ [ ^.5@W W #.l@S+.@D#k.h. ", -" /#R@E#l#F#G#2#d#H#I#.#v@K@o = I@t@ X.D ]#J#^.a./.>.j@W #.l@S+%.]@} & K# ", -" i#L#M#}#|#b#2#N#;#I#>#u@K@~@O#I@ D D #.>.>.W W #.Z.I %.8+ @} A+|.& ", -" P#$#Q#k#|#b#R#t#x#S#f#u@K@T#Z@U# %.D q B+(.#.7@I ]#%.D 6 V#A.{ $ ; ", -" W#X#P#Y#E#|#b#R#Z#`#y#z#u@a X@Y@ 8+R %.I I S+%.X.q C.V#| z.. ~ $ $ ", -" $.$+$Q#E#@$#$s#w#d#H#z#o#=@c@$$ D.8+R+D %.8+D 6 V#| A.~+. = @ @ $ ", -" %$&$0#*$M#}#F#G#c#N#;#=$b b@b@ $.8+D C.7#-$| _ T . U = # m+= $ ", -" ;$>$%$0#*$j#}#,$'$2#t#`#=$N@)$r@ I %.7#B.| | { z.. z+= $ & & z+= @ ", -" !$~${$0#<#Q#]$l#v#^$w#/$($_$a@ ]#%.| { , . + ~ $ m+& h.l.=.Q+~ ", -" !$:$E@<$[$Q#E#}$|$^$1$d#. q@q@ I Q -$0 0 *.$ - & 2$h.l.1.V . . ", -" !$!$3$�#<#4$k#|#b#m#5$V+6$ I %.# $ % & K#k.a+<.]+&.F , . ", -" 7$8$9$T@0$a$<#Q#E#l#b#s#!.R@b$ #.c$$ & [.h.a+<.]+-.;.g.d$> ~+. ", -" e$f$g$h$i$0#j$k$l$}#m$b#v.$#i# #.c$= !+a+<.<.-.V.C@H H n$b ] z. ", -" o$p$q$h$E@�#<#Y#k#r$#$$ X#s$ W +.{ ++-.&.m.F 3.H a :.b 9 _ { ", -" t$u$v$g$h$i$a$0#*$r#,$F#2.W# B+]@V.F F H w$d$K x h 8 8 | { ", -" x$y$z$A$B$C$D$E$F$G$H$t$v$g$h$E@�#I$Q#}#|#V+J$ W R+t d$j a :.b 9 9 2 K$7 | A._ z., + U = j. ", -" L$x$M$z$z$N$C$O$F$G$P$Q$R$S$%#E@0$0#<#Q#T$r$X@U$ C+c$:.n$K b y 9 U.V$W$j+/ x.| T T { . + 0 = ", -" X$Y$Z$`$ %.%+%@%#%$%%%&%*%v$g$h$=%&#<#I$[#}#W#-% >.W y.b h 9 r 8 K$;%/ 4+) 3+>%d.6#2+b.Q.. z+ ", -" ,%X$'%)% %!%~%@%{%$%]%^%Q$*%q$%#/%&#(%<#Q#E#_%:% <%W 9 8 8 < 7 7 / 4+f.' ' Y+d.c.b.w+Q.>+] . ", -" [%}%Z$Z$|%1%2%+%3%#%$%4%Q$*%5%g$h$=%6%7%I$j#W#8% a.+@6+7 7 : 9%f.) w.' Y+d.c.,+p#Q.u.P.}+z.~+ ", -" 0%a%,%X$x$x$b%z$A$B$c%]%^%d%e%f%g%3$&#U@j$Q#a@!$ J#B+/ / ! ) ) ^ ' ' d.6#h%i%D D 6 B.-$_ A+{ ", -" j%0%k%X$L$l%x$m%z$n%B$O$%%o%*%v$g$p%E@�#Q#(@!$ 8#I ) w.) >%x+d.q%c.c.,+r%%.R+D C.]@6 n+| E ", -" z$s%]%^%Q$e%S$t%u%{$<$<#5 v% 9.6 N+N+d.d.q%6#h%b.r%Q.|+%.%. ", -" z$n%w%x%y%d%v$g$h$E@�#j.8$v% p C#$ d.S.c.2+,+b.i+Q.u.>+t.Q %. ", -" m%z$$%]%^%Q$z%q$%#p%E@6%b.A%8$ {. .g.h%b.b.i+Q.Q.u.!@}+K+O.7@]# ", -" x$y$B%w%4%y%*%v$S$h$E@C%D%p$p$ e f f.Q.M+v+>+P.E%}+F%O.G%N.#.7@ ", -" X$x$x$H%I%^%Q$*%v$J%h$=%&#K%p$ L%..>+P.P.!@}+}+)@O.M%N.f+(.(.#. ", -" x$x$N%$%]%&%O%P%Q%g$/%C%. u$p$ D+c j.}+g+;+O.G%4@N.f+R%J+<+C+6@ ", -" X$l%{%S%$%T%U%Q$R$f%h$E@+#t$V% l l 5+M%W%z@N.($[+M.M.J+X%Y%9+j@ ", -" }%X$3%Z%`%]%^%Q$*%v$g$h$E@t@t$o$ L l C+R%($M.M.<+h@L.L.Y%e+ &:+>.>. ", -" 0%[%X$3%H%$%]%y%Q$z%v$J%h$7 .&t$ n.L g.L.L.L.I+,@*+*+*+3@+&J.2.5@5@ ", -" @&X$+%#&$%$&^%y%Q$e%q$g$a$$#P$t$ %&n. .L.*+*+:+@#>@:+:+J.%+%+I.[ ^. ", -" &&@&*&+%#%N%]%x%Q$*%R$g$h$9 =&-& ##%&F :+:+J.;&;&;&>&%+,&I.H.$+[ ]. ", -" '&0%2%)&3%#%$%]%^%Q$*%v$g$J%s@G$t$ p+r+^.%+>&%+!&~&{&I.I.~#r.]&#+5 @@[ ", -" '&&&^&2%/&Z%#%w%x%^%Q$z%v$g$L.F$G$ n@p+^ I.H.r.r.r.r.]&t+#+s+q.c+p 5 ", -" (&_&1%:&<&3%[&`%}&]%&%Q$z%Q%S@. |&G$ T+X+# (+5#d+#+#+#+q.#+/+/+6.p.!.e f ", -" 1&2& %1%2%+%3%Z%`%]%^%U%*%P%Q%3&X+4&G$ V+5&..7./+/+p.2@2@/+;@6.!.!.).).6&L%{. ", -" 7&8&8&)% %^&2%+%9&#%$%}&T%Q$0&*%Q% #W#=&G$ =@a&L M.b&b&b&)#b&b&).b&).c&d&P P '.~.~. ", -" e&f&7&g&h&i&j& %^&k&/&3%#%$%]%^%Q$d%*%q$#+G$|&F$ 9@_@V+M+c&'#6&'#` l&P P P Z Z '.y@m&o c c e f ", -" n&n&o&p&f&q&r&s&t& %1%.%2%9&3%#%$%u&%%&%0&*%v$%+G$D$G$ t@v&=@i+P L@'.'.|@O y@,#O w&-@o -@Y }@A#x&c C y&e e ", -" z&A&n&B&C&D&E&q&h&Z$F&G&1%2%~%)&{%#%$%]%T%H&I&z%J&#+W#|&G$ I@t@A@}+Y Y Y o Y Y Y Y Y Y K&A w@D%x&v@v@u@L&u@y&e e f ", -" M&N&z&O&P&Q&R&S&E&T&g&g&U&1&V&W&X&+%{%Y&$%]%^%^%Q$e%v$ #X+4&G$G$ Z@I@I@o+{&K@K@K@Z&K@K@K@x&Z&D%`&v@v@v@o# *g# #>#f# #z#c e e ", -" .*+*z&@*#*O&$*o&p&%*f&&*8&1&1&^&2%2%9&#&#%$%]%**^%Q$*%=*J&. E$G$-&t$ b@X@-*;*E.g#L&>*v@L&v@g#v@v@g#>* *u@u@,*'*b+%&n.E+L =$y#)*m@y& ", -" .*.*!*~*{*n&]*o&^* g&U&/*(*2%<&/&3%#%$%$&**_*Q$*%5%:**+<*=&P$[*o$ a@b@b@}*L !@ #f# #4#|*,*u@4#4# #4#4# # #1*p+p+q+b+$@n.{#@+T#l D+m h.<.h. ", -" .*+*!*2*3*n& 8&8&`$4*5*2%+%#&#%$%]%]%^%Q$O%*%v$g$8 6*G$t$t$t$ q#7*D@a@_@h )*y#S#=$=$=$=$=$J@J@J@I#=$=$y#n#S#:@H+ n.@+L L l $ a U.<. ", -" 8*.*.*M& g&g&9* %1%0*2%+%3%#%H%a*]%^%H&Q$=*v$f%E@/ d@t$b*t$p$8$8$ X#$#L#R@_#q@##8 =$d#`#c*d*;#x#;#;#;#;#;#;#;#;#/$u#/$V+T+:@ @+L L . a 8 e* ", -" f* g*U&9*h*i*!%k&9&j*#%B%a*]%4%y%Q$*%z%Q%g$%##+3 $$p$7$f$8$k*!$l*8%:%U$U$U$W#P#$#V+$ &m#s#2#w#w#5$t#5$t#d#m*Z#5$m*N#d#5$m*w#a&n*5& ^.D o* p*H 9 & 9 ", -" g&q*8&r*^&5*2%+%@%#%#%$%u&x%^%Q$s*=*=*v$g$h$h$u@Q.; 5 =@t*W#u*$#G@o@^.& b.|@|#|##$b#'$b#v*v*s#s#R#R#s#w#m#m#m#c#m#w*m#_@=@=@ m E Q.x* | F b $ a [.F 8 ", -" g&g&9*h*i*:&2%~%y*3%#%S%I%z*T%Q$Q$d%=*v$g$t%J%p%E@&#�#0#+$<#*$A*j#E#E#}#}#}#}$|#|#F#v#b#b#b#b#b#B*'$b#b#v*b#B*b#v&9@p@ %.M.O+^. %.6 = & H K & $ C*|.D* E.D y+ ", -" g&9*1& % %^&2%*&+%3%#%`%$%]%T%U%Q$I&*%R$v$g$3&g%E*E@i$&#<$a$0#7%I$=#Q#Q#M#E#E#E#}#}#}#}$l#|#,$}$|#|#|#|#|#|#m$t@t@9@ - *+H >.>.%.E.a 9 / 7 b H -.h.= . . = & h.-.6 6 H ", -" g&F*U&1& %V&5*k&+%3%3%N%$%$%x%4%y%Q$0&z%v$g$g$g$h$u%E@C%C%&#a$0#0#j$<#k$=#Q#Q#j#E#E#G*E#}#T$T$}#T$H*}#}#Z@I*<*I@ 5 h%%+Q.c.d.}+Q.d.) 8 a F <.% . W.6 $.]#l@#.5 { ", -" J*g&F*1& %4*^&2%<&+%3%#&`%$%]%T%^%Q$Q$*%P%P%v$q$S@%#h$/%E@&#=%&#a$(%0#0#<#<#<#A*=#Q#Q#Y#[#M#Q#j#[#[#Z@Z@K*I* c 7 #+%+*+N.P.b.T./ 9 a -.h.$ { D I W ^. .c c | ", -" g&g&)%j& %^&:&L*+%3%3%#%$%$%u&x%^%^%Q$Q$P%e%v$g$g$g%h$u%h$E@{$=%=%&#&#(%0#+$[$<#*#<#<#=#<#I$A*}*X@Y@ X+W M*#+%+*+N.>+b.T./ 9 H -.K#= | X.#.>.g c L L #.i. ", -" 7&g&Z$N*)% %V&.%2%*&+%3%O*Y&$%I%u&z*^%^%Q$O%*%z%v$v$f%S@h$h$h$p%E@E@E@&#&#&#U@6%U@<$0#a$0#:#0#b@X@ p+*.M.!.(+%+,@z@>+S.j+H h.& $ . . P*6 I ,.5 l n.p+p+5 Q+ ", -" J*7&h&Q*Z$)% % %1%:&~%<&+%3%#%H%$%a*I%]%^%^%&%Q$d%*%*%R$v$g$g$t%%#g%h$T@/%E@/%C%E@{$=%0$=%&#&#V@b@ Z@ V+*.~#L@!.r.%+,@>+9 = I W W W I .@6 6 D#%.W [ l b+X+V+X+].$ ", -" f&&*q&R*h&Z$S*`$ %4*^&2%2%+%3%3%#&N%Y&w%u&]%%%^%o%Q$Q$T**%e%v$v$q$q$g$g$g$h$%#h$h$h$p%/%u%/%3$a@)$ Z@D b+ D #+v@y@!.#++&/ | [ | R {+e L q+p+b+l W = F H F H ", -" B&o&f&E&U*q&1&1&_&_&'&0%^&W&2%k&+%)&3%{%#%B%$%$&]%4%4%^%_*Q$s*I&*%=*5%R$v$v$Q%S$W#X#$#(#(#g$%#t%7*a@b@ C /+:+. ^.B+u.=$v@O !.>@H >. | %.e l n.L l e #.{ . . <.b ", -" V*o&W*X*Y*g*g&1&9*Z*'&&&`*k%X$W&.%~%+%+%3% =#%N%$%$%w%]%T%^%^%^%U%Q$Q$O%d%u*.=U$ $W#X#$#$#R@v$v$v$+=a@a@ R@e O. #;#f#d#1*v@O I.& L 6 $.[ e c e [ >.#.%.$ F ", -" 3*n&n&$*@=#=f&$= Z*'&%=[%X$X$&=x$L*k&/&@%#&3%#%H%B%a*}&]%4%**8$*=v%!$==:%%$U$ P#i#b$O%*%*%7*a@ 9@a b#b#d#=$v@).=.-= 6 %.^.g [ >.6@I | <. ", -" M&z&;=>=O&$*o&,=J* 0%[%,%X$'=x$)=z$n%+%/&)&#% =G$P$t$t$!=~=8$*={=8% ]=$#Q$H&H&q@^=a@ %.|#b#w#S# #) /= (=%.`.W #.S+D | l. ", -" .*.*_=:=~*<=o&e& X$x$x$M$)=N$2%+%+%D$|&G$.&t$V%p$ W#$#$#**]%T%q@a@ | }#|#2#;#I.C+ 6 D D X.6 | . h. ", -" 8*[=.*}=|=:=3*<= b%z$^&^&2%C$E$ 6*]=$%$%$%q@q@_$ b@c.Q#1=s#/$H t@ 6 n+| { . E.& ", -" 2=8*3=.*4=z&z&n& x$b% %(*^&5=B$ W#P#$#b$L#9#q#q@ V+Y Q#}#b#).[ | ~+. = m+h.h.<. ", -" 2=6=7=.*M&z& &=x$)%j&h*N$8= W#W#6*$#9= ^.Q#<#E#0=Q.=@ D { & & U+-.-.m+ ", -" 8*6=.*.* X$l%a=Z$Z$N$B$ U$W#W# :%H 0#0#Q#^$y+Z@ { <.-.m.H b h. ", -" 8* X$X$q&h&b=z$n% U$*+g$&#<#w#R+ 6 y+H a h 8 -.= ", -" 0%X$c=d=q&z$z$ $#e=b+$@#.=$:*E@0#w#5 %.F 9 r 7 O+b h.h.<.$ ", -" 0%0%f=X*E&g=x$ -.v$g$h$0#^%*%h$&#w#l %.H 7 / ) ' c.d.h=/ h. ", -" &&%=C&i=X*g=g= t@| | { b E#Q$g$E@w#e I b ) ' d.c.) C@g.F j= ", -" Z*j%&&0%[%X$X$ p$r.^%R$h$}#>. I 7 c.h%p#v+a k= ", -" 2&_&&&l=0%,%X$ p$m=]%Q$v$&#& } d.>+>+}+O.H ", -" . *%^%*%g$b.W# $ }+O.N.R%L+# ", -" l n=$%U%z%u@/@ [ 9 M.L.L.*+h+| ", -" ~$v@#%]%Q$E@& p$ 6 O.:+:++&%+/ #. ", -" V%` j*#%x%0&P V+ e 9 I.I.I.r.%+h. ", -" t$o=2%3%$%**v$2 W# l = %+/+/+/+!.~&D ", -" 8$ # %2%3%$%^%}#| p= Y.O.).).c&P P r.D ", -" 1&X@c.^& %2%X&3%$%^% #W p$ 9+b.o B Y Y Y K@x@8 %.[ ", -" f&%.*$E#7 q ) **+%{%$%^%=$. W# =@6 }+u@v@v@v@L&).:+%+!.O.#. ", -" n&e y+q@1& x$'+2%+%O*$%^%<#) $@W# I@^+-.#+=$z# #1*=$u@=.[ [ q=& 5 ", -" z&g& I@L@ %~%3%H%]%O%=$V$c b@R@ q@t@c <.:+;#w#N#d#d#d#w#c.c l ", -" V+O 1%2%y*#%u&^%v$}##+c.<.{ { r=7 M.D%b#|#b#b#b#b#b#b#Q.e ", -" *@O.]%!%+%O*$%4%Q$*%g$h$�#0#7%:#=#Q#E#E#T$T$}#v@8 c ", -" D$I.|%^&L*3%#%]%^%Q$*%v$g$h$T@E@�#0#7%<#<#w#}.V+ ", -" x$}+b=)%V&2%+%O*H%w%^%Q$*%z%v$g$g%h$E@E@s=&#K@p+ ", -" 0%%+E#>%7 *+E#+%~%3%#%$%]%^%Q$Q$O%&#u@Q./ #+u@L ", -" b+E@$ '& B$I@A+) v@t=#%3%Q#w##+9 6 p+W#u=l ).>+9@ ", -" t$O :+t$ z$q@t@O <#.+v=Z@!$ <.b#>. ", -" 1&F X+ t$}+s#a@ 9@& p+ ", -" w=z& t$'@|#q@ R@ ", -" D$N.E#R@ ", -" z$= b.:% ", -" z$G$ "}; diff --git a/src/Mod/Ship/Icons/DiscretizeIco.png b/src/Mod/Ship/Icons/DiscretizeIco.png deleted file mode 100644 index bdba9aca0e679ae6c405ae94059960257e3e8eeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14038 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�#F{R9|;jQ34YOODR6KP(J2VWUspe9<+`Y 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 Wr}8<967wsQzd^f%e?N}@oc{&dx->cf diff --git a/src/Mod/Ship/Icons/DiscretizeIco.xpm b/src/Mod/Ship/Icons/DiscretizeIco.xpm deleted file mode 100644 index 9bff402e33..0000000000 --- a/src/Mod/Ship/Icons/DiscretizeIco.xpm +++ /dev/null @@ -1,2028 +0,0 @@ -/* XPM */ -static char * DiscretizeIco_xpm[] = { -"128 128 1897 2", -" c None", -". c #9F6602", -"+ c #9F6601", -"@ c #A06602", -"# c #9F6502", -"$ c #A16702", -"% c #A06701", -"& c #A06700", -"* c #A16703", -"= c #9F6501", -"- c #A26803", -"; c #A16802", -"> c #A16601", -", c #A26905", -"' c #A66E0E", -") c #A76F0F", -"! c #A36902", -"~ c #A36802", -"{ c #A26802", -"] c #A26804", -"^ c #A56D0B", -"/ c #A77011", -"( c #A77012", -"_ c #A87212", -": c #A26A07", -"< c #A06601", -"[ c #A56903", -"} c #A46A04", -"| c #A36803", -"1 c #A56D0A", -"2 c #A67010", -"3 c #A77111", -"4 c #A77010", -"5 c #AA751A", -"6 c #B38432", -"7 c #A66F0F", -"8 c #A06702", -"9 c #A56902", -"0 c #A36904", -"a c #A46B08", -"b c #A56E0F", -"c c #A67011", -"d c #AF7E28", -"e c #BF9854", -"f c #B1802B", -"g c #A36B09", -"h c #A66B03", -"i c #A56A03", -"j c #A46B06", -"k c #A46E0D", -"l c #A56E10", -"m c #B1822E", -"n c #CBAC74", -"o c #C6A366", -"p c #A16803", -"q c #A66B04", -"r c #A66B06", -"s c #A56C0C", -"t c #A46D10", -"u c #A46D0F", -"v c #A46E0F", -"w c #A56F10", -"x c #B78A3D", -"y c #D3B889", -"z c #D6BD91", -"A c #BB9249", -"B c #A46D0B", -"C c #A16602", -"D c #A86C04", -"E c #A76C04", -"F c #A76C03", -"G c #A76C05", -"H c #A46C0B", -"I c #A36D0F", -"J c #A36D10", -"K c #A46E10", -"L c #A56F0F", -"M c #A77317", -"N c #CCAC76", -"O c #E1CFAF", -"P c #DEC9A5", -"Q c #D8C096", -"R c #A97418", -"S c #A16804", -"T c #A96D05", -"U c #A86D05", -"V c #AA6D03", -"W c #A56C09", -"X c #A26D0F", -"Y c #A26D10", -"Z c #B07F2B", -"` c #E9DCC5", -" . c #E7D9C0", -".. c #E6D7BC", -"+. c #C9A86E", -"@. c #A56E0D", -"#. c #AA6D05", -"$. c #A96D04", -"%. c #A66C08", -"&. c #A26B0E", -"*. c #A16B10", -"=. c #A16C0F", -"-. c #A26C0F", -";. c #C19D5D", -">. c #EBDFCB", -",. c #F3ECDF", -"'. c #F0E7D7", -"). c #E9DBC3", -"!. c #B88D40", -"~. c #A36A06", -"{. c #AB6F06", -"]. c #AB6E05", -"^. c #AB6E04", -"/. c #A86D07", -"(. c #A26B0C", -"_. c #A06B10", -":. c #A16B0F", -"<. c #B5893C", -"[. c #E5D6BC", -"}. c #F3EDE1", -"|. c #FCFAF7", -"1. c #F9F5EF", -"2. c #ECE1CE", -"3. c #B48636", -"4. c #A76F10", -"5. c #A36D0E", -"6. c #AC7006", -"7. c #AC6F05", -"8. c #A96D07", -"9. c #A36B0C", -"0. c #9F6A0F", -"a. c #A06A0F", -"b. c #A16A0F", -"c. c #A16A0E", -"d. c #C6A56B", -"e. c #E6D7BE", -"f. c #EFE6D6", -"g. c #F4EEE3", -"h. c #A36E10", -"i. c #BE8013", -"j. c #B9790A", -"k. c #9D6401", -"l. c #AD7006", -"m. c #AC6F06", -"n. c #AD7005", -"o. c #A46C0A", -"p. c #9F6A0D", -"q. c #9E6A0F", -"r. c #9F6A0E", -"s. c #A06B0E", -"t. c #A16B0E", -"u. c #B48639", -"v. c #D4BA8F", -"w. c #E0CEAF", -"x. c #EDE3D1", -"y. c #DAC59F", -"z. c #A47217", -"A. c #B77B12", -"B. c #DF9616", -"C. c #E69B17", -"D. c #DB9315", -"E. c #AE7107", -"F. c #AE7106", -"G. c #AD7007", -"H. c #A66D09", -"I. c #9F690E", -"J. c #9D6A0F", -"K. c #A06A0E", -"L. c #A8761E", -"M. c #C29E5F", -"N. c #D3B88B", -"O. c #DBC6A1", -"P. c #D4BB8F", -"Q. c #B1853A", -"R. c #AD7310", -"S. c #CC8913", -"T. c #E09616", -"U. c #4D3408", -"V. c #A26E14", -"W. c #EDA323", -"X. c #C2800D", -"Y. c #AE7206", -"Z. c #AF7206", -"`. c #B07106", -" + c #A96E08", -".+ c #9F6A0C", -"++ c #9C690D", -"@+ c #9E690D", -"#+ c #9E6A0E", -"$+ c #A7751D", -"%+ c #B88E46", -"&+ c #C4A165", -"*+ c #C5A46A", -"=+ c #B2863D", -"-+ c #C58313", -";+ c #DC9416", -">+ c #DF9515", -",+ c #EA9D17", -"'+ c #875D10", -")+ c #4E483D", -"!+ c #F2C983", -"~+ c #DE9516", -"{+ c #A86C05", -"]+ c #B07207", -"^+ c #B07306", -"/+ c #AC7007", -"(+ c #A06A0B", -"_+ c #9B670D", -":+ c #9C680D", -"<+ c #9D690D", -"[+ c #9E680D", -"}+ c #A7741D", -"|+ c #B18435", -"1+ c #AB7E2F", -"2+ c #BC7E12", -"3+ c #D89115", -"4+ c #DE9415", -"5+ c #DA9215", -"6+ c #DC9316", -"7+ c #E8A125", -"8+ c #827C72", -"9+ c #C8B694", -"0+ c #EFA019", -"a+ c #CC8710", -"b+ c #9D6501", -"c+ c #B17408", -"d+ c #B17207", -"e+ c #B27307", -"f+ c #A26B0B", -"g+ c #9A660D", -"h+ c #9E6A0D", -"i+ c #A27018", -"j+ c #AB7F33", -"k+ c #AC8035", -"l+ c #A87927", -"m+ c #A26D13", -"n+ c #A06C12", -"o+ c #9F6C10", -"p+ c #B47911", -"q+ c #D38E14", -"r+ c #DD9416", -"s+ c #DB9215", -"t+ c #E29816", -"u+ c #EAA32A", -"v+ c #CFB07B", -"w+ c #898988", -"x+ c #E09717", -"y+ c #D68E13", -"z+ c #A26702", -"A+ c #B27408", -"B+ c #B37508", -"C+ c #B17308", -"D+ c #A66D0A", -"E+ c #9B670C", -"F+ c #9D670C", -"G+ c #9D680D", -"H+ c #9E690E", -"I+ c #9E6B0E", -"J+ c #A3721B", -"K+ c #B6965C", -"L+ c #C0A779", -"M+ c #CDBDA4", -"N+ c #AE843D", -"O+ c #A77724", -"P+ c #A26C11", -"Q+ c #AC7410", -"R+ c #DC9314", -"S+ c #D99214", -"T+ c #D99115", -"U+ c #DC9315", -"V+ c #D79015", -"W+ c #432D06", -"X+ c #CA8713", -"Y+ c #F4AC2B", -"Z+ c #422C05", -"`+ c #8C5A05", -" @ c #A86F0A", -".@ c #9C670C", -"+@ c #99660C", -"@@ c #9C670D", -"#@ c #9C680C", -"$@ c #A57626", -"%@ c #B79760", -"&@ c #D2C9BB", -"*@ c #CFC7B7", -"=@ c #C2AC83", -"-@ c #B38D4C", -";@ c #A06B11", -">@ c #9D680E", -",@ c #C58312", -"'@ c #DA9114", -")@ c #D79014", -"!@ c #D89014", -"~@ c #D99114", -"{@ c #D18C14", -"]@ c #C28313", -"^@ c #F3A317", -"/@ c #4A3208", -"(@ c #442E06", -"_@ c #C9840D", -":@ c #A36903", -"<@ c #AD6F03", -"[@ c #B47609", -"}@ c #B57508", -"|@ c #AD7009", -"1@ c #9D670B", -"2@ c #98640C", -"3@ c #9A660C", -"4@ c #A06D16", -"5@ c #B69358", -"6@ c #C7B89D", -"7@ c #D8D7D5", -"8@ c #D1CBC0", -"9@ c #B39359", -"0@ c #A16F16", -"a@ c #9C680E", -"b@ c #C38211", -"c@ c #D69013", -"d@ c #D68F13", -"e@ c #D79013", -"f@ c #E39815", -"g@ c #E39816", -"h@ c #79510C", -"i@ c #140E03", -"j@ c #EB9E17", -"k@ c #C3810E", -"l@ c #996303", -"m@ c #B47608", -"n@ c #B57608", -"o@ c #B67709", -"p@ c #B07309", -"q@ c #97640C", -"r@ c #99650C", -"s@ c #A16F1C", -"t@ c #C0A982", -"u@ c #D2CCC1", -"v@ c #D6D6D6", -"w@ c #D4D3D2", -"x@ c #AC8540", -"y@ c #9B680E", -"z@ c #9D690E", -"A@ c #B47810", -"B@ c #D38C13", -"C@ c #895C0C", -"D@ c #D08C13", -"E@ c #D89114", -"F@ c #D68F14", -"G@ c #DA9214", -"H@ c #D58E13", -"I@ c #2A1C04", -"J@ c #E19716", -"K@ c #E29817", -"L@ c #382402", -"M@ c #A26A05", -"N@ c #A16704", -"O@ c #A76C06", -"P@ c #B87709", -"Q@ c #B47509", -"R@ c #A36B0B", -"S@ c #96630C", -"T@ c #98650C", -"U@ c #9B660C", -"V@ c #A07220", -"W@ c #BDA47A", -"X@ c #D8D8D8", -"Y@ c #D5D5D5", -"Z@ c #D0CCC5", -"`@ c #BCA37A", -" # c #9E680E", -".# c #9B680D", -"+# c #AD730F", -"@# c #CB8811", -"## c #E29714", -"$# c #372505", -"%# c #513607", -"&# c #E59914", -"*# c #AE7510", -"=# c #D38D13", -"-# c #E89C15", -";# c #181003", -"># c #7C520A", -",# c #BD7B09", -"'# c #A86B03", -")# c #AC6F04", -"!# c #AC7618", -"~# c #CDB58A", -"{# c #B6780A", -"]# c #B97809", -"^# c #B67609", -"/# c #A76E0A", -"(# c #98640B", -"_# c #95630C", -":# c #9A670C", -"<# c #BEAB8A", -"[# c #D0CDC9", -"}# c #C4B292", -"|# c #A77B30", -"1# c #99660D", -"2# c #C58311", -"3# c #D48E13", -"4# c #D89013", -"5# c #C38212", -"6# c #000000", -"7# c #BD7F11", -"8# c #E59915", -"9# c #3C2805", -"0# c #483007", -"a# c #EA9C15", -"b# c #AB7009", -"c# c #EAEAEA", -"d# c #B8780A", -"e# c #B87809", -"f# c #B97909", -"g# c #AC710A", -"h# c #99660B", -"i# c #94620B", -"j# c #96630B", -"k# c #97640B", -"l# c #9E6C15", -"m# c #B1925B", -"n# c #D4D4D4", -"o# c #D3D3D4", -"p# c #D7D7D7", -"q# c #B99D6E", -"r# c #A16E14", -"s# c #BC7E10", -"t# c #D38C12", -"u# c #D58E12", -"v# c #D28C12", -"w# c #D38D12", -"x# c #E39714", -"y# c #604009", -"z# c #362405", -"A# c #EC9D16", -"B# c #C68412", -"C# c #4D3202", -"D# c #A46A03", -"E# c #A76B04", -"F# c #E9EAEA", -"G# c #BA790A", -"H# c #BA7A0A", -"I# c #B0740A", -"J# c #9C670B", -"K# c #93620B", -"L# c #94620A", -"M# c #96640B", -"N# c #B2935C", -"O# c #D1CEC6", -"P# c #D3D2D2", -"Q# c #D1D1D0", -"R# c #D2D3D3", -"S# c #CCC4B5", -"T# c #BC8B35", -"U# c #CF8A11", -"V# c #D48D12", -"W# c #D18B12", -"X# c #D08B12", -"Y# c #8F5F0C", -"Z# c #DE9414", -"`# c #D58E14", -" $ c #000001", -".$ c #A66D0B", -"+$ c #B17307", -"@$ c #AF7105", -"#$ c #AA6E05", -"$$ c #EBEBEB", -"%$ c #ECECEC", -"&$ c #BA790B", -"*$ c #BC7B0A", -"=$ c #B5770A", -"-$ c #A06A0A", -";$ c #93600B", -">$ c #93610A", -",$ c #95630A", -"'$ c #95630B", -")$ c #AC8643", -"!$ c #CEC7B8", -"~$ c #D4D3D4", -"{$ c #C8C8C9", -"]$ c #CCCCCC", -"^$ c #D3B683", -"/$ c #D48F18", -"($ c #DE9413", -"_$ c #070501", -":$ c #80550C", -"<$ c #E09412", -"[$ c #A26907", -"}$ c #B47405", -"|$ c #E7E7E8", -"1$ c #BB7B0B", -"2$ c #BA7B0A", -"3$ c #BD7C0A", -"4$ c #B97A0A", -"5$ c #A56C0A", -"6$ c #94610A", -"7$ c #92600A", -"8$ c #95620A", -"9$ c #95620B", -"0$ c #96640C", -"a$ c #9C6C16", -"b$ c #BDA67D", -"c$ c #D0D0CB", -"d$ c #CDCDCD", -"e$ c #C2C1C3", -"f$ c #D2D2D1", -"g$ c #D6D6D5", -"h$ c #D4A95E", -"i$ c #CE8C19", -"j$ c #D18C12", -"k$ c #D28D12", -"l$ c #5E3F08", -"m$ c #F0A115", -"n$ c #764C04", -"o$ c #AA6E04", -"p$ c #A96E05", -"q$ c #E7E7E7", -"r$ c #E8E8E8", -"s$ c #BB7C0B", -"t$ c #BD7C0B", -"u$ c #BC7B0B", -"v$ c #AA700A", -"w$ c #956209", -"x$ c #905F0A", -"y$ c #946109", -"z$ c #A57C36", -"A$ c #C1B298", -"B$ c #D0D0D0", -"C$ c #C8C8C8", -"D$ c #C1C1C1", -"E$ c #CFCFCF", -"F$ c #D6D0C9", -"G$ c #D3A24E", -"H$ c #CD8911", -"I$ c #C88611", -"J$ c #7F550B", -"K$ c #E69A13", -"L$ c #B27710", -"M$ c #050300", -"N$ c #B8790C", -"O$ c #AD6F06", -"P$ c #B37406", -"Q$ c #AC7005", -"R$ c #BC7C0B", -"S$ c #BE7C0B", -"T$ c #BF7D0B", -"U$ c #B0730A", -"V$ c #986409", -"W$ c #8F5F09", -"X$ c #91610A", -"Y$ c #95640B", -"Z$ c #98650B", -"`$ c #94620C", -" % c #BCA580", -".% c #D2CEC8", -"+% c #CECECE", -"@% c #C0C0C0", -"#% c #C0C1C1", -"$% c #D0D0CF", -"%% c #D7CAB6", -"&% c #D6A54F", -"*% c #D08B11", -"=% c #D68F12", -"-% c #C78411", -";% c #AE750F", -">% c #D08A0F", -",% c #A86D06", -"'% c #B47506", -")% c #AC7106", -"!% c #E8E8E7", -"~% c #E9E9E9", -"{% c #C07E0C", -"]% c #B5770B", -"^% c #9C670A", -"/% c #8F5E09", -"(% c #915F09", -"_% c #926009", -":% c #936109", -"<% c #92610A", -"[% c #96630A", -"}% c #97630B", -"|% c #AE7714", -"1% c #D2C2A8", -"2% c #C8C7C7", -"3% c #BDBDBD", -"4% c #BEBDBE", -"5% c #D0CFCF", -"6% c #D5D2CC", -"7% c #D19C3F", -"8% c #221703", -"9% c #8E5F0C", -"0% c #EB9D14", -"a% c #7C5208", -"b% c #9B6407", -"c% c #AD7106", -"d% c #BF7E0C", -"e% c #C2800C", -"f% c #BB7A0B", -"g% c #A26A0A", -"h% c #8E5D09", -"i% c #925F09", -"j% c #926109", -"k% c #A66E0C", -"l% c #CF9A3C", -"m% c #D1C7B6", -"n% c #D0CFD0", -"o% c #C6C5C5", -"p% c #BCBBBB", -"q% c #BDBCBB", -"r% c #CECECD", -"s% c #D4D5D5", -"t% c #E4AB48", -"u% c #81560B", -"v% c #2D1E03", -"w% c #B47507", -"x% c #AF7207", -"y% c #ECEBEB", -"z% c #C07E0D", -"A% c #BF7D0C", -"B% c #A86F0B", -"C% c #905E09", -"D% c #8C5C09", -"E% c #905F09", -"F% c #94610B", -"G% c #91610B", -"H% c #9E6A0C", -"I% c #BC7D0E", -"J% c #CC870F", -"K% c #CB870F", -"L% c #CFAA69", -"M% c #D2CFC9", -"N% c #CBCBCB", -"O% c #C0BFC0", -"P% c #BAB9B9", -"Q% c #BEBEBE", -"R% c #CDCECD", -"S% c #C9C9C9", -"T% c #D0AA69", -"U% c #C17F0C", -"V% c #B37407", -"W% c #E8E9E8", -"X% c #E7E8E7", -"Y% c #EBEAEB", -"Z% c #C3800D", -"`% c #C3800C", -" & c #AF730B", -".& c #8B5C09", -"+& c #8E5E09", -"@& c #916009", -"#& c #91600A", -"$& c #99660A", -"%& c #B5770E", -"&& c #C9850F", -"*& c #CA860F", -"=& c #D2B88A", -"-& c #D1CFCB", -";& c #CACACB", -">& c #BEBEBD", -",& c #B9BABA", -"'& c #CACBCB", -")& c #D3D3D3", -"!& c #C5A672", -"~& c #B07307", -"{& c #E6E6E6", -"]& c #DDDEDD", -"^& c #DEDDDE", -"/& c #C27F0D", -"(& c #C5810D", -"_& c #B6780C", -":& c #98640A", -"<& c #8A5B09", -"[& c #8D5C08", -"}& c #915F0A", -"|& c #95610A", -"1& c #AE730C", -"2& c #C7830E", -"3& c #CA850F", -"4& c #C7840F", -"5& c #C8850F", -"6& c #C9891C", -"7& c #D0B586", -"8& c #D1D1D1", -"9& c #C7C7C7", -"0& c #BCBCBB", -"a& c #BABBBA", -"b& c #B8B8B8", -"c& c #C4C4C4", -"d& c #D6CEC1", -"e& c #BB8B34", -"f& c #DDDCDD", -"g& c #C3810D", -"h& c #C3800E", -"i& c #C6830D", -"j& c #BC7B0C", -"k& c #9D6709", -"l& c #8A5B08", -"m& c #8B5B08", -"n& c #8D5D09", -"o& c #8E5E08", -"p& c #8F5E08", -"q& c #AD720C", -"r& c #C6820E", -"s& c #CE880F", -"t& c #C6830E", -"u& c #C7840E", -"v& c #D28C10", -"w& c #B98323", -"x& c #D6BB8B", -"y& c #B9BAB9", -"z& c #B9B9B9", -"A& c #BFBFBF", -"B& c #D5D4D1", -"C& c #E2E3E1", -"D& c #B3B3B3", -"E& c #E8E8E9", -"F& c #C4810E", -"G& c #C3820D", -"H& c #C7830D", -"I& c #C17F0D", -"J& c #895A07", -"K& c #8D5D08", -"L& c #8E5D08", -"M& c #906009", -"N& c #9E690A", -"O& c #BB7B0D", -"P& c #C1800E", -"Q& c #2A1B03", -"R& c #BE7E0D", -"S& c #C9850E", -"T& c #CD880F", -"U& c #CB860F", -"V& c #080808", -"W& c #D1C0A2", -"X& c #CFCFCE", -"Y& c #C4C3C4", -"Z& c #BABABA", -"`& c #B9B9B8", -" * c #B8B7B7", -".* c #C9CAC9", -"+* c #D7D8D7", -"@* c #DCDCDC", -"#* c #E9EAE9", -"$* c #E4E5E5", -"%* c #CBCBCA", -"&* c #ADADAD", -"** c #D2D1D2", -"=* c #EBEBEC", -"-* c #C4820E", -";* c #C5820E", -">* c #AB710B", -",* c #8E5D07", -"'* c #885907", -")* c #8C5C07", -"!* c #8C5C08", -"~* c #B5780C", -"{* c #D38C0E", -"]* c #3B2704", -"^* c #4A3105", -"/* c #D38B0F", -"(* c #503406", -"_* c #C07F0E", -":* c #D99010", -"<* c #35270E", -"[* c #C1B39B", -"}* c #CFD0D0", -"|* c #B8B9B9", -"1* c #B7B7B7", -"2* c #B5B6B6", -"3* c #BEBFBF", -"4* c #D7D8D8", -"5* c #E7E7E6", -"6* c #DFE0E0", -"7* c #B1B1B1", -"8* c #A6A5A5", -"9* c #C5830F", -"0* c #B4760C", -"a* c #936008", -"b* c #875806", -"c* c #8A5A07", -"d* c #8C5B07", -"e* c #8C5B08", -"f* c #8F5D09", -"g* c #936009", -"h* c #AE720B", -"i* c #C7850E", -"j* c #B8790D", -"k* c #010000", -"l* c #AB720C", -"m* c #D9900F", -"n* c #312004", -"o* c #472F06", -"p* c #CC870E", -"q* c #B9801B", -"r* c #CDB487", -"s* c #C5C4C4", -"t* c #B6B5B6", -"u* c #C6C7C6", -"v* c #E4E4E3", -"w* c #C1C2C2", -"x* c #969797", -"y* c #A3A3A3", -"z* c #DDDDDE", -"A* c #BC7B0D", -"B* c #865706", -"C* c #8B5B07", -"D* c #8A5B07", -"E* c #8D5C09", -"F* c #C07F0D", -"G* c #C5820D", -"H* c #C1800D", -"I* c #CC860E", -"J* c #D58C0F", -"K* c #5D3D06", -"L* c #291C03", -"M* c #D78E0F", -"N* c #B9790C", -"O* c #9F6808", -"P* c #B87909", -"Q* c #B6770A", -"R* c #C9B38E", -"S* c #D1D2D1", -"T* c #C6C7C7", -"U* c #B6B7B7", -"V* c #B5B5B5", -"W* c #B3B3B2", -"X* c #B6B5B5", -"Y* c #C8C6C8", -"Z* c #D7D7D8", -"`* c #E5E5E5", -" = c #D0D1D0", -".= c #9A9B9B", -"+= c #949494", -"@= c #AEAEAE", -"#= c #E5E6E6", -"$= c #C9840F", -"%= c #C2800E", -"&= c #A06909", -"*= c #865806", -"== c #895A06", -"-= c #895B07", -";= c #9F680A", -">= c #BB7C0D", -",= c #C4810D", -"'= c #C4820D", -")= c #B3760C", -"!= c #3A2604", -"~= c #CF880E", -"{= c #281A02", -"]= c #BB7B0A", -"^= c #B8790A", -"/= c #CECECF", -"(= c #BBBBBB", -"_= c #B6B6B6", -":= c #B4B3B3", -"<= c #B2B1B2", -"[= c #B6B6B7", -"}= c #CAC9CA", -"|= c #D8D7D7", -"1= c #E3E3E3", -"2= c #A4A4A4", -"3= c #939393", -"4= c #979797", -"5= c #E6E5E5", -"6= c #CC8810", -"7= c #C8840F", -"8= c #A86E0B", -"9= c #895906", -"0= c #855605", -"a= c #895907", -"b= c #8B5A07", -"c= c #B4760B", -"d= c #C27F0C", -"e= c #C07F0C", -"f= c #CE870E", -"g= c #060401", -"h= c #C6830C", -"i= c #C17E0A", -"j= c #BBBCBB", -"k= c #B4B4B5", -"l= c #B3B2B2", -"m= c #AFAFAF", -"n= c #D9D8D8", -"o= c #D9D9D9", -"p= c #DEDDDD", -"q= c #E7E6E7", -"r= c #E5E5E4", -"s= c #E2E2E2", -"t= c #D3D4D4", -"u= c #9F9F9F", -"v= c #999898", -"w= c #969696", -"x= c #9B9B9C", -"y= c #D2D2D2", -"z= c #EBEAEA", -"A= c #CA8610", -"B= c #CD8710", -"C= c #CC880F", -"D= c #B0750C", -"E= c #835505", -"F= c #885906", -"G= c #8A5A06", -"H= c #8C5D08", -"I= c #8B5B09", -"J= c #946108", -"K= c #B0740B", -"L= c #BE7D0C", -"M= c #CD870D", -"N= c #CA850E", -"O= c #4D3205", -"P= c #D88E0F", -"Q= c #B9790B", -"R= c #CFCECF", -"S= c #B4B4B4", -"T= c #B2B2B2", -"U= c #ADADAE", -"V= c #BFBFC0", -"W= c #DDDEDE", -"X= c #DEDEDE", -"Y= c #E4E4E5", -"Z= c #DADADB", -"`= c #C7C7C6", -" - c #A9A7A8", -".- c #949394", -"+- c #9A9999", -"@- c #979798", -"#- c #A4A4A5", -"$- c #D6D7D7", -"%- c #EAEAE9", -"&- c #CB8710", -"*- c #CE8911", -"=- c #B97A0D", -"-- c #825505", -";- c #855706", -">- c #885806", -",- c #8A5B06", -"'- c #8D5C07", -")- c #895A08", -"!- c #744C07", -"~- c #C9850C", -"{- c #432C05", -"]- c #D68D0E", -"^- c #462E04", -"/- c #B97A0B", -"(- c #BC7C0A", -"_- c #BFBFBE", -":- c #B7B7B6", -"<- c #B5B4B4", -"[- c #B2B3B2", -"}- c #B0B0B0", -"|- c #CACACA", -"1- c #DBDBDB", -"2- c #DEDFDF", -"3- c #DFDFDF", -"4- c #DEDEDF", -"5- c #E0E1E1", -"6- c #E1E2E2", -"7- c #E0DFDF", -"8- c #E4E3E3", -"9- c #DEDEDD", -"0- c #CBCDCC", -"a- c #B7B8B7", -"b- c #A2A2A2", -"c- c #989898", -"d- c #999999", -"e- c #CD8810", -"f- c #D08A11", -"g- c #C2800F", -"h- c #9A6508", -"i- c #825506", -"j- c #835606", -"k- c #895806", -"l- c #8A5A08", -"m- c #9E6809", -"n- c #BF7E0B", -"o- c #C17F0B", -"p- c #010100", -"q- c #845608", -"r- c #C7830C", -"s- c #C3810C", -"t- c #CB860D", -"u- c #C5810C", -"v- c #C2C1C1", -"w- c #B4B5B4", -"x- c #B3B3B4", -"y- c #B1B2B1", -"z- c #B1B1B0", -"A- c #ABABAB", -"B- c #AAAAAA", -"C- c #B6B6B5", -"D- c #D3D4D3", -"E- c #D5D6D5", -"F- c #CECFCE", -"G- c #C4C4C3", -"H- c #A0A0A0", -"I- c #9E9E9D", -"J- c #9A999A", -"K- c #9A9A9A", -"L- c #999899", -"M- c #949495", -"N- c #A8A8A8", -"O- c #CD8811", -"P- c #D18B11", -"Q- c #C98610", -"R- c #A36B0A", -"S- c #825305", -"T- c #986308", -"U- c #B3750A", -"V- c #BE7D0A", -"W- c #7E5308", -"X- c #110B01", -"Y- c #C4800B", -"Z- c #7F5308", -"`- c #D38B0D", -" ; c #C6820C", -".; c #BD7C0C", -"+; c #C3C3C3", -"@; c #B6B7B6", -"#; c #B5B5B6", -"$; c #ACACAD", -"%; c #AAABAB", -"&; c #A9A9A9", -"*; c #A9A9A8", -"=; c #ABAAAA", -"-; c #B0AFAF", -";; c #ACABAB", -">; c #A0A09F", -",; c #A2A2A1", -"'; c #9D9D9D", -"); c #9C9C9C", -"!; c #9B9B9B", -"~; c #9A9A99", -"{; c #989897", -"]; c #E1E1E0", -"^; c #AC720C", -"/; c #875705", -"(; c #805204", -"_; c #865605", -":; c #926007", -"<; c #AC7109", -"[; c #BB7A0A", -"}; c #BD7B0B", -"|; c #C7820D", -"1; c #201502", -"2; c #684506", -"3; c #D78D0D", -"4; c #835608", -"5; c #754D07", -"6; c #BD7D0C", -"7; c #C2C3C2", -"8; c #B8B9B8", -"9; c #B0AFB0", -"0; c #AFAEAF", -"a; c #ADAEAE", -"b; c #ACADAD", -"c; c #A9A8A9", -"d; c #A6A6A6", -"e; c #A5A5A5", -"f; c #A0A0A1", -"g; c #A3A3A2", -"h; c #9E9D9D", -"i; c #9E9E9E", -"j; c #9D9E9D", -"k; c #9D9C9B", -"l; c #989998", -"m; c #969697", -"n; c #D3D3D2", -"o; c #EDEDEC", -"p; c #CF8911", -"q; c #B7790D", -"r; c #8C5B06", -"s; c #7E5103", -"t; c #825405", -"u; c #845505", -"v; c #855606", -"w; c #845708", -"x; c #D1890C", -"y; c #CA850D", -"z; c #C6C6C6", -"A; c #B0B1B0", -"B; c #ADADAC", -"C; c #ABACAC", -"D; c #A6A7A7", -"E; c #A6A7A6", -"F; c #A2A2A3", -"G; c #A1A1A1", -"H; c #9E9E9F", -"I; c #9D9D9E", -"J; c #9C9D9C", -"K; c #9B9C9B", -"L; c #9A9B9A", -"M; c #959695", -"N; c #9F9FA0", -"O; c #CDCCCD", -"P; c #EAEBEA", -"Q; c #D28B12", -"R; c #D58D12", -"S; c #C07F0F", -"T; c #946107", -"U; c #7E5203", -"V; c #815304", -"W; c #835504", -"X; c #845506", -"Y; c #9E6808", -"Z; c #BE7D0B", -"`; c #C07E0B", -" > c #AC7209", -".> c #CA850C", -"+> c #B1750C", -"@> c #CBCCCB", -"#> c #CDCDCC", -"$> c #B8B7B8", -"%> c #B4B3B5", -"&> c #B2B3B3", -"*> c #B1B0B1", -"=> c #AEAEAD", -"-> c #ACACAC", -";> c #ACACAB", -">> c #AAA9A9", -",> c #A9A8A8", -"'> c #A5A4A5", -")> c #A2A1A1", -"!> c #A1A0A0", -"~> c #9A9B9C", -"{> c #9F9F9E", -"]> c #E5E5E6", -"^> c #E6E7E6", -"/> c #9D6708", -"(> c #7F5203", -"_> c #7E5204", -":> c #845605", -"<> c #986307", -"[> c #B27409", -"}> c #BA7A09", -"|> c #B7780A", -"1> c #BD7B0A", -"2> c #261902", -"3> c #D1890B", -"4> c #674406", -"5> c #A16A0B", -"6> c #C1800C", -"7> c #CCCDCD", -"8> c #B7B7B8", -"9> c #AFB0AF", -"0> c #AEAEAF", -"a> c #ACADAC", -"b> c #AAA9AA", -"c> c #A8A7A7", -"d> c #A7A7A7", -"e> c #A3A4A4", -"f> c #A2A3A2", -"g> c #A2A0A0", -"h> c #A09F9F", -"i> c #9C9D9D", -"j> c #AEADAD", -"k> c #D18C13", -"l> c #A66E0A", -"m> c #815404", -"n> c #7C5003", -"o> c #825404", -"p> c #845606", -"q> c #915E06", -"r> c #B77709", -"s> c #A86D08", -"t> c #B7770A", -"u> c #B77809", -"v> c #A26A09", -"w> c #624005", -"x> c #2B1C03", -"y> c #CA860E", -"z> c #C8C9C8", -"A> c #BCBCBC", -"B> c #ADACAC", -"C> c #ACACAA", -"D> c #A9A9AA", -"E> c #A7A6A6", -"F> c #A5A5A4", -"G> c #A4A4A3", -"H> c #9D9D9C", -"I> c #9B9C9C", -"J> c #9FA0A0", -"K> c #BBBCBC", -"L> c #D28C13", -"M> c #D78F13", -"N> c #B2750C", -"O> c #855604", -"P> c #7A4F03", -"Q> c #805304", -"R> c #815303", -"S> c #855506", -"T> c #865606", -"U> c #835506", -"V> c #A56C07", -"W> c #B77708", -"X> c #A56C08", -"Y> c #AD7109", -"Z> c #C07E09", -"`> c #B37509", -" , c #C4800A", -"., c #845607", -"+, c #C8840E", -"@, c #B7B8B8", -"#, c #B1B0B0", -"$, c #AEAFAF", -"%, c #ACABAC", -"&, c #A9AAAA", -"*, c #A7A7A6", -"=, c #A4A5A5", -"-, c #A4A3A3", -";, c #A1A1A0", -">, c #A0A1A1", -",, c #9E9F9F", -"', c #9D9C9C", -"), c #CDCECE", -"!, c #E4E4E4", -"~, c #E7E8E8", -"{, c #D48D13", -"], c #BD7D0E", -"^, c #8D5C05", -"/, c #7A4E02", -"(, c #7E5104", -"_, c #805303", -":, c #805403", -"<, c #875805", -"[, c #9F6707", -"}, c #B47508", -"|, c #C27F0A", -"1, c #3E2803", -"2, c #412A03", -"3, c #C2800A", -"4, c #AA6F08", -"5, c #080500", -"6, c #C6820A", -"7, c #654307", -"8, c #BEBEBF", -"9, c #B4B4B3", -"0, c #AFB0B0", -"a, c #ABABAC", -"b, c #A9AAA9", -"c, c #A2A3A3", -"d, c #E1E1E2", -"e, c #E6E5E6", -"f, c #D58F13", -"g, c #DB9214", -"h, c #966207", -"i, c #7A4F02", -"j, c #7C5002", -"k, c #805203", -"l, c #815203", -"m, c #815405", -"n, c #835405", -"o, c #976306", -"p, c #B07208", -"q, c #B67608", -"r, c #B37408", -"s, c #B37409", -"t, c #B67708", -"u, c #AC6F08", -"v, c #9B6508", -"w, c #CA840A", -"x, c #362202", -"y, c #634206", -"z, c #B2B2B1", -"A, c #B0B0B1", -"B, c #A7A6A7", -"C, c #C9C9CA", -"D, c #C2C2C2", -"E, c #C7C7C8", -"F, c #E2E2E1", -"G, c #E4E5E4", -"H, c #A16A09", -"I, c #7B4F03", -"J, c #794E02", -"K, c #835404", -"L, c #815305", -"M, c #915D06", -"N, c #AA7007", -"O, c #B27508", -"P, c #BF7D09", -"Q, c #C88209", -"R, c #563804", -"S, c #1C1201", -"T, c #D28C0F", -"U, c #C7C8C7", -"V, c #BABAB9", -"W, c #B9B8B9", -"X, c #B5B5B4", -"Y, c #AFAEAE", -"Z, c #AAAAA9", -"`, c #A3A3A4", -" ' c #E0E0E0", -".' c #DADADA", -"+' c #D78F14", -"@' c #AC710C", -"#' c #774C02", -"$' c #7D5003", -"%' c #7F5103", -"&' c #805305", -"*' c #8B5A05", -"=' c #B27308", -"-' c #B77808", -";' c #0C0800", -">' c #BB7A09", -",' c #7C5209", -"'' c #C9860F", -")' c #C6830F", -"!' c #ADACAD", -"~' c #D9D9D8", -"{' c #DDDCDC", -"]' c #E1E1E1", -"^' c #B6780E", -"/' c #754B01", -"(' c #7D5103", -"_' c #865704", -":' c #9E6606", -"<' c #593904", -"[' c #BD7A08", -"}' c #191001", -"|' c #CD8910", -"1' c #C5C5C5", -"2' c #C2C3C3", -"3' c #B7B6B6", -"4' c #A8A9A9", -"5' c #C48310", -"6' c #8E5C06", -"7' c #754A01", -"8' c #7C4F03", -"9' c #815403", -"0' c #7F5104", -"a' c #A16906", -"b' c #AB6F07", -"c' c #C07D08", -"d' c #1E1301", -"e' c #482F02", -"f' c #C8830B", -"g' c #C3820E", -"h' c #D78F10", -"i' c #C5C5C6", -"j' c #BDBEBD", -"k' c #BBBABB", -"l' c #B1B2B2", -"m' c #A4A5A4", -"n' c #DADAD9", -"o' c #724800", -"p' c #764C01", -"q' c #915D05", -"r' c #966105", -"s' c #2E1E02", -"t' c #B87806", -"u' c #B57507", -"v' c #583904", -"w' c #281A01", -"x' c #C17E07", -"y' c #A76D09", -"z' c #A16B0D", -"A' c #C98510", -"B' c #C4C5C4", -"C' c #C3C3C2", -"D' c #BABBBB", -"E' c #BAB9BA", -"F' c #B3B4B3", -"G' c #A7A8A7", -"H' c #DA9314", -"I' c #DE9515", -"J' c #C38210", -"K' c #754C01", -"L' c #7B4F02", -"M' c #7C4F02", -"N' c #7C5103", -"O' c #7D5104", -"P' c #8A5A04", -"Q' c #A36A05", -"R' c #AF7106", -"S' c #B27306", -"T' c #0A0700", -"U' c #764D04", -"V' c #B77607", -"W' c #472E03", -"X' c #BC7907", -"Y' c #A96D06", -"Z' c #191002", -"`' c #B87A0D", -" ) c #CB8610", -".) c #BBBBBC", -"+) c #BBBABA", -"@) c #B3B4B4", -"#) c #B2B1B1", -"$) c #D5D5D4", -"%) c #986408", -"&) c #845503", -"*) c #9D6605", -"=) c #B57606", -"-) c #774D04", -";) c #0E0900", -">) c #B27406", -",) c #794E05", -"') c #C9840C", -")) c #D68E11", -"!) c #C3C4C3", -"~) c #C3C2C3", -"{) c #C0BFBF", -"]) c #B7B6B7", -"^) c #B0B0AF", -"/) c #AEAFAE", -"() c #ABACAB", -"_) c #CF8A13", -":) c #784D02", -"<) c #7E5003", -"[) c #976104", -"}) c #B67606", -"|) c #B77706", -"1) c #201501", -"2) c #563803", -"3) c #C37E07", -"4) c #9C6609", -"5) c #C48210", -"6) c #C2C2C1", -"7) c #BCBCBD", -"8) c #B8B9B7", -"9) c #B4B3B4", -"0) c #B0B1B1", -"a) c #734900", -"b) c #905D04", -"c) c #AB6F05", -"d) c #845604", -"e) c #4E3303", -"f) c #BF7C06", -"g) c #8A5903", -"h) c #CE8810", -"i) c #C0C0BF", -"j) c #B8B8B7", -"k) c #B4B5B5", -"l) c #B3B2B3", -"m) c #7E5102", -"n) c #784E01", -"o) c #7B4E02", -"p) c #A26904", -"q) c #AF7205", -"r) c #8F5D04", -"s) c #B67605", -"t) c #9C6505", -"u) c #A16807", -"v) c #D99112", -"w) c #CE8A12", -"x) c #D6D7D6", -"y) c #B40202", -"z) c #A50303", -"A) c #970303", -"B) c #B2760D", -"C) c #724900", -"D) c #794F02", -"E) c #794D03", -"F) c #875703", -"G) c #9C6404", -"H) c #A86B05", -"I) c #B47305", -"J) c #A96E04", -"K) c #C07C07", -"L) c #BFC0C0", -"M) c #B2B2B3", -"N) c #CCCBCC", -"O) c #BE0B0B", -"P) c #B30101", -"Q) c #A30303", -"R) c #940101", -"S) c #830202", -"T) c #750101", -"U) c #DA9315", -"V) c #956003", -"W) c #9F6603", -"X) c #734903", -"Y) c #B27204", -"Z) c #593903", -"`) c #684403", -" ! c #BD7B04", -".! c #654202", -"+! c #724C09", -"@! c #C0C1C0", -"#! c #C0BFC1", -"$! c #BBBBBA", -"%! c #B8B8B9", -"&! c #ADAEAD", -"*! c #ABABAA", -"=! c #D1D1D2", -"-! c #AF4E51", -";! c #A43637", -">! c #9A1616", -",! c #8C0E0F", -"'! c #7F0202", -")! c #6E0000", -"!! c #630102", -"~! c #BF7F0F", -"{! c #905C03", -"]! c #A46903", -"^! c #8E5C03", -"/! c #9D6404", -"(! c #AA6D04", -"_! c #835403", -":! c #B97805", -"~ c #CF8B13", -",~ c #DD9415", -"'~ c #D58F14", -")~ c #C1C0C0", -"!~ c #B9B8B8", -"~~ c #BDBCBC", -"{~ c #CCCBCB", -"]~ c #CFCECE", -"^~ c #C38229", -"/~ c #B87D28", -"(~ c #AB7425", -"_~ c #9E6B22", -":~ c #92621F", -"<~ c #85591C", -"[~ c #78521A", -"}~ c #6F4B17", -"|~ c #9C6401", -"1~ c #956002", -"2~ c #120C00", -"3~ c #9E6501", -"4~ c #533707", -"5~ c #C88612", -"6~ c #D99215", -"7~ c #BCBDBD", -"8~ c #B9B9BA", -"9~ c #CECDCD", -"0~ c #C08028", -"a~ c #B57A27", -"b~ c #A87124", -"c~ c #9B6921", -"d~ c #90601E", -"e~ c #82591C", -"f~ c #76501A", -"g~ c #A56B04", -"h~ c #AA6E01", -"i~ c #1E1300", -"j~ c #603F04", -"k~ c #C2C2C3", -"l~ c #C9C9C8", -"m~ c #CCCDCC", -"n~ c #BE8029", -"o~ c #B07827", -"p~ c #A46F23", -"q~ c #976620", -"r~ c #8C5E1C", -"s~ c #7F561B", -"t~ c #744E19", -"u~ c #DB9316", -"v~ c #DF9517", -"w~ c #C1C1C2", -"x~ c #BA7D29", -"y~ c #AE7626", -"z~ c #A06D22", -"A~ c #946420", -"B~ c #885C1D", -"C~ c #7C531B", -"D~ c #734C18", -"E~ c #DD9516", -"F~ c #BEBDBD", -"G~ c #BDBDBE", -"H~ c #B5B4B5", -"I~ c #CBCACB", -"J~ c #C28129", -"K~ c #B87C28", -"L~ c #AB7325", -"M~ c #9D6A22", -"N~ c #916220", -"O~ c #855A1C", -"P~ c #795119", -"Q~ c #704B17", -"R~ c #C3C3C4", -"S~ c #B5B6B5", -"T~ c #CCCCCD", -"U~ c #C08129", -"V~ c #A77124", -"W~ c #9A6821", -"X~ c #8E601F", -"Y~ c #81571C", -"Z~ c #765018", -"`~ c #BCBDBC", -" { c #CBCBC9", -".{ c #BC7F28", -"+{ c #B07826", -"@{ c #A46F22", -"#{ c #976621", -"${ c #8B5E1E", -"%{ c #7E551B", -"&{ c #734D18", -"*{ c #C38428", -"={ c #BA7D27", -"-{ c #AE7524", -";{ c #A16D22", -">{ c #724C18", -",{ c #C9C8C9", -"'{ c #C08128", -"){ c #B77B27", -"!{ c #AA7325", -"~{ c #91621F", -"{{ c #845A1C", -"]{ c #714B17", -"^{ c #C1C3C2", -"/{ c #BCBBBC", -"({ c #BF8128", -"_{ c #B47A27", -":{ c #A67124", -"<{ c #8D5F1E", -"[{ c #81571B", -"}{ c #754F18", -"|{ c #C4C3C3", -"1{ c #B9BAB8", -"2{ c #C7C6C6", -"3{ c #B17726", -"4{ c #A36E24", -"5{ c #8A5D1D", -"6{ c #7E541B", -"7{ c #744D18", -"8{ c #C1BFC0", -"9{ c #C7C6C7", -"0{ c #C28329", -"a{ c #B97D28", -"b{ c #AD7526", -"c{ c #A06C23", -"d{ c #875B1D", -"e{ c #7A531A", -"f{ c #724D17", -"g{ c #C5C6C6", -"h{ c #C5C5C4", -"i{ c #B1AFB0", -"j{ c #C6C6C5", -"k{ c #C18229", -"l{ c #B77C27", -"m{ c #A97425", -"n{ c #9D6922", -"o{ c #91611F", -"p{ c #84581C", -"q{ c #775019", -"r{ c #6F4B16", -"s{ c #C4C5C5", -"t{ c #A57123", -"u{ c #9A6721", -"v{ c #8D5F1D", -"w{ c #764F19", -"x{ c #C0C1BF", -"y{ c #B07726", -"z{ c #A26E23", -"A{ c #966520", -"B{ c #7D541A", -"C{ c #744D17", -"D{ c #C8C7C8", -"E{ c #C5C4C5", -"F{ c #BABABB", -"G{ c #BFBEBE", -"H{ c #C3C4C4", -"I{ c #C38329", -"J{ c #AD7625", -"K{ c #9F6C23", -"L{ c #936320", -"M{ c #875B1C", -"N{ c #724C17", -"O{ c #BF8028", -"P{ c #B67B27", -"Q{ c #AA7224", -"R{ c #9C6A21", -"S{ c #8F611E", -"T{ c #83591C", -"U{ c #785119", -"V{ c #6F4A15", -"W{ c #B6B8B8", -"X{ c #C5C7C7", -"Y{ c #BE8128", -"Z{ c #B37926", -"`{ c #A57023", -" ] c #996720", -".] c #80571C", -"+] c #C6C6C7", -"@] c #C3C4C2", -"#] c #C2C3C1", -"$] c #B3B5B3", -"%] c #BB7E27", -"&] c #AF7725", -"*] c #A26D23", -"=] c #96641F", -"-] c #8A5C1D", -";] c #7C541B", -">] c #C1C2C1", -",] c #C1C0C1", -"'] c #C2832A", -")] c #AC7425", -"!] c #9F6B22", -"~] c #92631F", -"{] c #865A1C", -"]] c #7A5219", -"^] c #714B16", -"/] c #BF8029", -"(] c #A97224", -"_] c #9C6922", -":] c #8F601F", -"<] c #83581C", -"[] c #785019", -"}] c #6F4916", -"|] c #C3C2C2", -"1] c #BE8028", -"2] c #B27826", -"3] c #A47023", -"4] c #986821", -"5] c #8B5F1E", -"6] c #80561C", -"7] c #744F17", -"8] c #BB7F27", -"9] c #AE7625", -"0] c #956520", -"a] c #885C1E", -"b] c #C28227", -"c] c #B97D27", -"d] c #865A1D", -"e] c #7A5119", -"f] c #C7C9C7", -"g] c #B67B26", -"h] c #A87223", -"i] c #8E611E", -"j] c #6E4A16", -"k] c #CACBCA", -"l] c #C9CBC9", -"m] c #986721", -"n] c #8B5F1D", -"o] c #80561B", -"p] c #C38327", -"q] c #BB7E28", -"r] c #A16E23", -"s] c #895C1D", -"t] c #714C18", -"u] c #A8A8A7", -"v] c #C2C1C2", -"w] c #C28229", -"x] c #B87C27", -"y] c #9E6B23", -"z] c #85591D", -"A] c #78511A", -"B] c #714C17", -"C] c #C4C3C2", -"D] c #A77224", -"E] c #9B6821", -"F] c #8F601E", -"G] c #82581C", -"H] c #BD7F28", -"I] c #986620", -"J] c #7F561C", -"K] c #734E18", -"L] c #B7B6B8", -"M] c #C38328", -"N] c #BB7D28", -"O] c #AF7625", -"P] c #C08228", -"Q] c #90621F", -"R] c #785219", -"S] c #704B16", -"T] c #9A6822", -"U] c #8D601F", -"V] c #81581C", -"W] c #765019", -"X] c #BDBFBD", -"Y] c #BC7F27", -"Z] c #A36F24", -"`] c #7F561A", -" ^ c #C48328", -".^ c #A06C22", -"+^ c #875C1D", -"@^ c #714D17", -"#^ c #AFAFB0", -"$^ c #CAC9C9", -"%^ c #C18227", -"&^ c #9D6A21", -"*^ c #91611E", -"=^ c #785118", -"-^ c #9A6720", -";^ c #8E5F1D", -">^ c #81571A", -",^ c #C78C35", -"'^ c #7C541A", -")^ c #A7A8A8", -"!^ c #F6C06D", -"~^ c #D9A34F", -"{^ c #C18935", -"]^ c #BD8731", -"^^ c #A47126", -"/^ c #8D601D", -"(^ c #845B1A", -"_^ c #775017", -":^ c #F1BB65", -"<^ c #E7B05A", -"[^ c #DEA74C", -"}^ c #D9A240", -"|^ c #C18C30", -"1^ c #AA7720", -"2^ c #AA771B", -"3^ c #916415", -"4^ c #E8B259", -"5^ c #E3AC4E", -"6^ c #DCA540", -"7^ c #D39B32", -"8^ c #D09625", -"9^ c #D0941C", -"0^ c #E6B056", -"a^ c #E0AA49", -"b^ c #D9A23B", -"c^ c #D49B2F", -"d^ c #D09623", -"e^ c #E5AF51", -"f^ c #DFA847", -"g^ c #D9A139", -"h^ c #D3992C", -"i^ c #CD9321", -"j^ c #B0AEAE", -"k^ c #E2AB4B", -"l^ c #DEA743", -"m^ c #D89F36", -"n^ c #D49A2A", -"o^ c #DBA344", -"p^ c #DAA23E", -"q^ c #D79E33", -"r^ c #826122", -" ", -" ", -" ", -" . ", -" + + @ # ", -" $ % & * = # ", -" - ; > , ' ) + . ", -" ! ~ { ] ^ / ( _ : = < ", -" [ } ! | 1 2 3 4 5 6 7 8 @ ", -" } 9 0 a b c 2 2 c d e f g + . ", -" h h i j k l b l 7 4 2 m n o 4 p < ", -" q q h r s t u v b b l 7 w x y z A B % C ", -" D E F G H I J I u u K L l w M N O P Q R S < ", -" T U V D W X Y X I u I v v u K l Z O ` ...+.@.8 $ ", -" T #.$.%.&.*.=.-.X I u u u v u K v ;.>.,.'.).!.3 ~.% $ ", -" {.].^./.(._.:.=.=.-.X X I I I v u I <.[.}.|.1.2.3.4.5.$ $ ", -" 6.7.7.8.9.0.a.b.c.:.:.-.-.-.X X I I I v d.e.f.g.f.L h.K i.j.k.8 ", -" l.m.n.{.o.p.q.r.r.s.t.t.:.:.=.=.X X X I I u.v.w.` x.y.z.A.B.C.D.| 8 ", -" E.F.G.H.I.J.p.r.K.r.r.s.a.:.:.=.=.=.=.-.X L.M.N.O.P.Q.R.S.T.U.V.W.X.k.$ ", -" Y.Z.`. +.+++@+#+#+#+#+r.K.K.a.b.c.t.=.-.=.X $+%+&+*+=+) -+;+>+,+'+)+!+~+{+8 ", -" ]+]+^+/+(+_+:+<+[+@+@+@+#+r.p.r.r.K.c.t.=.=.=.=.}+|+1+X 2+3+4+5+D.6+7+8+9+0+a+b+$ ", -" c+d+e+E.f+g+_+:+:+<+[+@+@+h+#+#+p.r.i+j+k+l+m+t.=.=.n+o+p+q+r+s+5+5+>+t+u+v+w+x+y+i - z+ ", -" A+A+B+C+D+E+g+_+_+:+:+F+G+<+@+@+H+I+J+K+L+M+N+O+P+t.K.J.Q+S.R+S+T+S+U+3+V+W+X+Y+Z+`+. @ - ", -" B+B+B+ @.@+@E+E+E+E+.@@@:+#@<+<+@+$@%@&@*@=@-@r.;@K.>@7 ,@'@S+)@!@!@~@{@]@^@/@(@_@:@<@| { ", -" [@}@}@|@1@2@3@3@3@E+E+E+E+E+.@.@@@4@5@6@7@8@9@0@r.r.a@:.b@c@~@d@e@)@f@~@g@h@i@j@k@l@:@:@:@ ", -" m@n@o@p@(+q@q@r@+@+@3@E+E+E+E+E+.@_+s@t@u@v@w@x@H+#+y@z@A@B@C@D@E@F@G@H@b@I@J@K@L@M@N@O@i ", -" o@o@P@Q@R@q@S@T@T@+@+@+@3@3@U@E+E+_+E+V@W@X@Y@Z@`@ #:+.#+#@#e@##$#%#&#!@*#=#-#;#>#,#'#)#!#~# ", -" o@{#]#^#/#(#_#(#(#2@T@T@r@+@+@3@3@:#E+E+E+<#[#Y@Y@}#|#1#' 2#y+3#=#4#5#6#7#8#9#0#a#b#7.i E c# ", -" d#e#f#g#h#i#j#k#k#(#2@T@T@T@T@r@+@3@3@E+l#m#n#o#n#p#q#r#s#t#u#v#v#w#d@x#y#z#A#B#C#$.D#D E# F# ", -" j.G#H#I#J#K#L#j#M#k#k#k#k#2@2@2@T@r@+@+@+@:#N#O#P#Q#R#S#T#U#V#W#W#v#X#y+Y#Z#`# $.$+$@$#$U $$%$ ", -" G#&$*$=$-$;$>$,$,$'$j#M#M#k#q@q@2@(#T@T@r@T@r@)$!$~${$]$Y@^$/$X#W#W#t#($v#'@_$:$<$[$}$T #$ c#|$ ", -" 1$2$3$4$5$6$7$6$8$9$,$8$j#'$M#k#0$k#2@2@2@T@T@T@a$b$c$d$e$f$g$h$i$U#t#j$k$l$l$m$#@n$o$p$]. q$r$ ", -" s$t$u$v$w$x$>$y$6$6$8$8$8$,$,$j#j#M#k#k#2@2@2@T@T@z$A$B$C$D$E$F$G$U#H$I$J$K$L$M$N$O$P$Q$Q$ q$r$$$ ", -" R$S$T$U$V$W$X$>$>$>$6$6$L#8$8$8$'$Y$j#j#k#k#2@2@2@Z$`$ %.%+%@%#%$%%%&%*%=%-%6#;%>%,%'%)%/+ r$!%~% ", -" S$S${%]%^%/%(%_%_%_%:%<%>$6$L#L#8$8$9$,$[%j#M#M#k#k#9$}%|%1%E$2%3%4%5%6%7%8%9%0%a%b%{.c%l. q$q$~% ", -" d%d%e%f%g%/%h%(%i%i%<%j%j%>$:%:%>$6$L#L#8$9$,$,$'$Y$'$K#k%k@l%m%n%o%p%q%r%s%t%u%v%G#l.w%x% !%r$~%y% ", -" z%{%X.A%B%C%D%C%E%(%(%_%_%_%<%<%:%>$>$>$6$6$i#F%'$8$i#G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%}@V%]+ W%X%q$Y% ", -" U%Z%`% &y$.&+&/%W$E%(%(%(%@&_%<%_%j%<%j%>$>$6$L#8$9$#&$&%&&&*&&&&&=&-&;&>&,&,&'&)&!&E.C+~& {&]&^&Y% ", -" /&Z%(&_&:&<&[&/%/%/%/%/%C%E%E%(%i%_%_%j%j%>$<%>$6$y$}&|&1&2&3&4&4&5&6&7&8&9&0&a&b&c&n#d&e& X%c#+%f&W% ", -" g&h&i&j&k&l&m&n&o&/%p&/%/%/%C%/%E%E%(%_%_%7$_%_%j%>$(%#&q&r&s&t&t&u&4&v&w&x&5%o%y&y&z&A&Q#B& ~%C&D&p#E& ", -" F&G&H&I&o.m&J&K&L&h%L&p&p&p&/%/%C%E%E%E%E%(%@&_%j%<%M&W$N&O&P&Q&R&S&&&T&U&J#V&W&X&Y&Z&`& *z&.*+*@* #*$*%*&***=* ", -" -*2&;*>*,*'*)*!*[&[&!*L&h%L&p&/%/%/%/%/%E%E%E%(%_%(%/%:&~*H&;*{*]*^*/*k@(*_*:*<*[*}*Y&P%|*1*2*3*$%4* 5*6*7*8*)&%$ ", -" 9*u&5&0*a*b*c*m&d*e*)*!*K&h%K&K&h%f*/%p&/%C%W$W$E%(%h%g*h*h&;*h&k@i*j*k*l*m*n*o*p*q*r*E$s* *b&1*t*b&u*Y@X@ v*~%w*x*y*z*$$ ", -" u&u&*&A*V$B*J&C*D*m&C*d*)*)*!*[&[&K&n&o&p&f*/%/%/%/%E*E%.$F*G*H*X.h&I*t&J*K*L*M*N*O*P*Q*R*S*T*z&1*U*V*W*X*Y*v@Z* {&`* =.=+=@=#=c# ", -" 5&$=J%%=&=b**===-=C*D*C*C*e*e*)*d*!*[&L&h%L&o&L&/%/%n&D%;=>=,=/&I&X.'=I&)=!=~=t&{=U$Q*]=^= f$/=(=1*_=V*:=<=[=}=|=X@ 1=c#]$2=3=4=1*5=y% ", -" &&5&6=7=8=9=0=a=9=J&J&c*c*b=C*C*m&)*)*e*!*!*n&L&+&h%n&.&:&c=d=U%e=F*F*G*q&Z%f=g=a%h=*$i=j. P#+%j=_=V*k=D&l=m=l=2%n=o=p= q=r=s=t=u=v=w=x=y=!%z= ", -" A=B=C=D=)*E=b*F=F=9===J&G=D*D*D*C*m&d*!*d*!*!*H=[&L&I=J=K=U%{%L=d%d%M={%N=v%O=P=/#Q=4$G#G# R=8&%*j=V*V*S=:=T=7*U=U=V=8&X@W=X= {&Y=r=s=Z=`= -.-+-@-#-$-%- ", -" &-6=*-=-a*--;-b*>->-9=9=9=9=9=c*,-D*C*C*C*m&d*d*!*'-)-K&1 R$!-~-L=L=e=L=n&{-]-8=^-s$/-(-1$ B$B$_-:-V*<-D&[-7*}-m=&*@=3%|-R#1-Z=2-3-z*4-5-6-7-8-9-0-a-b-c-d-w=d-b&c#%- ", -" a+e-f-g-h-i-j-*=b*b*b*b*k-k-9=9=a===G=c*c*D*C*C*C*e*l-b=m-/-n-o-p-q-r-s-@&t-N*6#D+U%u-T$u$ +%E$v-V*_=w-x-D&y-z-m=m=@=A-B-m=C-c&/=Y@D-v@X@E-)&F-G-1*H-I-J-K-L-M-N-y=X% ", -" e-O-P-Q-R-j-S-B*B*B*B**=b*b*b*>-9=9=9=J&a=J&c*D*D*C*J&'*T-U-V-R$1$r-W-X-Y-d=6#Z-`-o. ;R$.; +%d$+;@;V*#;k=x-T=7*}-m=@=&*$;%;&;*;B-=;-;D&T=&*m=;;>;,;';K-);!;~;{;!;z&];c# ", -" H$v#*-^;/;(;0=0=_;B*B*B**=b*b*b*>->->-9===9=J&J&G=J&'*:;<;(-u$[;1$};u$|;1;2;3;4;5;A%L=6; ]$/=7;8;_=X*S=x-W*T=7*9;0;a;b;;;%;&;c;d;d;e;f;b-g;u=h;u=i;j;k;!;K-l;m;N-n;o;y% ", -" p;P-v#q;r;s;t;u;v;v;;-B*B*B*B*B**=b*b*>->-F=k-9=====b*'-H.G#*$4$/-[;H#f%w;x;w$p-R${%y;d%A% N%d$z; *1*_=V*S=D&T=A;}-m=@=B;C;A-B-&;N-D;E;e;#-F;b-G;>;H;I;J;K;L;L-M;N;O;X%P; ", -" f-Q;R;S;T;U;V;W;E=u;X;u;0=v;_;B*B*B**=*=b*b*b*F=>-k-B*a=Y;{#]=^=^=4$Z;n-`; >6#D+.>+>_@d%d% @>#>z;(=[=$>2*V*%>&><=*>}-0;=>->;>B->>,>D;d;8*'>y*b-)>!>>;u=';);~>d-K-{>|-]>^> ", -" X#W#=%Q-/>(>_>E=W;W;E=E=E=u;:>v;0=;-B**=*=*=*=b*b*b*B**=<>[>}>|>|>|>1>|>j.2>[&3>4>5>F*6>F* |-7>z;(=8>1*:-_=S=[-T=7*A;9>0>&*a>;;b>N-c>d>d;#-e>f>,;g>h>i;i;i>!;c-!;j>z;q$`* ", -" v#k>d@*%l>m>n>m>o>E=W;E=W;E=E=u;u;p>0=v;;-B*B*B**=*=B*p>q>r>s>i=o@o@t>u>v>l-3>w>x>,=Z%y>X. |-|-z>A>b&b&1*_=V*D&T=7*}-m=0>a;B>C>=;D>,>c>E>8*F>G>b-G;H-u=i;H>d-I>J>K>)&1=r$ ", -" L>M>H@N>O>P>Q>R>m>o>o>o>W;W;E=E=E=u;u;0=S>0=T>B*B*;-U>r;V>W>X>6#Y>f#Z>`> ,.,6#]=e%;*+,X.X. {$;&9&_-@,8; *_=V*S=D&T=#,}-$,=>&*%,=;&,c;,>*,e;=,-,,;;,>,,,J;!;',b-_=),3-!,~, ", -" {,d@4#],^,/,(,(;_,:,Q>V;m>o>--W;E=W;E=E=E=:>p>v;0=B*E=<,[,},r>},|,1,2,3,4,5,<;6,7,R&-*'=F& S%|-{$8,z&b&b&1*2*k=9,D&T=#,0,m=&*->a,B-b,N-d>y*&;c>d;g;;,,,c,*,}-D$N%X=d,`*e, ", -" f,d@g,-%h,i,j,(;(;(;k,Q>l,Q>m>m>m,o>n,W;E=E=E=u;:>:>t;X;o,p,q,r,s,B+t,u,p-v,w,x,y,2&S&S&-* z>S%V=z&z&b&8>_=V*S=D&z,A,A,m=j>b;->A-B-&;B,8*}-2%E$C,@%D,9&E,E$3-z*];F,G, ", -" F@F@D.X#H,I,J,U;(>(>(>(>k,k,l,V;V;V;m,o>K,----E=W;E=t;L,M,N,m@A+A+O,[>P,4,Q,R,S, ,F*T,7=;* C$U,w*V,P%W,b&1*_=X,D&[-y-#,}-Y,&*->A-B-Z,N-`,x-B$ '.'1-@*1-@*X=3-s=d,1= ", -" +'+'U+)@@'U;#'$'s;s;%'(>(>(>(;k,(;_,V;V;V;o>o>t;--E=t;&'*'j V%e++$='},-'}@9=;'>'P@,'''4&)' 9&E,w*K>V,y&b&1*_=V*S=D&T=7*}-m=@=!'a,=;>>&;2=@=B$~'o= {']'s=3- ", -" )@s+D.^'O>/'I,n>('('('s;U;(>(>k,k,k,k,k,Q>m>m>m>o>o>Q>_':']+e+~&~&~&x%+$<'C+['}'[%&&|'5&+, 1'T*2'K>a&z&|*@,3'X*<-D&l=7*#,0,0>j>B>a,%;4'D;B-]$o=p# ", -" T+~@B.5'6'7' 8'$'n>$'('('s;(>(>(>(>k,k,Q>Q>:,9'R>0'o>a'E.w%x%x%]++$t,b'c'd'e'f'g'h'&&5& i'i'+;j'k'k'z&b&1*3'X*S=&>l'7*}-$,U=b;->A-Z,m'b;c&n'p# ", -" G@S+.$o'p' n>8'$'('('s;U;(>(>(>k,k,k,(;(;(>(>q',%r's't'F.'%+$u'v'w'x'y'z'H$A=A' B'1'C'>&K>D'E'z&a-1*X*S=F'T=7*A;-;@=&*->A-B-G'G'9&E-X@ ", -" H'I'J'K'L' 8'M'n>N'$'('('s;s;(>(>(>k,%'O'P'Q'R'l.S'T'U'V'[$W'X'Y'Z'`'a+f- ) +;c&+;3%K>.)+)z&8;U*C-X,@)&>#)*>}-m=j>B>->A-c;N-A&X@$) ", -" 5+T.%)7'L' 8'j,8'8'n>n>('s;s;U;(>U;n>&)*)n.l.m.m.=)-);)>)w%6#,)')*-))a+&- !)!)~){)A>K>(=Z&`& *])t*<-@)T=y-#,^)/)&*;>()G'&;(=n#v@ ", -" U+_):)i,i,i,L'L'I,M'8'8'$'('('<)s;n>R>[)#$Q$#$].].})m.|)1)2)3)4)5)U#O-e- 6)+;+;A&7)j=j=Z&y&8)1*_=#;9)D&y-0)}-0;@=b;C;B-e;7)8&Y@ ", -" 5+T.5$a)/,i,I,8'M'M'8'8'n>$'n>I,$'b)E 7.T #$p$c)#$d)e)f)g)9#Q-X#P-h) D,D,i)3%3%(=a&z&b&j)@;V*k)x-l)z,}-m=m=@=a>B-c;S=o#~$ ", -" D.F@m)n)i,o)L'L'M'L'8'n>P>P>g)p)#$T T T U q)r)s)t)6#u)K%v)w#w) D$D$@%8,3%A>(=V,P%j)])_=V*9,D&<=#,-;@=&*b;%;N-X*]$x)y= y)z)A) ", -" D.J@B)C)D)i,i,i,L'L'/,E)F)G)$.D H)G {+I)#$J)6#P>K).+M>k>X# L)D$@%Q%Q%3%p%a&z&|*b&])#;k=F'l)7*}--;0>&*->d>M)N)P# O)P)Q)R)S)T) ", -" U)6+<,p'/,/,i,i,:)s;V)W)X)Y)q E#E#D Z)`) !.!+!j$=#X#W# A&@!#!O%Q%Q%A>$!V,%!8>])_=w-@)W*T=7*}-m=&!->*!=>N%y==! -!;!>!,!'!)!!! ", -" D.T.~!a)J,/,#'P>{!]!$.^!6#/!D (!_!:!Z&z&%!1*_=2*S=D&T=7*}-m=@=->&;7*G-o#8& 2!3!4!5!6!7!8!9! ", -" D.J@0!a!:)b!c!h ]!} d!e!f!g!h!6#i!['j!k!=#L> l!|!@%@%}!m!3%0&j=Z&W,$>:-C-k)@)&>n!*>9;@==>A-$;i'E$8& o!p!q!r!s!t!u! ", -" v!w!x!y!i :@:@:@h h z!A!B!C!D!E!F@+'=# Q%m!|!D$@%l!3%A>(=Z&z&b&])#;V*S=F!T=7*A;}-@=->C;G!S*E$ H!I!J!K!L!M!N! ", -" O!T.d#= $ { P!| i!Q!R!S!{=T!U!V!H@ Q%3%Q%W!W!A&Q%X!A>(=Z&`&b&_=t*V*x-#)*>A,m=$,A-Y!7)E$Z! `! ~.~+~@~#~$~ ", -" %~F@$ &~*~- =~-~6#;~(->~,~'~`# A>0&>&)~D${)Q%m!3%.)Z&P%!~1*@;V*S=D&T=*>}-m=&*B-~~{~]~ ^~/~(~_~:~<~[~}~ ", -" D.B.L=|~1~2~3~*~4~5~6~~@)@ (=0&D$D$@%|!m!7~A>(=8~b&$>_=_=k=x-D&<=*>-;Y!->[=9~]$ 0~a~b~c~d~e~f~ ", -" %~D.g~h~i~j~*%v!I')@ D'K>L)k~#%A&Q%3%7)(=$!z&8;1*2*V*S=l)T=0)9;@=$;U*l~+%m~ n~o~p~q~r~s~t~ ", -" u~v~-*i _*g@%~T+ z&D'A&w*w~@%_-Q%7~K>(=Z&z&b&@;2*k)S=l)#)A,m=A-])9&]$ ^~x~y~z~A~B~C~D~ ", -" U+,~U)E~5+6~ Z&V,A&~)w~G!A&F~G~A>(=Z&z&b&1*@;X*H~:=T=7*}-0>0)9&N%I~ J~K~L~M~N~O~P~Q~ ", -" 4+U+u~U) W,E'j'R~k~D$L)A&3%1!0&(=Z&!~8>2*S~w-D&D&#)}-a;D&D,T~|- U~a~V~W~X~Y~Z~ ", -" D. b& *Q%7;+;D$G!}!3*j'`~(=Z&8~b&a-2*w-S=D&T=z-@=n!D,|- { .{+{@{#{${%{&{ ", -" *1*$!!)+;D,D$@%l!j'`~(=+)E'%!b&1*2*S=:=T=y-9;-;@%S%C, *{={-{;{A~B~#~>{ ", -" _=1*(=+;c&~)6)@%A&Q%>&A>k'E'z&b&1*_=V*S=l)M)0,n!.)z>,{ '{){!{M~~{{{P~]{ ", -" _=V*Z&^{1'+;D,@!@%A&m!7)/{(=V,b&@,1*S~k)x-l'A,m=3%z;C$ ({_{:{W~<{[{}{ ", -" #;V*_=+;1'|{D,D$@%A&Q%3%~~(=Z&1{b&1*@;S~S=l)T=-;`&2{9& .{3{4{#{5{6{7{ ", -" S=b&8{2{G-D,w*D$@%3*>&7).)D'8~%!8>_=V*k):=z,7* *c&9{ 0{a{b{c{A~d{e{f{ ", -" w-[-S~@!g{h{+;7;#%{)A&3*j'A>$!E'8~b&1*C-V*S=l=i{b&+;j{ k{l{m{n{o{p{q{r{ ", -" D&[-}!9&s{c&+;D,@!A&Q%j'7~/{$!z&8;b&1*C-w-@)7*H~+;h{j{ ({_{t{u{v{[{w{ ", -" z,:=j=U,z;c&!)7;D$x{_-Q%1!/{+)P%z&a-_=_=X,x-l'X,{)1'G- .{y{z{A{5{B{C{ ", -" 7*#)3%j{D{E{G-+;D,D$O%|!G~A>.)F{z&z&1*_=V*9,z,V*G{H{s{ I{a{J{K{L{M{e{N{ ", -" z-}-8~E,`=1'c&+;D,D$@%A&4%3%.)$!Z&z&b&1*_=V*F'T=j'+;~) O{P{Q{R{S{T{U{V{ ", -" 0,A;W{X{C$z;h{c&D,D,D$L)Q%3%7)j=Z&z&b&8>3'S~F'<-$!7;2' Y{Z{`{ ]<{.]}{ ", -" 9>&!b&c&S%+]i'h{@]#]W!i)A&Q%3%A>(=Z&z&@,])S~$]F'k'L)w* %]&]*]=]-];]f{ ", -" -;/)D&u*l~`=i'1'c&7;>]D${)3*Q%A>(=Z&y&8;1*3'V*9)z&,]D$ ']a{)]!]~]{]]]^] ", -" Y!:=7;N%2%z;1'c&+;D,#%@%|!m!1!0&a&,&`&j)1*C-V*8;i)@% /]P{(]_]:]<][]}] ", -" 0;->n!6)|-C$2{z;s{+;|]v-@%i)8,3%`~p%k'8~`&1*_=w-8;Q%@% 1]2]3]4]5]6]7] ", -" !'&*w~S%z>T*o%h{c&+;|]W!}!3*Q%F~0&+)E'!~b&_=#;2*3%G{ 8]9]z{0]a]C~f{ ", -" A-0>.)]$S%C$9{j{h{+;2'D$@!A&Q%F~A>(=Z&z&b&8>2*1*K>4%G{ b]c])]!]:~d]e]]{ ", -" *!;;7)S%N%f]U,2{1'c&+;D,D$@%A&Q%7).)(=Z&|*1*2*U*(=3%>& ({g]h]c~i]<]w{j] ", -" a,b,V,k]l]C$T*T*z;s{+;7;D$W!A&m!3%A>(=+)W,b&1*_=8~A>3% n~2]p~m]n]o]7{ ", -" 4'%;w-{~@>l~,{9&z;1'c&C'6)@%}!Q%3%A>(=+)Z&W,1* *z&(=1! p]q] ~r]A~s]#~t] ", -" ;>u]_=9&d$|-S%C$E,z;s*G-D,v])~A&4%3%A>(=V,!~j)1*z&D'(= w]x](~y]~{z]A]B] ", -" @=c>^)l~]$'&N%N% z;h{C]6),]V=8,m!3%/{D'V,b&$>b&P%D' '{){D]E]F]G]w{ ", -" -;B>v-+%N% !)#]@!|!Q%3%~~(=Z&z&$>$>,&Z& H]2]p~I]${J]K] ", -" m=a,L],{]$ C'i)_-Q%A>(=a&E'W,$>W,z& M]N]O];{+~B~#~N{ ", -" ->,>D$]$ G!A&G~A>(=E'z&b&$>b& P]){!{M~Q]{{R]S] ", -" ;>j>S%d$ A&3%p%k'P%b&@,1*b& Y{_{:{T]U]V]W] ", -" T=&;9,C$+% X]1!(=F{b&1*1*1* Y]+{Z]#{${`]K] ", -" _=d>1*'&d$ 4%7)(=8;2*t*_= ^c]y~.^A~+^e{@^ ", -" N-#^$^|- X!/{Z&_=V*]) %^l{!{&^*^<~=^^] ", -" b>Y!|{N% X!+)2*S=S= '{Z{`{-^;^>^}{ ", -" 0;N-z&S% (=_=D&S= ,^O]:{q~B~'^t] ", -" 0,)^m=D$z; Z&1*&>D& !^~^{^]^^^/^(^_^ ", -" x-->1*i'9& F{_=D&D& :^<^[^}^|^1^2^3^ ", -" A-&;S=l!C'1'c& A&b&_=#)W* 4^5^6^7^8^9^ ", -" B-A-m=@;K>3%Q%3%8~_=y-<=3'9, 0^a^b^c^d^ ", -" S=}-=;->-;7*}-m=7*z-V, e^f^g^h^i^ ", -" b&#,D&j^}-A;T=b& k^l^m^n^ ", -" o^p^q^ ", -" r^ ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" "}; diff --git a/src/Mod/Ship/Icons/ReparametrizeIco.png b/src/Mod/Ship/Icons/ReparametrizeIco.png deleted file mode 100644 index 0e75e41cca14b4175ae520ee07bdf812b3d665dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12178 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 UjA>5j!2kdN07*qoM6N<$f)8U!VgLXD diff --git a/src/Mod/Ship/Icons/ReparametrizeIco.xcf b/src/Mod/Ship/Icons/ReparametrizeIco.xcf deleted file mode 100644 index b370b06b0024d464ab3e0f6fa99ac62b467b4b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53229 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%0AN73Rty3 z*%iwj7(3y3cVls@gN^H>A@Jw|$T=zuQK77U5Bx zV&y8-xH?+1R@Po$_Y|Gj`t=(&>c;4qO|t1a-H-P_x~-l52O#iWXsSMWEhz#9?~3SH zyJqcL?*yau8)QRnBj9(NHp}K~ECNLEZCkf(-yu5`UXaPtbokMz61XiHqC?vOs`ac| z84-;H_BI$jYV;T#BV+A2!G4!^Vl-*8og7U8J5Q#{G(4?PIanboLv@%upu=^99Vw%9 zw2slS0PBvQpc8bWPLjzwC90Zgr$*DDbwlM~fW01h#4KHEYHQ8n#b(h$vv7e~u)xfp zZ|2Q4b00PjJ!Iz0F|%fwSu@Ry8Ro$UP0e&uU2Uo%4_zN^jOCZqnk7rj;zefR!bEF0)-RP;AAQU`0*hH%Tf3wdT(bZKrv9o1X z9zZ?=o}bo4)2pQ#c3GKw>{0V59Y9pOM3>0o5Ve!L ztp%s5mQXeaxAV2zx%yDRy2T^@bcQ|{0Ney(AM1`r#Vltf``Hfd09_iK<-vds+iWoC z{z3O!kBm;;Bj2-kQzRG_qn7P(bpU9X$>3C_W)<}6h`4B;D`a`IV=?x?GN*8^0^=-0 z?BH}|eo%H0OV<0sd+xnQ?+LyKZn&`YtiveFh_ov^Jv15uJ4}0+c7ctJ!YvyPYt)fM zE?ekfhgyKBsfP@*_ghENrW(naghOXMemd=u*l94d73Vrcx7=&*QFr=P6wD@)S4}Fm zr(D~cA=(y=48C{w-E1OsW)nSmnq87X`H3niG*VsJ5l^PpI!Z?7V;pw$z%U)AP(4O& z$9*XGrqPF9Vo-LJC0p8eVt_rgF-{JLJ-AXaN`!{%eF@b&Rw)_{A$8p@!_qOMn?uB| z@%ZyX>8Yf2r;KNFr_eXn(a3{)F+`T5Z^A*@N?X|p688{n=Pko9q{FTE3NqR{mk^Dg zU?&6l4NJhv=nh~DTvt#H--kSh4H>4;ilk-!ms-|LL z`VHrb0us8g+i}XKQmN83AWM<~?+Mr=Ee##aSIVO@0G9z80zxX|>KM%~= zKwz46fb^FEovaiwL}V2Q;EsXG6rg$_YqSS09q5fE!~?PUe`-JnXj4uu z4XJi0i=D{vpY*;?>@tN&UKS^ohpq!}NxA9*K&pVN%79NDLP6VyNaxTH|77FS?ZEJs zfq-D82iX3(eo&3@>!=@gEw>;jr+W#hP(XY`A={@MjP8iEWb07Pr9ILyz1mT=LFvL- zYz%ZO>7D7->9(!z*`p*zM_*6S(dA_p=K`tY8WDLoG}+Y_m~gEK2n2~p1;X{TSR zB2^CJnrng^l#1SYltU&~Z?LpeprHxgJR#Gk!hxvC#V(B-M~rtm{#^Pd^?10nCukGi zP0BWc2~kqLa&8=5SEU_;+qcS==g}%|)B+>un?kR%6c6{taFEnhf}&EqOcITxFR16f z?Nph}YwQ?a+9Ok;uDX{O4!SAb3t3vpE5$3I)?Xu7Kd|tFI#S34w)ySJ-Rz>^8f0n&+M~c(i}p zR8H(8>&%)pX3c7|YNc7R!Yo^6>g$jN7UXwPe#Z{8 zeOs6OrcLIVM1I{mvv!SHy~?ayRggbNdAlb>?XvUgb31ly-?n|*wk=!CmS>R$Z;m!0 zCyq8EE{qJ)S?In2D?B1z6-=PxFVe3}2g+*-ML>=DVh(1^kG|p4&)~#K; z29#>FL05DxUshl5+JIr$6YYiy?K_|IC2ZBL9W3G5&4orFM}JzLiq;`&4%i4;m1oG0 zWFe?OcMd&4KyS2gfjUO7I+(G}QG|6mQ)fhstgHt#Bbu$!DKa^9mFr@=D8C>f4SPB3 zY0GwIG{c31GF_|fO;R?gtUCoc7L%FcaLWt>b=u9f$r1%2*r`ddvCdU6m#L=1H0Nd@ z0`(|qsYb{>wWDgvl*yBwo<4wFL@2TXq)b`znqyg;fT4A|OiNGgtb*99>=mS-i`DUv ziBWcVW1SvPOl<3afmDL9K%w%c6iC%gEXhs^i8MG$uVe zZmGf!x@vW!!iv4w*|~Ybq34J*Jn@F-69P6=s)8x5ow6(3y=SlNjrL(aL=I>}2mR0C z#%>Nwp3l*NaXwH^!=>~&I<;ytxoJP<0p(C2imis03Dr2{e((K!yjOh5e_v&WJm||FRy_!!@L2P zehM8ClIDqdGhzJraXPLYwCK@e&;q1y%z$**RWyI-kRgK;VGBcg*ZGA>tbD@62~PFg z*l}aWj2W$?P(}Ha*-%kBw^bg;XZ>7H(edCVgWLGSh!}47ZT}}gV8~{uVNV5Qk zobveR1Yr%d_SfAQIEhY2UG`w-JiyLgNWL9{Gp!IL%Ua2qPTwxK38r4sKrYK&nx8DZ#HN4;5iWb|uQUwmQfE%qKSf{@keB%z59Nd;Pft?fF!9#w~c#TTEx8HHQ-p-y=oX(;5 zeWz$%>drhk;G|-!>u3utG||FN%~$gRS9pb=&3F*ErI|CqiJmsX$s%1GEvdycsq3C9+)vt0=IBH6FeWeNMe}*DrgN~1 z1EJ$0vtK zp0syB+AYHFzKpCxh?Ic6n;uYdi!}{BOhpA><#?5wGQ3I+0_;-kMOk7>N=yb{^kE~E zv`MAnm$e3)Bw9tv2iJpC(94%ozPyaWD54a*E;lqFS`hh%{?tN;@m#MWt~w2`qEV7I`!Y89D{94C z&BQsYqckJ;R)`7SlNP}%0kXfW96|Q>V z>W~QW9B{j!fiG0S$E#pjDMx)K9U9PVMImm)%e1tUpk-H1%#ya~w{kF_^AfkdED!C< zfX&Vj_8kMM#e%erjcPSQbxC;{l&2+~j>(4!gv_-x2Z1lNfy8Ml2klsQsw^F&o69l* zCLJ*Oz`jY?*_xD@auDYnbR@=^gM{e`sF6ys#TgrM?n5=iY=keg1jOi$q+*MvfDMTL z$hc0%j0lRs9)rG40g1fBcQ9L%ii=5?1q44QBjUi-C2?!m9B8Rve1j$kdt|*x-CV)g zQ84CPdmcAA+i8^nxZ7dU1utadNTWM(NfH)~$pd$JmG-s3wWkLJU<=Z^D?*$LW5x9= zJp+)ch-ssM_D(wi%s$|Hlzw?md|*DJ1YGz+9P&R&6+d?)UuQmChuu=KCF~76|7$+{ ze!mya>8guv2mihjzxjJj{N^{T6@PoreZwlpj2u7We*E>m-?Q?x-|<3vGmDk`e;a>k z-$4WYHy$?T#pd{g8vMk2<3(e(-)YPtbjDHaNoeqpQ*j|Z7S$IQ()&k6vBti*kiNK( z-c95e7t&`7tCWii>6494iVNwv(MfS3J=R@tdzIos`r<-*x00>6kRIz;3u``$3+ams z>D{7RE^aL@q}TT1Li*xD`r<-*ZpBetNMBq?UtCCETu5JBNdHR<=|2hQ_!%sq|7^F# z^V3tyiwolm+Z1rig6>-t{FfHS|90J5Tzx+ diff --git a/src/Mod/Ship/Icons/ReparametrizeIco.xpm b/src/Mod/Ship/Icons/ReparametrizeIco.xpm deleted file mode 100644 index 690b938941..0000000000 --- a/src/Mod/Ship/Icons/ReparametrizeIco.xpm +++ /dev/null @@ -1,1737 +0,0 @@ -/* XPM */ -static char * ReparametrizeIco_xpm[] = { -"128 128 1606 2", -" c None", -". c #000000", -"+ c #B50000", -"@ c #6C0000", -"# c #640000", -"$ c #FF0000", -"% c #8E0000", -"& c #8C0000", -"* c #630000", -"= c #CE0000", -"- c #DD0000", -"; c #A20000", -"> c #6A0000", -", c #7C0000", -"' c #860000", -") c #AA0000", -"! c #D50000", -"~ c #000001", -"{ c #00000B", -"] c #00000A", -"^ c #C80033", -"/ c #B5003A", -"( c #09009C", -"_ c #090099", -": c #090097", -"< c #090098", -"[ c #070085", -"} c #04004F", -"| c #040054", -"1 c #03000E", -"2 c #020000", -"3 c #0B0028", -"4 c #090027", -"5 c #14005B", -"6 c #1900B0", -"7 c #1500B2", -"8 c #1000B7", -"9 c #0C00BE", -"0 c #0800AC", -"a c #0700B9", -"b c #0600D5", -"c c #0400E0", -"d c #0200E9", -"e c #0100F2", -"f c #0000FB", -"g c #0000FD", -"h c #0000FE", -"i c #0000FC", -"j c #0000F8", -"k c #0000F3", -"l c #0100EC", -"m c #0100E5", -"n c #0200DF", -"o c #0300D9", -"p c #0400D6", -"q c #0400D3", -"r c #0500D3", -"s c #0400D4", -"t c #0400D9", -"u c #0400E2", -"v c #0400E7", -"w c #0300EB", -"x c #0300ED", -"y c #0300E7", -"z c #0300E2", -"A c #0300DC", -"B c #0300D5", -"C c #0300CF", -"D c #0200C7", -"E c #0200B1", -"F c #0200AE", -"G c #0100C3", -"H c #0200BC", -"I c #0400AD", -"J c #07009B", -"K c #0C008D", -"L c #BA0018", -"M c #E50010", -"N c #450044", -"O c #9E004F", -"P c #3E0070", -"Q c #0800B3", -"R c #0500C3", -"S c #0300D0", -"T c #0100DD", -"U c #0000EA", -"V c #0000F6", -"W c #0000FF", -"X c #0000F7", -"Y c #0000F5", -"Z c #0000F2", -"` c #0000EE", -" . c #0000E6", -".. c #0000E1", -"+. c #0000DE", -"@. c #0000DA", -"#. c #0000D6", -"$. c #0800CE", -"%. c #3700C6", -"&. c #2300BC", -"*. c #0000BB", -"=. c #0100B6", -"-. c #0200AF", -";. c #0300AD", -">. c #0300AE", -",. c #0300AF", -"'. c #0300A9", -"). c #0300A4", -"!. c #0300AC", -"~. c #0300B2", -"{. c #0400B0", -"]. c #0400AA", -"^. c #0400A5", -"/. c #0400A8", -"(. c #0400B3", -"_. c #0400BC", -":. c #0400C5", -"<. c #0300D1", -"[. c #0200E5", -"}. c #0200FB", -"|. c #0100FD", -"1. c #0000F4", -"2. c #0100E7", -"3. c #0100E3", -"4. c #0200DD", -"5. c #3300C8", -"6. c #4D00A4", -"7. c #0A00A6", -"8. c #0C00D8", -"9. c #0600E0", -"0. c #0100E1", -"a. c #0000E5", -"b. c #0000EC", -"c. c #0600EF", -"d. c #0700F7", -"e. c #0000FA", -"f. c #0000E9", -"g. c #0200DC", -"h. c #0500CD", -"i. c #0700BA", -"j. c #0800A7", -"k. c #0A0094", -"l. c #0C0085", -"m. c #0E0076", -"n. c #0F0069", -"o. c #10005C", -"p. c #0F004C", -"q. c #0B002F", -"r. c #120035", -"s. c #600000", -"t. c #800000", -"u. c #06001F", -"v. c #040014", -"w. c #08001E", -"x. c #04004B", -"y. c #020042", -"z. c #01005D", -"A. c #000086", -"B. c #010088", -"C. c #03008E", -"D. c #040097", -"E. c #0500A5", -"F. c #0700B5", -"G. c #0A00C4", -"H. c #2800D0", -"I. c #1100E4", -"J. c #0200E4", -"K. c #070084", -"L. c #0700C3", -"M. c #0100E4", -"N. c #0100FE", -"O. c #0100E2", -"P. c #0400C1", -"Q. c #3600A0", -"R. c #6B0083", -"S. c #190072", -"T. c #070068", -"U. c #06005A", -"V. c #05004D", -"W. c #000003", -"X. c #740000", -"Y. c #700000", -"Z. c #3F0039", -"`. c #C50033", -" + c #59005A", -".+ c #070081", -"++ c #0700B3", -"@+ c #0300D2", -"#+ c #0200E7", -"$+ c #0100F3", -"%+ c #0100EE", -"&+ c #0400CF", -"*+ c #0600AC", -"=+ c #090088", -"-+ c #090067", -";+ c #090051", -">+ c #070046", -",+ c #05003D", -"'+ c #040034", -")+ c #C40010", -"!+ c #F2000A", -"~+ c #620000", -"{+ c #7D0006", -"]+ c #0100E8", -"^+ c #0400D5", -"/+ c #0800B2", -"(+ c #09008A", -"_+ c #070072", -":+ c #06005E", -"<+ c #06004F", -"[+ c #FD0000", -"}+ c #EF0000", -"|+ c #9B0000", -"1+ c #080098", -"2+ c #0700BB", -"3+ c #06008F", -"4+ c #050065", -"5+ c #BD0000", -"6+ c #570000", -"7+ c #9A0000", -"8+ c #D70000", -"9+ c #820000", -"0+ c #010000", -"a+ c #F90000", -"b+ c #FB0000", -"c+ c #B30000", -"d+ c #090000", -"e+ c #DC0000", -"f+ c #0C0000", -"g+ c #7E0000", -"h+ c #470000", -"i+ c #BF0000", -"j+ c #900000", -"k+ c #2B0000", -"l+ c #A80000", -"m+ c #B20000", -"n+ c #2C0000", -"o+ c #950000", -"p+ c #5F0000", -"q+ c #890000", -"r+ c #670000", -"s+ c #6E0000", -"t+ c #780000", -"u+ c #690000", -"v+ c #6F0000", -"w+ c #3F0000", -"x+ c #550000", -"y+ c #350000", -"z+ c #4B0000", -"A+ c #990000", -"B+ c #7F0000", -"C+ c #540000", -"D+ c #4A0000", -"E+ c #A60000", -"F+ c #5C0000", -"G+ c #C80000", -"H+ c #5D0000", -"I+ c #D10000", -"J+ c #DB0000", -"K+ c #E40000", -"L+ c #04000C", -"M+ c #03000F", -"N+ c #000002", -"O+ c #BF0030", -"P+ c #C40037", -"Q+ c #0B00AC", -"R+ c #0B00A7", -"S+ c #0A00A7", -"T+ c #0A00A8", -"U+ c #0900A9", -"V+ c #070086", -"W+ c #06008D", -"X+ c #0600AF", -"Y+ c #0600B1", -"Z+ c #0500B3", -"`+ c #0400B5", -" @ c #0400B6", -".@ c #0300B8", -"+@ c #0300BA", -"@@ c #0300BD", -"#@ c #0100C0", -"$@ c #000091", -"%@ c #000092", -"&@ c #0000C5", -"*@ c #0000C1", -"=@ c #0200B3", -"-@ c #0500A8", -";@ c #06009C", -">@ c #080091", -",@ c #0B008A", -"'@ c #980041", -")@ c #C10032", -"!@ c #0B005F", -"~@ c #0B0071", -"{@ c #0E00B0", -"]@ c #0900C8", -"^@ c #0700D3", -"/@ c #0500DE", -"(@ c #0200EA", -"_@ c #0100FC", -":@ c #0100F8", -"<@ c #0200F2", -"[@ c #0200EB", -"}@ c #0300E4", -"|@ c #0300DE", -"1@ c #0300DA", -"2@ c #0300D7", -"3@ c #0300D6", -"4@ c #0300D8", -"5@ c #0200DB", -"6@ c #0200E0", -"7@ c #0100E6", -"8@ c #1900DE", -"9@ c #1F00DC", -"0@ c #0100DC", -"a@ c #0200CC", -"b@ c #0400BD", -"c@ c #0B00AE", -"d@ c #0E00A5", -"e@ c #0E008C", -"f@ c #080040", -"g@ c #08005C", -"h@ c #0A00A2", -"i@ c #0800B7", -"j@ c #0500C8", -"k@ c #0200D9", -"l@ c #0000F1", -"m@ c #0000ED", -"n@ c #0000E8", -"o@ c #0000E4", -"p@ c #0000DB", -"q@ c #0100D2", -"r@ c #3400CA", -"s@ c #3A00C1", -"t@ c #0000BC", -"u@ c #0000B7", -"v@ c #0100B2", -"w@ c #0100AD", -"x@ c #0300A5", -"y@ c #04009C", -"z@ c #050096", -"A@ c #06008E", -"B@ c #070088", -"C@ c #060061", -"D@ c #06005F", -"E@ c #090081", -"F@ c #0A007F", -"G@ c #09007E", -"H@ c #08007E", -"I@ c #07007E", -"J@ c #06007D", -"K@ c #04007D", -"L@ c #04007E", -"M@ c #020065", -"N@ c #010068", -"O@ c #000088", -"P@ c #010089", -"Q@ c #01008D", -"R@ c #030092", -"S@ c #030097", -"T@ c #04009E", -"U@ c #4C00A1", -"V@ c #4400AF", -"W@ c #0800BD", -"X@ c #0800C1", -"Y@ c #0600C7", -"Z@ c #0500CA", -"`@ c #0000EB", -" # c #C10009", -".# c #C4002C", -"+# c #17008D", -"@# c #0800BF", -"## c #0200D8", -"$# c #0000DF", -"%# c #0400CD", -"&# c #0600B9", -"*# c #0700A5", -"=# c #090091", -"-# c #0A0076", -";# c #0C0060", -"># c #0F0060", -",# c #110052", -"'# c #120044", -")# c #140037", -"!# c #ED0000", -"~# c #DC0019", -"{# c #DC001E", -"]# c #070075", -"^# c #090079", -"/# c #0B007C", -"(# c #0C0084", -"_# c #09009E", -":# c #0400B4", -"<# c #0E00CB", -"[# c #0500DD", -"}# c #2C00C8", -"|# c #1A00E2", -"1# c #0000F0", -"2# c #060098", -"3# c #070079", -"4# c #080071", -"5# c #080060", -"6# c #070053", -"7# c #1000CF", -"8# c #0500D1", -"9# c #0700F4", -"0# c #3A00BA", -"a# c #09008C", -"b# c #05004A", -"c# c #01002F", -"d# c #000006", -"e# c #E20000", -"f# c #0C0081", -"g# c #0600B4", -"h# c #080053", -"i# c #BF002F", -"j# c #DD001D", -"k# c #E00000", -"l# c #080079", -"m# c #080064", -"n# c #060048", -"o# c #DF0000", -"p# c #E60000", -"q# c #F70000", -"r# c #E50000", -"s# c #040000", -"t# c #F50000", -"u# c #030000", -"v# c #EB0000", -"w# c #050000", -"x# c #D20000", -"y# c #C30000", -"z# c #9D0000", -"A# c #760000", -"B# c #8A0000", -"C# c #500000", -"D# c #4D0000", -"E# c #5E0000", -"F# c #400000", -"G# c #3D0000", -"H# c #720000", -"I# c #520000", -"J# c #4F0000", -"K# c #510000", -"L# c #980000", -"M# c #750000", -"N# c #8D0000", -"O# c #B00000", -"P# c #610000", -"Q# c #850000", -"R# c #6D0000", -"S# c #D90000", -"T# c #580000", -"U# c #5B0000", -"V# c #F30000", -"W# c #680000", -"X# c #050010", -"Y# c #03000D", -"Z# c #000004", -"`# c #620038", -" $ c #C20039", -".$ c #45004F", -"+$ c #0A00AE", -"@$ c #0A00AA", -"#$ c #0A00A9", -"$$ c #0900AA", -"%$ c #0800A9", -"&$ c #070095", -"*$ c #050086", -"=$ c #0600AD", -"-$ c #0500AE", -";$ c #0400B1", -">$ c #0300B3", -",$ c #0300B6", -"'$ c #0200BE", -")$ c #0100C4", -"!$ c #00009B", -"~$ c #000089", -"{$ c #0100A1", -"]$ c #0300B1", -"^$ c #0500A3", -"/$ c #080095", -"($ c #0C007F", -"_$ c #A50024", -":$ c #DF0019", -"<$ c #010005", -"[$ c #0D0071", -"}$ c #0B0078", -"|$ c #0D00AA", -"1$ c #0B00C0", -"2$ c #0900CA", -"3$ c #0700D5", -"4$ c #0500E0", -"5$ c #0100F5", -"6$ c #0200FC", -"7$ c #0200EF", -"8$ c #0200E1", -"9$ c #0100E9", -"0$ c #0100EA", -"a$ c #1800D5", -"b$ c #2A00D2", -"c$ c #0800D7", -"d$ c #0200D0", -"e$ c #0300BF", -"f$ c #0F00A4", -"g$ c #120099", -"h$ c #08005D", -"i$ c #070074", -"j$ c #0700AF", -"k$ c #0500C6", -"l$ c #0000EF", -"m$ c #0000D9", -"n$ c #0000D1", -"o$ c #0800CA", -"p$ c #3D00C1", -"q$ c #2700BC", -"r$ c #0000B3", -"s$ c #0100AC", -"t$ c #0200A5", -"u$ c #03009D", -"v$ c #050097", -"w$ c #060091", -"x$ c #060064", -"y$ c #070087", -"z$ c #060086", -"A$ c #050084", -"B$ c #040084", -"C$ c #040085", -"D$ c #030087", -"E$ c #020083", -"F$ c #010070", -"G$ c #010078", -"H$ c #030090", -"I$ c #04009D", -"J$ c #0600AE", -"K$ c #0600B8", -"L$ c #1A00C1", -"M$ c #2900CF", -"N$ c #0F00D3", -"O$ c #0500D2", -"P$ c #0100DF", -"Q$ c #0200D1", -"R$ c #B8002E", -"S$ c #970057", -"T$ c #0900BD", -"U$ c #0000F9", -"V$ c #0200D4", -"W$ c #0400C2", -"X$ c #08009C", -"Y$ c #0C0073", -"Z$ c #0D0059", -"`$ c #0E004E", -" % c #11004D", -".% c #130041", -"+% c #130035", -"@% c #50002F", -"#% c #D40028", -"$% c #64002F", -"%% c #07007D", -"&% c #07007F", -"*% c #090083", -"=% c #0B0085", -"-% c #0B0093", -";% c #0700B1", -">% c #080096", -",% c #0F00D4", -"'% c #0600DD", -")% c #0100E0", -"!% c #1700DE", -"~% c #0900F5", -"{% c #0400C4", -"]% c #0600A4", -"^% c #070080", -"/% c #07005E", -"(% c #060055", -"_% c #070054", -":% c #A30000", -"<% c #090065", -"[% c #0500D0", -"}% c #0100EB", -"|% c #2600B6", -"1% c #6B0085", -"2% c #1F005F", -"3% c #050047", -"4% c #02002E", -"5% c #000007", -"6% c #0600B2", -"7% c #09007C", -"8% c #090055", -"9% c #060043", -"0% c #650022", -"a% c #E90010", -"b% c #5A000A", -"c% c #08007A", -"d% c #090080", -"e% c #070062", -"f% c #D99214", -"g% c #D99215", -"h% c #DD9516", -"i% c #DC9416", -"j% c #DC9315", -"k% c #D89014", -"l% c #D79014", -"m% c #DD9415", -"n% c #DE9516", -"o% c #E59A16", -"p% c #D18C12", -"q% c #DB9315", -"r% c #D68F13", -"s% c #D68F14", -"t% c #DA9115", -"u% c #DC9314", -"v% c #D89114", -"w% c #B87B12", -"x% c #A46C0C", -"y% c #B37407", -"z% c #312001", -"A% c #744A00", -"B% c #B47506", -"C% c #DB9215", -"D% c #DD9416", -"E% c #D89013", -"F% c #D78F13", -"G% c #D48D13", -"H% c #D18B13", -"I% c #D38C12", -"J% c #C58411", -"K% c #B0750F", -"L% c #B4760B", -"M% c #593A05", -"N% c #9E6603", -"O% c #593800", -"P% c #251700", -"Q% c #B37202", -"R% c #563701", -"S% c #6E4701", -"T% c #AC6F04", -"U% c #D78F12", -"V% c #D58E13", -"W% c #D79013", -"X% c #D18B11", -"Y% c #BF7F0F", -"Z% c #B2760D", -"`% c #BB7B0B", -" & c #624107", -".& c #B67507", -"+& c #6C4602", -"@& c #1B1100", -"#& c #B17102", -"$& c #352100", -"%& c #7C5002", -"&& c #9B6403", -"*& c #714902", -"=& c #A86B03", -"-& c #A76C03", -";& c #A66A02", -">& c #9C6301", -",& c #D18B12", -"'& c #CF8910", -")& c #CF8911", -"!& c #D38D11", -"~& c #E19612", -"{& c #CE8A12", -"]& c #C18110", -"^& c #C0800E", -"/& c #BE7D0C", -"(& c #573B07", -"_& c #BF7D09", -":& c #7B5005", -"<& c #3B2701", -"[& c #B27304", -"}& c #271901", -"|& c #9C6403", -"1& c #6C4502", -"2& c #B37304", -"3& c #4B3102", -"4& c #674202", -"5& c #A76B03", -"6& c #AD7003", -"7& c #A36803", -"8& c #A26803", -"9& c #A26802", -"0& c #9D6400", -"a& c #C6830E", -"b& c #DC9415", -"c& c #C78410", -"d& c #CB8610", -"e& c #CE8910", -"f& c #D88F12", -"g& c #CE8911", -"h& c #D38C11", -"i& c #C1800E", -"j& c #5C3D07", -"k& c #C37F09", -"l& c #6D4706", -"m& c #6B4604", -"n& c #BB7906", -"o& c #A96D05", -"p& c #9C6504", -"q& c #704903", -"r& c #AE7105", -"s& c #9D6505", -"t& c #A76B05", -"u& c #A86C05", -"v& c #AB6E04", -"w& c #AF7004", -"x& c #5E3C02", -"y& c #412A01", -"z& c #A36904", -"A& c #A56A03", -"B& c #A86C03", -"C& c #A46A02", -"D& c #966001", -"E& c #AA7009", -"F& c #DF9617", -"G& c #DC9216", -"H& c #C8830F", -"I& c #C9850E", -"J& c #C9860F", -"K& c #C98610", -"L& c #DC9211", -"M& c #CC880F", -"N& c #C2810F", -"O& c #92610B", -"P& c #C7830B", -"Q& c #422B03", -"R& c #845505", -"S& c #BC7907", -"T& c #AE7107", -"U& c #734B04", -"V& c #4C3103", -"W& c #AE7106", -"X& c #A26906", -"Y& c #AB6F05", -"Z& c #AA6E05", -"`& c #A86D05", -" * c #A86B04", -".* c #AB6F04", -"+* c #9B6303", -"@* c #905C03", -"#* c #A46903", -"$* c #9D6503", -"%* c #905D03", -"&* c #835503", -"** c #764B01", -"=* c #815304", -"-* c #DF9616", -";* c #C5830E", -">* c #C6820E", -",* c #C6830F", -"'* c #CD890F", -")* c #C7840F", -"!* c #C4830F", -"~* c #BC7D0D", -"{* c #CD870D", -"]* c #412B05", -"^* c #996307", -"/* c #B17306", -"(* c #100A00", -"_* c #B27307", -":* c #5B3B04", -"<* c #6D4705", -"[* c #B97707", -"}* c #8E5C05", -"|* c #8A5A05", -"1* c #3D2802", -"2* c #A16905", -"3* c #AD7106", -"4* c #AC6F06", -"5* c #AB6E05", -"6* c #AA6F05", -"7* c #AA6E04", -"8* c #A66C05", -"9* c #9D6604", -"0* c #915D03", -"a* c #865703", -"b* c #7B4E03", -"c* c #774D03", -"d* c #784D02", -"e* c #794E02", -"f* c #7A4E02", -"g* c #724800", -"h* c #D58E14", -"i* c #C5820D", -"j* c #C3810D", -"k* c #C2800E", -"l* c #BA7C0D", -"m* c #CB860E", -"n* c #704A07", -"o* c #9D6709", -"p* c #986407", -"q* c #2F1E02", -"r* c #BA7808", -"s* c #452C03", -"t* c #6E4705", -"u* c #C17D09", -"v* c #774D05", -"w* c #A46A07", -"x* c #B87808", -"y* c #BA7908", -"z* c #B47507", -"A* c #A16906", -"B* c #382502", -"C* c #956005", -"D* c #AF7106", -"E* c #AB6F06", -"F* c #A96E05", -"G* c #A46A05", -"H* c #9B6505", -"I* c #905D04", -"J* c #855603", -"K* c #7C4F03", -"L* c #784D03", -"M* c #794E03", -"N* c #7A4F03", -"O* c #7B4F02", -"P* c #7B4F03", -"Q* c #7A4F02", -"R* c #6E4600", -"S* c #DF9615", -"T* c #C3800C", -"U* c #C17F0C", -"V* c #C9840D", -"W* c #BC7C0D", -"X* c #B4760C", -"Y* c #C6830D", -"Z* c #905E0A", -"`* c #A56D0A", -" = c #8C5C08", -".= c #412B03", -"+= c #C7830A", -"@= c #452D03", -"#= c #644105", -"$= c #B77809", -"%= c #3F2903", -"&= c #956107", -"*= c #B37508", -"== c #B27408", -"-= c #B17308", -";= c #BC7B08", -">= c #B67608", -",= c #B07307", -"'= c #B07207", -")= c #B17307", -"!= c #AF7206", -"~= c #8B5B05", -"{= c #A06705", -"]= c #996305", -"^= c #8E5C04", -"/= c #855604", -"(= c #7E5103", -"_= c #7C5103", -":= c #7D5003", -"<= c #7C5003", -"[= c #714900", -"}= c #A16A09", -"|= c #E39817", -"1= c #BD7C0C", -"2= c #C07E0B", -"3= c #C9840C", -"4= c #BF7D0C", -"5= c #BF7E0C", -"6= c #8F5E09", -"7= c #AE720B", -"8= c #946109", -"9= c #3D2803", -"0= c #D18A0B", -"a= c #533604", -"b= c #5B3C05", -"c= c #B3750A", -"d= c #6E4806", -"e= c #B87809", -"f= c #A76D08", -"g= c #A66C08", -"h= c #4B3104", -"i= c #794F06", -"j= c #B47609", -"k= c #B37408", -"l= c #B47608", -"m= c #B57608", -"n= c #B57607", -"o= c #B17407", -"p= c #AC6F07", -"q= c #A36A06", -"r= c #9B6406", -"s= c #936006", -"t= c #936005", -"u= c #895805", -"v= c #805204", -"w= c #7D5103", -"x= c #7E5104", -"y= c #805203", -"z= c #7F5203", -"A= c #7C4F02", -"B= c #774D02", -"C= c #B9780B", -"D= c #C17F0B", -"E= c #B97A0B", -"F= c #C4810B", -"G= c #B9790B", -"H= c #915E09", -"I= c #9D670A", -"J= c #362303", -"K= c #D28A0C", -"L= c #563905", -"M= c #794F07", -"N= c #B3760A", -"O= c #4C3204", -"P= c #C2800A", -"Q= c #AB700A", -"R= c #A76E09", -"S= c #BB7B0A", -"T= c #B97909", -"U= c #B7780A", -"V= c #B9780A", -"W= c #BB7A09", -"X= c #BD7C09", -"Y= c #624105", -"Z= c #6B4605", -"`= c #B97808", -" - c #AD7008", -".- c #A16907", -"+- c #966206", -"@- c #8E5C06", -"#- c #855605", -"$- c #825405", -"%- c #815405", -"&- c #815404", -"*- c #805304", -"=- c #754B01", -"-- c #D99114", -";- c #B77909", -">- c #B8790A", -",- c #B9790A", -"'- c #C07E0A", -")- c #C27F0A", -"!- c #A76D0A", -"~- c #C4820C", -"{- c #9E690A", -"]- c #452D04", -"^- c #D38A0D", -"/- c #362403", -"(- c #9C660A", -"_- c #BA7B0C", -":- c #160F01", -"<- c #CF870D", -"[- c #6F4906", -"}- c #5C3C06", -"|- c #BE7D0B", -"1- c #BC7B0B", -"2- c #BB7A0A", -"3- c #B8780A", -"4- c #BA7B09", -"5- c #BB7B09", -"6- c #B47509", -"7- c #AE7208", -"8- c #A16807", -"9- c #8A5906", -"0- c #865706", -"a- c #855606", -"b- c #855706", -"c- c #855705", -"d- c #835605", -"e- c #845605", -"f- c #835505", -"g- c #825505", -"h- c #835404", -"i- c #825404", -"j- c #714901", -"k- c #C38111", -"l- c #E09716", -"m- c #B67709", -"n- c #B57709", -"o- c #BC7B09", -"p- c #BB7A0B", -"q- c #986409", -"r- c #7D5208", -"s- c #D48C0E", -"t- c #130D01", -"u- c #B7780C", -"v- c #1A1102", -"w- c #D1890E", -"x- c #8B5C09", -"y- c #A86F0B", -"z- c #CA860D", -"A- c #875808", -"B- c #BC7C0B", -"C- c #AF7309", -"D- c #A06808", -"E- c #915F08", -"F- c #895906", -"G- c #875806", -"H- c #865806", -"I- c #865606", -"J- c #845506", -"K- c #835504", -"L- c #835405", -"M- c #805303", -"N- c #744B01", -"O- c #A66D0A", -"P- c #E49917", -"Q- c #B27308", -"R- c #B57609", -"S- c #B57708", -"T- c #B37509", -"U- c #986308", -"V- c #A46B0A", -"W- c #D28A0F", -"X- c #010100", -"Y- c #C5830F", -"Z- c #99650B", -"`- c #3B2704", -" ; c #D68C0E", -".; c #553806", -"+; c #AC710C", -"@; c #C8830D", -"#; c #BF7F0D", -"$; c #C17F0D", -"%; c #C4810C", -"&; c #BD7D0C", -"*; c #A26B0A", -"=; c #503405", -"-; c #AD720A", -";; c #BD7D0B", -">; c #B5770A", -",; c #AD7109", -"'; c #9F6808", -"); c #926007", -"!; c #895A07", -"~; c #855807", -"{; c #875906", -"]; c #885806", -"^; c #855506", -"/; c #774C02", -"(; c #895B05", -"_; c #DA9215", -":; c #B97907", -"<; c #AF7207", -"[; c #B07208", -"}; c #976307", -"|; c #A76E0A", -"1; c #C9850D", -"2; c #352303", -"3; c #704B09", -"4; c #5D3E07", -"5; c #DC9111", -"6; c #462E05", -"7; c #AD720D", -"8; c #D78E0F", -"9; c #CA840E", -"0; c #C4810D", -"a; c #C27F0D", -"b; c #C2800D", -"c; c #C2800C", -"d; c #BC7C0C", -"e; c #B97A0C", -"f; c #B8790C", -"g; c #AA700A", -"h; c #9E6809", -"i; c #926009", -"j; c #8A5A07", -"k; c #875807", -"l; c #895907", -"m; c #8B5B07", -"n; c #8A5A06", -"o; c #895A06", -"p; c #885906", -"q; c #825504", -"r; c #805404", -"s; c #815203", -"t; c #7B5003", -"u; c #845604", -"v; c #8E5D06", -"w; c #DA9314", -"x; c #AE7206", -"y; c #B27306", -"z; c #B67607", -"A; c #B67708", -"B; c #946006", -"C; c #A56C09", -"D; c #BC7B0C", -"E; c #644106", -"F; c #C8840F", -"G; c #583A07", -"H; c #604008", -"I; c #E39712", -"J; c #503606", -"K; c #A9700E", -"L; c #B87B0E", -"M; c #A36C0C", -"N; c #C7830E", -"O; c #CB860F", -"P; c #CC870F", -"Q; c #BD7C0D", -"R; c #422B05", -"S; c #8D5D0A", -"T; c #C4810E", -"U; c #B4770C", -"V; c #AC720B", -"W; c #A36B0A", -"X; c #9B660A", -"Y; c #936109", -"Z; c #8D5D09", -"`; c #8A5A09", -" > c #8A5B08", -".> c #8C5C07", -"+> c #8C5B08", -"@> c #8C5B07", -"#> c #8A5B07", -"$> c #845606", -"%> c #764C02", -"&> c #7F5204", -"*> c #8B5B06", -"=> c #9B6508", -"-> c #A86E0B", -";> c #B7790E", -">> c #C98611", -",> c #DA9214", -"'> c #AC6F05", -")> c #B17304", -"!> c #B67506", -"~> c #AA6E06", -"{> c #AC7109", -"]> c #AA710B", -"^> c #674406", -"/> c #D28B10", -"(> c #614007", -"_> c #4D3406", -":> c #DF9412", -"<> c #452E06", -"[> c #9A670C", -"}> c #B6790F", -"|> c #A76F0D", -"1> c #C1810F", -"2> c #C78310", -"3> c #C8850E", -"4> c #8D5E0A", -"5> c #A36C0B", -"6> c #C8850F", -"7> c #BD7D0D", -"8> c #B2760C", -"9> c #A66D0B", -"0> c #9E680A", -"a> c #98640A", -"b> c #905E09", -"c> c #8D5C09", -"d> c #8C5C09", -"e> c #8E5D09", -"f> c #8E5E09", -"g> c #8E5D08", -"h> c #8C5D08", -"i> c #815403", -"j> c #794D02", -"k> c #825403", -"l> c #936007", -"m> c #A76E0B", -"n> c #B87A0E", -"o> c #C58310", -"p> c #CE8913", -"q> c #B07105", -"r> c #A36903", -"s> c #AF7105", -"t> c #684406", -"u> c #E09512", -"v> c #734D09", -"w> c #4F3507", -"x> c #D58F12", -"y> c #3A2705", -"z> c #B67910", -"A> c #B2770F", -"B> c #93620D", -"C> c #D48D11", -"D> c #6B4709", -"E> c #704A09", -"F> c #D68F11", -"G> c #CD880F", -"H> c #CA8710", -"I> c #CB870F", -"J> c #CA860F", -"K> c #C9850F", -"L> c #BE7E0D", -"M> c #B0740C", -"N> c #A26B0B", -"O> c #98650A", -"P> c #946209", -"Q> c #926109", -"R> c #92600A", -"S> c #915F09", -"T> c #905F09", -"U> c #8F5F09", -"V> c #8F5D08", -"W> c #8E5E08", -"X> c #8D5C08", -"Y> c #8B5B08", -"Z> c #895806", -"`> c #865705", -" , c #7D5104", -"., c #7A4E03", -"+, c #986408", -"@, c #C38110", -"#, c #D48E13", -"$, c #A76A04", -"%, c #A76C04", -"&, c #A86C04", -"*, c #A66A03", -"=, c #AE7004", -"-, c #A56B06", -";, c #794E05", -">, c #D78F10", -",, c #724B0A", -"', c #704B0B", -"), c #110B02", -"!, c #B4770F", -"~, c #644208", -"{, c #DB9213", -"], c #D08B12", -"^, c #D08B11", -"/, c #CF8A11", -"(, c #D48D12", -"_, c #D28B11", -":, c #84580B", -"<, c #563A07", -"[, c #D08A10", -"}, c #CB8710", -"|, c #CD8810", -"1, c #CE890F", -"2, c #BF7F0E", -"3, c #AF750D", -"4, c #A06B0C", -"5, c #96630A", -"6, c #935F0A", -"7, c #93610A", -"8, c #8F5E08", -"9, c #8D5D08", -"0, c #8B5A07", -"a, c #895905", -"b, c #B5770C", -"c, c #C98510", -"d, c #D38E12", -"e, c #D28D12", -"f, c #D28C13", -"g, c #A46904", -"h, c #A96E04", -"i, c #925D04", -"j, c #634106", -"k, c #A16B0F", -"l, c #D79015", -"m, c #EB9D16", -"n, c #98660E", -"o, c #4A3106", -"p, c #E29614", -"q, c #B47910", -"r, c #CF8A13", -"s, c #E49813", -"t, c #CF8B12", -"u, c #D08A12", -"v, c #D08A11", -"w, c #CE8A11", -"x, c #D28C11", -"y, c #B3770E", -"z, c #885B0B", -"A, c #BE7E0F", -"B, c #AF750E", -"C, c #A06A0C", -"D, c #95630B", -"E, c #91610B", -"F, c #94630B", -"G, c #95620B", -"H, c #95620A", -"I, c #94620A", -"J, c #94610A", -"K, c #92610A", -"L, c #916009", -"M, c #8F5D09", -"N, c #8D5B08", -"O, c #855505", -"P, c #905E08", -"Q, c #A26A09", -"R, c #B8790E", -"S, c #CA8711", -"T, c #D58E12", -"U, c #D18A12", -"V, c #935E04", -"W, c #BE7D0A", -"X, c #5B3B03", -"Y, c #BE7F0F", -"Z, c #D59014", -"`, c #F2A319", -" ' c #81560D", -".' c #8F5F0D", -"+' c #E49814", -"@' c #7C530B", -"#' c #B27710", -"$' c #402B06", -"%' c #CB8812", -"&' c #DD9314", -"*' c #D28C12", -"=' c #D38D12", -"-' c #CE8811", -";' c #C28211", -">' c #BE7F10", -",' c #BB7C0F", -"'' c #A26C0D", -")' c #97640C", -"!' c #93600C", -"~' c #93610C", -"{' c #96630B", -"]' c #98640C", -"^' c #98640B", -"/' c #96640B", -"(' c #95630A", -"_' c #94620B", -":' c #885A07", -"<' c #865707", -"[' c #9A6508", -"}' c #A86F0A", -"|' c #BA7B0E", -"1' c #CD8911", -"2' c #A16703", -"3' c #9F6601", -"4' c #C7830F", -"5' c #BD8015", -"6' c #63543B", -"7' c #F5AD32", -"8' c #533809", -"9' c #A97211", -"0' c #714C0B", -"a' c #E79A15", -"b' c #C48312", -"c' c #462F06", -"d' c #B07610", -"e' c #CF8912", -"f' c #C68411", -"g' c #BC7E10", -"h' c #B4780E", -"i' c #AA720E", -"j' c #A06B0D", -"k' c #99660C", -"l' c #96640C", -"m' c #95630C", -"n' c #98650C", -"o' c #99650C", -"p' c #97640B", -"q' c #925F09", -"r' c #885907", -"s' c #875907", -"t' c #926008", -"u' c #9C6609", -"v' c #B1740B", -"w' c #D08911", -"x' c #CC8710", -"y' c #9B6400", -"z' c #E0A640", -"A' c #B0A99B", -"B' c #CFA050", -"C' c #CD8A16", -"D' c #D18C14", -"E' c #E39816", -"F' c #D99013", -"G' c #DB9214", -"H' c #B17710", -"I' c #C28111", -"J' c #B77A0F", -"K' c #AE7310", -"L' c #A76F0E", -"M' c #A16A0D", -"N' c #9C680D", -"O' c #9A660C", -"P' c #99650D", -"Q' c #9B670C", -"R' c #8A5A08", -"S' c #865907", -"T' c #A46C0A", -"U' c #AF730B", -"V' c #B87A0D", -"W' c #BF7E0E", -"X' c #C5820E", -"Y' c #BA7A0A", -"Z' c #E9B04E", -"`' c #A18E6F", -" ) c #996F25", -".) c #EA9D18", -"+) c #DE9515", -"@) c #DE9514", -"#) c #D08B13", -"$) c #C18111", -"%) c #B37710", -"&) c #AB710F", -"*) c #A46D0F", -"=) c #A06A0E", -"-) c #9D6A0E", -";) c #9D690E", -">) c #9D680D", -",) c #9D680E", -"') c #9C670D", -")) c #895A08", -"!) c #895A09", -"~) c #AA6F0B", -"{) c #C4820D", -"]) c #C6840E", -"^) c #C7840E", -"/) c #A16702", -"() c #E69D1E", -"_) c #865E1B", -":) c #64430A", -"<) c #E89B16", -"[) c #DF9516", -"}) c #E09615", -"|) c #D08B14", -"1) c #BF8112", -"2) c #AF7510", -"3) c #9E6A0F", -"4) c #9F6B0F", -"5) c #A16B0E", -"6) c #9F6A0E", -"7) c #9E6A0D", -"8) c #9E690E", -"9) c #8C5D09", -"0) c #936009", -"a) c #9F680A", -"b) c #AE730B", -"c) c #BB7B0C", -"d) c #C27F0C", -"e) c #C3800D", -"f) c #C4800D", -"g) c #C3810E", -"h) c #A06702", -"i) c #A16602", -"j) c #D28E15", -"k) c #C08216", -"l) c #B07918", -"m) c #A67319", -"n) c #A97A2A", -"o) c #B0863D", -"p) c #B3883E", -"q) c #AB7B28", -"r) c #A26D11", -"s) c #A16C0F", -"t) c #A06B0E", -"u) c #9F6A0F", -"v) c #9E6A0E", -"w) c #9E690D", -"x) c #9B670D", -"y) c #9C670C", -"z) c #9B660C", -"A) c #976409", -"B) c #C27F0B", -"C) c #C3810C", -"D) c #C07F0C", -"E) c #C07E0D", -"F) c #9E6501", -"G) c #B87B0F", -"H) c #B17712", -"I) c #A66F10", -"J) c #A57621", -"K) c #CCB180", -"L) c #DBC7A4", -"M) c #E1CFAF", -"N) c #D9C39D", -"O) c #CCAE7A", -"P) c #BB934F", -"Q) c #AA7923", -"R) c #A26C0F", -"S) c #9D670D", -"T) c #A56D09", -"U) c #B0730A", -"V) c #BF7D0B", -"W) c #C17E0B", -"X) c #C07E0C", -"Y) c #BE7C0B", -"Z) c #A16701", -"`) c #A06909", -" ! c #A56F11", -".! c #B28332", -"+! c #D5BB8F", -"@! c #F9F5EF", -"#! c #F2EBDF", -"$! c #E7D8BF", -"%! c #D8C098", -"&! c #BC934F", -"*! c #A67218", -"=! c #A26D0F", -"-! c #9D690D", -";! c #9D680C", -">! c #96630C", -",! c #9A660B", -"'! c #A96F0A", -")! c #B1740A", -"!! c #BC7B0A", -"~! c #BE7C0A", -"{! c #BD7C0A", -"]! c #BC7C0A", -"^! c #AF7D25", -"/! c #DAC39B", -"(! c #F5EFE5", -"_! c #F9F6F0", -":! c #F6F0E7", -"~ c #AA6D04", -",~ c #A06601", -"'~ c #A16704", -")~ c #A87316", -"!~ c #AA761B", -"~~ c #A77011", -"{~ c #A77111", -"]~ c #A67111", -"^~ c #A67011", -"/~ c #A46D0D", -"(~ c #A46D0A", -"_~ c #A56B08", -":~ c #A56C07", -"<~ c #A56B05", -"[~ c #A66B04", -"}~ c #A06703", -"|~ c #A66E0D", -"1~ c #A87213", -"2~ c #A66E0C", -"3~ c #A46C09", -"4~ c #A46B07", -"5~ c #A36A04", -"6~ c #A56903", -"7~ c #A66B03", -"8~ c #A26804", -"9~ c #A26904", -"0~ c #A26702", -"a~ c #A36902", -"b~ c #A46A03", -"c~ c #A26902", -" ", -" ", -" ", -" . ", -" + @ . . . ", -" # $ % . . . . ", -" . & $ * . . . . + @ ", -" . . = $ . . . . # $ % ", -" . . . $ - . . . . & $ * ", -" . . . . $ ; . . . . = $ ", -" + @ . . . . > $ , . . . . $ - ", -" # $ % . . . . ' $ * . . . . $ ; ", -" & $ * . . . . ) $ . . . . > $ , ", -" = $ . . . . ! $ ~ . . . ' $ * ", -" $ - . . { ] ^ / ( _ : < < [ } | 1 2 ) $ ", -" $ ; 3 4 5 6 7 8 9 0 a b c d e f g g g g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M ", -" N O P Q R S T U V g h W W W h g f X Y Z ` U ...+.@.#.$.%.&.*.=.E F -.;.>.,.'.).!.~.{.].^./.I (._.:.<.[.}.|.|.1.2.3.4.o 5.6.7. ", -" 8.9.0.a.b.c.d.i i e.1.f.g.h.i.j.k.l.m.n.o.p.q.3 r. s.$ t. u.v.w. x.y.z.A.B.C.D.E.F.G.H.I.J.K. ", -" L.<.M.1.N.W h O.P.Q.R.S.T.U.V. ] W. . . X.$ Y. . . . . Z.`. +.+ ", -" ++@+#+$+%+&+*+=+-+;+>+,+'+)+!+ . . . . ' $ ~+ . . . . # $ {+ ", -" a d ]+^+/+(+_+:+<+ [+}+ . . . . |+$ . . . . X.$ Y. ", -" 1+2+3+4+ $ 5+ . . . . + $ . . . . ' $ ~+ ", -" 6+$ 7+ . . . . 8+$ . . . . |+$ ", -" # $ 9+ . . . . . . . . . . . . 0+a+b+2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c+$ ", -" X.$ @ . . . . . . . . . . . . . . . . . . . . d+$ e+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! $ f+. . . ", -" g+$ h+. . . . . . . . . . . . . . . . . $ i+ . . . . a+b+2 . . . . ", -" . . . . j+$ k+. . . . . . . . . $ l+ . . . . $ - . ", -" . . . . . . . . m+$ n+ . . . . 6+$ o+ . . . . $ i+ ", -" . . . . . . . 8+$ . . . . p+$ q+ . . . . $ l+ ", -" . . . . a+b+ . . . . r+$ g+ . . . . 6+$ o+ ", -" $ - . . . . s+$ X. . . . . p+$ q+ ", -" $ i+ . . . . t+$ u+ . . . . . . r+$ g+ ", -" $ l+ . . . . . . . . . . . . v+$ w+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . x+$ s.. ", -" 6+$ o+ . . . . . . . . . . . . . . . . . . . . g+$ y+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . s.$ z+. . . . . . . ", -" 6+$ 9+ . . . . . . . . . . . . . . . . . A+$ . . . . B+$ C+ . . . . . . . ", -" . D+$ r+. . . . . . . . . . E+$ . . . . % $ F+ ", -" . . . . . C+$ s.. . . . . m+$ . . . . 7+$ ", -" . . . . . . . Y.$ > . . . . 5+$ . . . . E+$ ", -" . . . 9+$ * . . . . G+$ . . . . m+$ ", -" % $ H+ . . . . I+$ . . . . 5+$ ", -" 7+$ . . . . J+$ . . . . G+$ ", -" E+$ . . . . K+$ L+M+ 0+. I+$ ", -" m+$ . . N+W. O+P+ Q+R+S+T+U+V+W+X+Y+Z+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@ ", -" 5+$ . W. !@~@{@9 ]@^@/@(@V |.h h W W W W h h |._@}.:@<@[@}@|@1@2@3@4@5@6@2.k _@W h h |.j %+7@0.8@9@o 5@0@a@b@++c@d@e@ ", -" G+$ f@g@h@i@j@k@f.1.h W h f j Y l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@H@I@J@J@K@L@M@N@O@P@Q@R@S@T@E.U@V@W@X@Y@Z@2@`@N.e.Z +._. ", -" #.#+#@###` Y X f g V b.$#%#&#*#=#-#;#>#,#'#)# $ !# . . . . ~#{# ]#^#/#(#_#:.:# ", -" <#[#}#|#V W W h 1#:.2#3#4#5#6# . . $ K+ . . . . $ a+ ", -" 7#8#m e.W 9#0#a#T.b#c# d#W. . . $ e# . . . . $ !# ", -" f#j i g#G@h#i#j# . . . . $ k# . . . . $ K+ ", -" l#m#n# b+$ . . . . $ o# . . . . $ e# ", -" $ a+ . . . . $ o# . . . . $ k# ", -" $ !# . . . . $ p# . . . . $ o# ", -" $ K+ . . . . $ }+ . . . . $ o# ", -" $ e# . . . . $ q# . . . . . . . . . . . . . $ r# ", -" $ k# . . . . . . . . . . [+$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s#$ }+. . . . . . . . ", -" $ o# . . . . . . . . . . . . . . . . . t#$ 2 . . . . . . . . . . . . . . . . . . . . u#$ q#. . . . . . . . . . . . . ", -" $ o# . . . . . . . . . . . . . . . . v#$ . . . . [+$ . . . . . . ", -" $ r#. . . . . . . . . . . . . o#$ . . . . t#$ ", -" w#$ }+. . . . . . . . . x#$ . . . . v#$ ", -" . . . 2 $ q#. . . . . y#$ . . . . o#$ ", -" . . . [+$ . . . . + $ . . . . x#$ ", -" t#$ . . . . ) $ . . . . y#$ ", -" v#$ . . . . z#$ . . . . + $ ", -" o#$ . . . . j+$ F+ . . . . ) $ ", -" x#$ . . . . 9+$ * . . . . z#$ ", -" y#$ . . . . A#$ > . . . . . . . . . . . . B#$ C# ", -" + $ . . . . . . . . . . . D#$ E#. . . . . . . . . . . . . . . . . . . . . . . . . . . . . s+$ F#. . . . . . ", -" ) $ . . . . . . . . . . . . . . . . . . G#$ H#. . . . . . . . . . . . . . . . . . . . . . . # $ I#. . . . . . . . . . . ", -" z#$ J# . . . . . . . . . . . . . . . . . K#$ L# . . . . r+$ M# . . . . . . ", -" N#$ F#. . . . . . . . . . . . $ O# . . . . P#$ Q# ", -" . . R#$ w+. . . . . . . . $ S# . . . . T#$ L# ", -" . . . . p+$ U# . . . . V#[+ . . . . $ O# ", -" . . . W#$ t+ . . . . G+$ . . . . $ S# ", -" P#$ Q# . . . . ; $ X#Y# . . V#[+ ", -" T#$ L# . . W.Z# `# $.$ +$@$#$$$%$&$*$z@=$-$-$;$>$,$+@'$)$!$~${$]$^$/$=+($ _$:$ ", -" $ O# N+<$ [$}$|$1$2$3$4$[@5$_@h W W W W W W h |._@6$:@7$#+8$A 1@1@1@4.8$9$Y g h W h _@5$0$3.n 4.a$b$c$d$e$X+7.f$g$ ", -" $ S# h$i$j$k$2@ .k W W W g e.X k l$`@ ...m$n$o$p$q$*.r$s$t$u$v$w$A@V+4+x$V+V+y$z$*$A$B$C$D$E$F$G$H$S@I$E.J$K$L$M$N$O$s P$k j Y o@Q$( ", -" R$S$T$5@` Y X f i U$l@o@V$W$X+X$,@Y$Z$`$ %.%+% $ k# . . . . @%#%$% %%&%*%=%-%;%B >% ", -" ,%'%)%!%~%W W W l@{%]%^%/%(%_% . . = $ . . . . $ :% <% ", -" 7#[%2.f W }%|%1%2%3%4% 5%N+~ . . & $ * . . . . $ k# ", -" Z+5$2.6%7%8%9%0%a%b% . . . . # $ & . . . . = $ ", -" c%d%e%n# W#$ B+ . . . . $ k# . . . . & $ * ", -" $ :% . . . . :%9+ . . # $ & ", -" $ k# . . . . $ k# ", -" = $ . . . . :%9+ f%g%h%i%j% ", -" & $ * . . k%l%m%h%n%o%p%p%q% ", -" # $ & . . r%r%s%t%u%v%w%x%y%z%A%B%C%D% ", -" $ k# E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%l%j% ", -" :%9+ U%V%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&m% ", -" '&)&!&~&{&]&^&/&(&_&:&<&[&}&&&|&1&2&3&4&5&6&7&8&9&0&a&b& ", -" c&d&e&f&g&h&'&i&j&k&l&m&n&. o&p&q&r&s&t&u&v&w&x&y&z&A&B&-&C&D&E&F&G& ", -" H&I&J&K&L&M&N&O&P&Q&R&S&. T&U&V&W&X&r&o&Y&o&Z&`&u& *.*+*@*#*$*%*&*%&**=*-*j% ", -" ;*>*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*_*|*1*2*3*4*5*Z&Z&Z&6*7*8*9*0*a*b*c*d*e*f*e*g*h*q% ", -" i*j*>*i*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*T&z*/*A*B*C*D*4*E*F*G*H*I*J*K*L*M*N*K*O*P*Q*Q*f*R*Y%S* ", -" T*U*V*i*W*X*Y*Z*`* =.=+=@=#=$=%=&=*===-=;=>=,='=)=_*)=!=~=H*{=]=^=/=(=P*P*_=(=:=:=<=K*O*O*O*O*Q*[=}=|= ", -" 1=2=3=4=U*1=5=6=7=8=9=0=a=b=c=d=e=f=g=$=h=i=y*j=k=l=m=n=o=p=q=r=s=t=u=v=(=w=x=v=y=z=z=(=w=w=<=<=K*A=P*P*O*B=a*|=C% ", -" C=`%D=E=F=3=G=H=5=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=y*`=m= -.-+-@-u=#-$-%-%-%-$-&-&-*-*-y=y=z=z=(=w=:=<=K*A=K*O*O*f*=---q% ", -" ;->-,-'-)-,-!-~-{-]-^-/-(-_-:-<-[-}-5=|-1-2-`%,->-3->-4-5-6-7-8-s=9-0-a-b-c-d-e-R&f-f-g-h-i-i-*-y=v=y=z=z=z=(=w=_=<=%&K* O*j-k-l- ", -" m-n-V=m-$=o-p-q-r-s-t-1=u-v-w-x-y-/&z-~-A-h=>-B-p-2-p-S=2-3-C-D-E-F-a-a-0-G-H-H-0-I-a-J-e-f-f-K-L-i-=*=*M-y=y=y=z=z=(=w=:=K*K* N-O-P- ", -" Q-m=R-S-T-e=U-V-W-X-Y-Z-`- ;.;+;@;#;$;@;%;5=&;T**;=;-;;;`%>;,;';);!;~;0-{;F-F-];G-G-H-H-0-#-#-^;R&f-f-K-$-i-%-&-*-v=y=v=z=z=z=w=w=:=<=:= /;(;P-_; ", -" T&:;==<;[;T=};|;1;2;N&3;4;5;6;+;Z%]*7;8;9;$;0;a;b;b;c;5=d;e;f;g;h;i;j;k;k;l;m;j;n;!;o;F-p;];G-G-H-H-b-a-#-e-R&K-f-f-f-q;&-r;s;y=y=z=z=z=(=(=w=t;d* :=u;v;m%w; ", -" x;y;W&!=z;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;I&T;N;>*j*1=U;V;W;X;Y;Z;`; > >.>+>@>m;#>#>!;!;F-!;F-];G-G-H-0-0-0-#-$>e-R&f-K-K-i-i-&-r;M-v=v=z=(=e*%>d*&>*>=>->;>>>s%,>g% ", -" Y&'>7*)>!>~>q={>]>^>/>(>_>:><>[>}>|>e&1>2>d&'&)*)*a&3>4>5>6>7>8>9>0>a>Y;b>c>d>e>e>f>g>g>h> =+>+>@>m;m;#>o;!;F-F-];G-G-H-0-0-0-b-#-f-f-f-K-K-K-i-i>z=b*/;j>k>l>m>n>o>p>h*_;j%j% ", -" u&`&5*q>r>s>n=D-t>u>v>w>x>y>z>A>B>C>D>E>F>G>H>I>J>K>J>P;P;I&L>M>N>O>P>Q>R>S>S>S>T>U>U>6=6=V>W>Z;g>X> =.>m;Y>m;#>j;F-F-l;Z>];G-H-0-0-0-`>a-R&f-f-K-$- ,.,P*#-+,M>@,g&I%#,V%r%k% ", -" $,%,&,*,=,v&-,;,>,,,',h*),W%!,~,{,],^,/,(,_,:,<,[,d&},|,1,J>2,3,4,5,R>6,8=8=7,Q>Q>i;Q>S>S>T>T>6=8,6=W>Z;9,X>.>.>+>m;m;0,#>o;o;F-F-];G-G-0-0-0-I-#-$>=*x=*-a,o*b,c,(,x>d,e,f,G% ", -" 7&A&g,A&g,h,i,%;j,k,l,X-m,n,o,p,q,r,d,s,t,u,/,v,w,x,y,z,K>c,A,B,C,D,E,O&F,G,H,G,I,J,7,K,7,Q>i;L,S>T>b>6=6=6=M,g>9,9,N, =@>+>m;m;j;!;!;F-p;];G-0-H-0-b-O,];P,Q,R,S,T,r%I%U,v,U, ", -" 9&8&r>g,V,W,X,Y,Z,~ `, '.'+'@'l%#'$'%'&'*'*',&='*',&-'>>;'>',''')'!'~'{']'^'/'/'D,('G,_'J,7,Y;Q>Q>i;i;S>T>T>b>6=6=8,g>e>e>h>.>@>m;m;m;#>#>:'k;<'G-F-m;E-['}'|'c,,&(,*'[,1' ", -" 2'3'4'5'6'7'8'9'o%0'k%h*f,V%a'--b'c'd'u%U%G%e'f'g'h'i'j'k'l'm'n'o'k'n'n']']'p'/'{'('G,H,I,7,Y;Y;Q>i;R>q'T>T>6=6=6=6=8,g>g>9,9, = =j;r'G-s'm;t'u'O-v'~*)*e&w'/,|,x' ", -" 9&y',&z'A'B'C'D'_;E',>--f%l%F'G'v%H'I'b'J'K'L'M'N'O'P'k'Q'Q'[>[>O'n'o'n']']'p'p'{'/'D,H,H,I,I,7,7,K,R>i;i;S>T>U>6=6=6=8,f>d>R'S'k;g>+,T'U'V'W'X'K>P;x'I> ", -" 0&Y'Z'`' ).)j%_;_;j%+)@),>#)$)%)&)*)=)-);)>),)>)N'N'')Q'Q'Q'[>k'k'k'o'n'^')')'l'p'D,('G,H,I,J,7,Y;Q>K,q'S>S>S>6=f>d>))!)b>(-~)u-4=b;{)X'])^) ", -" /)h,()_):)<)[)})q%|)1)2)*)3)4)=)5)=)6)6)7)8)7)>)>)N'N'')Q'Q'Q'[>O'k'o'n']')'p'p'/'D,H,H,H,J,J,7,K,i;i;i;q'M,c>9)0)a)b)c)d)e)f)a;e)g) ", -" h)i)l-h%j)|)k)l)m)n)o)p)q)r)s)5)5)t)u)u)v)v)v)w)w)N'')x)y)x)Q'z)O'k'o'n'^']'p'p'p'/'D,('G,J,J,Y;7,K,L,Y;A)Q,U'`%B)C)d)D)E)U* ", -" /)F)G)H)I)J)K)L)M)N)O)P)Q)R)s)s)s)5)u)=)6)7)8)w)w)>)S)y)y)Q'Q'Q'O'O'k'o'n']'^'p'p'{'H,I,I,H,5,a>I=T)U)G=V)W)X)/&Y)/& ", -" Z)`) !.!+!@!#!$!%!&!*!=!=!s)R)k,5)=)6)6)6)v)w)w)-!;!N'y)Q'Q'Q'O'O'k'k'n')'>!>!D,p',!{-W;'!)!>-!!~!{!]!`% ", -" /)X&^!/!(!_!:!)N'x)Q'x)Q'O'n')'l'n'2!3!'!-;4!5!>-6!2-2- ", -" i)7!8!9!0!a!b!c!d!*)|!|!|!=!R)s)k,k,e!t)6)v)v)v)w)f!-!g!')h!i!k'Q'j!O-k!l!k=j=>=m!e= ", -" i)/)n!o!p!q!r!s!s!t!u!*)|!|!R)=!k,5)v!t)6)=)w!v)w)-!x!y!;!z!|;A!)=B!==k=*=m= ", -" C!D!E!F!G!H!I!s!u!u!|!*)|!=!R)s)k,5)J!=)6)v)v)w!3!K!L!M!N!M!O!O!== ", -" P!Q!R!S!T!I!U!s!V!*)|!*)|!=!R)s)W!5)X!Y!Z!f=~>`! ~.~!=T&T& ", -" C!X&+~@~#~$~U!s!s!%~%~&~|!*~M;=~-~;~`&>~v&5*'>'> ", -" ,~'~)~!~~~{~]~^~s!/~(~_~:~<~[~%,B&>~o& ", -" }~|~1~$~2~3~4~G*5~6~A&7~5& ", -" C!8~9~/)/)0~9&a~b~ ", -" i),~h)/)c~ ", -" ", -" ", -" ", -" "}; diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index e735befa19..5b556753dc 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -1,68 +1,73 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** class ShipWorkbench ( Workbench ): - """ @brief Workbench of Ship design module. Here toolbars & icons are append. """ - from shipUtils import Paths, Translator - import ShipGui + """ @brief Workbench of Ship design module. Here toolbars & icons are append. """ + from PyQt4 import QtCore, QtGui + from shipUtils import Paths + import ShipGui - Icon = Paths.iconsPath() + "/Ico.png" - MenuText = str(Translator.translate("Ship design")) - ToolTip = str(Translator.translate("Ship design")) + Icon = "Ico" + MenuText = str(QtCore.QT_TRANSLATE_NOOP("Ship", "Ship")) + ToolTip = str(QtCore.QT_TRANSLATE_NOOP("Ship", "Ship module provides some of the commonly used tool to design ship forms")) - def Initialize(self): - from shipUtils import Translator - # ToolBar - list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] - self.appendToolbar("Ship design",list) - list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendToolbar("Weights",list) - # Simulation stuff only if pyOpenCL & numpy are present - hasOpenCL = True - hasNumpy = True - try: - import pyopencl - except ImportError: - hasOpenCL = False - msg = Translator.translate("pyOpenCL not installed, ship simulations disabled\n") - App.Console.PrintWarning(msg) - try: - import numpy - except ImportError: - hasNumpy = False - msg = Translator.translate("numpy not installed, ship simulations disabled\n") - App.Console.PrintWarning(msg) - if hasOpenCL and hasNumpy: - list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim", "Ship_TrackSim"] - self.appendToolbar("Simulation",list) - - # Menu - list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] - self.appendMenu("Ship design",list) - list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendMenu("Weights",list) - if hasOpenCL and hasNumpy: - list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim", "Ship_TrackSim"] - self.appendMenu("Simulation",list) + def Initialize(self): + from PyQt4 import QtCore, QtGui + + # Print a warning if Plot module can't be used + try: + import matplotlib + except ImportError: + msg = QtGui.QApplication.translate("ship_console", "Plot module is disabled, tools can't graph output curves", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '\n') + # ToolBar + shiplist = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] + weightslist = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] + self.appendToolbar(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Ship design")),shiplist) + self.appendToolbar(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Weights")),weightslist) + self.appendMenu(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Ship design")),shiplist) + self.appendMenu(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Weights")),weightslist) + # Simulation stuff only if pyOpenCL & numpy are present + hasOpenCL = True + hasNumpy = True + try: + import pyopencl + except ImportError: + hasOpenCL = False + msg = QtGui.QApplication.translate("ship_console", "pyOpenCL not installed, simulations stuff will disabled therefore", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '\n') + try: + import numpy + except ImportError: + hasNumpy = False + msg = QtGui.QApplication.translate("ship_console", "numpy not installed, simulations stuff will disabled therefore", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '\n') + if hasOpenCL and hasNumpy: + simlist = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim", "Ship_TrackSim"] + self.appendToolbar(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Simulation")),simlist) + self.appendMenu(str(QtCore.QT_TRANSLATE_NOOP("Ship", "Simulation")),simlist) Gui.addWorkbench(ShipWorkbench()) diff --git a/src/Mod/Ship/Instance.py b/src/Mod/Ship/Instance.py index 40fd10992a..da022b8b80 100644 --- a/src/Mod/Ship/Instance.py +++ b/src/Mod/Ship/Instance.py @@ -1,29 +1,32 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import time from math import * +# Qt library +from PyQt4 import QtGui,QtCore + # COIN from pivy.coin import * from pivy import coin @@ -34,554 +37,563 @@ from FreeCAD import Base, Vector import Part # Ship design module -from shipUtils import Paths, Translator, Math +from shipUtils import Paths, Math class Ship: - def __init__(self, obj, solids): - """ Creates a new ship on active document. - @param obj Part::FeaturePython created object. - @param faces Ship solids components. - """ - # Add uniqueness property to identify Ship instances - obj.addProperty("App::PropertyBool","IsShip","Ship", str(Translator.translate("True if is a valid ship instance"))).IsShip=True - # Add main dimensions - obj.addProperty("App::PropertyLength","Length","Ship", str(Translator.translate("Ship length (Lpp) [m]"))).Length=0.0 - obj.addProperty("App::PropertyLength","Beam","Ship", str(Translator.translate("Ship beam (B) [m]"))).Beam=0.0 - obj.addProperty("App::PropertyLength","Draft","Ship", str(Translator.translate("Ship draft (T) [m]"))).Draft=0.0 - # Add shapes - obj.Shape = Part.makeCompound(solids) - obj.addProperty("Part::PropertyPartShape","ExternalFaces","Ship", str(Translator.translate("Ship only external faces"))) - obj.Proxy = self + def __init__(self, obj, solids): + """ Creates a new ship on active document. + @param obj Part::FeaturePython created object. + @param faces Ship solids components. + """ + # Add uniqueness property to identify Ship instances + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyBool","IsShip","Ship", tooltip).IsShip=True + # Add main dimensions + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyLength","Length","Ship", tooltip).Length=0.0 + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyLength","Beam","Ship", tooltip).Beam=0.0 + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyLength","Draft","Ship", tooltip).Draft=0.0 + # Add shapes + obj.Shape = Part.makeCompound(solids) + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship instance",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("Part::PropertyPartShape","ExternalFaces","Ship", tooltip) + obj.Proxy = self - def onChanged(self, fp, prop): - """ Called when a ship property is modified - @param fp Part::FeaturePython object. - @param prop Property changed. - """ - if prop == "Length" or prop == "Beam" or prop == "Draft": - pass + def onChanged(self, fp, prop): + """ Called when a ship property is modified + @param fp Part::FeaturePython object. + @param prop Property changed. + """ + if prop == "Length" or prop == "Beam" or prop == "Draft": + pass - def execute(self, fp): - """ Called when a recomputation is needed. - @param fp Part::FeaturePython object. - """ - fp.Shape = Part.makeCompound(fp.Shape.Solids) + def execute(self, fp): + """ Called when a recomputation is needed. + @param fp Part::FeaturePython object. + """ + fp.Shape = Part.makeCompound(fp.Shape.Solids) class ViewProviderShip: - def __init__(self, obj): - "Set this object to the proxy object of the actual view provider" - obj.Proxy = self + def __init__(self, obj): + "Set this object to the proxy object of the actual view provider" + obj.Proxy = self - def attach(self, obj): - ''' Setup the scene sub-graph of the view provider, this method is mandatory ''' - return + def attach(self, obj): + ''' Setup the scene sub-graph of the view provider, this method is mandatory ''' + return - def updateData(self, fp, prop): - ''' If a property of the handled feature has changed we have the chance to handle this here ''' - return + def updateData(self, fp, prop): + ''' If a property of the handled feature has changed we have the chance to handle this here ''' + return - def getDisplayModes(self,obj): - ''' Return a list of display modes. ''' - modes=[] - return modes + def getDisplayModes(self,obj): + ''' Return a list of display modes. ''' + modes=[] + return modes - def getDefaultDisplayMode(self): - ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' - return "Shaded" + def getDefaultDisplayMode(self): + ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' + return "Shaded" - def setDisplayMode(self,mode): - ''' Map the display mode defined in attach with those defined in getDisplayModes. - Since they have the same names nothing needs to be done. This method is optinal. - ''' - return mode + def setDisplayMode(self,mode): + ''' Map the display mode defined in attach with those defined in getDisplayModes. + Since they have the same names nothing needs to be done. This method is optinal. + ''' + return mode - def onChanged(self, vp, prop): - ''' Print the name of the property that has changed ''' - # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") + def onChanged(self, vp, prop): + ''' Print the name of the property that has changed ''' + # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") - def __getstate__(self): - ''' When saving the document this object gets stored using Python's cPickle module. - Since we have some un-pickable here -- the Coin stuff -- we must define this method - to return a tuple of all pickable objects or None. - ''' - return None + def __getstate__(self): + ''' When saving the document this object gets stored using Python's cPickle module. + Since we have some un-pickable here -- the Coin stuff -- we must define this method + to return a tuple of all pickable objects or None. + ''' + return None - def __setstate__(self,state): - ''' When restoring the pickled object from document we have the chance to set some - internals here. Since no data were pickled nothing needs to be done here. - ''' - return None + def __setstate__(self,state): + ''' When restoring the pickled object from document we have the chance to set some + internals here. Since no data were pickled nothing needs to be done here. + ''' + return None - def getIcon(self): - return """ - /* XPM */ - static char * Ship_xpm[] = { - "32 32 396 2", - " c None", - ". c #2C2C2C", - "+ c #3A3A3A", - "@ c #585857", - "# c #161616", - "$ c #000000", - "% c #363636", - "& c #333333", - "* c #B3B3B3", - "= c #B4B4B4", - "- c #949494", - "; c #565653", - "> c #141414", - ", c #080807", - "' c #585858", - ") c #878787", - "! c #9F9E9F", - "~ c #9F9F9E", - "{ c #8F8F90", - "] c #6B6B6B", - "^ c #101010", - "/ c #737373", - "( c #4C4C4C", - "_ c #B1B1B7", - ": c #9090C0", - "< c #A7A7B2", - "[ c #87878E", - "} c #4F4F52", - "| c #191919", - "1 c #656565", - "2 c #D1D1D2", - "3 c #D1D1D1", - "4 c #CECECE", - "5 c #CDCCCC", - "6 c #CCCCCC", - "7 c #CCCCCB", - "8 c #CDCECD", - "9 c #BDBDBD", - "0 c #424242", - "a c #373737", - "b c #0A0A0A", - "c c #241414", - "d c #0E0C0C", - "e c #929393", - "f c #383738", - "g c #9B9B9A", - "h c #A0A0AF", - "i c #2929E4", - "j c #2525E5", - "k c #3F3FD7", - "l c #5B5BC8", - "m c #535368", - "n c #686866", - "o c #C8C8C8", - "p c #C8C8C7", - "q c #C7C6C7", - "r c #C6C6C6", - "s c #C5C5C5", - "t c #C4C5C5", - "u c #C3C4C3", - "v c #C3C3C2", - "w c #BCBCBC", - "x c #595959", - "y c #A6A6A6", - "z c #969696", - "A c #0B0B0B", - "B c #0D0707", - "C c #894646", - "D c #1C1A1A", - "E c #525252", - "F c #6C6D6C", - "G c #A3A3A2", - "H c #A3A296", - "I c #8E8F98", - "J c #6F6EA5", - "K c #5354AF", - "L c #373753", - "M c #8D8D8B", - "N c #C5C5C4", - "O c #C2C2C2", - "P c #C1C1C1", - "Q c #C0C0C0", - "R c #C0BFBF", - "S c #BFBFBF", - "T c #BEBEBE", - "U c #B1B2B2", - "V c #404040", - "W c #ABAAAA", - "X c #797979", - "Y c #2A1212", - "Z c #662828", - "` c #3D403F", - " . c #B5B5B5", - ".. c #6B6A6B", - "+. c #4A4A4A", - "@. c #9A9A9A", - "#. c #909090", - "$. c #8B8B8A", - "%. c #898A86", - "&. c #84837F", - "*. c #3D3D3C", - "=. c #9E9E9E", - "-. c #BFBFBE", - ";. c #BDBEBD", - ">. c #BBBBBB", - ",. c #BABABA", - "'. c #B9B9B9", - "). c #B8B8B8", - "!. c #999999", - "~. c #BABAB9", - "{. c #ABABAB", - "]. c #292929", - "^. c #381212", - "/. c #4C1514", - "(. c #535656", - "_. c #717171", - ":. c #919090", - "<. c #818181", - "[. c #4E4E4E", - "}. c #4B4B4B", - "|. c #B1B1B1", - "1. c #B8B7B8", - "2. c #B6B6B6", - "3. c #B6B5B5", - "4. c #B4B5B4", - "5. c #B2B3B2", - "6. c #5C5D5C", - "7. c #AFAFAF", - "8. c #ADACAC", - "9. c #5B5B5B", - "0. c #410C0C", - "a. c #3E0707", - "b. c #525555", - "c. c #9C9C9C", - "d. c #2D2D2D", - "e. c #757575", - "f. c #474747", - "g. c #484848", - "h. c #9F9F9F", - "i. c #B3B3B4", - "j. c #B2B2B2", - "k. c #B0B0B0", - "l. c #ADAEAD", - "m. c #ADADAD", - "n. c #B0B1B0", - "o. c #1E1E1E", - "p. c #ACABAC", - "q. c #AAA9A9", - "r. c #A8A8A8", - "s. c #5D5D5D", - "t. c #290202", - "u. c #281010", - "v. c #272828", - "w. c #767777", - "x. c #505050", - "y. c #1F1F1F", - "z. c #5E5E5D", - "A. c #A4A5A5", - "B. c #B1B2B1", - "C. c #AEAEAE", - "D. c #AEADAD", - "E. c #ABACAC", - "F. c #AAAAAA", - "G. c #A9A8A8", - "H. c #ABABAC", - "I. c #7B7B7B", - "J. c #2B2B2B", - "K. c #A4A4A4", - "L. c #A6A5A6", - "M. c #888888", - "N. c #0E0E0E", - "O. c #101312", - "P. c #7E8080", - "Q. c #5E5E5E", - "R. c #242424", - "S. c #555555", - "T. c #7F7F7F", - "U. c #A4A3A4", - "V. c #B3B3B2", - "W. c #ACACAC", - "X. c #A9A9A9", - "Y. c #A8A7A7", - "Z. c #A7A6A7", - "`. c #A7A7A7", - " + c #A8A8A7", - ".+ c #A5A5A5", - "++ c #A2A2A2", - "@+ c #222122", - "#+ c #7E7E7E", - "$+ c #A3A3A3", - "%+ c #9B9B9B", - "&+ c #050505", - "*+ c #6E6E6E", - "=+ c #A7A7A6", - "-+ c #989898", - ";+ c #A5A4A4", - ">+ c #A7A7A8", - ",+ c #A5A6A7", - "'+ c #979A99", - ")+ c #818383", - "!+ c #757878", - "~+ c #757979", - "{+ c #878A8A", - "]+ c #A3A5A5", - "^+ c #828282", - "/+ c #A0A0A0", - "(+ c #232323", - "_+ c #939393", - ":+ c #A5A6A5", - "<+ c #A2A3A2", - "[+ c #A2A1A1", - "}+ c #A1A0A1", - "|+ c #939292", - "1+ c #636262", - "2+ c #554D4D", - "3+ c #634C4C", - "4+ c #755555", - "5+ c #936464", - "6+ c #9F6868", - "7+ c #9B6060", - "8+ c #804A4A", - "9+ c #5C3737", - "0+ c #1D1616", - "a+ c #A1A1A1", - "b+ c #010101", - "c+ c #151516", - "d+ c #707070", - "e+ c #9D9E9E", - "f+ c #8C8D8D", - "g+ c #8B8888", - "h+ c #726A6A", - "i+ c #6D5959", - "j+ c #866261", - "k+ c #C18B8B", - "l+ c #D79696", - "m+ c #D18C8C", - "n+ c #CB8180", - "o+ c #C57575", - "p+ c #BF6B6A", - "q+ c #BB6161", - "r+ c #B95958", - "s+ c #9C4544", - "t+ c #2E1212", - "u+ c #6F6C6C", - "v+ c #A0A1A1", - "w+ c #575757", - "x+ c #0C0C0C", - "y+ c #9C9D9D", - "z+ c #7A7272", - "A+ c #876F6F", - "B+ c #977070", - "C+ c #C28C8C", - "D+ c #D59595", - "E+ c #D08A8A", - "F+ c #C67D7D", - "G+ c #C07272", - "H+ c #BC6969", - "I+ c #B85F5F", - "J+ c #B35656", - "K+ c #B04C4C", - "L+ c #AB4243", - "M+ c #A63939", - "N+ c #591B1B", - "O+ c #6A2121", - "P+ c #542323", - "Q+ c #585A5A", - "R+ c #191515", - "S+ c #706262", - "T+ c #A58080", - "U+ c #B58383", - "V+ c #CE8F8F", - "W+ c #CD8989", - "X+ c #C17372", - "Y+ c #B45656", - "Z+ c #AF4C4C", - "`+ c #AB4242", - " @ c #A73A39", - ".@ c #A3302F", - "+@ c #9F2626", - "@@ c #8E1A1A", - "#@ c #2C0808", - "$@ c #91191A", - "%@ c #2F0200", - "&@ c #90C6FB", - "*@ c #8BBFFB", - "=@ c #94CBFC", - "-@ c #AFEFFB", - ";@ c #7DABA0", - ">@ c #3C2521", - ",@ c #C88484", - "'@ c #C57C7D", - ")@ c #C17273", - "!@ c #B86060", - "~@ c #AB4343", - "{@ c #A73939", - "]@ c #A32F2F", - "^@ c #9B1C1D", - "/@ c #961313", - "(@ c #96090A", - "_@ c #3C0202", - ":@ c #4E0202", - "<@ c #300000", - "[@ c #3E5378", - "}@ c #7EABF9", - "|@ c #84B5FC", - "1@ c #96CDFB", - "2@ c #B2F2FA", - "3@ c #C4FFFA", - "4@ c #2E3FFD", - "5@ c #3346FD", - "6@ c #2A3AFD", - "7@ c #161EFE", - "8@ c #1B25FD", - "9@ c #1F25B4", - "0@ c #7C6196", - "a@ c #AA6075", - "b@ c #AC5763", - "c@ c #AD5155", - "d@ c #AD4645", - "e@ c #A83938", - "f@ c #A3302E", - "g@ c #A02624", - "h@ c #9B1C1B", - "i@ c #971311", - "j@ c #930A09", - "k@ c #900300", - "l@ c #900505", - "m@ c #660007", - "n@ c #00000D", - "o@ c #200112", - "p@ c #597F88", - "q@ c #6E97FD", - "r@ c #384CFD", - "s@ c #394EFD", - "t@ c #2D3EFD", - "u@ c #151DFE", - "v@ c #1821FE", - "w@ c #3C52FD", - "x@ c #6388FC", - "y@ c #9CD6FB", - "z@ c #D0FFFA", - "A@ c #AEEEFB", - "B@ c #749FFF", - "C@ c #3F5DFF", - "D@ c #4165FF", - "E@ c #525AE3", - "F@ c #6153C4", - "G@ c #672D8D", - "H@ c #6C1B6A", - "I@ c #722164", - "J@ c #75225E", - "K@ c #731D57", - "L@ c #701653", - "M@ c #690E52", - "N@ c #5F0050", - "O@ c #562086", - "P@ c #11108D", - "Q@ c #2330BE", - "R@ c #344AE1", - "S@ c #4E6BFF", - "T@ c #4E6BFD", - "U@ c #597AFC", - "V@ c #6184FC", - "W@ c #7099FC", - "X@ c #8BBEFB", - "Y@ c #95CCFB", - "Z@ c #5B7CFC", - "`@ c #1C26FD", - " # c #121AFE", - ".# c #9ED7FB", - "+# c #81B4FF", - "@# c #6893FF", - "## c #6997FF", - "$# c #6695FF", - "%# c #6390FF", - "&# c #618DFF", - "*# c #608DFF", - "=# c #618EFF", - "-# c #6391FF", - ";# c #6898FF", - "># c #6B9AFF", - ",# c #5171ED", - "'# c #90C4FF", - ")# c #7EABFC", - "!# c #729CFC", - "~# c #6287FC", - "{# c #4761FD", - "]# c #070AFE", - "^# c #6084FC", - "/# c #9AD2FB", - "(# c #A2DDFB", - "_# c #8ABDFB", - ":# c #2B3AFD", - "<# c #A9E8FB", - "[# c #B9FCFA", - "}# c #BAFEFA", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " . + @ # $ $ $ $ $ ", - " % & * = - ; > $ $ , ' ) ! ~ { ] & $ $ $ ", - " ^ / ( = _ : < [ } | $ 1 2 3 4 5 6 7 6 8 9 0 a b ", - " c d e f g h i j k l m n 4 o p q r s t u v w x y z A ", - " B C D * E F G H I J K L M N O O P Q R S T 9 U V W O X $ ", - " Y Z ` ...+.@.#.$.%.&.*.=.-.;.w >.>.,.'.).).!.+ ~. .{.]. ", - " ^./.(.y _.f :.) <.[.^ }.|.).1.2.3. .4.* 5. .6.1 4.7.8.9. ", - " 0.a.b.c./ d.e.f.| g.h.9 i.* j.|.k.7.7.l.m.n.o.@.p.q.r.s. ", - " t.u.v.w.x.y.% z.A.).B.C.D.m.E.{.F.F.G.r.H.I.J.k.K.L.M.N. ", - " O.P.Q.R.S.T.U.V.W.q.X.r.Y.Z.`.Y. +`..+++{.@+#+$+++%+y. ", - " &+*+W.=+-+;+X.>+y .+K.K.y y ,+'+)+!+~+{+]+^+].$+/+$+J. ", - " (+_+:+U.$+<+[+}+/+h.=.|+1+2+3+4+5+6+7+8+9+0+_.a+/+0 b+ ", - " c+d+h.a+/+++e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+$ ", - " x+f.- y+w.z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+$ ", - " R+S+T+U+V+W+F+X+H+I+Y+Z+`+ @.@+@@@#@$@%@$ ", - "&@*@=@-@;@>@,@'@)@H+!@Y+K+~@{@]@+@^@/@(@_@:@<@[@}@|@1@2@3@ ", - "4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@", - " z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #", - " .#+#@###$#%#&#*#=#-#;#>#,#'# )#!#~#{#]#^#/#", - " (#_#:#<#", - " [#}#", - " ", - " ", - " ", - " "}; - """ + def getIcon(self): + return """ + /* XPM */ + static char * Ship_xpm[] = { + "32 32 396 2", + " c None", + ". c #2C2C2C", + "+ c #3A3A3A", + "@ c #585857", + "# c #161616", + "$ c #000000", + "% c #363636", + "& c #333333", + "* c #B3B3B3", + "= c #B4B4B4", + "- c #949494", + "; c #565653", + "> c #141414", + ", c #080807", + "' c #585858", + ") c #878787", + "! c #9F9E9F", + "~ c #9F9F9E", + "{ c #8F8F90", + "] c #6B6B6B", + "^ c #101010", + "/ c #737373", + "( c #4C4C4C", + "_ c #B1B1B7", + ": c #9090C0", + "< c #A7A7B2", + "[ c #87878E", + "} c #4F4F52", + "| c #191919", + "1 c #656565", + "2 c #D1D1D2", + "3 c #D1D1D1", + "4 c #CECECE", + "5 c #CDCCCC", + "6 c #CCCCCC", + "7 c #CCCCCB", + "8 c #CDCECD", + "9 c #BDBDBD", + "0 c #424242", + "a c #373737", + "b c #0A0A0A", + "c c #241414", + "d c #0E0C0C", + "e c #929393", + "f c #383738", + "g c #9B9B9A", + "h c #A0A0AF", + "i c #2929E4", + "j c #2525E5", + "k c #3F3FD7", + "l c #5B5BC8", + "m c #535368", + "n c #686866", + "o c #C8C8C8", + "p c #C8C8C7", + "q c #C7C6C7", + "r c #C6C6C6", + "s c #C5C5C5", + "t c #C4C5C5", + "u c #C3C4C3", + "v c #C3C3C2", + "w c #BCBCBC", + "x c #595959", + "y c #A6A6A6", + "z c #969696", + "A c #0B0B0B", + "B c #0D0707", + "C c #894646", + "D c #1C1A1A", + "E c #525252", + "F c #6C6D6C", + "G c #A3A3A2", + "H c #A3A296", + "I c #8E8F98", + "J c #6F6EA5", + "K c #5354AF", + "L c #373753", + "M c #8D8D8B", + "N c #C5C5C4", + "O c #C2C2C2", + "P c #C1C1C1", + "Q c #C0C0C0", + "R c #C0BFBF", + "S c #BFBFBF", + "T c #BEBEBE", + "U c #B1B2B2", + "V c #404040", + "W c #ABAAAA", + "X c #797979", + "Y c #2A1212", + "Z c #662828", + "` c #3D403F", + " . c #B5B5B5", + ".. c #6B6A6B", + "+. c #4A4A4A", + "@. c #9A9A9A", + "#. c #909090", + "$. c #8B8B8A", + "%. c #898A86", + "&. c #84837F", + "*. c #3D3D3C", + "=. c #9E9E9E", + "-. c #BFBFBE", + ";. c #BDBEBD", + ">. c #BBBBBB", + ",. c #BABABA", + "'. c #B9B9B9", + "). c #B8B8B8", + "!. c #999999", + "~. c #BABAB9", + "{. c #ABABAB", + "]. c #292929", + "^. c #381212", + "/. c #4C1514", + "(. c #535656", + "_. c #717171", + ":. c #919090", + "<. c #818181", + "[. c #4E4E4E", + "}. c #4B4B4B", + "|. c #B1B1B1", + "1. c #B8B7B8", + "2. c #B6B6B6", + "3. c #B6B5B5", + "4. c #B4B5B4", + "5. c #B2B3B2", + "6. c #5C5D5C", + "7. c #AFAFAF", + "8. c #ADACAC", + "9. c #5B5B5B", + "0. c #410C0C", + "a. c #3E0707", + "b. c #525555", + "c. c #9C9C9C", + "d. c #2D2D2D", + "e. c #757575", + "f. c #474747", + "g. c #484848", + "h. c #9F9F9F", + "i. c #B3B3B4", + "j. c #B2B2B2", + "k. c #B0B0B0", + "l. c #ADAEAD", + "m. c #ADADAD", + "n. c #B0B1B0", + "o. c #1E1E1E", + "p. c #ACABAC", + "q. c #AAA9A9", + "r. c #A8A8A8", + "s. c #5D5D5D", + "t. c #290202", + "u. c #281010", + "v. c #272828", + "w. c #767777", + "x. c #505050", + "y. c #1F1F1F", + "z. c #5E5E5D", + "A. c #A4A5A5", + "B. c #B1B2B1", + "C. c #AEAEAE", + "D. c #AEADAD", + "E. c #ABACAC", + "F. c #AAAAAA", + "G. c #A9A8A8", + "H. c #ABABAC", + "I. c #7B7B7B", + "J. c #2B2B2B", + "K. c #A4A4A4", + "L. c #A6A5A6", + "M. c #888888", + "N. c #0E0E0E", + "O. c #101312", + "P. c #7E8080", + "Q. c #5E5E5E", + "R. c #242424", + "S. c #555555", + "T. c #7F7F7F", + "U. c #A4A3A4", + "V. c #B3B3B2", + "W. c #ACACAC", + "X. c #A9A9A9", + "Y. c #A8A7A7", + "Z. c #A7A6A7", + "`. c #A7A7A7", + " + c #A8A8A7", + ".+ c #A5A5A5", + "++ c #A2A2A2", + "@+ c #222122", + "#+ c #7E7E7E", + "$+ c #A3A3A3", + "%+ c #9B9B9B", + "&+ c #050505", + "*+ c #6E6E6E", + "=+ c #A7A7A6", + "-+ c #989898", + ";+ c #A5A4A4", + ">+ c #A7A7A8", + ",+ c #A5A6A7", + "'+ c #979A99", + ")+ c #818383", + "!+ c #757878", + "~+ c #757979", + "{+ c #878A8A", + "]+ c #A3A5A5", + "^+ c #828282", + "/+ c #A0A0A0", + "(+ c #232323", + "_+ c #939393", + ":+ c #A5A6A5", + "<+ c #A2A3A2", + "[+ c #A2A1A1", + "}+ c #A1A0A1", + "|+ c #939292", + "1+ c #636262", + "2+ c #554D4D", + "3+ c #634C4C", + "4+ c #755555", + "5+ c #936464", + "6+ c #9F6868", + "7+ c #9B6060", + "8+ c #804A4A", + "9+ c #5C3737", + "0+ c #1D1616", + "a+ c #A1A1A1", + "b+ c #010101", + "c+ c #151516", + "d+ c #707070", + "e+ c #9D9E9E", + "f+ c #8C8D8D", + "g+ c #8B8888", + "h+ c #726A6A", + "i+ c #6D5959", + "j+ c #866261", + "k+ c #C18B8B", + "l+ c #D79696", + "m+ c #D18C8C", + "n+ c #CB8180", + "o+ c #C57575", + "p+ c #BF6B6A", + "q+ c #BB6161", + "r+ c #B95958", + "s+ c #9C4544", + "t+ c #2E1212", + "u+ c #6F6C6C", + "v+ c #A0A1A1", + "w+ c #575757", + "x+ c #0C0C0C", + "y+ c #9C9D9D", + "z+ c #7A7272", + "A+ c #876F6F", + "B+ c #977070", + "C+ c #C28C8C", + "D+ c #D59595", + "E+ c #D08A8A", + "F+ c #C67D7D", + "G+ c #C07272", + "H+ c #BC6969", + "I+ c #B85F5F", + "J+ c #B35656", + "K+ c #B04C4C", + "L+ c #AB4243", + "M+ c #A63939", + "N+ c #591B1B", + "O+ c #6A2121", + "P+ c #542323", + "Q+ c #585A5A", + "R+ c #191515", + "S+ c #706262", + "T+ c #A58080", + "U+ c #B58383", + "V+ c #CE8F8F", + "W+ c #CD8989", + "X+ c #C17372", + "Y+ c #B45656", + "Z+ c #AF4C4C", + "`+ c #AB4242", + " @ c #A73A39", + ".@ c #A3302F", + "+@ c #9F2626", + "@@ c #8E1A1A", + "#@ c #2C0808", + "$@ c #91191A", + "%@ c #2F0200", + "&@ c #90C6FB", + "*@ c #8BBFFB", + "=@ c #94CBFC", + "-@ c #AFEFFB", + ";@ c #7DABA0", + ">@ c #3C2521", + ",@ c #C88484", + "'@ c #C57C7D", + ")@ c #C17273", + "!@ c #B86060", + "~@ c #AB4343", + "{@ c #A73939", + "]@ c #A32F2F", + "^@ c #9B1C1D", + "/@ c #961313", + "(@ c #96090A", + "_@ c #3C0202", + ":@ c #4E0202", + "<@ c #300000", + "[@ c #3E5378", + "}@ c #7EABF9", + "|@ c #84B5FC", + "1@ c #96CDFB", + "2@ c #B2F2FA", + "3@ c #C4FFFA", + "4@ c #2E3FFD", + "5@ c #3346FD", + "6@ c #2A3AFD", + "7@ c #161EFE", + "8@ c #1B25FD", + "9@ c #1F25B4", + "0@ c #7C6196", + "a@ c #AA6075", + "b@ c #AC5763", + "c@ c #AD5155", + "d@ c #AD4645", + "e@ c #A83938", + "f@ c #A3302E", + "g@ c #A02624", + "h@ c #9B1C1B", + "i@ c #971311", + "j@ c #930A09", + "k@ c #900300", + "l@ c #900505", + "m@ c #660007", + "n@ c #00000D", + "o@ c #200112", + "p@ c #597F88", + "q@ c #6E97FD", + "r@ c #384CFD", + "s@ c #394EFD", + "t@ c #2D3EFD", + "u@ c #151DFE", + "v@ c #1821FE", + "w@ c #3C52FD", + "x@ c #6388FC", + "y@ c #9CD6FB", + "z@ c #D0FFFA", + "A@ c #AEEEFB", + "B@ c #749FFF", + "C@ c #3F5DFF", + "D@ c #4165FF", + "E@ c #525AE3", + "F@ c #6153C4", + "G@ c #672D8D", + "H@ c #6C1B6A", + "I@ c #722164", + "J@ c #75225E", + "K@ c #731D57", + "L@ c #701653", + "M@ c #690E52", + "N@ c #5F0050", + "O@ c #562086", + "P@ c #11108D", + "Q@ c #2330BE", + "R@ c #344AE1", + "S@ c #4E6BFF", + "T@ c #4E6BFD", + "U@ c #597AFC", + "V@ c #6184FC", + "W@ c #7099FC", + "X@ c #8BBEFB", + "Y@ c #95CCFB", + "Z@ c #5B7CFC", + "`@ c #1C26FD", + " # c #121AFE", + ".# c #9ED7FB", + "+# c #81B4FF", + "@# c #6893FF", + "## c #6997FF", + "$# c #6695FF", + "%# c #6390FF", + "&# c #618DFF", + "*# c #608DFF", + "=# c #618EFF", + "-# c #6391FF", + ";# c #6898FF", + "># c #6B9AFF", + ",# c #5171ED", + "'# c #90C4FF", + ")# c #7EABFC", + "!# c #729CFC", + "~# c #6287FC", + "{# c #4761FD", + "]# c #070AFE", + "^# c #6084FC", + "/# c #9AD2FB", + "(# c #A2DDFB", + "_# c #8ABDFB", + ":# c #2B3AFD", + "<# c #A9E8FB", + "[# c #B9FCFA", + "}# c #BAFEFA", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " . + @ # $ $ $ $ $ ", + " % & * = - ; > $ $ , ' ) ! ~ { ] & $ $ $ ", + " ^ / ( = _ : < [ } | $ 1 2 3 4 5 6 7 6 8 9 0 a b ", + " c d e f g h i j k l m n 4 o p q r s t u v w x y z A ", + " B C D * E F G H I J K L M N O O P Q R S T 9 U V W O X $ ", + " Y Z ` ...+.@.#.$.%.&.*.=.-.;.w >.>.,.'.).).!.+ ~. .{.]. ", + " ^./.(.y _.f :.) <.[.^ }.|.).1.2.3. .4.* 5. .6.1 4.7.8.9. ", + " 0.a.b.c./ d.e.f.| g.h.9 i.* j.|.k.7.7.l.m.n.o.@.p.q.r.s. ", + " t.u.v.w.x.y.% z.A.).B.C.D.m.E.{.F.F.G.r.H.I.J.k.K.L.M.N. ", + " O.P.Q.R.S.T.U.V.W.q.X.r.Y.Z.`.Y. +`..+++{.@+#+$+++%+y. ", + " &+*+W.=+-+;+X.>+y .+K.K.y y ,+'+)+!+~+{+]+^+].$+/+$+J. ", + " (+_+:+U.$+<+[+}+/+h.=.|+1+2+3+4+5+6+7+8+9+0+_.a+/+0 b+ ", + " c+d+h.a+/+++e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+$ ", + " x+f.- y+w.z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+$ ", + " R+S+T+U+V+W+F+X+H+I+Y+Z+`+ @.@+@@@#@$@%@$ ", + "&@*@=@-@;@>@,@'@)@H+!@Y+K+~@{@]@+@^@/@(@_@:@<@[@}@|@1@2@3@ ", + "4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@", + " z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #", + " .#+#@###$#%#&#*#=#-#;#>#,#'# )#!#~#{#]#^#/#", + " (#_#:#<#", + " [#}#", + " ", + " ", + " ", + " "}; + """ def weights(obj): - """ Returns Ship weights list. If weights has not been sets, - this tool creates it. - @param obj Ship object - @return Weights list. None if errors - """ - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - return None - if not obj.IsShip: - return None - # Test if properties already exist - try: - props.index("WeightNames") - except ValueError: - obj.addProperty("App::PropertyStringList","WeightNames","Ship", str(Translator.translate("Ship Weights names"))).WeightNames=[Translator.translate("Lightweight").__str__()] - try: - props.index("WeightMass") - except ValueError: - # Compute mass aproximation - from shipHydrostatics import Tools - disp = Tools.displacement(obj,obj.Draft) - obj.addProperty("App::PropertyFloatList","WeightMass","Ship", str(Translator.translate("Ship Weights masses"))).WeightMass=[1000.0 * disp[0]] - try: - props.index("WeightPos") - except ValueError: - # Compute mass aproximation - from shipHydrostatics import Tools - disp = Tools.displacement(obj,obj.Draft) - obj.addProperty("App::PropertyVectorList","WeightPos","Ship", str(Translator.translate("Ship Weights centers of gravity"))).WeightPos=[Vector(disp[1].x,0.0,obj.Draft)] - # Setup list - weights = [] - for i in range(0,len(obj.WeightNames)): - weights.append([obj.WeightNames[i], obj.WeightMass[i], obj.WeightPos[i]]) - return weights + """ Returns Ship weights list. If weights has not been sets, + this tool creates it. + @param obj Ship object + @return Weights list. None if errors + """ + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + return None + if not obj.IsShip: + return None + # Test if properties already exist + try: + props.index("WeightNames") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Ship Weights names",None,QtGui.QApplication.UnicodeUTF8)) + lighweight = str(QtGui.QApplication.translate("Ship","Lightweight",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyStringList","WeightNames","Ship", tooltip).WeightNames=[lighweight] + try: + props.index("WeightMass") + except ValueError: + # Compute mass aproximation + from shipHydrostatics import Tools + disp = Tools.displacement(obj,obj.Draft) + tooltip = str(QtGui.QApplication.translate("Ship","Ship Weights masses",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloatList","WeightMass","Ship", tooltip).WeightMass=[1000.0 * disp[0]] + try: + props.index("WeightPos") + except ValueError: + # Compute mass aproximation + from shipHydrostatics import Tools + disp = Tools.displacement(obj,obj.Draft) + tooltip = str(QtGui.QApplication.translate("Ship","Ship Weights centers of gravity",None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyVectorList","WeightPos","Ship", tooltip).WeightPos=[Vector(disp[1].x,0.0,obj.Draft)] + # Setup list + weights = [] + for i in range(0,len(obj.WeightNames)): + weights.append([obj.WeightNames[i], obj.WeightMass[i], obj.WeightPos[i]]) + return weights diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index 87e1f22cbe..fd24beac68 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -6,55 +6,15 @@ data_DATA = \ ShipGui.py \ Instance.py \ SimInstance.py \ - TankInstance.py + TankInstance.py \ + Ship_rc.py nobase_data_DATA = \ - Icons/AreaCurveIco.png \ - Icons/AreaCurveIco.xcf \ - Icons/AreaCurveIco.xpm \ - Icons/DataIco.png \ - Icons/DataIco.xcf \ - Icons/DataIco.xpm \ - Icons/DiscretizeIco.png \ - Icons/DiscretizeIco.xcf \ - Icons/DiscretizeIco.xpm \ - Icons/HydrostaticsIco.png \ - Icons/HydrostaticsIco.xcf \ - Icons/HydrostaticsIco.xpm \ - Icons/Ico.png \ - Icons/Ico.xcf \ - Icons/Ico.xpm \ - Icons/LoadIco.png \ - Icons/LoadIco.xcf \ - Icons/LoadIco.xpm \ - Icons/OutlineDrawIco.png \ - Icons/OutlineDrawIco.xcf \ - Icons/OutlineDrawIco.xpm \ - Icons/ReparametrizeIco.png \ - Icons/ReparametrizeIco.xcf \ - Icons/ReparametrizeIco.xpm \ - Icons/Ship.xcf \ - Icons/Ship.xpm \ - Icons/Weight.png \ - Icons/Weight.xcf \ - Icons/Weight.xpm \ - Icons/SimIco.xcf \ - Icons/Sim.xpm \ - Icons/SimCreateIco.png \ - Icons/SimCreateIco.xpm \ - Icons/SimRunIco.png \ - Icons/SimRunIco.xpm \ - Icons/SimStopIco.png \ - Icons/SimStopIco.xpm \ - Icons/SimPostIco.png \ - Icons/SimPostIco.xpm \ - Icons/Tank.png \ - Icons/Tank.xcf \ - Icons/Tank.xpm \ - Examples/s60.fcstd \ - Examples/s60_katamaran.fcstd \ - Examples/wigley.fcstd \ - Examples/wigley_katamaran.fcstd \ + resources/examples/s60.fcstd \ + resources/examples/s60_katamaran.fcstd \ + resources/examples/wigley.fcstd \ + resources/examples/wigley_katamaran.fcstd \ + resources/icons/Ico.xpm \ shipLoadExample/__init__.py \ shipLoadExample/TaskPanel.py \ shipLoadExample/TaskPanel.ui \ @@ -68,19 +28,18 @@ nobase_data_DATA = \ shipOutlineDraw/TaskPanel.py \ shipOutlineDraw/TaskPanel.ui \ shipAreasCurve/__init__.py \ - shipAreasCurve/Plot.py \ + shipAreasCurve/PlotAux.py \ shipAreasCurve/Preview.py \ shipAreasCurve/TaskPanel.py \ shipAreasCurve/TaskPanel.ui \ shipHydrostatics/__init__.py \ - shipHydrostatics/Plot.py \ + shipHydrostatics/PlotAux.py \ shipHydrostatics/TaskPanel.py \ shipHydrostatics/TaskPanel.ui \ shipHydrostatics/Tools.py \ shipUtils/__init__.py \ shipUtils/Math.py \ shipUtils/Paths.py \ - shipUtils/Translator.py \ tankWeights/__init__.py \ tankWeights/Preview.py \ tankWeights/TaskPanel.py \ @@ -89,7 +48,7 @@ nobase_data_DATA = \ tankCreateTank/TaskPanel.py \ tankCreateTank/TaskPanel.ui \ tankGZ/__init__.py \ - tankGZ/Plot.py \ + tankGZ/PlotAux.py \ tankGZ/TaskPanel.py \ tankGZ/TaskPanel.ui \ simCreate/__init__.py \ diff --git a/src/Mod/Ship/ShipGui.py b/src/Mod/Ship/ShipGui.py index 4848a66098..f2796835f4 100644 --- a/src/Mod/Ship/ShipGui.py +++ b/src/Mod/Ship/ShipGui.py @@ -24,17 +24,20 @@ from PyQt4 import QtCore, QtGui import FreeCAD, FreeCADGui, os +# Load resources +import Ship_rc +FreeCADGui.addLanguagePath(":/Ship/translations") +FreeCADGui.addIconPath(":/Ship/icons") + class LoadExample: def Activated(self): import shipLoadExample shipLoadExample.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/LoadIco.png" - MenuText = str(Translator.translate('Load an example ship geometry')) - ToolTip = str(Translator.translate('Load an example ship geometry able to be converted into a ship.')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_LoadExample', 'Load an example ship geometry') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_LoadExample', 'Load an example ship geometry able to be converted into a ship.') + return {'Pixmap' : 'LoadIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class CreateShip: def Activated(self): @@ -42,11 +45,9 @@ class CreateShip: shipCreateShip.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Ico.png" - MenuText = str(Translator.translate('Create a new ship')) - ToolTip = str(Translator.translate('Create a new ship in order to work with them')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_CreateShip', 'Create a new ship') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_CreateShip', 'Create a new ship in order to work with them') + return {'Pixmap' : 'Ico', 'MenuText': MenuText, 'ToolTip': ToolTip} class OutlineDraw: def Activated(self): @@ -54,11 +55,9 @@ class OutlineDraw: shipOutlineDraw.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/OutlineDrawIco.png" - MenuText = str(Translator.translate('Outline draw')) - ToolTip = str(Translator.translate('Plot ship outline draw')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_OutlineDraw', 'Outline draw') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_OutlineDraw', 'Plot ship outline draw') + return {'Pixmap' : 'OutlineDrawIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class AreasCurve: def Activated(self): @@ -66,11 +65,9 @@ class AreasCurve: shipAreasCurve.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/AreaCurveIco.png" - MenuText = str(Translator.translate('Areas curve')) - ToolTip = str(Translator.translate('Plot transversal areas curve')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_AreasCurve', 'Areas curve') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_AreasCurve', 'Plot transversal areas curve') + return {'Pixmap' : 'AreaCurveIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class Hydrostatics: def Activated(self): @@ -78,11 +75,9 @@ class Hydrostatics: shipHydrostatics.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/HydrostaticsIco.png" - MenuText = str(Translator.translate('Hydrostatics')) - ToolTip = str(Translator.translate('Plot ship hydrostatics')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_Hydrostatics', 'Hydrostatics') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_Hydrostatics', 'Plot ship hydrostatics') + return {'Pixmap' : 'HydrostaticsIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class SetWeights: def Activated(self): @@ -90,11 +85,9 @@ class SetWeights: tankWeights.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Weight.png" - MenuText = str(Translator.translate('Set ship weights')) - ToolTip = str(Translator.translate('Set ship weights, tanks must be added later')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_Weights', 'Set ship weights') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_Weights', 'Set ship weights, tanks must be added later') + return {'Pixmap' : 'Weight', 'MenuText': MenuText, 'ToolTip': ToolTip} class CreateTank: def Activated(self): @@ -102,11 +95,9 @@ class CreateTank: tankCreateTank.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Tank.png" - MenuText = str(Translator.translate('Create a new tank')) - ToolTip = str(Translator.translate('Create a new ship tank')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_CreateTank', 'Create a new tank') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_CreateTank', 'Create a new ship tank') + return {'Pixmap' : 'Tank', 'MenuText': MenuText, 'ToolTip': ToolTip} class GZ: def Activated(self): @@ -114,11 +105,9 @@ class GZ: tankGZ.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/HydrostaticsIco.png" - MenuText = str(Translator.translate('GZ curve')) - ToolTip = str(Translator.translate('Transversal stability GZ curve computation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_GZ', 'GZ curve') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_GZ', 'Transversal stability GZ curve computation') + return {'Pixmap' : 'HydrostaticsIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class CreateSim: def Activated(self): @@ -126,11 +115,9 @@ class CreateSim: simCreate.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimCreateIco.png" - MenuText = str(Translator.translate('Create a new simulation')) - ToolTip = str(Translator.translate('Create a new simulation in order to process later')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_CreateSim', 'Create a new simulation') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_CreateSim', 'Create a new simulation in order to process later') + return {'Pixmap' : 'SimCreateIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class RunSim: def Activated(self): @@ -138,11 +125,9 @@ class RunSim: simRun.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimRunIco.png" - MenuText = str(Translator.translate('Run a simulation')) - ToolTip = str(Translator.translate('Run a simulation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_RunSim', 'Run a simulation') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_RunSim', 'Run a simulation') + return {'Pixmap' : 'SimRunIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class StopSim: def Activated(self): @@ -150,11 +135,9 @@ class StopSim: simRun.stop() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimStopIco.png" - MenuText = str(Translator.translate('Stop active simulation')) - ToolTip = str(Translator.translate('Stop active simulation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_StopSim', 'Stop active simulation') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_StopSim', 'Stop active simulation') + return {'Pixmap' : 'SimStopIco', 'MenuText': MenuText, 'ToolTip': ToolTip} class TrackSim: def Activated(self): @@ -162,11 +145,9 @@ class TrackSim: simPost.load() def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimPostIco.png" - MenuText = str(Translator.translate('Track simulation')) - ToolTip = str(Translator.translate('Track simulation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + MenuText = QtCore.QT_TRANSLATE_NOOP('Ship_TrackSim', 'Track simulation') + ToolTip = QtCore.QT_TRANSLATE_NOOP('Ship_TrackSim', 'Track simulation') + return {'Pixmap' : 'SimPostIco', 'MenuText': MenuText, 'ToolTip': ToolTip} FreeCADGui.addCommand('Ship_LoadExample', LoadExample()) diff --git a/src/Mod/Ship/Ship_rc.py b/src/Mod/Ship/Ship_rc.py new file mode 100644 index 0000000000..99736bc998 --- /dev/null +++ b/src/Mod/Ship/Ship_rc.py @@ -0,0 +1,8700 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created: Fri Nov 16 15:25:47 2012 +# by: The Resource Compiler for PyQt (Qt v4.8.1) +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore + +qt_resource_data = "\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x16\x2a\ +\x00\ +\x00\x51\x13\x78\x9c\xd5\x3c\x0b\x74\x1c\xd5\x75\xcf\x92\x56\xb2\ +\x56\xab\xb5\xfc\x41\x18\x47\x36\xe3\x0f\x20\x63\x21\x6c\x3e\xb6\ +\xe3\x18\xb0\x6c\x59\xf2\x47\xfe\xd4\x32\x10\x6c\x08\x8c\x76\x66\ +\xb5\x63\x66\x67\x36\x33\xb3\x92\x65\x9c\x84\x00\x0d\x25\xe1\x90\ +\x86\x84\xd6\xe4\x40\x08\xa4\xe1\x40\xa0\x29\xe7\x84\x16\x9a\x43\ +\x02\x29\xf9\x14\x4e\x68\x9b\x92\xf4\x93\xb4\x09\x24\x94\x40\x80\ +\xf4\x50\x9a\x53\xa0\x21\xed\x7d\xf7\xbd\x99\xf7\x66\xf6\x8d\xb4\ +\xb6\x6c\x4a\x0f\x07\x8f\x34\x9f\xfb\x7b\xf7\xff\xee\xd3\xfa\x47\ +\x8d\xf9\x4f\xff\xfb\x1d\xb7\x3d\xb3\xb8\xeb\xf1\xab\xee\xfe\xc6\ +\xbf\x6e\x24\xa4\xe9\x25\x42\x86\xfa\x09\xd9\xe2\x13\x72\xf1\x28\ +\x21\x03\x57\x91\xa6\xbf\xd8\x4c\x48\xd7\x2b\x24\xb3\xf6\x4b\x84\ +\x6c\xdf\x4f\x32\x5b\xce\x87\xeb\xcd\x24\x73\x17\x81\xf7\x37\x93\ +\xcc\xa3\xef\x10\xd2\xf9\x5d\x76\x5d\xff\x4b\x76\xdd\x76\x1f\xd1\ +\xfe\x79\x13\x21\x17\x0e\x92\xc5\x3f\xfc\x4b\x42\x1a\x3f\x4f\xb6\ +\xdf\xf8\x43\x78\xef\x0c\x76\x5d\xd3\xcd\xae\x5b\x36\x92\x4b\x5e\ +\xba\x8d\x90\xfe\xa7\xc9\x65\x47\x4e\x23\x64\xc3\xd7\xc9\xbe\xfb\ +\x3e\x07\xdf\x57\xc9\x15\x37\x3f\x09\xf7\xdf\x26\xa5\x27\x00\xdf\ +\xda\xd5\xe4\x86\x7f\x2c\x10\x92\x79\x83\x3c\xf1\x12\xbc\xb7\xf9\ +\x4c\xf2\x83\x9b\x5e\x26\xe4\xcc\x55\xe4\x57\xdf\xb8\x98\x90\x96\ +\xa5\x33\x16\xb4\xdd\x48\xc8\xec\xdf\x63\xd7\x8b\x5e\x9e\xb1\xf2\ +\xee\x1b\x00\xce\x8f\x67\xd8\x2f\x6c\x25\xe4\xb4\xa7\x66\x3c\xb2\ +\x2f\x47\xc8\x92\x37\x67\x3c\xb9\xe6\x9b\xf0\xfd\x9f\x35\x64\x5e\ +\x07\xba\x66\x3d\xd9\x70\xfe\x87\x2e\x23\xe4\xf4\x07\x1a\x2e\xd0\ +\x6f\x27\xa4\x75\x7e\xc3\x8e\x4f\xbc\x40\xc8\x59\x0f\x35\x7c\xe7\ +\x63\x80\x77\x60\x66\xc3\xab\x06\x7c\xbf\xe1\xbc\x86\xd7\xee\xfc\ +\x02\x21\x1d\x83\x0d\xff\x7d\xc7\x04\x21\xdd\xcf\x34\xfc\xf6\x6f\ +\x80\xee\x96\x87\x1b\x7e\xf7\x73\xa0\xe3\x8c\x7b\x1a\x7b\xee\x0c\ +\x08\x39\xe9\x39\x76\x1d\x7c\xbb\xf1\xfd\x4f\x95\x08\x59\xb8\xa0\ +\xb1\xcf\x05\x78\xeb\x5e\x6c\xdc\xba\x78\x0f\x21\xb9\xc3\x8d\xdb\ +\x7a\x9e\x02\xb9\xd9\x8d\x1f\x59\x36\x0f\xe4\x7a\x4f\xe3\xb7\xdf\ +\xd4\x40\x2e\xff\xd5\xf8\xf6\x1f\x38\x84\xcc\x79\x8e\x5d\x07\x3e\ +\xdd\xb4\xeb\x96\x46\x42\xfa\x9e\x6e\xfa\xf0\x6f\x1f\x03\x78\x7b\ +\x9a\x6e\x59\x73\x3f\xd0\x77\x53\xd3\xd7\xb7\x7f\x04\xee\xf7\x36\ +\x3d\xfd\x99\xaf\x12\xb2\xb5\xb9\xe9\x57\x5f\xed\x20\xe4\x82\x45\ +\x4d\xbf\xde\x06\xf4\x82\x84\x96\x6c\x84\xf5\xca\x5e\x92\xe9\xd9\ +\x79\x1f\xc8\xad\x89\x5d\xfb\xdb\x33\xe7\x8f\xcf\x05\xbc\x6f\x66\ +\x8a\xf7\x0f\x82\x9c\xbe\x98\xb1\xff\x70\x2f\xdc\xff\x6c\xc6\x7e\ +\xe4\xdb\x20\x8f\xc3\x99\xca\x9d\x8b\x08\x59\x70\x72\xe6\xc1\x85\ +\x20\x97\x55\x83\x99\x87\xff\xe8\x2d\x80\x7b\x4d\xe6\x7b\x5f\x06\ +\xbe\x67\x7c\x3c\xf3\xd7\xab\x81\x9e\xae\xc1\xcc\xcf\x06\x6e\x25\ +\x64\xfe\x55\x99\x57\x96\xfe\x3d\xac\xe3\x65\xcd\x0d\x57\x8c\x03\ +\x9f\x8f\x35\xaf\x3e\x83\xf2\x7f\x6e\xf3\x05\xe7\x7c\x14\xf8\x70\ +\x9b\x2f\x78\x62\x29\xc8\xbf\xbb\x79\xe7\x79\xb0\xce\xeb\x3a\x9b\ +\x1f\x58\xf0\x29\x42\xda\x8f\xb0\xeb\xc0\x5b\xcd\x0f\x2c\x7e\x82\ +\x90\xb6\xb9\xec\xba\xfa\x47\xcd\xcf\xf9\x7f\x0e\xfa\xd2\xd8\xfc\ +\x1b\xf7\x77\xc0\xc5\x93\x2d\xd9\xfd\x9f\x01\x76\xf4\x96\xf9\x2b\ +\xfe\x0d\xf8\x7c\xa0\x65\xe5\x1b\x70\xdd\xf8\xd9\x96\x03\x2f\xbf\ +\x01\xef\xdd\xde\xf2\x85\x31\x58\xaf\xc1\x2f\xb5\x3c\xd8\xd2\x0b\ +\x7a\xf4\xc5\x96\x87\x7a\x33\xc0\xf7\xdd\xec\xda\x79\xe9\x4c\xf3\ +\xba\x3c\x21\x9b\x1a\x67\x5e\xf3\x00\xc0\x5b\xb4\xa6\xf5\xec\xf2\ +\x8f\x08\x39\x9f\xb4\x96\xd7\xc3\xf7\xcb\x7e\xda\x3a\x5e\xfa\x0e\ +\xe0\x1d\x6d\xfd\xc8\x61\xb8\x9e\xfb\x3f\xad\x37\xf9\xed\x84\xbc\ +\x7f\x7b\xeb\x27\x9b\x7e\x41\xc8\x29\x1f\x6b\xfd\xd4\x35\x60\x0b\ +\xab\xff\x84\x5d\x37\xfe\x6d\xeb\x2d\x05\xb0\x8b\x93\x6f\x6c\x7d\ +\x66\xd5\x0e\x42\xe6\x5d\xdf\xfa\x0f\xde\x9f\x82\x9e\x6d\x6b\xfd\ +\xc5\xc0\xf7\x08\x39\xe7\x99\xec\xd2\x3e\xb0\x8f\xb9\xdb\xb2\x2b\ +\xbe\x76\x3d\xe8\x55\x5f\x76\xc3\xa9\xc0\x7f\xef\x3b\xd9\xc3\xef\ +\xfc\x9a\x90\xfc\x8a\xec\x1f\xcf\xee\x01\x3d\x7a\x35\x7b\xff\x96\ +\xf5\xa0\x87\x27\x67\xff\x69\x1c\xe8\x3f\xf5\x93\xd9\x9f\x34\xbe\ +\x06\x72\x38\x90\x7d\x25\x7f\x21\xd0\xd1\x93\x7d\xeb\xde\x9f\x12\ +\xa2\xdd\xd5\xe6\x5c\x7f\x1e\x21\x1f\x78\xa1\xed\xda\x93\x60\x1d\ +\xce\xfe\xcf\xb6\x9b\x48\x13\xac\x5f\x4b\xdb\xed\x01\xac\xe3\xfb\ +\x9e\x6b\xfb\xfc\xe3\x27\x11\x32\xd3\x69\xfb\xf2\xc3\x87\x41\x4e\ +\xaf\xb6\x3d\x71\xd7\x5f\x01\xfe\x47\xda\xfe\x6e\x26\xac\xeb\xfc\ +\xef\xb7\xbd\x3c\xe7\x3f\x80\xfe\x6c\x8e\x68\x40\xd7\xfa\xdf\xcf\ +\xcd\xfa\x31\xc8\x61\xf1\xd9\xb9\xb3\x3a\x60\x9d\x9b\x5f\xcd\xf5\ +\x1d\x59\x06\xbf\x3f\x9b\xdb\xd1\xb9\x1f\xd6\x65\x75\xae\xf0\x38\ +\xe8\x59\xcf\x47\x73\xe6\xa3\x80\x77\x19\xc9\x1d\x78\x06\xe4\xd8\ +\xfe\x7a\xce\xcf\x81\xbe\x2f\xba\x35\x77\x13\xf9\x25\xac\xf3\x3b\ +\xb9\x17\x90\xae\x23\xed\xcb\xa9\xbc\xd6\x5e\xdb\xbe\xf7\x9b\xc0\ +\x67\xe6\xf2\xf6\x4b\xae\xd3\x01\x6f\xbe\xfd\xf1\x9f\x81\xfc\xb2\ +\x3d\xed\x2f\x9e\x02\xf6\xbb\xfd\x5b\xf9\xe6\x4f\x9b\xa0\x57\x5f\ +\xc9\xb7\x7f\x02\xf4\x7e\x45\x77\x3e\xff\xf3\x3b\x41\x9e\x73\xf2\ +\x1d\x15\x58\xcf\x35\x8f\xb2\xeb\xa6\xeb\xf2\x0b\x1e\x04\xba\xe6\ +\x2c\xcc\x5f\xda\x09\xdf\xe5\x7f\x93\x1f\x79\x36\x0b\x7c\x76\xe5\ +\xaf\xbf\x05\xe4\x91\xeb\xcc\xdf\xfc\x34\xf0\x79\x51\x26\xff\xc8\ +\x43\x2d\xf0\xfe\x0f\xf2\xcf\x7e\x05\xe4\x71\xf6\x0d\xb3\x96\xce\ +\x80\xe7\xbd\x6b\x66\x7d\xae\x00\x76\xd3\xd0\x35\xeb\x36\xbc\xfe\ +\x64\xd6\x3d\x5d\x5f\x83\xef\xab\xb3\x1e\xfe\x3e\xe8\xed\xfa\x95\ +\xec\xda\xbf\x81\x5d\xb7\xee\xb7\xc0\xd1\xcd\x86\x9f\xc8\x99\x64\ +\x37\x71\x89\x47\x0a\xc4\x24\x0e\x09\x88\x4e\x46\xe1\x27\x8d\x18\ +\xf8\xaf\x0d\xff\xd1\xfb\x3a\xfc\xee\xce\xa4\x06\xd6\x0c\xff\x2f\ +\x1a\xb0\xab\x96\xa1\x15\x2d\xdb\xb6\x9c\x51\xcd\x36\xc7\x4c\x5b\ +\xab\x98\x5e\xc1\x74\x02\x7d\xd4\x6c\xa1\x9e\x71\xb8\x64\x55\x66\ +\x50\x04\x1f\x24\x7d\x00\xde\x04\x10\x02\xa8\x4b\x7c\xb8\x9a\x08\ +\xbc\xcc\x11\xb3\x7b\xe1\x1b\xf4\x6d\x9f\x54\x49\x05\x7e\xf7\x48\ +\x91\x58\x40\xa0\xc5\x9f\x59\x64\x84\x42\x8c\xc8\x59\x30\xe0\x99\ +\xa6\xe6\x57\xbd\xa2\x5e\x30\x35\xd3\x36\xcb\x40\x87\xaf\xe9\x9e\ +\xa9\xc7\x49\xb9\x8a\xec\x44\x5e\xcb\x00\x9e\xa2\xf6\x4f\x18\x49\ +\x5d\x6a\x92\x1c\xd7\x2b\xeb\x76\x9c\x28\x03\x17\xc0\xe7\xe0\x5c\ +\x40\x7c\x22\x09\x5b\xa4\x26\xac\xe2\xfa\x56\x60\xb9\x4e\x9c\xb4\ +\x83\x20\xaf\x2a\x22\xf5\x00\x65\x88\x50\x45\x0a\xfd\x39\x24\xc5\ +\x00\xa4\x74\xc1\x0b\x48\xc6\x1b\xf8\xe4\x60\xe2\x9d\x7a\xc9\xed\ +\x8d\x91\xeb\x54\xcb\x23\xa6\xa7\xb9\x45\x69\x91\x03\xed\xa0\x66\ +\x58\x9e\x59\x38\x91\xe4\x4f\x9c\x40\xf2\x27\xd2\xc8\xdf\x40\xfa\ +\x11\x29\x55\x0d\x03\x2d\x90\xb1\x60\xc3\xb5\x08\xff\x56\xf1\xbe\ +\x2b\xdd\xb5\x90\x25\x4a\x16\x55\x24\x2f\x22\x63\xde\x56\xc7\xb7\ +\x0c\x53\x2b\xa2\xd9\x1a\x26\xfc\x16\x4c\xc4\x91\x2d\x00\x2d\xa4\ +\x7a\xe7\x46\x9c\x7a\x28\x9b\x02\xd1\x23\x30\x6d\x43\xd6\x68\x29\ +\x18\x37\xe9\xbf\xf1\xaf\xb3\x64\x23\x90\xf3\x61\xf8\x5f\xf0\x8e\ +\x4f\xe3\xaf\xed\x25\x9b\xb8\xd8\xbd\x98\x0a\x8f\xc2\xef\x3a\x19\ +\x83\x9f\x65\x3e\x85\xf2\x57\x38\x69\xbe\xc4\xeb\x48\x0d\xc2\x53\ +\x29\x1e\xed\x52\x24\xcf\xd7\xa8\x2f\x32\x3d\x9f\x4a\x7b\xd4\xd3\ +\xc7\x6a\x18\x5e\x4b\x76\x00\x2e\x1f\xff\x3f\x36\x7c\x73\x63\xf8\ +\xca\xba\xef\x9b\x7e\x1c\xc7\x7a\xf4\x37\x65\xa6\x14\xc7\x8c\x67\ +\x4e\x0c\x8f\xa3\x97\x93\x68\x72\x42\xfa\xc4\x17\xab\x85\x9f\x19\ +\xa6\x6f\x8d\x26\x14\xeb\x08\xd9\x8c\xa8\xca\xa0\xdd\x06\x7c\x65\ +\x4b\xd6\x41\xb5\xdf\x87\x9f\x5e\x97\xee\x8d\x08\xe8\x48\x34\x5d\ +\x3c\xba\x58\xf4\x19\x75\xa4\xa3\xf0\xcc\x49\x08\x92\xfd\x56\x42\ +\x65\xa4\x8b\x5b\x46\x1b\x61\x01\xc6\x47\xdc\xcf\xe3\xb5\x80\x02\ +\xaa\x32\xaf\x17\xd1\xbe\x05\x69\x2f\xbb\x46\xd5\x36\xb5\x8a\xe7\ +\x8e\x81\xf6\xfa\x9a\xef\x96\x4d\xba\x9e\x41\xc9\xd4\x0a\x6e\xb9\ +\xec\x3a\xf6\x84\x56\xf5\x4d\x43\x0b\x5c\xd7\x86\x7f\x38\xb7\x9a\ +\x4f\xbf\x2e\x82\xaf\x4d\x08\x6a\x1e\x19\x06\x32\xca\xc8\xb2\x1e\ +\x9a\x77\x84\x34\x3b\x6c\x95\xab\xb6\x5e\x6b\x88\x1f\x04\xc5\xf5\ +\x90\x7f\x0d\x8d\x51\x43\x09\x69\xa8\xc6\x3a\x72\x14\xf2\xcd\xe4\ +\xa0\x71\x4e\x85\xd9\x0a\x09\x6a\x20\x39\x1d\x3d\x85\x21\x59\x96\ +\xb6\xd7\xab\x9a\x9a\x55\xd4\x2c\x70\x09\xda\x98\x6e\x83\x99\x22\ +\x13\x96\xe3\x07\xba\x53\x48\x84\xd4\xb1\x69\x13\xe4\x27\xe4\xe0\ +\xa2\xc9\xab\x96\x7b\x0c\x16\x2a\x49\xee\x8a\x34\x72\xfd\x48\x82\ +\x29\x94\xdb\xd3\xa6\x9c\xbe\xe3\x44\xc2\x4c\x52\xac\x16\xef\x69\ +\x69\xf4\x02\x85\x57\xa7\x50\xba\x8e\xec\x8a\xd4\xb8\x1b\x15\xb8\ +\x82\x70\x03\xc0\x63\x90\x1e\xee\xfe\xa9\xe4\xa8\x0f\xa6\xbf\x97\ +\xf0\x6d\x93\x2c\x17\xc1\xf6\x52\x7d\x0c\xf4\xb6\xbb\xaf\x5c\xb1\ +\xad\xa0\x6a\x98\x3d\x90\x24\x59\xae\xd1\x53\x29\xe9\xbe\xb9\x3c\ +\x99\x07\xf4\xc7\x22\x8f\xbc\x24\x21\x21\xae\x44\xd2\xca\xc8\x71\ +\x1a\x91\x3b\xd1\xf1\x77\xf9\x3d\xf6\x7d\x05\xee\xd0\xa7\x82\xb4\ +\xd3\x19\x69\x51\xe8\xd1\xba\x57\x82\xf5\x8c\x52\x23\xf2\xc1\x6f\ +\x3a\xda\x38\x7d\xbe\x3c\xe9\xe6\xc3\x20\x21\x4c\xb5\x85\x3b\xa6\ +\xf8\x9b\x5d\xe0\xe9\xab\x40\xcc\x98\xb4\xa2\xcf\xf3\x34\x50\x72\ +\x51\x7d\x90\xa2\x81\xab\xae\x7a\x63\x28\xfd\x59\xf4\xfb\x2b\xf1\ +\xe6\x26\x7a\x0f\x41\x9d\x43\x06\x91\x2b\x16\x69\xf5\x28\x06\x17\ +\xea\x40\xd0\xb5\xdb\x76\x03\x2d\xf0\x74\xc7\x1f\x83\x60\xa0\xdb\ +\x98\x14\x4e\x85\x71\x09\x10\xcf\x20\x79\x00\xd5\x41\xc5\x1a\x43\ +\x7f\x38\x82\xf7\x0a\x52\x2a\x3c\x7b\x13\x7c\x1b\x98\xa0\x56\x8e\ +\x39\x8e\x4a\x25\xc0\xb2\x47\x91\x4c\x2e\x8f\xc0\x32\xed\x4e\x01\ +\x1d\x5b\xc8\x0a\xea\x97\x89\x84\x30\x1b\xa1\xef\x1d\xe0\xa4\x15\ +\xb8\x92\xbc\x4c\xec\x88\xa0\x9e\x1a\x82\x40\xc1\x35\xd7\x33\x20\ +\xf3\x80\xc5\x1d\x77\xbd\xab\xb5\x71\x2b\x28\x51\x2f\x5a\x4e\xa5\ +\xb5\x47\x29\x02\x5d\xe1\x39\x64\x0f\x7a\x72\x1c\x77\xcc\x9d\xe6\ +\x65\x34\x56\x19\xb1\x14\x13\x12\xd1\xa7\xc6\x95\x90\x0e\x0d\x45\ +\x05\xd4\x49\x7a\x8f\x29\x46\x18\x5a\x02\xbc\x67\x48\x91\x74\x55\ +\x0a\x7d\x31\x09\x41\xb8\x29\x98\xbe\xaf\xc1\x23\xd3\x4b\xa3\xbc\ +\x7b\xd2\xb5\x94\x7c\x54\x84\xbb\xb3\x76\x5d\xa8\xf7\x49\xae\xc0\ +\x5e\xb8\x87\x18\x96\xa5\x2a\xa1\x0a\x7a\x5c\x0d\x27\x05\xdc\xa9\ +\x30\xcd\x41\xb2\x2f\x02\x35\x73\x70\x9f\xb0\x8f\x16\x84\x30\xb8\ +\x0f\xbf\xbc\x01\xbe\xa4\xce\xb5\xc0\x97\x24\xdd\x12\x47\x70\x81\ +\x0e\x71\xbf\x44\x3d\x14\x75\x95\x87\x90\xf0\x80\x07\x16\xc0\x89\ +\x7e\x8c\xfe\x16\xa0\x62\x5b\xa1\xe3\xe6\x8e\xde\xc3\xf7\x7d\xcc\ +\x35\x3c\x5c\x62\x5b\xf2\x60\x67\xee\x95\xcc\x1a\x3c\xf8\x88\x05\ +\x3e\x76\x42\x0b\xa9\xa7\x19\x42\xa5\x1a\x44\xfa\x17\xe3\x64\x01\ +\xd9\x82\x98\x58\x1a\x1a\x80\xc2\x04\xdc\xbb\x08\xdf\x91\xdb\x32\ +\x61\x78\xae\x4f\x21\x14\xd0\xbb\xcd\x46\x08\xf2\x5d\x84\x35\xa0\ +\xf4\x4f\x7e\x4c\x2e\xc2\x13\x97\xa6\xc4\xdb\x89\x3e\x0b\x15\xa4\ +\x54\x1f\x05\x1b\x71\x5d\x3c\x88\x06\x4c\x59\x8a\x51\x91\xeb\x13\ +\x55\x88\x0c\xeb\xa0\x03\x58\x07\xd1\xb0\x26\xfc\xd9\xc2\x21\x57\ +\x37\x34\xdd\xd1\xcc\x83\x3a\x44\x2d\x93\x11\x32\x6a\x42\xea\x15\ +\x78\x98\x42\x77\x20\x11\xf4\xb5\xcd\xec\x15\xa4\xe1\x5e\x89\x06\ +\x35\x05\x31\x7c\x29\xc9\x46\x48\x61\x05\xaf\x06\xaf\x44\x7c\xee\ +\x00\x45\x65\x16\x60\x40\x36\xb9\x36\x85\x8e\x90\xe9\x49\x98\x2c\ +\x88\xba\x4e\xc2\x11\xf1\x79\xd1\xa4\x7c\x6a\xfa\x08\xdc\x02\x67\ +\x30\x42\xf5\xc8\x01\x25\x0b\x20\xcb\xb4\x1c\xb8\xa3\xe3\x9b\xbd\ +\xe9\x92\x58\x04\x41\xd2\x46\xcd\x15\x5c\x4a\xf2\x10\xfa\xb5\xab\ +\x1a\xd8\x96\x63\x6a\x86\xa7\x8f\x0b\x70\xfc\x6e\x3f\xdc\xe4\x8b\ +\xbb\x97\x1b\x13\xcb\x86\x6c\x14\xcf\x24\x08\x6a\x45\xab\x52\x2d\ +\xb7\x2e\xe4\x4b\xc8\x10\x22\x3a\xc4\x35\x6b\x32\xe7\xdf\xb1\xa7\ +\xea\x50\xe9\xc4\xbc\x3e\x16\x21\x57\xc2\x93\xd0\x71\xae\xc3\xa2\ +\x96\x15\xa9\x0e\x5f\xd7\xb0\xa6\x56\x39\x7b\x1d\x57\xdb\xa2\x56\ +\x24\xd8\x18\x0e\xdc\x8a\xa6\x43\xde\x02\x66\x1e\xc7\x97\x43\x7c\ +\xf4\x79\x88\x70\x2d\xe4\xfc\x26\x96\x28\x96\x54\x84\x08\xc9\xa5\ +\x22\x17\x8c\x81\xa3\x29\x5c\x9d\x40\xd4\x8e\x88\xf0\x49\x88\x69\ +\x3d\x94\x55\xa1\x2b\xb3\x51\x4d\x43\xf6\x8e\xa6\xda\xeb\x18\x36\ +\xf9\x12\x8d\x8b\xc4\x8a\xb1\xc5\x33\x2d\x44\x76\x6d\x02\xd9\xa1\ +\xc8\xf7\xd4\x81\x8c\xf4\xc2\x6f\x43\xfc\x69\x3c\xa1\xf6\x79\x55\ +\xf7\x3a\x7a\x61\x6a\x6f\xcf\xe3\x3a\xa4\x07\xd5\x15\x49\x82\x7b\ +\x30\xfe\x40\x45\x5c\xf5\x03\x6a\x40\xba\x61\x80\xf1\x44\xe1\xb4\ +\x96\x17\x87\xc7\x15\x9d\xb7\x33\x7c\xde\xa3\x11\x79\x70\xf8\x44\ +\xee\xc1\xa8\x6b\xcb\x70\x59\x6b\x63\x92\x5e\x93\x1d\x2e\x95\xd2\ +\x4f\x56\x42\x82\x35\x14\x81\x19\xd3\x86\xa4\x18\x68\xde\x5f\xbe\ +\x82\x52\x9c\xa5\xdc\x5d\x89\x99\x23\xd2\x5b\x41\x93\xb4\xd0\xdc\ +\xde\x5d\x8a\x17\xd5\x50\x1c\x78\x56\x39\x22\x58\x45\x6c\x17\x1a\ +\x9c\xcf\x7d\xc6\xa1\x18\x72\xe1\xf6\x73\xfd\x96\x5f\xb1\xf5\x02\ +\xb6\xa5\x54\x60\x72\xf2\x1a\x45\x9f\x65\xfa\xa9\xc0\x54\xef\x9f\ +\x97\x88\x8a\xc2\xce\x8f\x4b\xde\x9e\x44\x97\x8f\x2f\x89\x68\x42\ +\xed\x05\xf9\xa8\x3e\xd8\x83\xad\x99\x50\xdf\xa9\x38\x0a\x68\x01\ +\x0e\xcf\x3b\x68\xca\x45\xdb\x69\x61\x6f\x23\xad\x64\x56\xf9\xa7\ +\x85\x7d\xce\x44\xad\x7b\x62\xa5\x95\x8b\xf5\x41\x0e\xa9\x81\xc8\ +\xe2\xbb\x3c\x6a\x6c\x53\xd0\xe3\x46\xad\x32\x15\x35\xf1\x3a\x51\ +\x55\xf6\x76\x51\x3a\xe4\xea\x9c\x97\x7a\x45\xb7\xea\x18\x6a\x32\ +\x68\xd6\xe9\x62\xd2\x15\x60\x9d\x3e\x81\xa4\x84\x5d\x46\x9d\x35\ +\x4c\x23\x04\xed\x1b\xab\x96\x6d\xd0\x2d\x00\x43\x0f\x74\x35\xc4\ +\xb5\x31\xc6\x44\x60\xa7\x8a\x20\xf2\xdb\x50\x35\xe8\x6f\x15\x0c\ +\x10\x82\x8d\xb9\x9b\x74\xe7\x8c\x40\x2b\xb0\x0c\xb7\xe8\xda\x06\ +\x77\x24\x35\xb8\x8a\x29\xb8\x1c\x14\xe9\x41\xbe\xb4\x22\xe8\xf8\ +\x11\xce\x30\x5d\x38\x28\xf7\x4f\x89\x39\x85\xaf\xee\x61\x94\x19\ +\x66\x00\x92\x85\x4c\x82\x16\xce\xa0\xab\xb4\xd9\xeb\x6b\x45\xcf\ +\x2d\xf3\x58\x3b\x72\x00\x9e\xab\x49\xfe\x50\xaa\x78\xe2\x3a\x10\ +\x96\x01\x42\x0b\xc2\x5e\x5d\x85\xef\x1e\x30\x2d\xa4\xb0\x76\xa1\ +\x08\xa9\x57\x1d\x8a\x48\x3d\x85\x91\x5a\xb4\x1c\x43\xdb\x55\x31\ +\x9d\x4d\x43\x40\xf6\x98\x55\x60\xbd\xc4\x5a\xba\x4e\xa4\x7d\x68\ +\x12\x2d\xba\xca\x54\xd4\x24\x5d\x38\x89\xa8\x7c\x2c\x39\x2c\x2c\ +\x22\xbc\x28\x4f\x62\x15\x75\x89\x09\x26\xa9\x4f\xe3\x9e\x15\x60\ +\x8e\x57\xb4\x6c\x53\x8d\xb1\x27\x51\xf0\x84\x96\x50\xeb\xc2\xe4\ +\x02\x2a\xb7\x09\x2b\x0f\x6a\x16\x83\xfb\xd4\x80\xcf\x49\x05\xac\ +\x52\x46\x27\xe6\x1b\xe7\x0b\xf0\x71\x8d\x53\xa3\x5a\x99\x82\x2a\ +\x5e\x88\xe8\xaa\x42\x44\x20\x4a\x16\x22\xb5\x68\xba\x53\xd0\xc4\ +\xfd\x94\x9c\x81\xcf\x11\xe0\xb9\x63\x4a\x01\xbd\x08\x22\x98\x1e\ +\x6d\xd5\x50\x85\x63\x29\x08\x6f\x7c\x89\xfe\x6d\x3f\x38\x21\xcd\ +\xd7\xc7\xcc\x14\xe7\x96\x85\xaa\xcf\x44\x85\x90\x02\x44\xbf\xeb\ +\xa4\xac\xfe\x08\xac\xaa\xc9\x93\x54\xc1\x50\x19\x69\x61\xe5\xac\ +\xf0\x0d\x3e\x9a\x62\x80\x05\x0e\x4b\xc3\x2c\xfc\x52\xe7\x85\x0b\ +\xd3\xd2\x02\xd2\xae\x12\xc6\xa9\x83\xa6\x63\x7a\x3a\x4a\x83\x66\ +\xe0\xba\xa7\xf9\x13\x7e\x60\x96\xb5\xb2\x0e\x21\xfe\xa0\x9a\xc2\ +\x39\x64\x2b\x9a\x21\x85\xc8\x29\x8c\x20\xe6\xb7\x3a\x56\x60\x81\ +\xf3\x3f\x84\x50\xd5\x00\x3a\x00\x40\x20\x33\x18\x7d\xde\xba\x35\ +\xe0\xf4\xa8\xbf\x3c\x5d\xaa\x0c\xc4\x5a\xd7\x78\x00\xb1\x05\x35\ +\xa4\x57\x9d\x42\x09\x57\x7b\x0a\x3b\xbf\x83\xef\xcc\xc8\x9d\xe0\ +\x78\x01\x5b\x8a\x1c\xce\x54\xe9\x57\x37\x26\xc1\xb6\xe4\x37\x0a\ +\x3c\xbe\x59\xbc\xaf\x16\xf6\x92\xc2\xca\x8a\x65\x11\xb5\x5b\x86\ +\x2c\xb1\x16\xed\x87\x0f\xec\x70\x3d\x70\x1f\x25\x28\x21\x41\x83\ +\xc2\x00\xcb\x13\xc7\x6e\xb0\x4c\x8f\x55\x8a\xbe\x36\x6e\xd9\x36\ +\xcd\x83\x1d\x73\x94\x3d\x5e\xae\xe6\xfb\x3e\x05\xdf\xe9\x8e\xb5\ +\x3e\x19\xe8\x47\x25\x03\x16\x85\x65\x19\xe8\x09\x19\xe8\x31\x19\ +\x0c\xa9\x64\x20\x12\x9e\x1a\x71\x44\x8f\xea\x17\xca\x6e\xbe\x57\ +\xe5\x82\x02\x1c\xc0\xc4\x80\x65\x43\x2e\x77\xfb\x53\x89\xa9\xa6\ +\xcb\x20\x4c\x6e\x17\x86\x65\xba\x27\xe0\x40\xb2\xa9\x27\xc9\x4f\ +\x8b\xd7\xc7\x99\x9e\x94\xdc\xed\xb4\x24\x75\xca\x5d\x16\x35\x8d\ +\xf3\x12\xb9\x77\xdc\xb2\x67\xed\x36\x3d\xba\x37\x46\x4d\xb1\x02\ +\x69\xb6\x1a\xc6\xcd\x7c\x2c\x84\xb6\x16\x74\xcc\x2b\x3c\x08\x87\ +\x61\xd2\x26\x0a\x67\x3a\x2c\xe2\xa2\xb2\x30\xa7\x18\x2a\x8c\x5d\ +\x53\x59\xca\xbd\xbf\x50\xc1\x7d\xee\x20\xc3\x1e\x60\x4a\x8d\x14\ +\xd1\x7e\xde\x6e\x1b\x12\x78\x33\xcc\x05\x75\xb6\x81\x13\x75\x6d\ +\x46\xcc\x22\x55\xc8\xaa\x4f\x79\x0b\x4a\x20\x3b\x5a\x23\xa9\x19\ +\xbc\x77\x4a\x06\x45\x40\x1e\xe5\x2c\x84\x4b\xab\x62\xba\x92\xf0\ +\x24\x18\x4b\x79\x3f\xff\x78\xb0\xde\x17\x67\xdd\xf5\x34\x1b\x3b\ +\x58\xbc\x53\x58\x05\x73\x3a\x26\x39\xdc\x3a\xc9\x66\xf0\x68\x4c\ +\x8d\x8c\x48\xc9\x69\xe3\x92\xbd\xe3\xcb\x09\x1e\xdf\x09\x0b\xcd\ +\x21\xcc\xd3\x5c\xcc\x33\x74\x54\xff\x20\xea\x65\xc9\x9d\x11\x19\ +\x8f\x1c\xd1\x57\x60\x19\xc8\xb7\x81\x2d\xba\x5b\xe5\xd3\xc6\x9c\ +\xd1\xa3\x15\x30\x85\xab\x30\x4d\x9e\x44\x8d\x05\x77\xee\x51\x70\ +\xa7\xbf\x2b\xdc\xad\x4d\xe5\x8e\xae\x96\xcf\x79\x1c\xf5\xf4\x4a\ +\x89\xb6\xeb\x20\x57\x62\xf5\x6f\x4a\x9a\x74\x0b\xb9\x38\x65\xcb\ +\x54\xdd\x01\x1e\x21\x61\xbf\xc7\x9b\x22\x7c\xec\x8c\x55\x1d\x71\ +\xcf\x97\x16\x7a\x45\x90\x38\x77\x58\xde\xc8\x8e\xba\x42\x22\x38\ +\x38\x2e\xaf\x90\xa2\x7b\x29\xb1\xe0\xbd\xca\xe1\x96\x3a\x38\x94\ +\xdc\x37\x96\xdf\x74\xf2\x27\x7a\x81\xb1\xef\xa7\xb0\xfd\x58\xd4\ +\xaa\x8b\x87\x8d\x64\x54\x4f\xab\xad\x85\x77\x0a\x78\x75\x24\x77\ +\x3e\x27\x73\xe0\xb2\x0f\x9b\xae\x90\x76\x0e\x8b\x52\x18\x75\x5b\ +\xc3\xf1\x8d\x91\xd0\xa3\x81\x14\x68\x8b\xa4\x42\x07\x3c\xe2\xde\ +\xac\x9b\xd6\x88\xf5\x69\xc8\x8b\xef\x19\x51\x31\x67\x72\x30\x2a\ +\x0b\x9c\x88\x0a\x2b\xda\xaf\x0f\x7b\x83\x2e\xdf\xdb\x17\x02\xf5\ +\x27\x11\xa9\x9c\x80\x5d\x71\xec\x42\x05\x9d\x04\xb1\xd1\x29\xce\ +\xa3\x54\xc7\x23\x53\x58\x61\x7a\xde\xf3\x6e\xd9\xe3\x85\xc3\x29\ +\xb3\x28\xd3\x71\x3e\xff\xf2\xae\xb0\x9d\x54\x9b\xa9\xd2\x49\x29\ +\x75\x3c\x2e\x0a\x75\xd9\xd1\x89\x8e\x7b\x35\xf1\xfa\xd1\x2a\xd3\ +\x77\x23\x83\x9d\x7c\xc3\x22\x8c\xba\x25\x5e\x21\x89\xba\x47\x6c\ +\x1f\x33\xde\x42\xf3\xa2\x5b\x1c\x3b\x89\xc9\xa7\x03\x2c\x1e\xd5\ +\x93\x6f\x9b\x38\x35\x10\x6e\x53\x4f\x3f\x4b\xdb\x3e\x2c\x6d\x84\ +\x68\x25\x9d\x65\xef\x23\xa6\x49\xab\xa1\xa0\x57\xbb\xcc\xad\x42\ +\xc9\x83\x13\x6b\xf4\x46\xf4\x66\x94\xb1\x99\x53\xe5\x6b\x43\x58\ +\x78\xa7\xe9\xc3\x04\x09\x9b\xc3\xea\xa6\x9d\x41\x4c\xee\x8e\xe2\ +\xe5\xc6\x02\x31\xfb\xa6\xe9\x36\xf8\x0e\x63\x02\x9b\xd5\x95\xb4\ +\x5e\x8a\x37\x29\x19\x7e\x14\x83\x19\x32\x83\xa3\xd7\x09\x1b\x5e\ +\xb5\x50\xf9\xec\x84\x7f\x65\xc9\x56\x95\x3f\xb1\xa2\xce\x44\xb2\ +\x97\x70\xae\x44\x2c\xd6\x91\x3e\xee\x07\x06\x38\x18\x68\x82\xfe\ +\x81\xb7\xd3\x0b\x41\x55\xb7\x35\x8b\x75\x31\xd2\x2a\xa5\xdd\x64\ +\x0f\x57\x3b\x1b\x4c\xc9\x22\xa2\xd9\x3d\xdd\x86\x4e\xe7\xb0\x6b\ +\x8f\xd5\x74\x73\x52\x52\xb7\xd5\x3c\x4b\x8d\x17\x4c\x42\xe3\x65\ +\x7d\x0f\xc3\x95\x5c\xd2\x9d\x42\x87\x3b\xe2\xda\xc6\xfd\xbf\x1a\ +\xdf\x73\xb8\x78\x61\x08\x12\xbe\xcc\x54\x6e\x08\xa6\x85\x4e\xe7\ +\xb8\x04\xcf\xf0\xb9\x19\xed\x39\x30\x25\xf0\x8e\x4b\x28\xd8\x83\ +\x92\xa9\x2f\x40\xfa\x81\x57\x05\xad\x01\x33\x8c\x45\xc9\xba\xc2\ +\xc3\x8c\xec\xff\x2b\x91\xbe\x3b\xd9\xc9\xfe\xe9\x0b\x1f\x53\x94\ +\xb0\x14\x1a\x09\x87\x7a\x52\x83\x74\x2f\x36\x44\x29\x47\xa3\xb1\ +\xa6\x6d\xb8\x05\xc4\x8c\xcc\x22\x6c\x0e\x45\x18\x50\xc7\x5e\xab\ +\x6c\xd2\xf9\x0e\x73\x74\xb2\xa6\xe7\xe1\xd8\xf9\x11\x79\x00\xa5\ +\xca\x05\x69\x44\x76\xcb\x96\xde\x8c\xba\x02\xac\x02\xb5\x62\x1b\ +\xa2\x22\xaa\xd0\xf1\x4c\xe1\x3e\xcb\x48\x7a\x35\x8e\x25\x22\x76\ +\xf5\xc5\xbe\x0f\xbe\x0d\x24\x39\x01\xd1\xc4\x70\x71\x33\x43\x77\ +\x02\x1a\x53\xa0\x9a\xb4\x8a\x13\x5a\x59\x77\xd8\x1b\x18\x4c\xdc\ +\x4a\xba\x07\xbc\x07\x11\x51\x69\x4c\x90\x78\x69\xab\x0a\x1f\x16\ +\xdf\x1a\x14\xbb\xf5\x3d\xa4\x9e\x69\x6f\xd1\x1c\x91\xe3\x45\x98\ +\x0e\x85\xe5\xb3\xaa\xe4\x96\x37\x24\x2e\x74\xaa\xe5\xca\x04\xfa\ +\x38\x4c\x4b\x6c\x2c\x96\xe5\xae\xa2\x1f\x54\x8b\x45\x16\x13\xc2\ +\x6a\x9a\x06\x05\x0f\xa3\x6b\x5a\xd7\x95\xb2\x2e\x6d\x99\xbd\xe7\ +\xc5\xd0\x57\x99\xe0\x3b\x78\xc7\x57\x12\x67\xe2\x74\xaf\xc7\x25\ +\x61\xa0\x9e\x0a\x0a\x63\x83\xc4\x62\x2f\xad\xaf\x08\x11\x96\x36\ +\x62\x80\x22\xc3\x2a\x00\x7e\xdc\x9b\x6d\x63\xd0\xd1\xcc\x79\x4f\ +\x72\x28\x8a\xa0\x6c\xd8\xd5\x97\x54\xba\x75\x23\x6d\x6d\xd1\x50\ +\xa9\xfc\x38\x8b\x9d\x71\x1a\x05\x04\xe6\x96\x8d\x34\x4b\x09\x4a\ +\xca\x0f\xa6\x3f\xc1\x5b\x03\x72\xaa\x01\x88\x9a\x0f\xea\x13\x27\ +\xdd\x66\x10\x4c\x9d\x34\xe0\x7a\xe3\xba\x67\xd4\x21\x50\x8d\x0c\ +\x93\xfa\x0e\x21\xe5\xe4\x43\x48\x29\xbc\xd1\x61\x22\x1b\x7d\x9b\ +\x20\xa6\x79\xc8\x74\x46\x53\x04\xac\xe1\x10\xa9\xce\xf7\x0f\x1c\ +\xee\xe1\xf4\x28\xe4\x08\x28\xd9\x1d\xba\x05\x75\x81\xa7\x97\xd5\ +\xb8\x0f\x25\x86\x7f\x28\x94\x83\x68\x1d\xc7\x6b\xb0\x66\xea\x9d\ +\xce\x1e\x79\xa4\x92\xcd\xd5\x94\xf5\x83\x60\x4d\xe5\x94\x89\xa0\ +\x0e\xe4\x42\xda\x15\x4d\x61\xc5\xc2\x44\xfb\xff\x9a\x15\xcb\x39\ +\x6a\x56\xae\x55\x1e\x9d\xab\x60\x16\x36\x55\x0a\x70\x7c\x19\x5a\ +\x51\xcb\x90\x38\x47\x57\x71\x2d\x7a\x8a\x4e\x9e\x7f\x52\xf3\xe3\ +\x9c\x90\x91\xad\xa9\xa9\x3f\xb5\x96\xfa\x9a\x89\x2d\x35\xc5\x0b\ +\x6a\x94\xe9\xf9\xd0\x2e\xc4\xfc\xcd\x0e\x59\x4b\x8f\x06\xd6\x6b\ +\xa1\x62\x4a\xb0\x64\x35\x49\x87\x45\xab\xea\xb7\x27\xd3\x0c\x91\ +\x54\xed\x4c\xac\x53\x3a\xd0\x1e\xc5\xb4\x58\x89\xe7\xa2\x5e\xaa\ +\x70\x67\x63\x03\x3d\x39\x9b\xa0\xc6\x30\xe5\x80\x98\xfa\xb3\xde\ +\xc4\x68\x75\xbd\x63\xd4\xb3\x71\xbc\x58\x9e\x2d\xa6\x38\x5a\x11\ +\x07\xdd\xb7\x41\xe0\x3b\xb1\xec\xb3\xf0\x38\x47\x3d\x3d\xc6\x7a\ +\x91\x77\x0d\xa3\x76\xb1\x6e\x73\x48\x83\x3c\xc2\x9d\xa0\x63\x3e\ +\xe9\x03\xa8\x74\xf1\xce\x42\xfc\xe1\xc8\x83\x38\x40\xda\xd6\x57\ +\x85\xe4\x92\x79\x6d\x91\x3c\xf0\x19\x62\x1e\x71\xe5\x61\x89\x30\ +\xa5\x51\x4f\x7e\xcc\xe2\x11\xb7\x76\xec\x43\x86\xb8\x96\x4b\xa7\ +\xcc\xbb\x05\xec\x08\x8c\x4b\xc2\xd9\xee\x30\xdd\x4a\xc7\x33\xb7\ +\x1f\xe4\x40\x23\x3b\x6d\x11\x4c\x8a\x6b\x3e\xb6\xa1\x68\x82\x11\ +\x1e\xf0\xe2\x1d\x0a\x11\x44\x87\x5c\x67\x94\x9e\xe1\xb2\x1c\xdd\ +\x56\x03\xb9\x7c\x8a\x83\xdc\x29\xe4\xf2\x22\x4b\x81\x9c\x3f\xdd\ +\x0f\x22\xb8\x22\x22\x64\x89\x4c\x48\xc4\x56\x74\x80\x3b\x74\xeb\ +\xb5\xe4\x1d\xf3\x5c\x7a\x2d\xa8\x6d\x98\x2f\x14\xb8\x4f\x11\x0a\ +\x1a\xdf\xe9\xa2\xa5\xa6\x40\xc0\x2a\xf6\x55\x64\x1d\x72\x15\x7e\ +\x2b\x8a\xc5\xf7\xb1\xd9\xf4\x82\x0e\xba\xda\xbd\x6a\x1d\xfb\x81\ +\xee\xee\xe9\xc1\x72\x35\x15\x39\x99\x0a\x91\x91\x0d\xd3\x2f\xd5\ +\x5f\x74\xf2\x59\xfa\xc4\xa1\x12\xa1\xe6\xd2\x91\x12\x35\x84\x7d\ +\xc7\xbc\xc6\xea\xe3\x2c\xaa\x15\x5e\x1c\x3b\xd8\x52\xff\x02\x77\ +\x49\x29\xb6\xa0\x49\x67\x13\x53\x82\xc7\x4b\xe9\x20\x36\xe6\xda\ +\x29\xc6\xb0\xa5\x2e\x1e\xed\x74\x5c\x35\x1c\xcd\x97\x70\xd6\xc1\ +\x48\x07\xf8\xa3\xd8\x71\x4b\x51\x27\x44\x27\x29\xf1\x60\x16\xce\ +\xd7\x58\xe5\x78\xa9\xd0\x87\x05\x9b\x3c\xe3\x25\x97\x0a\xaa\x6f\ +\x36\xd4\x7d\xd8\x6d\xaa\x99\x92\xae\xda\x43\x5e\x89\x53\x70\x0a\ +\xf4\xd3\xc8\xe4\x55\xe0\xe6\x24\xce\x91\xca\x47\x19\x5a\xb6\x80\ +\x20\x78\x7b\x43\x2d\xbd\x21\x1e\xee\x5c\x55\x19\xa0\xa6\x7e\x5a\ +\xf9\x80\x0a\x64\x9e\x57\x4e\xfc\x70\xad\xa0\x64\x37\x9e\x9e\x4d\ +\xfb\x6c\x26\x19\x48\x94\x95\x99\xdd\xf4\x9c\x6d\xfa\xfb\xfc\x84\ +\xaf\x78\x1f\x0f\xc5\xa6\xbd\xbf\x0c\x05\x5b\xef\xc0\x6d\x7b\x6c\ +\xca\x36\x52\x74\x0a\x93\xb6\xab\xb9\x07\x1b\x26\xb5\xa3\x3f\xcd\ +\xbb\x70\xb3\x5f\xfd\x89\x3c\x77\x57\xcf\xe1\x95\x39\xf4\x54\x0e\ +\xed\x8b\x2b\x86\x86\x62\x80\xbb\xc1\x37\x46\x8d\xb1\x68\x1d\x27\ +\x03\x3d\x4b\x6a\xc3\x07\x56\x39\x85\x47\x6a\x90\xa5\x44\x65\xd9\ +\xb8\xd3\xc5\xc8\xd2\x1e\xbe\x1d\xd0\x73\x34\x27\xf4\xb8\x4e\x2d\ +\xa6\xe3\x72\xc0\x92\x82\xa5\xbf\x24\x2d\xc2\x42\x2f\x2f\x6f\x70\ +\xa8\xfe\x8e\x4e\xfb\x80\xfc\x17\x74\x52\x01\x9e\x5e\xdf\x1f\x02\ +\x91\xc0\x26\xff\xce\x87\x12\xec\x31\x9e\x0c\x69\x8b\x60\x8d\x1e\ +\xaa\xbf\x33\x22\x7f\x90\x05\x43\x4d\xe6\x57\x8d\x9b\xd9\x91\x84\ +\x9a\x97\xe9\xa8\x34\xfd\x0b\x04\x85\xc4\xf4\x4e\xda\x61\x12\x79\ +\x12\x7b\x5e\xda\x61\xd0\x1a\x2c\xe1\xb9\x07\x83\xfb\xdf\x37\x24\ +\x47\x1f\xce\x80\x09\xfd\xc5\xec\x9e\xae\x5b\xc1\x75\x0c\x2b\x15\ +\xe8\x34\x5d\x63\x0d\xbc\x01\xf0\x8b\xec\x50\x42\x58\xb0\xc6\xf7\ +\xcc\xac\x68\xf4\x48\x34\x1a\x59\x7a\x24\x3a\x4f\x72\x9d\x70\xf2\ +\x6e\x8f\x1e\x74\xae\x56\x0c\x9d\x4d\xc2\xf3\xee\xba\x12\xf9\x12\ +\xf2\x2d\xbe\x0f\x13\x6e\x09\x88\xd9\xfb\x42\xc2\xbe\xdb\xf6\xb8\ +\x90\x72\xeb\xce\xa8\x6d\xaa\x39\xc9\xc7\x06\x97\x6d\x29\x79\x0b\ +\x74\x4f\xad\x34\x53\x16\x70\x35\x5f\xf4\x83\xe7\x51\x09\xc7\x48\ +\xd7\x7a\xc2\xfe\xd4\x4f\x41\xa1\xcf\x0b\x2f\x66\x62\x32\x24\x73\ +\x00\x16\x0d\x51\x2f\xd7\x10\x30\x33\xfc\x13\x33\x82\xd8\x1d\xba\ +\x2f\x8a\x54\x7c\x77\x5c\x3a\x08\x97\x93\xff\x5e\x8c\xf8\x68\x27\ +\xef\x9d\xa9\x3f\xd2\x52\x8e\x1d\x46\x1b\xea\x62\x59\x86\xc5\x8e\ +\xb3\x1a\xde\xff\x02\xb7\xa1\x0e\xab\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x28\xe4\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xdc\x00\x07\x00\x07\x2e\x6d\xaa\x01\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x06\x03\ +\x0b\x21\x39\xf6\x17\x6e\x08\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\x7d\x79\x94\x5d\x55\x99\xef\xef\x3b\ +\xe7\xdc\x7b\x6b\xae\x54\x8a\x84\x84\x40\x12\x22\x61\x4a\x40\xc3\ +\x68\x10\x14\x70\x68\x27\x94\x38\x34\xad\x32\xf8\x96\xba\x7c\xb6\ +\xdd\xfd\xc4\xd5\xbe\x7e\xaf\x9f\x6b\xbd\x7f\x7c\x2d\xb6\xb6\x0a\ +\xab\x97\xad\xaf\xd7\x7b\xad\x88\x8a\x08\xe8\x0b\x04\x19\x14\x50\ +\x22\x04\x85\x30\x0f\x01\x22\x21\x33\x19\x2a\x55\xa9\xe9\x0e\x67\ +\xef\xef\xfd\xb1\xa7\x6f\x9f\x5b\x36\x4d\xaa\x92\xaa\xc0\xdd\xac\ +\x0a\x77\x3a\xe7\xdc\x7b\xf6\xb7\xbf\xe1\xf7\xfd\xbe\x6f\x03\xad\ +\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\ +\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\ +\xad\xd1\x1a\xad\xd1\x1a\xad\xf1\xda\x1c\x34\xd3\xbe\xd0\xce\x27\ +\xbe\xc2\x4c\x00\x81\xcc\xd7\x23\x06\x11\x81\x61\x5f\xa3\xf0\x95\ +\xc9\x3f\x26\x84\xb7\x0a\xef\x13\xcc\xb1\xe4\x1f\x88\x53\x98\x07\ +\xfd\x4b\xae\xa4\x96\x00\x1c\xc2\x71\xfb\x95\xc7\x31\x40\x38\xf5\ +\x8a\xcb\x40\x72\x82\xec\x24\x1b\x01\x00\x18\x76\xb2\x88\xc2\x17\ +\xb5\x93\x6a\x3f\x09\xf6\xef\x39\x21\x70\x27\xb4\x9f\x75\x47\xfa\ +\x63\x0a\xc2\xe3\x3f\x27\x06\x17\xee\x0c\x87\xe3\xfb\x8f\xfd\x02\ +\xb5\x04\x60\x0a\x26\x1f\x00\xd2\x8c\xb0\xec\xd2\x4f\xf8\xaf\xe1\ +\x57\x70\x61\xb2\xe4\x0a\x67\xab\x19\xc2\xe2\x97\xc7\x8a\x9f\x94\ +\x18\x41\x20\x2f\x30\xf6\x9c\x64\x44\x0b\x91\x46\x20\x30\x71\x74\ +\xc5\xf8\x16\x71\xb3\x30\xb0\xbb\xa8\x79\xaf\xff\xd8\xc3\x53\x8b\ +\x24\x87\x76\xf2\x97\xfa\x3b\x99\xa6\x84\x2c\x01\x98\xe1\xfe\x01\ +\x33\xc0\xcc\x80\x16\xaf\xd9\xff\xdc\xfb\xee\xf5\x70\x8c\x06\xd8\ +\x1d\x0b\xfb\x59\xb8\x27\xe6\xb9\xfb\xb8\xff\xbc\xbd\x8e\xfd\x1c\ +\x33\x83\xdc\x6b\x2c\x26\xda\x9d\x67\xc2\x25\x63\x27\x9f\x63\xf9\ +\x38\xdc\x46\x36\x1d\x93\x9f\xa4\x84\x2c\x35\x1a\x40\xd5\x6a\x48\ +\xcb\xe5\x78\xed\x11\x83\x99\xc0\x6e\x05\x87\x69\x35\xab\x95\x8d\ +\x12\x21\x6d\x6d\x3c\x01\xe4\x27\xaa\x79\xc5\x46\x8b\x16\x66\xb5\ +\x83\x61\x57\x7d\x02\xb0\x06\x3b\xbb\x23\x0f\x67\x6a\xd6\x91\xde\ +\xbc\xb0\xbb\xf0\x61\xbb\xfa\x0f\x99\x06\x30\x93\xcf\x61\xe5\xa7\ +\xe6\xff\x49\x42\xd8\x7e\xfb\xcd\xe6\xae\xea\x58\x13\x90\x5b\xc1\ +\x76\x85\xc2\xad\x60\xed\x96\xba\xd5\x0c\xcc\x80\xb6\x9f\x41\xe1\ +\x75\x7b\x5e\xf6\xe7\xb4\xe7\xd3\xf0\x2b\x57\x9e\x1b\x00\x58\x73\ +\xa4\x49\x8a\x0a\x20\x12\x08\x3a\x34\xab\xff\xae\x72\x89\x0e\x5b\ +\x01\x08\x2b\x9f\x90\xa4\x84\xd4\xfe\x25\x29\x21\xcd\xac\x19\xd5\ +\x56\xd1\x0b\xf5\xef\x27\xd4\x4d\x2a\x73\xa4\xfe\xe5\xfb\x0c\x6b\ +\x06\xbc\x70\x08\xc1\x81\xb6\x02\xa2\x8d\xfa\x07\x40\xe6\x22\xe1\ +\x7d\x67\x42\xb4\x9b\x74\x6d\x56\xb7\xbf\x5e\x41\x10\xbc\xda\xe7\ +\x83\xe2\x45\x6d\x68\x2b\x13\x00\xdc\x5b\x2e\xb7\x01\xc0\x30\xa1\ +\xfd\xa6\x72\xe9\x43\xd7\x95\x4a\xa5\xc3\xca\x09\x0c\x93\xcf\x48\ +\x92\x30\xf9\x59\x46\x48\x53\x20\xcb\x08\x47\xbe\x63\x15\x92\x52\ +\x16\x7b\xef\x3e\x84\xa3\x82\x43\x2e\x3c\x7d\xbf\x02\x49\xf8\x8d\ +\x52\x65\x27\xcd\x8e\x22\x0a\x1e\xbf\x8d\x20\x42\xd8\x19\xa2\x02\ +\xb2\xea\xdd\x79\x9f\xd1\xb1\x24\xcd\xc1\xc1\x89\x0c\x7e\x5f\x29\ +\xaf\x1a\x67\x7c\xbe\x0e\x3e\x7f\x0c\x78\xae\xc6\x38\x69\x1c\xd0\ +\xe3\x8c\x3b\xab\xc0\xf7\xab\xe0\x5b\xfe\x5b\x9e\x8f\xcd\x58\x0d\ +\x60\xbc\x7d\xb6\x0e\x79\x82\x34\x31\xaa\x3f\xcb\x80\x34\x01\x32\ +\x2b\x0c\xce\x91\x66\xad\x83\x63\x66\x57\x27\x6b\x1d\xab\x7b\xb0\ +\x09\xfd\x38\xa8\xfe\xa0\xf6\x85\x3a\x77\xce\xa2\x5d\xf1\xde\x51\ +\x44\xd0\x0c\x7b\x06\x46\xf0\xc0\xef\x37\x82\x21\x1d\x40\x73\x3c\ +\x59\xcd\xc0\xde\x89\x10\xe7\x87\x30\x49\x34\x91\x8d\x98\x9a\xc1\ +\xc0\xcd\x00\xde\x9e\x83\x52\xcd\x38\x29\x07\xa0\x80\x44\x01\xef\ +\x56\xe0\xeb\x15\x30\xfa\xe5\x2c\x5b\xff\xdf\xb3\xec\x94\x19\x27\ +\x00\x66\xe5\x87\xf0\x2c\x4d\x81\x24\x23\x24\x69\xe2\xcd\x40\x92\ +\x1a\x41\xa0\xc4\x38\x61\xde\xfe\x6b\xe1\xa5\x8b\xc9\x27\x3b\xa9\ +\xec\x4d\x44\xec\xe4\x41\x4c\x8e\x53\xed\x6c\x05\x2b\x12\x08\x7b\ +\xce\xb1\xb1\x1a\x1e\x5c\xbf\x29\x32\x27\xec\xcd\x8b\x3d\x9d\x0e\ +\xd1\x83\x34\x43\xc4\xd1\x85\xa7\xfc\xfe\x3d\x04\xbc\x93\x6b\x75\ +\x28\x66\x28\x33\xf1\xd0\x64\xac\xa3\x26\x86\x26\xf3\x9a\x62\xac\ +\xa8\x33\xbf\xab\xc7\xce\xe3\x5f\xa5\x29\x4d\xbb\x00\x48\xb5\x4f\ +\x24\xec\x7d\x62\x04\x21\x4b\xec\xe4\x5b\x41\x60\x0e\x2b\xac\xb8\ +\x92\xfd\xfd\x8d\x1c\x41\x1d\x1c\x42\x76\x61\x9d\x16\x0e\x1b\xc7\ +\x0e\x1e\x44\x38\xe9\x7c\x03\x00\xe5\x52\x8a\x7a\x3d\x0f\x17\x61\ +\x21\x27\x52\x28\x58\x87\xf0\xd3\x0a\x20\xb3\xb6\xce\xa2\x46\xff\ +\x92\x2f\x4e\xb9\xfa\xdf\xf9\xe5\x2f\x7f\x72\xff\x79\xe7\x21\xaf\ +\x54\x80\x7a\x1d\xdc\x68\x40\x2b\x46\x6e\x95\x9e\x62\xf2\x42\xd1\ +\x00\xbe\xf1\x17\x69\x3a\x0e\x00\xff\xac\xd4\xab\x96\xc6\x6c\xea\ +\xd5\x7e\xb0\xe1\x66\x92\xe1\xbd\x7e\xff\x97\x85\xe7\x60\xf3\x43\ +\x88\xd9\x20\x7f\x0e\xa4\x81\x06\x38\x31\xff\x37\x8a\x5f\xc4\x72\ +\xc6\x49\x13\x96\x1d\x0c\x6d\xec\x38\x87\x30\x12\x64\x43\xc9\x09\ +\x50\x9c\xac\x94\xa2\x5e\x57\x76\xa2\xcd\x75\x29\x8e\xf3\x62\x93\ +\x64\xaf\xc5\x22\xfc\x23\x3e\x38\x2e\xd4\xd8\x59\x67\x7d\x60\xe0\ +\x8c\x33\xd0\x18\xd8\x07\x7e\xf2\x49\x24\xeb\x1e\x00\x3f\xf9\x04\ +\x78\xff\x30\x34\x00\x95\xa5\xd0\x44\x50\x6c\xdc\xdf\x9c\x50\xbe\ +\x34\x4d\xff\xfe\x3a\xa5\xfe\x61\xda\x04\x40\xae\x7c\x80\x90\x24\ +\xb0\x8e\x5f\x98\xec\xcc\x0a\x44\x6a\x5f\x4f\x52\xe7\x69\x5b\x67\ +\x8f\x82\x6a\x27\x87\x07\x00\xd8\xb6\x7d\x1f\xd6\x3d\xb2\x05\x1f\ +\x7e\xdf\xa9\x02\x7c\x23\xff\x3e\xc1\x2c\x07\x26\xb6\x0e\x9c\x8b\ +\xd3\x39\x08\x8f\x47\x02\xcd\xf1\x95\x52\x8a\x5a\xad\x1e\x7c\x00\ +\xe7\x0d\xfa\x6f\xc3\xde\xe9\x63\x16\x00\x25\x87\xdf\xc8\x34\xf5\ +\xea\xff\x86\x9b\x56\x9f\xab\xeb\xd4\xc5\xe3\xa3\xd0\x2a\xc7\xf8\ +\x09\xc7\xa3\x7a\xdc\x1b\xd0\xd8\x3f\x04\xbd\x71\x23\xf8\xd1\x47\ +\xc1\x1b\x9e\x83\xde\xbf\xdf\x9a\x84\x84\xb4\x71\x52\x77\x4e\x1b\ +\x10\x74\xfb\x95\x4b\x3b\xdd\xe3\xa5\x1f\xbc\xc8\xd8\x75\xad\xb1\ +\xf5\xae\xdb\x90\x39\x7b\x9f\x59\x5f\x20\x0d\xa6\xa0\x74\xda\x7b\ +\xa0\xc1\x18\x1f\xab\x61\x60\xa8\x8a\xa3\xe7\xf7\x82\x40\xb8\xe7\ +\xfe\xe7\x51\xab\x2b\xbc\xfb\xfc\x13\x00\x22\xd4\x1b\x0a\xbb\x76\ +\x0f\x9b\x89\x61\x97\x23\xd0\x16\x28\x82\x59\xed\x0e\xe6\xb1\x9a\ +\xc4\x7e\x4a\x00\x36\x42\xd5\x93\x31\x01\xb5\xba\x8a\x4c\x80\x83\ +\xa0\xd9\x3f\x8e\xcf\xe1\xb4\x10\x79\x14\x70\xea\x35\xc0\xfc\x3f\ +\x5e\x75\xf9\x70\xfb\xc9\x18\x28\x1d\x8f\x1c\xb3\xa1\xea\x00\x57\ +\xc7\xa1\x1b\x39\xaa\x47\x2d\xc0\xf8\xbc\x79\xa8\x9f\x7b\x1e\xf2\ +\xad\x5b\xc0\x1b\x36\x40\xbd\xb8\x09\x7a\x78\x18\x65\xe0\x67\xd3\ +\x22\x00\xb7\x5f\xb9\x94\x4e\xb8\xf8\xa2\x11\x1f\xa2\x59\xcf\x8f\ +\xd3\x0c\x0b\xdf\x7d\x91\x0f\xa1\xf2\x46\x8e\xd1\x87\xee\x34\x1a\ +\x20\x33\xf8\x7b\x9a\x18\x35\xbb\x65\xdb\x10\xee\x5f\xff\x12\xfe\ +\xd3\x25\x67\x80\x19\x28\x65\x29\x86\x47\xea\x1e\x8a\x25\x22\x68\ +\x66\x68\xcd\x6e\x8e\x3c\x72\xe7\xa6\xdb\x79\xe4\xde\x8c\xd8\x15\ +\x4a\x72\x6e\xfd\x64\x02\xa5\x34\x01\xc0\xc8\x1b\x39\xb2\x52\x16\ +\x39\x74\x02\xe2\x17\xc7\x8a\xfc\x81\x3f\x97\x9e\x7a\x60\xa6\xbe\ +\xef\xc3\x9d\x23\x77\x23\x6d\xfc\x1a\x1d\x34\x0b\x43\xd9\x62\x0c\ +\xa4\xc7\x62\x9c\xfb\xa0\x1a\x04\xae\xd6\xc0\xf5\x1a\x1a\x7d\xb3\ +\x51\x3d\xf3\x2c\xd4\x96\x2d\x87\xda\xbb\xfb\x81\x9f\xdf\xf9\xab\ +\xe1\x69\x11\x80\xe3\x3f\xf8\x7e\xed\x9c\x2f\x77\xeb\xbd\xe3\x65\ +\x96\x27\x98\x08\x69\x29\x43\xcf\xca\xf7\x61\xf8\x89\x07\x90\xe4\ +\x83\x5e\xb5\x12\x80\x5a\xbd\x81\x72\x29\xf5\x5e\x58\xb9\xec\x1c\ +\x34\x8b\x1e\x12\x41\x29\x0b\xde\xd8\x55\x0e\x69\x0a\xdc\xb9\xec\ +\xaa\x65\xb2\x9f\x61\x93\x59\xf4\x3e\x81\xf8\x76\x00\x50\x29\x97\ +\x50\xad\x36\xd0\x95\x26\x22\x73\x18\xcc\x85\x39\xa7\x33\x4b\xee\ +\xba\xce\x0f\x98\x7a\x0d\x70\xff\x3f\x2c\x3b\x5d\x69\xcc\x6e\xa0\ +\x82\x3c\x61\x50\x7d\x04\x9d\xa3\xeb\x91\xe5\x0f\xa1\x53\x77\x62\ +\x90\xe6\x63\x1f\x8e\xc2\xb8\xee\x41\x9e\x13\x74\xad\x06\x5d\xab\ +\x43\x77\xf6\x5c\x3b\x6d\xb9\x00\x66\x0e\x8e\x1b\x87\x55\xe2\x27\ +\xc1\xc3\xe6\x46\x3c\xba\x97\xbf\x19\x0c\x46\xfe\xe8\xed\x1e\xf6\ +\x6d\xe4\x0a\xa5\x34\xb1\xe7\x72\xea\x39\xb7\xc2\x63\xc2\x45\xa5\ +\x84\xf7\x2f\x57\x34\xd8\x6a\x78\x33\xc9\xe4\x85\x2e\x84\xe9\x24\ +\xd0\x24\x9f\xf3\x23\xa0\x52\x4e\x51\xad\xe5\xe8\xea\x2c\x3b\xdf\ +\xd1\x9e\x3f\xb1\x68\x21\xf9\x63\x12\x7b\x12\xe9\x34\x1e\x84\x71\ +\x99\x83\x37\xb4\x66\x28\x26\xe4\x28\x21\x07\x03\xaa\x86\xce\xfa\ +\x73\xc8\xf2\x67\xd1\xa9\xca\x18\xd2\xfd\x18\xd0\x47\xa0\xca\x1d\ +\x60\x94\x6e\x9c\x16\x01\xd8\x78\xf7\x7f\x61\x09\x88\x30\x82\x10\ +\xf8\x1b\xe4\xd0\x3c\xe1\xdd\x11\x80\xd2\x8a\xf7\xf8\xa4\x4e\xa3\ +\xa1\x91\x65\xe4\xcf\x51\xca\x12\xd4\xeb\xb9\x0d\xfd\x08\x94\x18\ +\x0d\xc0\xd6\x1c\x84\x55\xac\xad\x27\xce\x21\x99\xe3\x04\x84\x85\ +\x93\x16\xa9\x6e\xab\x99\x34\xa3\xad\x92\xa1\x5a\x6b\x84\x4c\x61\ +\x14\x2d\x38\xcd\x21\xf0\x1e\xc7\x1d\x70\x61\xeb\xd4\xbb\x00\x7f\ +\xae\x98\xbd\xb9\xd3\xcc\x46\x18\x98\xa1\x99\xa0\x50\x82\x62\x0d\ +\x56\x0a\xed\xf9\x36\xcc\x69\x6c\x41\xb7\xca\x1e\xbd\x66\xcd\x8e\ +\x3d\xd3\x03\x04\xf9\x78\x3c\x28\x57\x1f\xcf\x6b\xfb\x58\x07\x30\ +\x47\x82\x37\x32\x69\xd3\xc8\x73\x64\x69\xe2\x63\xed\x52\x9a\xa0\ +\xde\x50\xfe\x8c\x59\x92\x78\x0d\x10\xd0\xbe\x38\xdd\x6b\xd4\x8c\ +\x8e\xd1\x3a\x9f\xd0\xb1\x78\x41\x21\x8f\xd0\x56\x29\x61\x7c\xbc\ +\x6e\x51\xc5\x10\xeb\xfb\x6c\x11\xcb\x20\xd0\xe5\x2a\x44\x62\x80\ +\xa7\xce\x07\x78\xf0\x6b\xa7\x9c\xcc\xa0\xf9\x4a\x33\xb4\x46\xf4\ +\xa7\xb4\xd5\x08\x9a\x5d\xe8\x87\x5c\xa7\x68\xe8\x0c\x00\xff\x70\ +\xfa\xd2\xc1\x5c\xc8\xb5\xda\x50\xce\xdb\x53\x01\xf0\x78\x06\x8f\ +\x0e\x2b\xd2\x79\xd3\x79\xae\x0d\x28\x64\x43\xb2\x52\x96\xa0\xd1\ +\x50\x3e\x0e\x4f\x53\x42\x9e\x6b\x6f\x22\x38\x4a\x64\x50\x6c\xd9\ +\x45\xdc\x1f\x94\x0e\xf9\x89\xf4\x26\x02\x64\x34\x40\xb5\xe1\x1d\ +\x49\xef\x47\x70\xf8\xee\x8e\x91\xc4\x14\xe3\x01\x34\xc5\x10\x70\ +\xae\xf4\xa5\x4a\x71\x98\x70\xb6\x93\x6f\xb5\x81\x62\x86\xb2\xaf\ +\x69\x65\xdf\x37\xf7\xf0\xa7\xd3\x26\x00\x11\xf9\xc2\x4f\xba\x98\ +\x05\x1d\x6e\x20\x34\x83\x1d\x4b\x47\x1e\x4f\x04\x95\x6b\x24\xce\ +\x77\x00\x1b\x13\xd0\x88\x7d\x80\x5c\xe9\x26\xdc\x9d\x11\x85\xeb\ +\x5e\x6d\x43\x93\xd1\x6d\xda\xaa\x71\x97\xd7\x89\x54\xb9\x35\x01\ +\xd5\x7a\x10\x54\x21\x28\x3e\x62\xf0\x7e\x04\x05\x1e\x80\xb6\x66\ +\x64\x6a\xc1\xff\x8f\x29\x6b\xfb\x23\xd5\xaf\x85\x49\xf0\xef\x19\ +\x61\x60\xf0\xb3\xd7\xac\xd9\xb9\x6d\xfa\x04\x80\x5d\x9c\x8c\x78\ +\xc5\xb8\x54\xaa\x0b\xd7\x9c\xed\xd6\x1c\x48\x9a\x30\xef\x11\x18\ +\x4a\x6b\xa4\x89\xf0\x01\x4a\x09\x1a\xb9\xb2\x6a\x38\x41\x96\x26\ +\xc8\x73\xe5\xaf\x09\xcf\xea\x22\xaf\x9a\xc3\xf7\xb0\xf1\xba\x0e\ +\x9a\x29\x68\x0d\x8b\x0f\x58\x03\x5e\xa9\x64\x18\xab\x36\x82\x29\ +\x11\x59\x42\xa7\x15\x34\x3b\xee\xa1\x43\xfe\xa8\x80\x1b\x4c\x7e\ +\xac\xbb\x6a\xf9\x92\x5c\xf1\x62\x37\xf1\x4a\x33\x94\xe2\x48\x13\ +\xb0\x15\x08\x25\x9c\x44\x80\x7e\x34\xd9\x6b\x1f\xb0\x00\x3c\x7f\ +\xe7\xe7\xd9\x4f\xba\x08\x8d\xdd\xa4\x06\xe7\x4b\x42\xb8\xf6\x7d\ +\x1b\x1a\x82\x0c\x13\x87\x35\x23\x11\x51\x40\x29\x71\x26\xc0\x2c\ +\x8d\x34\x31\x26\x20\xc2\x75\x19\xd1\xf3\x00\xfe\x44\xf3\xe8\xc3\ +\x3f\xf9\x3d\x5d\x44\xd8\xd1\x66\x7c\x00\x66\x8e\x30\x02\x2f\x04\ +\x12\x96\xe4\x42\x10\x49\xc0\xfc\x65\x5f\x9e\x12\x11\x50\x9a\x3f\ +\xae\x35\xa0\xac\x6a\xb7\x79\x28\x3f\xf9\x41\x1b\x38\xbf\xc0\x08\ +\x7d\x4a\xf8\xf1\xb4\xa5\x83\xa5\x33\x16\xb8\x1a\xc1\xc9\x62\x9b\ +\xd9\xf3\x9c\xbc\x88\xd3\x07\xe1\x78\x09\x7e\x9e\x3d\x6f\x96\x19\ +\x27\xd0\x39\x6b\x59\x96\x40\x6b\x0d\xe5\xd3\xc3\x5a\xb8\x66\x62\ +\x62\x74\x48\xe6\x00\x46\x55\x06\x87\x30\xfe\x8e\x60\x46\x7b\x25\ +\xc3\xd8\x78\xc3\xdb\x12\x2f\x2a\x3e\x73\x28\x32\x8f\xc5\x3f\x3d\ +\xa5\x3e\xc0\x27\x94\x5b\xfd\x7e\xa2\x9d\xca\xd7\x56\x2b\x04\xbb\ +\x6f\xfe\x68\xd3\xb7\x6e\xdd\xf9\xc7\x69\xd3\x00\xb1\xca\x8f\x57\ +\xa1\x47\x05\x39\x20\xf1\x14\xfe\x09\x50\x3e\x82\x00\x10\x19\x46\ +\x0e\x11\x50\xca\x08\x79\x23\x30\x75\x88\x80\x2c\x4b\xd1\xa8\xe7\ +\x48\x2b\x59\x04\xfa\xf8\x13\x49\x12\xa7\x4d\x02\xc5\xef\x73\x9c\ +\x10\x22\x46\x7b\x7b\x86\xf1\x97\xeb\x96\x51\x14\x6c\x93\x34\x07\ +\x4e\x89\x09\x40\x23\x98\x9b\x29\x18\xbf\xfb\x5f\xcb\x17\x80\xf9\ +\x44\xb3\xd2\xc5\xe4\x4b\x95\xaf\xc3\xff\xcd\x42\x60\x10\xe1\x27\ +\x53\x71\xfd\x6c\x72\xf6\xdf\x4e\x3a\x31\x28\xc6\x4d\xe1\xee\xa9\ +\x07\x6b\x24\x78\xe2\xd2\xb5\x1e\x2f\x88\x89\x1d\x69\x6a\xc2\x3e\ +\xd6\x0c\x32\x88\x2d\xca\x59\x82\x7a\x43\xa3\x5c\x0e\x67\xf4\x89\ +\x1f\xa1\xe4\x83\xd5\xe1\x90\x25\xb4\xd7\x82\x04\xac\x00\xb4\x57\ +\x4a\x18\x1d\x6b\x04\x01\x26\x2d\xec\x7c\x90\x17\x4a\x1c\x1e\x10\ +\xe0\xe7\xa9\xc2\x81\x28\xa1\x3f\xcf\xf3\xe0\xdc\x69\x36\x69\x5f\ +\xe5\x9d\x3f\x18\x87\x2f\x72\x0e\x81\x04\xb8\x6e\x5a\x05\x20\x24\ +\xc2\x5c\xba\xb6\x80\x8e\x91\x05\x63\x1c\x1a\x48\x02\xac\x71\x1c\ +\x7c\xe7\x0b\x78\x3e\x1e\x7b\xe7\x2e\x49\x80\x3c\xd7\xc8\x4a\x09\ +\x00\x42\xa9\x94\xa2\x5e\xaf\x83\x3a\x4a\x81\x0a\x56\x80\x6e\x82\ +\xfe\x71\x70\xb0\x04\x8d\x24\x96\x6f\x3e\xd5\xd1\x1e\x7c\x00\xcf\ +\x4c\x8a\x12\x3e\xda\x82\x5b\x21\x0a\x60\xd6\x7f\xa2\x7e\xe0\x80\ +\x17\xd2\x65\xde\xd6\x3b\xfb\x2e\x26\x5b\x89\x08\x40\x79\x87\x90\ +\x77\x7c\x7b\xcd\xce\xa7\xa7\x24\xf7\x30\x29\x0c\x28\x5a\xd1\xda\ +\x13\x29\xd8\x01\x41\x2c\x41\x13\xaf\xef\xad\x6a\x77\xfe\x81\x16\ +\x60\x4d\x00\x6e\x8c\x16\x50\xde\xa7\x28\x65\x09\x1a\xb9\x8e\x19\ +\xbf\x0e\x4c\xd2\x2e\xe9\xc3\x11\x43\x28\x50\xc1\x24\x99\x54\x7b\ +\xd2\x49\x47\xa5\x84\x31\x0b\x04\xf9\xef\xeb\xfd\x13\x1d\xd5\x29\ +\x70\x13\x10\x34\x79\x15\xf0\xe8\x37\x4e\xed\x07\xf3\x0a\x0f\xf2\ +\x28\xe9\xe5\x3b\x61\x80\xd7\x02\x4e\x08\x18\xf4\xb3\xa9\x12\xc0\ +\x03\x47\x02\x75\x98\x68\x48\x6a\xb5\x70\xa8\xa4\xa0\xb0\x78\x2f\ +\x70\xfa\xa4\xd3\x86\x88\x0a\x96\xa6\x26\x14\x74\xc7\x57\xca\x29\ +\x6a\x16\xb6\x0d\xac\x9d\x80\x28\xb2\xa0\x80\xe3\x15\xa9\xe3\xe6\ +\xb8\x8e\x8e\x12\x46\xc7\xea\xb1\x13\xe8\xe9\x61\x88\x18\xc6\xc1\ +\xd3\xa5\xf8\x3b\x4f\x86\xf8\x51\xd7\x1f\xf1\xab\xdc\x7d\x6d\x8d\ +\x68\xb5\x2b\xa9\x05\xac\x10\x10\xe1\xda\x69\x17\x00\x16\x5c\x69\ +\x2e\x4c\xb0\x5c\x31\xc4\x5a\x20\xab\x1c\x55\xdf\xb8\x73\x24\x09\ +\x41\x2b\x2d\x26\xd5\xa4\x6b\x73\xa5\x40\x96\xa7\x1f\x12\x44\x3a\ +\x9a\x44\x8e\x28\xe3\x3a\x9a\xf4\x02\x43\x4c\x14\x14\x69\xeb\x03\ +\x64\xa8\xd5\x72\x68\xa5\xe2\x89\xd6\x88\x85\x5a\x0a\xad\xbf\xce\ +\x94\xa8\xff\x2b\xa4\xad\x8f\x84\xc1\xad\x76\x1d\x4f\x3e\x33\x0f\ +\x5c\x7d\xeb\x8e\x87\xa7\x5f\x03\x44\x2c\x5b\x14\xf0\x7e\x77\x13\ +\x2d\x69\x03\x3a\xbe\x81\x45\xc2\x27\x19\x8f\x57\x86\x91\x49\x02\ +\x28\xc5\x3e\x91\x54\x29\x67\xa8\x56\x73\xc1\xd1\x17\xdc\x7e\x2e\ +\x70\xf9\x38\xe4\x21\x42\x58\x07\x61\x06\xe0\x13\x4b\x6d\x6d\x19\ +\x46\xc6\xeb\x96\xfb\x67\x8e\xd7\x62\xc2\x25\x3f\x31\x22\x9b\x4e\ +\x52\x03\x3c\xfc\x8d\x53\xbb\x99\x68\xa5\x62\x07\xf8\x34\x27\x81\ +\x94\x00\x7e\x94\x06\x72\xf6\x6c\x61\xcc\x08\x0d\xe0\x0a\x2d\x02\ +\x7a\x21\x93\x2d\xda\x57\xd8\xe8\x88\xc4\x89\x28\x46\x87\x06\x12\ +\x18\x38\x38\xe4\x17\x0c\xf8\xa3\x72\xed\xcf\xd7\x5e\x4e\x31\x5e\ +\x6b\xd8\x09\xd1\xe0\xc8\x14\x37\x17\x8d\xc8\x4a\xa1\xa8\xb0\xc4\ +\xbe\x4e\xf6\xb5\xce\xf6\x12\x46\x47\x6b\x71\xf2\x20\x62\x23\x87\ +\xc2\x93\x48\x4b\x4c\x52\x05\xd4\x1a\xfa\x62\x96\xe0\x8e\x77\xf6\ +\x10\x04\x22\xd2\x0e\x6c\xd1\x3f\xfc\x60\x2a\x05\x60\x52\x38\x80\ +\x07\xfc\x25\x8d\x8a\x11\x7b\xdb\x4c\x40\xe2\xa0\xd9\x10\x12\x06\ +\x58\xd7\x4e\xb6\xe2\xe0\x8d\x83\x90\x5a\x13\xe0\x56\x6a\x7b\x5b\ +\x86\xf1\xf1\x86\x4f\xfd\x1a\x34\x51\xf0\x7f\x8a\x59\x22\xc7\xd7\ +\xd0\x21\x3d\xed\xca\xd0\x59\xfb\xac\x0f\x3a\xdb\xcb\x18\x1d\xab\ +\xf9\xb0\x16\x4d\x09\x26\x12\x91\x85\x0b\x26\x18\xac\x27\x1b\x09\ +\xf0\x15\x5a\xb9\xd5\xae\x6d\xd8\x17\x60\x5e\x16\x0e\xa0\x33\x01\ +\x60\x8c\x5c\xb3\x66\xe7\xda\x19\xa1\x01\x5c\x01\x45\xf0\xfc\x11\ +\x15\x65\xc8\xd5\x5e\xf4\xc4\xa3\x15\xc4\x86\x35\x9c\x6b\x1d\xa1\ +\x88\x09\x01\x5a\x05\xcf\xbd\x52\xc9\x50\xad\xe5\x51\xd5\xb0\xf4\ +\x23\x9c\x17\xcf\xf2\x1a\xba\x58\x5a\x06\x11\x69\x18\x95\xdf\xd5\ +\x59\xc6\xc8\x68\x3d\xf8\x33\x45\x7f\x82\xd9\x32\xbf\x42\x5d\x01\ +\x6b\x9e\x14\x21\xe4\x85\xef\xbc\xa9\xc2\x8c\xb7\x2b\x09\xf5\x7a\ +\xe7\xcf\xa9\x7f\x6b\x02\x34\x43\xc1\xfc\x1f\xc0\xea\xa9\x26\x20\ +\x24\x93\x51\x00\x92\xb7\x4f\x05\x35\x1c\xbd\x16\x41\xc4\x88\x1d\ +\x2d\x30\x92\x24\x81\xf2\xc9\x1f\xb3\x6a\x13\x32\x8e\xa1\x13\x92\ +\xf6\x4a\x86\xd1\xb1\xba\x9d\x9b\xa2\xc9\x91\x7c\x0f\x8e\xe0\x60\ +\xe9\xc8\xc5\x7c\x00\xf3\x7a\x57\x47\x19\xc3\x23\xb5\x88\x6b\x10\ +\x71\x17\x5c\xed\xa1\x6e\x3a\xcd\x01\x8f\xdd\x83\x8d\xf7\xb3\xb6\ +\x49\x1f\x1d\x84\x20\xb7\x32\xe6\x42\x42\x9f\x08\xb2\xc2\x41\xc0\ +\xf7\xa7\x5a\x00\x26\x61\x02\x42\x49\x35\x45\xd4\xeb\x02\x22\xe7\ +\xad\x44\x5c\xe6\xed\x33\x75\x6c\xe8\xe2\xb9\xd2\x5e\x63\xd8\xb2\ +\x40\xc3\x7e\x61\x93\x53\xee\x6c\x13\x31\xbb\xcf\xd4\x46\x78\xb2\ +\xa5\x84\x85\xbc\x7f\xc4\x1a\x96\xb4\x1e\x97\xf4\x61\x32\x02\x30\ +\x5a\xf3\xc4\x16\x72\xe9\xe4\x82\x4d\x71\x25\xe5\x44\xdc\x0c\x7a\ +\xbd\xda\x08\x9a\xf0\x49\x1f\xef\x0b\xa0\x87\x65\x14\x00\x88\xc8\ +\x00\xd0\x4c\xf5\x6b\xd6\xec\xb8\x6b\xc6\x68\x00\xc8\x5a\x3d\xc8\ +\xd8\x59\x3a\x51\xd6\x9e\xa1\x99\xa5\x23\x43\xb6\x2c\x25\xe4\x0d\ +\x15\x55\xe3\x12\x11\xb4\x0a\x1a\xa3\xab\xb3\x84\xfd\x9e\x29\xec\ +\x34\x90\x8e\xe3\x7b\x77\xac\x70\x4c\x9d\xd3\xf8\xa7\x4a\xc8\x7b\ +\x3a\x8d\x06\xf0\xab\x5f\x0b\xb3\x52\x70\x1e\xa3\x84\xd6\x01\xce\ +\x3f\xdf\x73\x5e\x02\xc6\xbb\x95\x66\x68\xc5\x51\x82\x47\x6a\x03\ +\x16\xce\xa1\x51\xff\x7c\x1b\x0e\xc2\x98\x54\x2e\x40\xe2\xea\x22\ +\x97\x16\x9c\x40\xd6\x76\x25\x92\xcf\x06\xc0\x3a\x6f\x60\x32\xab\ +\x8d\x19\x59\x6a\x50\xbe\x70\x2e\x04\x50\xc6\xf2\x02\xbb\xed\x4a\ +\x95\xea\x9b\x44\xa5\x0e\x8b\xac\x83\x84\xab\x7d\x9f\x21\xef\x15\ +\xfa\xbc\x34\x98\x80\xce\x8e\x32\x46\x46\xab\x31\x7b\x94\x43\x33\ +\x09\x93\x23\x08\x1c\x82\x26\x32\xcc\xab\x1c\x0f\xae\xdb\xf7\x67\ +\xac\x91\x79\xa7\x4f\xc1\x3b\x80\x3e\xe6\xf7\xf4\x2f\xed\x1d\xc2\ +\x83\xa1\xfe\x27\x69\x02\x64\x9e\xfd\x4f\xdc\x0c\x42\x9c\x95\x13\ +\x19\x35\x5f\x6c\x41\x84\x52\x6a\x8a\x3f\x02\x99\xc8\x8a\x93\x0e\ +\x9a\xa4\xbb\xd3\x08\x80\xd6\x1a\x09\x25\x71\x86\x4f\xe0\xf8\x86\ +\xf2\x25\xaa\x86\x7c\xad\x80\x44\x26\x9d\x25\x60\x74\x77\x96\x8d\ +\x66\x11\xf4\x36\x23\x34\x1c\xfd\x90\x88\x38\x3a\x89\xc6\x10\xcc\ +\xec\xd5\xbf\x27\x80\x3a\x12\x88\xe5\xfb\xf9\xa4\x4f\x30\x01\xba\ +\xa7\x23\x3d\x28\x1a\x60\x12\x4e\xa0\x0e\x5e\xb1\x4b\xe6\x70\x11\ +\x24\x42\xe1\x35\xe1\xa0\x89\x98\xba\x5c\x4a\x43\xfe\x9f\x63\x07\ +\xcc\x9d\x28\x4b\x13\x74\xb4\x95\x30\x34\x5c\xf5\x88\x62\x84\x2c\ +\x46\x1d\x3f\xb4\xe0\x1a\x20\x8a\x2e\x44\x33\x21\x30\x18\x3d\x5d\ +\x15\xec\x1f\xa9\x7a\x07\xd5\xc7\x16\x3c\x51\x19\x3a\xc2\xf3\x03\ +\xf4\x02\x15\xe8\x22\xd5\xc4\xf8\x8d\x53\xc1\x4a\x07\x6a\x98\xf5\ +\xfe\xef\xfa\xca\xcf\xb6\x35\x66\x94\x00\x48\xf4\xcd\x19\x5e\xb6\ +\x88\x1f\x4f\x10\x4e\x4d\x78\x23\xed\x49\x4a\x59\x82\x5a\x3d\xb7\ +\xab\xd5\x1e\x43\x1c\xd5\xec\x83\x19\x47\xf4\xb5\x63\xcf\xbe\xb1\ +\x42\xd4\x11\x58\xbf\x12\x05\x64\x14\x42\x54\xc0\xc3\xca\xa1\xaa\ +\xd8\xb0\x82\x6a\xb5\x3c\x98\x20\x5d\x3c\xaf\x89\x02\x9a\x5a\xd3\ +\x1c\xc0\xb8\xff\xab\xcb\xce\x07\xb8\x3d\xca\xfe\x09\xdb\xcf\x5a\ +\x82\x3e\xe1\x75\x80\x7e\x80\x83\x34\x26\x21\x00\x3a\x9a\x1c\xc8\ +\x3a\x7c\x49\x05\xd7\xa1\x24\x3b\x84\x65\x3a\xd2\x06\x95\xb2\xa9\ +\xd3\x0b\xd9\x36\x93\xff\xaf\xb9\xda\x00\x2b\x44\xf3\xfa\x3b\xb1\ +\x63\xd7\x70\xdc\x15\x4c\x66\xf1\x80\x48\xc3\x14\x43\x3f\xd9\x64\ +\x42\x0a\x61\x77\x67\x05\xfb\x87\xab\x71\x17\x32\x11\x62\x42\x07\ +\xbf\x27\x64\x1a\xf9\x00\xb4\x26\xae\x50\x0a\x11\xc1\xd3\xa1\x7e\ +\x0e\xf6\x75\xb4\x70\xe5\x4c\x01\x18\x09\x78\xf5\x8c\x13\x80\xa8\ +\x04\x4c\xf6\xe5\x11\x8a\x94\x26\x9a\x84\x09\x20\xd5\x72\xc9\xb0\ +\x80\xe5\x7b\x6d\x95\x0c\xe3\xd5\x5c\x94\x00\x30\x16\x1e\xd5\x83\ +\x17\x5e\x1a\xb0\x9f\x09\x02\x48\x11\x8d\xcb\xa9\x77\x3d\x41\xde\ +\xc1\x9c\xbb\x48\x15\xeb\xed\xae\x60\x68\xb8\x1a\xd2\x5a\x02\x95\ +\x96\x20\x96\x4c\x80\x1d\xa0\x12\x58\xa5\xbc\x83\x17\xd4\x3c\xeb\ +\x80\x00\x4a\x34\xd0\xae\xa9\xfb\xbe\xbd\x66\xe7\xe8\x8c\x13\x00\ +\xe2\xd8\x9e\x6b\x17\x82\x69\x99\x4f\x0f\x2a\x98\xa3\x0e\x1e\x01\ +\x45\x84\x66\x54\x32\x57\xa9\x1b\x84\x67\x56\x57\x05\xfb\x86\xc6\ +\x23\x54\x71\xe9\xc2\x3e\xec\xd9\x37\x8e\xad\x2f\xef\x17\x9e\x78\ +\x9c\xb8\x91\x40\x93\xef\x06\x26\x52\xc2\x9e\xcf\xaf\xc3\x67\xbb\ +\x3b\x85\x1f\x50\xec\x3f\x28\x34\x15\x45\xda\x41\xbf\x5a\xf5\x7f\ +\x36\x03\xbd\x31\xaf\x2f\x14\x7c\x78\x14\xd0\xd2\xbe\x9c\x6f\x00\ +\xc6\x41\x53\xff\x93\x12\x00\xed\x89\x91\x46\x47\x92\xb0\xc3\xd1\ +\x44\x14\xc8\xa2\x81\x3c\x12\x2c\x42\x42\x40\xb9\x94\x60\xac\x96\ +\x7b\xfb\x3c\x77\x76\x27\x76\xee\x1e\x81\x5c\x8e\xa5\x34\xc1\xdb\ +\xce\x38\x06\xbf\x7a\xe0\xc5\x90\xe3\x97\x5d\xbc\x18\x22\xde\x17\ +\x6d\x26\x19\x31\xc2\xa7\x63\x35\xdf\xdb\x5d\xc6\xe0\x50\x15\xc4\ +\xa1\x15\x8d\x14\x1c\x2a\xf4\x09\xe2\x03\x81\x02\x19\x97\x9b\xc2\ +\x8f\x90\xf5\x53\xbe\xe0\x83\x3d\xe2\xa7\x10\x43\xc3\x09\x4d\x6d\ +\xf6\x6f\xea\x34\x80\xec\xa9\xa3\x43\x18\xed\x1d\x24\x2d\xd2\xc4\ +\x8c\x82\xf3\x87\x18\x94\x71\x0c\xdd\xb1\xba\xff\xdc\xb1\x0b\x7a\ +\xf0\xe2\xb6\xa1\xe0\x9c\xd9\xbf\xd3\x4e\x9a\x8b\xfd\x23\x35\x3c\ +\xf6\xcc\xcb\x02\xfa\x2d\xe6\x1b\x20\x4a\xc1\xd0\xd4\x67\xc8\x0b\ +\xb0\x7d\xda\xdb\x55\xc1\xe0\xf0\xb8\x75\x3f\x0a\xde\xbf\xf0\x33\ +\xb8\x60\x4e\x5e\xe5\x1d\xfb\x88\xcc\xf8\xe9\x02\xf3\x47\xb2\x7e\ +\xdc\xfb\x00\x1e\xfa\xf6\xad\x3b\xf7\xcd\x48\x01\x70\xed\x55\xa1\ +\x85\x2f\xe0\x3b\x6e\xe9\x82\xdd\xd4\xde\x19\x04\x0a\xf5\x7b\x56\ +\x40\x0c\xd4\x1b\x8a\x34\x3a\xdb\x4a\x58\xbc\xa0\x17\x8f\x3c\xbd\ +\x33\x52\xc5\x49\x92\xe0\xe2\x0b\x8f\xc3\xed\x6b\x37\x62\x68\xa4\ +\x2a\xfa\x0a\x86\x46\x90\x3e\xf2\xd0\x1c\x5d\x4b\x73\x33\x2f\x81\ +\x99\x31\xab\xa7\x1d\xfb\x86\xc6\x6d\x85\x31\x0a\xfd\x85\x74\x94\ +\xa3\x00\x5e\x7d\x6f\xa8\x07\xbe\xba\xfc\x54\xcd\x98\xab\x34\x89\ +\xe4\x0f\x47\x36\x5f\x41\xc6\xfe\x46\x3b\x30\xe8\x5a\x1c\xe4\x31\ +\xc9\x30\x50\x30\x81\x04\x99\xc2\xb7\x5a\x9b\x20\x37\xcf\x3a\x36\ +\x0d\x6e\xc2\x3a\xda\x32\x8c\x8e\x35\xa2\xd5\x7c\xde\x8a\xa3\xf1\ +\x9b\x87\xb7\x98\xea\x1d\x1d\x6c\xfe\xd1\x47\x76\xe3\xac\x53\x8f\ +\xc2\xf5\xb7\x3d\x8d\x5c\xa9\xd8\x19\x05\xc7\x31\xbd\xc8\x54\x86\ +\xf2\xef\x50\xdc\x49\xcc\xe8\xed\x32\x26\x80\x85\x23\xe9\x78\x0c\ +\xae\x65\x2d\xb8\xc8\x0c\xd2\xaf\xc6\x5c\x5e\xa6\xb5\x09\x25\x15\ +\x62\x1b\xef\x78\x7f\x1c\xc5\xfe\xe6\x71\x96\xe2\x86\x19\x2b\x00\ +\xd2\x01\x93\x84\x4e\x09\xe7\xa2\x10\xc7\xcb\xfa\x7e\x16\x95\xbc\ +\x60\x42\x67\x7b\x09\x23\xe3\xf5\x28\x9b\xb8\x60\x6e\x17\x4e\x39\ +\x6e\x0e\x6e\xba\x73\x03\x98\x55\x94\xe9\x7b\xeb\xe9\xc7\x60\x76\ +\x6f\x3b\xae\xbb\xf5\x29\xd4\x6d\x9a\x98\x25\xff\x4b\x3a\x7c\x5c\ +\xec\x25\x68\x26\xd0\x61\x57\x7d\xbd\x15\xec\xdb\x5f\x15\xe9\x04\ +\xe9\x0b\xe8\x02\xb0\x15\xce\xf5\xc7\x7b\xaf\xfc\x8f\xea\x81\x4b\ +\x14\x93\x77\xf6\x42\xec\x2f\x52\xbf\xd2\x09\x34\xdf\xfb\xc9\x6f\ +\xae\xde\xf1\xf2\xcc\xd5\x00\x7a\x02\xdb\xab\x39\x66\xe3\xca\x49\ +\x8f\xec\xab\x8e\x85\x82\x35\xba\x3b\x32\x8c\x8c\xd5\x45\x1f\x5f\ +\x73\xce\x77\x9c\xbd\x10\x1a\x8c\x5f\xae\x7d\x51\x5c\xc3\x68\x98\ +\x55\x17\x2e\x45\x5f\x77\x05\xff\x7a\xd3\x63\xd8\xb9\x77\xa4\x09\ +\xa1\x8b\x00\x22\xc8\xeb\x8a\xaa\x32\xd6\xa8\x94\x32\x64\x29\x61\ +\xc4\x12\x43\x9a\xa8\x65\x02\xf7\xe0\x26\x1e\xe2\x2b\x7a\xff\xc7\ +\x33\xf3\x31\x5a\x3b\x98\x97\xa0\x2c\xe8\xa3\x58\xb0\x7f\xbc\xfa\ +\x27\x07\xfe\x5c\x87\x43\x30\x26\xd9\x27\x50\xb4\x5c\xd7\x11\x3c\ +\x18\x11\x42\xe2\x92\x2c\xc8\xd2\x7b\xaf\xae\x7b\x3a\x2b\xd8\x3f\ +\x5c\x43\x33\x6f\x0f\xb8\xe4\x5d\x27\x60\xd3\xb6\x21\xdc\xfb\x87\ +\xcd\x41\x88\x6c\xf4\x70\xd1\xf9\x6f\xc0\xd9\xa7\xcc\xc7\xbf\xdd\ +\xfc\x38\x6e\xbb\x6f\x23\x86\x86\x6b\x05\xe8\x17\x71\xf9\x5a\x41\ +\x8d\xbb\xef\x36\xbb\xb7\x1d\x7b\x2d\xca\xe8\x23\x06\x14\xc8\x2d\ +\x51\x24\xf3\x1f\xcc\x08\x12\x7d\xdc\xf3\xfb\x74\xa1\xfa\x57\x64\ +\xfc\xb8\x50\x01\x0c\xe0\xfa\x19\x2d\x00\x31\xf7\x3f\xc6\xdb\xe3\ +\xb0\x8b\x43\xf5\x8f\x24\x6e\x4a\xcf\x5a\x6b\xf4\x74\x96\x30\x34\ +\x5a\x6b\x6a\x0c\x4d\x30\xfd\x02\x2e\x7f\xff\xc9\x78\xfc\xb9\xdd\ +\x78\xe0\xb1\x6d\x85\x89\x00\x4e\x3b\xe9\x48\x7c\xee\x92\x15\x48\ +\x13\xc2\x77\x7e\xba\x1e\xd7\xae\x7e\x02\xeb\x1e\xdd\x8a\x97\x77\ +\x0f\xa3\xe1\xd2\xcc\xba\x50\xb7\xc8\x92\xab\x08\xf4\xf5\xb4\x61\ +\x60\x70\x3c\x08\xb6\x33\x21\x45\x6d\x50\x20\x8e\xbc\x32\x60\xca\ +\x1f\x77\xf6\x9f\x25\xdd\x5b\x4b\x3a\x98\x7d\x0e\x5b\x05\xc4\x78\ +\xe1\xea\x35\x3b\x5e\x3a\x14\x02\x30\xe9\xd2\xb0\x50\xa6\x85\x28\ +\x65\x1a\x52\xa8\x8e\x87\x61\x5a\xbb\x91\xac\x22\x12\xa4\x8e\xde\ +\xae\x0a\x06\x86\xaa\x51\xa2\x95\x74\xa0\x18\x76\xb6\x95\x70\xd9\ +\xfb\x4e\xc6\x0f\x6e\x79\x0a\xd5\x5a\x8e\xf3\xcf\x5c\x18\x55\x25\ +\x77\x77\x96\xf1\xae\x95\x8b\x71\xfe\xe9\xc7\x60\xe3\xd6\x41\x3c\ +\xbf\x79\x10\x0f\x3f\xfd\x32\xf6\x0c\x8e\xa1\x5c\xca\xd0\xdf\xdb\ +\x86\xfe\x59\x1d\xe8\xe9\x2a\xa3\xbf\xaf\x03\x5d\x1d\x25\xcc\xea\ +\x69\xc7\xec\x9e\x36\x94\xcb\x19\x66\xf7\xb6\x61\x60\x68\x2c\xd8\ +\x7f\x47\x72\x91\x4d\x23\xa2\xb6\x37\xfc\x8a\x4d\xc2\xd6\x7d\x75\ +\xf9\xc2\x5c\xf3\xd2\x5c\xf0\xfb\x79\x02\xb4\xaf\x18\x19\x30\xd3\ +\x4f\x70\x88\xc6\x01\x0b\xc0\x8a\xcb\x7f\x46\x8f\x5c\xfb\x51\x8e\ +\xcb\xb3\xc8\x27\x74\x7c\xef\x4d\x0a\xdd\x37\x1c\xa3\x26\xea\xfe\ +\x6d\x27\x7c\x56\x57\x19\x43\x23\x35\x28\x65\xea\x04\x5c\xc6\x99\ +\x7c\x0f\x50\x8d\xde\xae\x32\x3e\xb5\xea\x14\x5c\x7f\xfb\x06\xec\ +\xde\xb7\x01\x17\x5f\x70\x9c\xe9\x2e\x86\xd0\x2d\xa4\x5c\x4e\x71\ +\xd2\x92\x7e\x9c\xf4\x86\x7e\x5f\xcb\x37\x32\x56\xc7\xc0\x50\x1d\ +\x7b\x86\xc6\x30\x36\x9e\x63\xfb\xae\x61\xec\x1b\xaa\x62\x68\xc4\ +\xf4\x27\x4c\x12\xd3\x2d\x64\xde\x11\x9d\xb6\xa6\x91\x3d\x93\x88\ +\x84\xc3\x6b\xe4\x3c\x09\x5d\x49\x5f\xa1\x44\x4c\x33\xff\x45\x14\ +\xef\x4b\x87\xcf\x69\x03\x01\x0a\xb9\xb4\x30\x08\x3f\x9a\xf1\x02\ +\x10\x1c\xa3\x98\x3e\x15\x76\xe8\xb2\xd4\x2d\xdb\xa5\xc3\xd5\xeb\ +\xc1\xe7\xfc\xc9\xd7\x04\x30\x9b\xc6\x50\xdd\x1d\x25\x0c\xec\xaf\ +\xa2\xbf\xb7\x3d\xea\x31\x40\x5a\xfb\x56\xf0\x9d\x6d\x19\x2e\x7f\ +\xff\xc9\xb8\xf5\xbe\x8d\xf8\xdf\x37\x3d\x8e\x4b\xfe\xec\x04\xcc\ +\xe9\xeb\xb0\x5a\xc8\x34\x71\x90\x3b\x83\x10\x13\xba\xda\xcb\xe8\ +\x6a\x2f\x63\xe1\xfc\xee\x88\xb9\xec\xbe\x4e\xad\xa1\xb0\xe1\xc5\ +\x01\xdc\xff\xc8\xb6\x60\xaa\x3c\x8e\xe1\x3a\x8f\x3a\xa1\xd4\xbe\ +\xe6\x50\xbf\xb2\x09\xb8\x54\x56\xfb\xb8\xd5\xce\x5c\xac\xfd\x0f\ +\x59\x41\x80\xb6\x5e\xb3\x66\xc7\x86\x43\x25\x00\x93\x76\x02\xd9\ +\x93\x26\x0b\x4d\x9a\x7d\xfa\x57\x46\x80\xc1\x99\xd2\xae\xc6\xdf\ +\x95\x90\x33\x30\xb7\xaf\x03\xbb\xf6\x8e\x58\xb0\x48\x07\x14\xae\ +\xe0\x73\x94\x52\x60\xd5\x05\xc7\xe1\xcd\xcb\xe7\xe1\xdf\x7e\xf1\ +\x04\x1e\x7e\x7a\x67\x84\x4d\x14\x59\xc0\x11\x77\x40\x17\xf6\x14\ +\x62\xa0\x92\x65\x58\xba\xb0\x0f\x03\x43\xe3\xf1\x0e\x25\x02\x37\ +\xe0\x42\x2d\x80\x4f\x46\xfd\x49\xf0\x67\xd9\x91\x0c\x9c\xa2\x94\ +\xf6\xec\x5e\x1f\xe7\xb3\x28\x00\x2d\x94\x85\x33\xf8\xa7\x38\x84\ +\x63\x52\x02\xe0\xbd\x7b\x8d\x18\x27\xb7\x0e\x8d\x0f\xbd\xa4\xdb\ +\xaf\x39\x70\xf0\x39\x74\xf6\x22\xd6\x98\xd7\xdf\x8e\xed\xbb\xc7\ +\x04\x5c\xac\x51\xa4\x92\x93\xf0\xce\x4f\x3b\x69\x2e\x3e\xf9\x81\ +\x65\x78\xf0\x89\x1d\xf8\xf1\x6d\x4f\x63\x70\xb8\x16\x0b\x67\x81\ +\xb6\x1e\xe1\x02\x88\xc3\xd8\xb6\x4a\x86\x34\x25\x41\x10\x8d\x4b\ +\xd5\x64\x42\xc9\xb7\xa0\xff\xf7\x34\x00\xe3\xa3\xb2\xc3\x97\xeb\ +\xf8\xa1\x0a\x36\xdf\x33\x83\xad\x53\x9a\x80\x7e\x78\xd8\x08\x40\ +\x91\x69\xc3\x36\x29\x14\xe7\xe0\x45\x3c\xae\xe3\x2d\x58\x64\xe7\ +\x0e\x06\x63\xe1\xbc\x6e\x6c\xda\xbe\xbf\x40\xcf\x16\x9d\x40\x8a\ +\xe1\x18\x80\x39\xb3\x3a\xf0\xe9\x55\xcb\x71\xe4\xec\x0e\x7c\xf7\ +\x86\x47\xb1\xf6\x91\xad\xb6\xa0\x24\x0e\xd5\xc8\xd2\xad\xb8\x40\ +\xee\x94\x80\xd5\x9c\x59\x1d\xd8\x33\x30\xda\x5c\x4c\x28\xca\x01\ +\xb9\x90\x02\xff\x77\x02\xe4\xcb\x95\xcd\x87\x44\x59\x3f\x16\xa5\ +\xde\x4c\x88\xf3\x03\xbc\xfb\xdb\x6b\x76\x3c\x76\x18\x69\x80\x42\ +\x4c\x2c\x2c\x41\x53\x51\x86\xdf\xed\xa3\x50\x58\x2a\xfa\xf0\x1f\ +\x33\xb7\x0b\x7b\x86\xc6\x30\x32\xda\x28\x9c\x7b\x22\x44\x11\x5e\ +\xe8\x4a\x69\x82\x0b\xcf\x5c\x88\x4f\xad\x5a\x8e\x17\xb7\x0e\xe1\ +\xbb\x37\x3c\x86\xe7\x5e\xdc\x1b\x69\x0e\x9e\xe0\x3c\xc5\xba\xc1\ +\xfe\xbe\x36\xbc\xbc\x77\xd4\x68\x25\x14\x8e\x2d\xd4\x21\x86\x84\ +\x56\xf3\xf8\xc3\xd7\x96\xcf\x62\xc6\x99\x91\x93\x67\x1f\x7b\x00\ +\x88\x63\x5a\x98\x32\xc4\xcf\x1b\x71\x88\xc7\xe4\x35\xc0\x04\x9b\ +\x38\x21\xca\xa6\x8a\x8c\x61\x30\xd4\xb1\xdf\x60\x8f\x4b\x13\xc2\ +\xb2\xc5\xb3\xb1\xee\xc9\x1d\x91\x7a\xe6\x28\xa9\x13\xa8\x67\x51\ +\xb1\x11\x18\xfd\xbd\x15\x5c\xfa\xde\x13\xf1\xae\x95\x0b\xf1\xeb\ +\xdf\x6f\xc6\xf7\x6e\x7c\x1c\xcf\x6e\xda\x63\x2a\x8c\x64\x16\x87\ +\x8b\xf4\x2f\xf3\xe5\xe6\xf6\x75\x60\xf7\xc0\x98\x60\xb2\xf1\x84\ +\xe6\x22\x22\x9f\x4c\x30\xea\x8a\x3f\x24\x5b\xbc\x28\x4d\x9e\xf4\ +\x11\x65\xfc\x54\x9c\x10\xc2\x21\x48\xfe\x4c\xb1\x00\x08\x67\x4a\ +\x3c\x77\x36\x3d\xf0\x05\x5c\xd0\xa0\x0b\xa4\xcc\x78\x77\x0e\x80\ +\x71\xde\x8a\xf9\x78\xec\xb9\x3d\xd8\xf2\xf2\xfe\xa6\x62\x4e\x44\ +\x84\x4f\x51\xb4\x29\x84\x89\x01\x2c\x3d\xa6\x0f\x9f\xfd\xc8\x29\ +\x58\xf9\xc6\xf9\xf8\xcd\x43\x5b\xf1\x9d\x9f\x3e\x82\xfb\x1f\xdd\ +\x86\xd1\xf1\x5a\x93\x42\x91\x1b\x56\xce\xed\xef\x34\x1a\xc0\xfa\ +\xf8\xc5\x5d\x47\x3c\xdf\x40\x28\xa6\x3f\x31\xae\x88\x52\xbd\xac\ +\xa3\x4e\x1f\x2c\xfb\xfe\xb0\xcb\x10\xf2\xd0\xd5\x6b\x76\xac\x3b\ +\xd4\x02\x90\x4d\x56\x00\x8c\xe0\x72\x54\x1f\x20\xf6\x5e\x88\x5b\ +\xc9\x90\x2c\x22\x65\xff\x69\xd3\x20\xca\x60\x06\x5d\xed\x65\xbc\ +\x67\xe5\x42\xfc\xf2\x77\x2f\xe1\x33\x17\x2f\x03\x25\x62\x8f\x60\ +\x1b\x5a\x86\xf3\xc6\x60\x8d\xa7\xf6\x5b\xd6\xf8\x29\x6f\xe8\xc7\ +\xb2\x25\xb3\xb1\x79\xe7\x30\xd6\x3f\xbb\x0b\xbf\x79\x78\x2b\xfa\ +\x7b\xdb\xb0\x74\xd1\x6c\xcc\x3f\xa2\x13\x9d\x1d\x25\x74\x77\x94\ +\x51\xa9\x64\xe8\x68\xcb\x30\xa7\xaf\x0d\x2f\xef\x19\x85\xd6\xa6\ +\x9e\x21\x94\x13\x30\x26\xee\x0b\xd5\x2c\x01\x0f\x7f\xfd\x94\x8e\ +\x6a\x5d\xbf\x35\x57\x1a\xa1\xf8\x53\xb4\x7d\x65\x16\x85\xa0\x41\ +\x28\x08\xf8\x05\xa6\x61\x4c\xb2\x5b\xb8\x8e\x8b\x32\xe4\x24\x15\ +\x5a\xfa\x15\x7b\xf8\xf9\xb2\x0b\x32\xea\xd0\x14\x89\x98\x8e\x50\ +\x27\x2d\xee\xc3\xfa\x0d\xbb\xf1\xd0\x33\xbb\x70\xe6\xc9\x73\x43\ +\xd1\x89\x6f\x0a\x15\x77\xff\x04\x01\xf5\x5c\x61\xfb\xae\x51\x28\ +\x0d\x74\xb6\x97\x70\xc4\xac\x76\x64\x59\x82\x04\x84\xc5\xf3\x7b\ +\xb1\x78\x7e\x0f\x1a\x39\xe3\xa5\x1d\x43\xd8\xb2\x6b\x04\xeb\x9f\ +\xde\x89\x91\x6a\x8e\x91\xb1\x3a\x6a\x75\x85\x5c\xd9\xf6\x74\xf5\ +\x1c\xd7\xdd\xf2\x14\x2e\xbb\x68\x99\xe8\x06\x4f\xb6\x8c\x41\x70\ +\x1d\x6d\x15\xf3\x86\x35\x9f\xe5\x13\xde\xf7\x3d\xff\xc9\x5a\x83\ +\x3f\xe0\x3d\xfe\x62\xf9\xb7\x5f\xf1\x5a\x84\x84\xda\xa9\xff\x1f\ +\x1c\x76\x02\x70\xfa\x67\x6e\xa1\x87\xfe\xf5\x22\x26\xdb\x97\x9f\ +\x34\x47\x37\x8d\x51\xa8\xf4\x29\xf4\xe4\x0d\x5b\xf3\xc5\x2d\x66\ +\x99\x81\x77\xbf\x79\x21\xbe\x7f\xeb\xb3\x38\x69\x51\x1f\xba\x3a\ +\x4b\xa0\xa6\xfd\x9b\x43\xbb\xb9\x97\xf7\x8e\xe3\xba\xdb\x9e\xc5\ +\xac\xee\x0a\xca\xa5\x04\xc3\xa3\x0d\x0c\x8f\x37\xb0\x68\x7e\x37\ +\x4e\x3b\x61\x0e\x4e\x5c\xd2\x0f\x30\xa1\x94\x11\x8e\x5b\x38\x0b\ +\xc7\x2d\xec\x83\x68\x37\x0a\x02\xa1\x9e\x2b\xe4\x4a\xe3\xfa\xdb\ +\x9f\xc5\x92\xa3\x7b\xe3\x56\x37\xa1\x60\x28\xae\x09\x71\xea\x26\ +\x96\xeb\x2b\xe2\x66\xcf\x21\xc7\xaf\x5c\x03\x28\xc8\x5e\xc0\x04\ +\xcd\x7a\xfc\xea\x35\x3b\xef\x39\x0c\x35\x00\x84\x87\x1f\xb6\x5d\ +\xa2\x89\x7a\x08\x52\xdc\xc2\x3d\x84\xd1\xa2\x5b\x58\x68\xc5\x8c\ +\xd9\x3d\x15\xbc\xe9\xf8\x23\x70\xe7\x83\x9b\xb1\xea\x82\x25\x85\ +\x04\x5b\xdc\x81\xf4\x57\xeb\x36\xe3\xfc\xd3\x17\xe0\xf4\x93\xe6\ +\xfa\xf7\xeb\x0d\x85\xe7\x36\x0f\xe2\xde\x87\xb7\x61\xfd\x86\xdd\ +\x78\xdf\xb9\xc7\xa2\xb7\xab\x12\xb0\x7d\xa1\x9e\x98\x4c\x6d\x42\ +\xb9\x94\x62\xd1\xfc\x1e\xd3\x8a\xc6\x3b\x9c\xae\x84\x4d\x88\x70\ +\xb4\x61\x94\x96\xd8\x7f\x49\x69\x7e\x97\x52\xb2\xcb\x07\x7c\xfa\ +\xd7\xe1\x00\x4e\x18\x54\x00\xba\x6e\xc5\x34\x8d\xc9\x6f\x1b\x37\ +\x41\xa7\xd0\xa6\xdd\xc0\x81\x08\x1f\xf0\x25\xe5\x51\x81\x88\x6e\ +\x0a\xdb\xce\x7b\xd3\x7c\x6c\xdb\x3d\x8a\xa7\x36\x0e\x34\x77\x22\ +\xf5\x04\x50\x60\xf3\xcb\xc3\x58\x76\x6c\x5f\xc4\x0c\x2a\x95\x52\ +\x2c\x7f\x43\x3f\x3e\x7d\xf1\xc9\x98\xd7\xdf\x81\xff\xf3\x8b\x27\ +\xb1\x6b\x60\x4c\xf0\x43\xb8\xa9\x73\x19\x98\x71\xd4\x9c\x2e\x6c\ +\xdf\x35\x62\x90\x4a\x99\xc9\xb4\x4e\x21\x15\xaa\x9d\xe2\x7d\xaa\ +\xf9\x3d\x0c\x24\xaa\x50\xda\xc5\x1e\xea\x95\x6d\x60\x2c\x27\x40\ +\xe3\xa0\xd5\xfd\x1d\x22\x01\x88\x09\x13\xa1\x7d\x3f\x47\xd0\x6f\ +\xd4\xdd\x4b\x54\xe8\x72\x71\x0b\x76\x31\x39\x59\x4a\xf8\xe8\x85\ +\xc7\xe2\x8e\x75\x9b\xb1\x6d\xf7\x48\x04\x29\x3b\x04\x71\xbc\xda\ +\x40\x42\x40\x5b\x39\x8b\x68\x5f\x64\xdf\x4f\x29\xc1\x05\xa7\x1f\ +\x8d\x77\x9e\xbd\x10\xd7\xdd\xf6\x8c\xa1\x9a\xcb\x50\xae\x50\x09\ +\xb4\x60\x4e\x27\xb6\xed\x1a\x11\x99\x4c\xf6\x65\x6f\xec\xe9\xef\ +\xa1\xb2\x28\x26\xa0\xd0\x27\x95\xe8\xf1\xaf\x7c\xa3\x47\x0b\xff\ +\x42\xb4\x7c\x55\xfe\xd2\x79\x77\x7b\x76\xc7\x61\xad\x01\xe0\x7a\ +\xef\x21\x90\x2c\x74\x81\x47\x17\x31\x81\x74\xa1\x46\x4f\x6a\x87\ +\xc2\x8a\x3c\xb2\xaf\x03\x17\xbd\x65\x11\x7e\x7a\xd7\x0b\x78\x61\ +\xcb\xbe\x48\x89\x00\xc0\xde\xc1\x71\xcc\xee\xae\xc4\x39\x00\x8d\ +\x98\xdc\xc9\xc0\xf2\x25\xfd\x78\xdb\x8a\x05\xf8\xe1\x6d\xcf\x62\ +\x6c\xbc\xd1\x2c\x8c\x76\x92\xbb\x3b\xca\x48\x13\xc2\xc0\xfe\x6a\ +\xb4\x69\x64\x14\xda\x16\xf8\x8e\xcf\xae\xfe\x94\x93\xcb\xf7\x2a\ +\xe1\xe0\xc5\x24\x8f\xa2\x06\x30\xab\x9f\x81\x3b\xbe\x72\xe3\x56\ +\x35\x5d\x02\x90\x4d\x85\x02\xf0\x5b\xbd\x8b\xd6\xb0\x28\x3c\x94\ +\x7d\x7b\x5c\xd9\x36\xc0\xa2\x95\xaf\xec\xf6\x4d\xd1\x46\x4f\xc7\ +\x1d\xd3\x83\x0f\x5d\x70\x2c\x7e\xf1\x9b\x4d\x38\x72\xf6\x1e\x2c\ +\x5f\x32\x1b\x7d\x3d\x65\x28\x06\xee\x5b\xbf\x1d\x27\x2c\x9a\x65\ +\x85\x90\xfc\xb1\xd1\x3e\x41\xf6\xf1\x8a\x13\xe7\x60\xd7\xe0\x38\ +\x6e\xba\xfb\x79\x5c\xfa\x9e\x13\x05\x77\x21\xe0\x01\x44\xc0\x82\ +\xb9\x5d\xd8\xb2\x63\x08\x7d\xdd\x73\xa3\x8d\x06\xa4\x9f\xc2\x51\ +\xa7\x0b\xe0\x81\xaf\x2e\x7f\x47\xae\xb8\xa2\x35\x45\x9d\x3d\x7d\ +\x25\xb0\x0a\x65\x72\x71\xdd\xff\xf4\xa9\xff\x29\xd1\x00\x67\x7d\ +\xee\x36\x6a\x6e\x01\xa7\xa3\x7a\x81\x18\x2c\x2a\xd4\x09\x0a\xed\ +\xc0\xb6\x7b\x98\xe4\x0e\xba\x15\xba\x68\x6e\x27\xfe\xf2\x43\x27\ +\xe3\xf8\x85\x3d\x78\x61\xeb\x20\xee\x58\xb7\x05\x77\xff\x61\x2b\ +\x16\xce\xeb\xc2\xca\xe5\x73\x25\x32\xd5\xcc\x46\x16\x6a\xe3\x9d\ +\x67\x1d\x83\x5a\x5d\x61\xdd\xe3\x3b\xe0\xda\xbf\xb0\x8e\xfd\x96\ +\x85\xf3\xba\xf0\xd2\x8e\x61\xe1\x67\xf0\x04\x4d\x23\xe0\xe1\x6d\ +\x80\x91\xf5\xcc\xbe\xcb\x51\xcf\x43\xea\x97\x7d\xc1\x27\x8b\x94\ +\xaf\xf2\x20\x24\xa3\x92\xd1\xad\xd3\x29\x00\x53\xb6\x73\x28\x4b\ +\xd0\xa4\xb8\xb5\x5b\xa1\xa3\x38\x91\x68\x2f\xa3\xe1\x6b\xf2\x7d\ +\x34\xe1\xba\x85\x89\xed\x5d\x08\xc6\x27\x38\xed\xf8\x23\x70\xda\ +\xf1\x73\xe2\x5d\x42\xdc\x31\x3e\xca\x98\xa8\x85\x8b\xb9\x58\x42\ +\x84\x0f\xbe\x6d\x09\xbe\xbf\xfa\x69\xcc\xeb\xef\xc0\xe2\x05\x3d\ +\x32\x41\x08\x22\xc6\xa2\x79\xdd\x78\xf8\x99\x5d\x70\xbd\x82\x09\ +\xf1\x16\x32\x61\x4f\x84\xf0\x6f\x6d\xff\xbe\x50\xdc\x01\x16\xdd\ +\x3f\xe3\x34\xb0\xec\x07\x08\xe0\xee\xaf\xff\xbf\xed\xd5\xc3\x5a\ +\x03\x18\xff\xaf\x50\x34\xa9\x9b\x09\x95\xec\x6b\x02\x74\x44\xdd\ +\x8e\x3a\x8c\x16\xda\xc6\x46\x09\xa0\xc2\x36\xef\xa1\x2b\x18\x22\ +\xa7\x32\xea\xe4\xe9\x95\x51\x5c\xe3\xd7\xdf\x53\xc1\x47\xde\x7e\ +\x1c\x6e\xbc\xfb\x05\x6c\xda\xbe\x1f\xb2\xc1\x00\x33\x30\xaf\xbf\ +\x03\x23\x63\x75\xb3\x79\x65\x13\xb7\x00\x85\x46\x54\x1a\x8d\xd1\ +\x61\xb0\xd2\xc8\xed\x7e\x3e\x26\xb6\x47\x94\x04\x92\x4c\x20\xf7\ +\x3a\x08\x3f\xc0\x34\x8f\x29\xdb\x3d\xbc\xd8\x88\x31\x2e\xd5\xd2\ +\xa2\x6a\x98\x82\x43\x88\xf8\xc6\x06\x26\xae\x8e\x88\x1c\x11\x4b\ +\x38\xaa\xea\x71\xe7\x7c\xa7\x02\x00\x00\x08\x33\x49\x44\x41\x54\ +\xe1\x64\xa1\x16\x51\xcb\xce\x9e\x71\x93\x67\x17\xc6\x2d\x9a\xdf\ +\x8d\x0f\x9d\xbf\x04\x37\xdf\xbd\x11\x8f\x3d\xb7\x5b\x60\xfb\x1a\ +\x04\x60\xf1\xfc\x1e\xfc\x71\xeb\x60\xc4\x61\x28\x66\x27\xed\x46\ +\x65\xa8\x0d\xee\xf6\x5b\xba\x68\xb0\xe8\xf8\x1d\xe2\x7e\x2d\x4c\ +\x81\x8b\xff\x13\x9a\x1e\xf8\x77\xca\x05\xe0\xec\xbf\xba\x83\x80\ +\x98\xf1\x2b\x5d\x75\x6e\x8a\xf7\x11\xa5\x64\x7d\x53\x08\xd7\x5b\ +\xb8\x40\xc0\x90\xc4\x12\x29\x28\x4e\x18\xb4\xac\x44\x9a\xa0\x01\ +\x45\x91\xd9\xe3\xd8\x3c\xc7\x1e\xd5\x83\xcb\xdf\x7b\x22\x7e\xbb\ +\x7e\x3b\x6e\xbe\x7b\xa3\xed\x11\x60\xf2\x15\x4b\x8f\xe9\xc5\xf3\ +\x9b\x07\x45\x88\x28\x48\x26\x82\x70\x02\x30\xf2\xe1\x7d\x4d\xac\ +\x9f\xc8\xeb\x8f\xd2\xbe\x9e\x20\xb2\xee\x5b\xb7\xec\xdc\xff\x9a\ +\xd1\x00\xa2\xa2\x23\xf4\x0d\x63\x1d\x75\xfe\xf2\xf1\x34\x8a\x1d\ +\xb7\x78\x82\x96\x2e\xe2\x6c\x1c\x57\x1a\x71\x21\xbc\x24\x88\x7d\ +\x0a\x99\xc1\xa4\x63\x2d\x81\xd0\xf0\x51\xa6\xa9\x99\x81\xd9\xbd\ +\x15\x7c\x76\xd5\x32\xf4\x76\x96\xf0\xdd\x9b\x9f\xc0\xaf\x7f\xff\ +\x12\x46\xc7\xeb\x58\xba\x70\x16\x5e\xd8\x32\x68\x3a\x96\xb3\xb6\ +\x5c\x86\x42\x9d\x01\x18\x6a\x7c\x14\x2a\x57\x21\xc1\xa3\x03\xed\ +\x9b\xe5\xee\x1f\xb2\xfb\x87\x71\x8f\xa6\x5d\xfd\x4f\xb1\x09\x40\ +\x5c\x39\xab\xe3\x8d\x1e\x9b\x2a\x6e\x38\xee\xb8\x18\x57\xf1\x40\ +\xa8\xd9\x58\xe5\x73\xb1\xd9\xa3\x83\x53\x29\x16\x26\x9e\x80\x04\ +\xe2\x0b\x47\x0b\x98\x43\x96\x26\x78\xfb\x19\x47\xe3\x3f\xaf\x3a\ +\x05\x23\x63\x0d\xfc\xf3\x0d\x8f\xe3\xbe\x47\xb6\xa3\xad\x92\x61\ +\xe3\x96\xc1\xe6\x96\xf1\x22\xd2\xa9\xef\xdf\x5b\x70\xf4\x04\xc9\ +\x33\xaa\x01\x90\x55\xc0\x8c\x34\xa5\x1b\x5f\x53\x02\xf0\xe6\xbf\ +\xb9\x8b\x34\xc7\x54\xab\x89\xba\x81\xc4\x25\xe2\x08\xa1\x56\x01\ +\x26\x0e\x50\x72\x2c\x60\x1c\xb5\xa3\xd5\x62\xaf\x80\x62\xd8\x29\ +\x7a\x04\x30\x0a\xa5\xe3\x85\xbd\x0e\xec\x39\xba\xbb\x32\x7c\xf0\ +\xbc\x63\xf1\xb9\x0f\x2f\x47\x5b\xc9\xb4\xa8\x79\x74\xc3\x1e\xc1\ +\x3b\x28\xee\x80\xca\x68\x8c\xec\x0b\x1b\x3a\x8a\xd5\x1f\x55\x01\ +\x15\x84\x80\x18\x8f\x7e\x73\xf5\x81\x6f\xf7\x3a\x23\xc3\xc0\x90\ +\x1d\x16\x5b\x30\xda\xc6\xcc\x61\x63\xee\xc0\xf2\xf7\xc9\x1c\x9f\ +\x08\x0c\x89\x7e\x16\x3c\x02\x8e\x12\x4a\x64\x7c\x04\xdf\xf6\x2d\ +\x84\x63\x72\x83\x40\xcf\x49\x70\xfb\x15\x12\x47\x6d\x02\xc9\x6f\ +\x75\xcf\x51\x4f\x40\x27\x32\x5d\x1d\x25\xbc\xed\xf4\x05\x38\xe7\ +\x8d\xf3\xf0\xf8\xf3\x03\xa8\x55\x35\x2a\x95\xd4\xe7\x38\xdd\xd7\ +\xd7\xf5\x2a\x74\xa3\x61\xda\xba\x22\xf4\xfa\x89\xc3\x3e\xab\xf6\ +\x95\xd8\x03\x80\x71\x1d\x66\xc8\x48\xa6\xf2\x64\x2b\xbf\xf0\x2b\ +\x6a\xea\x19\x5c\xb4\xf7\x28\x42\xc4\x88\xdb\xcc\xfb\x10\x0f\x4d\ +\xdb\xd0\xa1\x50\x6f\xe8\x4a\xb8\x83\x1e\x90\x1d\x3d\x85\xf3\x28\ +\x37\xe3\x13\x34\x33\xdd\x54\xf3\x17\xf3\x0e\xcb\x69\x8a\x33\x4e\ +\x9c\x83\x4a\x99\xe2\x96\x78\xf6\xb3\x8d\xe1\x01\x8f\xed\xab\x02\ +\xe7\x9f\xe5\x36\xaf\x96\xc4\x64\x27\x1f\x59\x9a\x5c\x3f\x53\x04\ +\x20\x9b\xea\x13\xb2\x66\x53\xb5\x29\x2a\x6b\x49\xee\x1c\x46\x1c\ +\x53\xa9\x58\xb2\x7d\x44\xe7\x51\xb9\x5a\x21\x5e\x93\x84\x0c\x96\ +\x1c\x24\x08\x38\x9a\x45\x55\x4f\xd0\x00\xf1\x0e\xb3\x61\x3f\xe0\ +\xc2\xce\x90\x31\xd7\x87\x10\x9d\xdf\x78\x92\x46\x83\x34\x46\x06\ +\x9b\xfb\xfd\xc9\xd5\x0f\xfb\x27\x01\x20\x60\xc3\xb7\x6f\xd9\xbe\ +\xed\xb5\x2b\x00\x30\xc4\x10\x4d\x13\xa0\x71\x76\x21\xc5\x3d\xfe\ +\x59\xf0\x05\xc4\x56\x72\xb6\xc1\xb4\x6b\x49\x4b\x32\xac\xb4\x02\ +\x46\x92\x78\x52\xa8\x4d\xf4\x42\x20\x3a\x93\xb2\xd8\xdb\x38\x10\ +\x58\x28\x62\xf8\xc8\xa6\xd7\x2c\xb6\x9d\xa7\xc2\xaf\x54\x8d\x06\ +\x54\xa3\x8e\xbc\x50\xde\x25\xb7\x7c\xf1\x59\x41\xd1\x00\x92\x99\ +\x7f\x84\x19\x34\xa6\x5c\x00\xce\xb9\xf2\x6e\xba\xff\x9b\x17\x8a\ +\x25\x57\xd0\x06\x44\xd1\x6e\xa2\x5e\x18\xfc\x73\x9e\x70\x5b\x5e\ +\x57\x27\x28\x97\x27\x87\xbc\x11\x5c\x3b\x57\x5f\x74\x4a\x2e\xa1\ +\x24\x72\x51\x7e\xbb\xba\x60\x89\x64\x7f\x61\x92\xff\x44\xda\x85\ +\x71\xea\xa5\x37\x44\x5f\xe9\xfe\x7f\x58\xfe\x3f\x34\xe3\x2b\x81\ +\xe1\x2b\x26\x5d\xc5\x6c\x20\x2d\x48\x21\x53\xb1\xdd\xeb\x8c\x16\ +\x00\xa9\x8b\x59\x6c\xba\xe8\x56\x31\x17\x76\xfb\x66\xd9\x6c\xde\ +\xb1\x49\x29\x6c\x25\x6f\x19\xa3\x9e\x7b\x08\xb9\x62\xed\xe3\xa8\ +\x5d\x75\x00\xec\x0d\x6b\x27\x11\x99\xbe\xc0\x41\x8b\x51\x49\x02\ +\x4e\xbb\xe2\xe6\x57\xb9\x05\x08\x7f\x42\x15\xd5\x3d\x17\xb6\x7f\ +\x29\xec\x06\xce\xa0\x97\xae\xbe\x75\xc7\xc6\xd7\x87\x00\x08\x7c\ +\xc8\x51\xb8\xb4\x48\xfd\x7a\x73\xef\x6c\xaa\x20\x89\xfa\xed\xd9\ +\x20\xd2\xba\x91\xd0\x68\x5b\x04\xca\x91\x2f\xcb\xd0\x20\x4a\x84\ +\x59\x09\xbd\xff\xc3\x96\x2f\x84\xd3\x3f\xf5\xf3\x49\xed\xf7\xf2\ +\xe0\x55\xcb\x8f\xca\x15\x9f\x14\xaf\x7e\xd1\xff\x3f\x8a\x06\x82\ +\x36\x00\xf8\x27\x98\x61\xe3\xa0\x08\xc0\x39\x5f\xbc\x97\xee\xff\ +\xa7\xf3\xa3\x6d\x84\x4c\x32\x8e\x3c\xc5\x5a\x56\x08\x73\x93\x13\ +\x61\x0d\x03\x91\xdf\xd7\x57\x58\xf6\x38\xfc\x23\x1b\x7f\xca\x7d\ +\x88\x10\xd7\xf4\x9f\xf1\x99\xd5\x34\x95\xbf\xaf\xde\x68\x5c\xc2\ +\x48\xa3\x6e\x9f\xf2\x71\xb1\x07\xb0\x13\x04\xa2\x99\x13\xfe\x1d\ +\x64\x0d\x80\xb0\x25\x7b\x64\x61\xed\x23\x7b\x37\x98\xa2\xe0\x3c\ +\xda\x7a\xbe\x79\xbb\xf7\xd0\xe7\x1f\x89\x55\xf8\xb2\x15\x3c\xc7\ +\x6e\xfe\x19\x9f\x5d\x43\x07\xeb\xb7\x1d\x71\xd4\xa2\xcb\xf6\xee\ +\xde\x05\x55\xaf\x16\x56\x7d\x73\xaf\x3f\x15\x48\x44\x3b\xaf\x5e\ +\xb3\xf3\xa9\xd7\x8d\x00\xbc\xe5\x6f\x7f\x43\xbf\xfb\xc6\x5b\x3d\ +\x6a\xe2\x1d\x2c\x4d\x51\x38\x17\x7a\xfc\x33\x62\xbe\x3f\xc9\xfd\ +\xc5\x10\x55\x66\x30\x47\x0e\x20\x03\x38\xeb\x2f\x7f\x49\x87\xe2\ +\x86\xd5\xd6\x7e\xb1\x3f\x57\xbc\xe2\xc8\xa3\x17\xe3\x77\xf7\xde\ +\x03\xa5\x09\xb9\x06\xea\x0d\x8d\x5a\x5d\x1b\x40\x08\x05\x73\x60\ +\xd4\xff\x0d\x98\x81\x23\x3b\xa8\x67\xf7\xd1\x9c\x44\xdc\x10\x39\ +\x5f\x9e\xcc\x21\x1d\x33\x11\xb7\x73\xb4\xe1\x73\xac\x19\xce\xfe\ +\xfc\x1d\x74\xa8\x6f\x58\x3d\x57\x17\xaa\x3c\x07\x88\x71\xf4\xa2\ +\x45\xf8\xe3\xc6\xcd\xe8\xea\xac\x60\xc5\x1b\x8f\xc4\xa6\xcd\x7b\ +\xb1\x61\xd3\x20\x5c\x4b\xd8\x5c\x45\x84\xd0\x1f\xbe\xee\x04\xe0\ +\x2d\x5f\xfa\x2d\xad\xfd\xc7\xb7\xfa\x06\xf1\x72\xb3\x10\xe1\xf0\ +\xdb\x49\xd7\x82\x6b\x2f\x26\xdb\x39\x84\x56\x4b\xbc\xf9\x6f\xee\ +\xa2\x69\xbd\x63\xcc\x8a\x39\xdf\xa5\x54\x3e\xb7\xa7\xb7\x1b\x27\ +\x9c\xb8\x10\xb3\x67\x77\xa2\xd1\x18\xc7\xbc\x23\xdb\xf1\xcc\x8b\ +\xfb\xd0\x50\x66\xdb\xfb\x9e\x2e\x60\xc7\x5e\x00\x4c\xfb\xae\x59\ +\xb3\xe3\xa1\xd7\x9f\x06\xb0\x09\x02\xf6\x3a\x3f\xb4\x8e\x29\x04\ +\x0b\xc1\xbd\x8b\x76\xf6\x32\x1e\xc1\xca\x2f\xfc\x8a\x66\xca\x0d\ +\x23\xe8\xf5\x60\xdd\xcb\x5a\xa1\xab\xab\x1d\x95\x0a\xa3\x51\xaf\ +\x21\x57\x39\xfa\x7a\x32\xf4\xcf\x6a\x43\xa5\x9c\xe3\xa8\x23\x80\ +\x79\x7d\x39\xee\x7e\x58\xe1\xc1\x67\x0e\x6e\xc3\xe7\x19\x2d\x00\ +\xe7\xfe\xd7\xb5\xb4\xf6\x6b\xe7\xb2\x43\xf5\x02\xda\x2b\x60\x61\ +\x01\xeb\xba\x32\xb1\x73\xae\xbc\x9b\x66\xe2\x0d\x6b\xe4\x8d\x4e\ +\xa5\x79\x37\xb3\x3e\x3a\x57\x0d\x68\xad\xc0\xac\xc0\x5a\xa1\xda\ +\x68\xe0\xcc\xe5\x9d\xc8\x1b\x55\xa8\xbc\x86\xc1\x61\x85\xa5\x47\ +\xe7\xd0\x8c\x6b\xff\xef\x3d\x33\x53\x00\x92\x43\x71\x91\x73\xff\ +\x6e\x2d\x15\x77\x18\x25\xe8\x09\x1b\x40\x9c\xf3\xc5\x7b\xe8\x9c\ +\x2f\xce\xcc\xc9\x07\x80\x24\xc9\xf6\x30\xe7\x9b\x0c\x77\x41\x19\ +\x16\xb0\xdd\xdf\x90\x59\x43\x29\x05\xad\x15\x34\x2b\x00\xba\xde\ +\xd9\xa6\x7f\xfb\xb9\x7f\xd9\xfd\xdb\x99\xfa\x7b\x0e\xe9\x8d\x5e\ +\x7b\xd5\xb9\xa1\x44\x98\x02\x87\xff\xdc\x2f\xdd\x37\x63\x27\x7c\ +\xa2\xb1\xeb\xd6\xcb\x36\x28\xd5\x38\x3e\x57\x35\xa8\xbc\x6a\xff\ +\xea\xc8\x73\xf7\xbc\x06\x95\xd7\xa0\x75\xfd\xb6\x3c\xaf\xfd\xcf\ +\x95\x7f\xbb\xef\xa1\x96\x00\xd8\x71\xdf\x55\x6f\x61\x22\xc2\xb9\ +\x7f\xb7\xf6\xb0\x9a\x74\x37\x86\x7f\xfd\x99\x9e\xb1\xf1\xf1\x7f\ +\x52\x79\xed\xd3\x41\x00\xea\xc8\x1b\x66\xd2\x95\xb2\x02\xa0\x6a\ +\x8f\x27\xa4\x2e\x3f\xed\xaf\x0f\x6d\xcf\x9f\x19\x2f\x00\xaf\x85\ +\xb1\x63\xf5\xc7\xbe\xc5\xba\xf1\x85\xbc\x51\x45\xae\xaa\x26\x2b\ +\x98\xd7\xa0\xf3\xaa\xd1\x02\xaa\xbe\x33\x6f\x8c\x7f\xec\xac\x2b\ +\x77\xdc\x3b\xd3\x7f\x4b\xd6\x9a\xce\x03\x89\x04\x75\x43\xeb\xbc\ +\xc6\xac\x2b\x86\xbc\xa2\x00\x56\x60\xb3\xe1\xcb\x33\x04\xfe\xd6\ +\xe1\x30\xf9\x87\xcc\x09\x7c\x6d\x4d\xfe\xd7\x09\xac\xd6\x32\xeb\ +\x8a\xb6\xde\x3f\xb3\x61\x0e\x6b\xad\x01\xf0\xdf\xb3\x56\x3f\x3e\ +\x5c\x7e\x4f\x4b\x03\xbc\x5a\x9b\x49\x5f\xe2\x6d\x3f\x5f\x55\x66\ +\xd6\x39\xb4\xca\x18\x0a\xac\x35\x98\xf5\x3e\x66\xfd\xdd\x37\x7e\ +\xee\xf9\x5f\x1c\x4e\xbf\xa7\xa5\x01\x0e\x44\x0b\x68\xec\x2a\x67\ +\xd8\x95\x24\xb0\x55\x4c\xba\x41\xc0\xf7\xf2\x46\xed\xaa\xc3\xed\ +\xb7\xb4\x34\xc0\x01\x8c\xf5\xcf\xed\x79\xfa\x85\x6d\x83\xb3\x56\ +\x9e\xd8\x8d\x63\xe6\x10\x46\x72\xfe\x97\x24\xa5\xaf\x9f\xfe\xd7\ +\x2f\xee\x6f\xdd\x9d\xd7\xc1\x78\xcb\x29\xfd\xc7\x57\x4a\xe9\x53\ +\x00\xd4\x05\x6f\xea\xbb\x97\x9f\x78\xdb\xac\xd6\x5d\x79\x3d\x99\ +\x80\xfd\x9f\xed\x98\xdd\x5d\x7a\xf0\xe8\x39\x95\xd5\x6f\x5f\x31\ +\xfb\xac\xd6\x1d\x79\x1d\x8e\x13\x8f\xe9\xfc\xd1\xe5\xef\x9c\xb7\ +\x90\xf7\x7e\xa4\xe5\x47\xbd\x3e\xc3\xc1\x5b\x2a\xad\xbb\xd0\x1a\ +\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\ +\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\xad\xd1\x1a\x87\xc7\xf8\xff\x96\ +\x1a\xe5\x8e\xbc\x46\xb7\xf4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ +\x42\x60\x82\ +\x00\x00\x38\xa6\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x06\x1d\ +\x0e\x3a\x1e\x51\x23\xc2\x06\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x77\x94\x5d\xd7\x75\xe6\xf9\x3b\ +\xf7\xde\x97\x73\xa1\x0a\x40\x55\x21\x10\x91\x48\x04\x40\x8a\x19\ +\xa2\x48\x31\x67\xca\x96\xec\x6e\xc9\x9a\xb6\x5b\xf6\x2c\x7b\xba\ +\xa5\x96\x67\x8d\x48\xcd\x58\x96\xe3\x52\xcf\x9a\xb6\xbb\x67\x64\ +\x59\xb2\xe5\x19\x5b\x2d\x59\x96\x64\x5b\x52\x4b\x22\xc1\x04\x30\ +\x8b\x04\xc0\x4c\x01\x20\x89\x1c\x0a\x55\x85\x8a\x2f\xd5\xcb\xef\ +\x9e\x33\x7f\xdc\xf0\xce\x7d\x55\x60\x10\x01\x8a\x84\x70\xb8\x8a\ +\xf5\xea\xe1\xc5\xbb\xf7\xd9\xfb\xdb\xdf\x0e\x07\xce\xad\x73\xeb\ +\xdc\x3a\xb7\xce\xad\x73\xeb\xdc\x3a\xb7\xce\xad\x73\xeb\xdc\x3a\ +\xb7\xce\xad\x73\xeb\xdc\x3a\xb7\xce\xad\x5f\x8a\x25\xde\xad\x37\ +\xfa\xc2\x17\xbe\xa0\xbc\xdb\x5f\xfa\xd2\x97\xc4\xb9\x4b\xff\x4b\ +\xa2\x00\xe3\xe3\xe3\xbe\xe0\xbf\xfc\xe5\x2f\x9f\xf2\x71\xe7\x94\ +\xe2\x2c\x54\x00\x5d\xf8\xde\x52\x28\x50\x9d\xbf\xfe\xea\xaf\xbe\ +\x72\x4e\x21\xce\x76\x05\xc8\xe7\xf3\xe4\x72\x39\x47\xfc\xca\x51\ +\x02\xe1\xeb\x81\x73\x1f\xee\xfd\x5f\xfd\xea\x57\xcf\x29\xc3\xd9\ +\xa6\x00\x77\xdf\x7d\x37\x42\x08\x56\xaf\x5e\xcd\x9a\x35\x6b\xe8\ +\xeb\xed\x25\x9d\xc9\x30\xaf\xa7\x07\xd3\xb2\x50\x4a\x05\x2c\x84\ +\x50\xa0\x14\x7c\xed\x6f\xbe\xf6\x86\xaf\x7f\x4e\x31\xde\x47\x0a\ +\xd0\xbd\x92\xc9\x24\xd9\x4c\x86\x54\x3a\xc3\x8a\x15\xcb\x59\xb7\ +\x6e\x1d\xd9\x5c\xce\x91\x7c\x97\xab\x50\xae\x89\xf0\xf4\xe4\xeb\ +\x5f\xff\xfa\x39\x65\x78\xbf\x28\x80\x52\x8a\x7b\xee\xb9\x67\xd6\ +\xbf\x29\xa5\xb4\x1f\x47\xe0\xa6\x61\xb0\xfa\xfc\xf3\xb9\xec\xd2\ +\x4b\x59\xb9\x72\x25\x96\x65\x39\x1f\x52\xb8\xba\xa0\xf4\xdf\x12\ +\x81\xe0\xef\xfe\xee\xef\xce\x59\x87\xf7\xac\x02\x8c\x8d\x29\x05\ +\x01\x05\x50\x00\x52\xe1\xff\xa7\x94\xfb\xb7\xbb\xd3\x95\x77\x3f\ +\xe4\x72\x39\xd6\xac\x59\xc3\x92\x25\x4b\xc8\x66\xb3\xf4\xf5\xf6\ +\x91\xce\xa4\x35\xab\x80\xaf\x11\xd2\xfd\xfd\xf7\x7f\xff\xf7\xe7\ +\x5c\xc6\x7b\x45\x01\xc6\xc6\xc6\x14\xba\x02\x78\x3b\x3e\x20\x6c\ +\x50\x4a\xba\x8a\xd1\xb9\xad\x5b\x07\x50\x58\x96\x49\x26\x9d\x21\ +\x9e\x4c\x32\xd0\xbf\x90\x0d\x1b\x36\xb2\x76\xed\x1a\x5f\x11\x02\ +\x38\xc2\x77\x23\x20\x94\xe2\x1f\xbe\xf1\x8d\x73\x0a\xf1\x8b\x50\ +\x80\x93\x63\x63\x4a\xa0\xb8\xe7\x9e\xcf\xe3\x6c\x7c\x85\xf0\x84\ +\x2b\x3b\x16\xc0\xf1\xf7\x8e\xb0\xa5\xec\x08\x54\x21\x11\x8e\x81\ +\x40\x29\xe9\xe0\x00\xa9\x90\x74\xa2\x86\x9e\x5c\x8e\x4b\x2e\xb9\ +\x84\x4b\x2e\xbe\x98\x4c\x36\x87\x30\xc0\x10\x86\xe3\x36\x54\x37\ +\x96\x70\x9e\xf8\xcd\x6f\x7e\xf3\x9c\x32\xbc\x2b\x0a\x70\x72\x4c\ +\x81\xe2\xf3\x9f\xff\xbc\xbf\xa3\x01\xa4\x94\xce\x3b\x4b\x90\x4a\ +\x6a\x96\x40\x05\x76\xb4\x8f\x0f\x5c\xe1\x4b\xd5\xb1\x22\x40\x47\ +\x89\x34\xeb\xb2\x6a\xd5\x2a\x56\xad\x5a\x4d\x5f\x5f\x2f\x7d\xbd\ +\x7d\x2c\xec\x5f\x80\x65\x85\xdc\xe7\x38\x6f\xaa\x10\xfe\x7b\xfe\ +\xe3\xb7\xbe\xf5\x4b\x1d\x69\x9c\x61\x05\x38\xa9\xf0\x2c\x80\x72\ +\x84\xed\x0b\x0b\xd5\xc1\x02\x3e\x10\x04\x25\x65\x40\x01\xbc\x9d\ +\xee\x29\x8d\x67\x3d\x82\x8f\x71\x84\xe9\x28\x93\xbb\xdb\xa5\x24\ +\x9e\x48\x90\x4a\xa5\x48\xa5\x52\xac\x5d\xbb\x96\x8b\x2e\xba\x88\ +\x79\x3d\x3d\xbe\x25\xe8\xc4\x1b\x22\xa8\x58\x0a\xbe\xf3\x9d\x7f\ +\xfa\xa5\x50\x86\x33\xac\x00\xa3\x4a\x29\xf8\xfc\xe7\xef\x71\x77\ +\x72\x47\x60\x52\xc7\x04\x01\x21\x3a\x6e\x42\x4a\xd9\xb1\x18\x1d\ +\xa6\x08\x25\xa5\x6b\xd6\x05\x12\x57\xe0\xba\x72\xb9\xff\xae\x5c\ +\x6b\x21\x95\x9a\xa5\x50\xeb\xd6\xaf\xe3\xca\x2d\x57\xb2\x76\xcd\ +\x5a\x84\x10\x98\xa6\x89\x61\x18\x1d\x9c\xe2\x38\x2a\xff\x79\xdf\ +\xfd\xee\x77\xcf\x5a\xeb\x70\x46\xbf\xc0\xe8\xc9\x93\x0a\x37\x0c\ +\xd4\x01\x9d\xe3\xe7\x95\xbf\x53\xa5\x0b\xd6\xa4\x06\x12\x3d\xeb\ +\x10\x70\x07\x2e\x06\xd0\x79\x01\xe5\x09\xd9\x17\xb4\xc4\xff\x53\ +\xc9\x80\xa2\x79\xd6\x44\x0f\x3d\x73\xb9\x2c\x6b\xce\x77\x22\x8d\ +\x5c\x2e\xc7\xa2\x45\x83\xf4\xe4\xe6\x69\xd6\xc1\x07\x0f\x3e\xb0\ +\xfc\xe7\xef\x7d\xef\xac\x71\x19\x67\x56\x01\x46\x47\x95\x42\x71\ +\xcf\xdd\xf7\xb8\xe6\x5d\xb9\x4c\x9f\x72\x77\xac\x00\xa9\x1c\xaf\ +\xec\x2b\x80\x2b\x30\xa1\x50\x76\x47\x0c\xd2\x77\x0d\xae\x60\x03\ +\xe8\xdf\x05\x90\x7a\x64\xe1\x3d\x1e\xcf\x65\x28\x90\x60\xe3\xfb\ +\x9a\x40\x44\xa2\x94\xc2\xb2\x2c\x12\x89\x04\xf1\x78\x9c\xc1\xc1\ +\x45\x5c\x7c\xc9\xc5\x6c\xde\xb8\x51\x73\x5b\x04\x08\x29\xe7\x73\ +\x3a\xcf\xff\xfe\xbf\x7e\xff\x7d\xa9\x10\x67\x56\x01\x46\x1c\x05\ +\xb8\xfb\x9e\x7b\xe6\x30\xf7\x2a\xe8\x16\xd0\x76\xb3\x2b\x2c\xa9\ +\xa4\x7f\xa1\x7d\x81\x4b\x39\x2b\x8c\xf4\xac\x4a\x10\x40\x4a\xd7\ +\x35\xe8\x20\x11\xff\xfe\x8e\x25\x50\x7e\xa4\xd0\xf9\x2c\x2a\x10\ +\x8d\x64\x73\x59\x2e\xbf\xec\x72\x2e\xbb\xec\x32\x7a\xe6\xf5\x60\ +\x1a\x26\x56\x28\xe4\x5e\x3c\xc7\x1d\xe9\xd6\x0a\x05\x3f\xf8\xe1\ +\x0f\xde\x17\x56\xe2\x8c\x7e\x90\x91\x91\x11\x87\x0a\xfe\xdc\xdd\ +\x1d\xbf\x8c\xf2\x85\xe8\x47\x04\x01\xd3\xdd\x85\x11\x74\xe2\x48\ +\x67\x0f\xe7\xb8\xdf\xd1\x1b\x4d\xc0\x72\x0e\xc5\xf2\x05\xed\x1a\ +\x78\x29\x3b\xae\xc9\x7b\x6f\xef\x73\xea\x8f\xd3\xde\x7b\xd5\xaa\ +\x55\xac\x58\xb1\x92\xf9\xf3\x7b\x19\x1c\x1c\x64\xf1\xe2\x25\x84\ +\xc2\x21\x9f\x94\x52\x5a\xb6\xd3\x7b\xed\x87\x1e\x7a\x98\x6a\xb5\ +\xfa\x9e\x53\x88\x33\xab\x00\xc3\x23\x8e\x05\xb8\xfb\xee\x00\x06\ +\xf0\x04\x22\xbc\xd0\x4e\x0b\xe7\x7c\xe5\xe8\xda\x9d\x52\x69\xa6\ +\xbb\xdb\x7a\x74\xef\x68\x6d\xb7\x0b\xd1\xe1\x16\x7c\x17\x71\x8a\ +\xe7\xa1\x09\x7c\x6e\xb0\xea\x50\xd0\xbe\x12\x01\xd1\x68\x94\x44\ +\x2c\x4e\x2a\x9d\x64\xe3\xa6\x4d\x5c\x7e\xf9\xe5\x2c\x98\xbf\x20\ +\xa0\x08\xde\xf7\x0e\xba\x0f\xf8\xf1\x4f\x7e\xfc\x0b\x57\x86\x33\ +\xfa\x66\xc3\xc3\xc3\x7e\x32\x28\x08\xe4\x34\xdf\xad\xf9\x6b\xc7\ +\x1a\x78\x02\xf7\x84\xdd\x11\x9c\xaf\x08\x74\xf0\x83\xf2\x14\x42\ +\x0a\x1c\x34\xa1\xb9\x87\x00\xdb\xa8\x2b\x86\xea\xec\x70\x9d\x84\ +\xf2\xdf\x47\xb7\x40\x1d\x0c\xa1\x24\x9a\xe2\xea\x60\x54\x38\x8a\ +\x2b\xf0\x3f\xe7\xba\xf5\xeb\xb8\xea\xaa\xab\x58\x7d\xfe\x6a\x22\ +\xe1\x08\x91\x70\x04\xd3\x32\x3d\x7e\x32\xf0\x5c\x50\xdc\x7b\xef\ +\xbd\xbf\x10\xeb\x70\xc6\x15\x40\xa1\xb8\xfb\x73\x9f\x43\x2a\x5c\ +\x56\x4f\x6a\x3c\xbe\x73\xa1\x95\x74\x19\x3f\x74\x53\xae\x09\x91\ +\xce\xee\x0b\x28\x8f\xec\x98\x67\x49\xd0\xbf\x63\x2b\xa4\x08\x9a\ +\x7c\x5c\x76\x51\x49\x81\x12\x2e\x46\xe8\xe2\x1d\x3a\xa1\xa4\x86\ +\x3d\x3c\x2e\x42\x57\x2c\x98\xc3\x25\xe9\x34\x76\xc7\xda\x65\x73\ +\x59\x56\xad\x5a\xc5\xe2\xc1\xc5\x2c\x58\xb8\x80\xe5\xcb\x96\xd3\ +\xb7\xa0\xcf\x0f\x61\x41\x75\x38\x0e\xe5\x90\x55\x5b\xb7\xde\xcf\ +\xf2\xe5\xcb\x01\xf8\xed\xdf\xfe\xed\x33\x26\x27\xeb\x4c\x2a\x40\ +\xc0\x04\x2a\xdd\x37\x76\x4c\x28\x9a\xc0\x55\x20\xc9\x13\x24\x66\ +\xa4\x92\x8e\xb6\x76\x3c\x81\xe6\xa7\xf5\xe7\xb8\xd7\x54\x04\x81\ +\x5d\x87\x53\x70\x93\x0e\x92\xa0\x20\xe9\x28\x15\x73\x80\x4c\xe5\ +\xbb\x20\xba\xac\x0a\x1d\x65\x71\x77\x94\xf3\xb7\xf4\x23\x84\xe9\ +\xa9\x69\x76\x4d\xed\x62\x87\xda\x81\x69\x98\xc4\x62\x31\xc2\xe1\ +\x08\xcb\x97\x9f\xc7\x15\x57\x5c\xc9\xa5\x97\x5e\x8a\xee\x1b\x94\ +\x82\x5b\x6f\xbd\x8d\xd7\x5f\x7f\xed\x8c\xbb\x00\xeb\xcc\xbe\xbc\ +\xea\x2a\xf6\x90\xbe\x32\x30\x87\x9f\xf7\x4c\xb8\x0e\xd6\x3a\xbe\ +\x9b\x0e\xdb\x17\x10\xca\xec\xf8\x7f\xae\x1d\xaa\x03\x32\xe8\x4e\ +\x3a\x75\x14\xab\x5b\x21\x84\xef\x76\x1c\xc5\x09\x2a\xb1\xa7\x89\ +\x22\xa8\x30\xfe\xef\x8e\x1b\x11\xee\x7b\xb4\xed\x36\xa5\x52\x19\ +\x28\x31\x31\x31\xce\xae\x5d\xcf\x22\xa5\x22\x97\xcb\x70\xe5\x15\ +\x5b\xb8\xf4\xb2\x4b\x58\xb5\x7a\x75\x80\x7b\x38\x93\xcb\x38\xb3\ +\xe2\xef\x20\x7d\x3d\xe6\x96\x6e\x98\x16\x08\xbb\x3c\x1a\x57\xa9\ +\x59\x24\x90\xf0\x4d\xbe\xce\x0c\x7a\x22\xf1\x14\x49\x04\x49\x1b\ +\xd5\x79\x0d\x6f\xe7\xbb\xf0\x41\x0b\x25\x35\x80\xa6\x2b\x8a\x1b\ +\x86\xa2\x04\x1e\x85\xa0\xfc\xf7\x50\x7e\x98\xe9\x7f\x27\x82\x58\ +\x83\x40\xae\x82\x8e\x4b\xf3\xc1\x0d\x01\x20\x0b\x8a\xe9\xe9\x02\ +\xf7\xdd\x77\x2f\x5f\xfc\xc3\x3f\x0a\x28\xf1\xfb\xda\x02\x08\xf4\ +\x5d\xa5\xd5\x82\x82\x7f\x31\xbd\x6b\x22\x7c\x21\x05\xd1\xb9\x2f\ +\x0b\xa9\x10\xee\x4e\x13\x1a\x48\x73\x4c\xaf\xf2\xa5\xec\xbf\xa6\ +\xc7\x25\xe0\xd3\x82\x1d\xd0\xa9\x11\x48\x81\x1d\xaf\x5b\x0f\xe1\ +\x2a\xdc\x2c\xc1\x2a\x82\x46\x4c\x79\x54\x00\xd8\x0e\x81\xd5\xe1\ +\x2b\x84\x1f\x35\xe8\x8a\xab\x7c\x1c\xd4\xa5\x54\x74\xa2\x85\x77\ +\x6b\x9d\x61\x0c\xa0\xef\x46\x8f\x7d\xeb\xec\x38\x1f\xb0\x21\x91\ +\x2e\xf8\xf1\x2f\x66\x60\xa7\x68\xb7\xbb\x5f\x5f\x31\x4b\x88\x3e\ +\x17\x20\x14\x42\xba\x56\x42\x76\x04\xdf\xbd\x63\x03\x69\x69\x82\ +\x78\x45\x75\xb9\x04\xa9\x14\xc2\x45\xee\x3e\xd0\x13\x1d\x96\x53\ +\x0f\x11\xe9\x76\x2f\x3a\x8c\xf0\x4d\xa4\xf4\x0b\x62\x84\xc7\x41\ +\x28\xde\x35\x25\xb0\xce\x30\x04\x08\x12\x40\x4a\xbb\xe0\x04\xc9\ +\x16\x2f\xe4\xd3\x13\x39\x7e\x05\x31\x6a\x56\x82\x47\x04\x5e\x5f\ +\xcd\xde\x65\x5d\x8a\xe3\xf8\x6f\xa1\xd5\x1c\x76\x95\xa8\x0b\xcf\ +\x9f\x78\x56\x43\x7f\x0d\xe5\x2b\x10\x3a\x26\xe8\x52\xa2\xd9\xb8\ +\x83\xc0\x67\x51\xaa\x8b\x46\xd6\xb2\x92\x01\xd7\xf1\xee\xc9\xff\ +\x0c\x5b\x80\x0e\xb6\xee\xfa\xf2\x68\x66\x59\xbb\x90\x01\x53\xa8\ +\x25\x6c\xb5\x42\x11\x7c\x25\x70\x90\xbe\x92\x4e\x9e\xc0\xb6\x6d\ +\x84\x10\x08\x21\x7c\x96\xd0\x8f\xb3\xdd\x0c\x9f\x1e\x9e\xa1\xba\ +\xcd\xbb\xc7\x06\x76\x14\xab\xf3\xef\x3a\xab\xe7\xd5\x13\x80\x12\ +\x41\x50\x88\x9e\x8e\xf6\x8a\x5f\xd0\x52\xdd\x74\x57\x2d\x69\x6e\ +\xc7\xcb\x86\x4a\xf5\x6e\x7a\x80\x33\x6d\x01\xdc\x22\x0c\xff\x3b\ +\x05\x59\x3e\xdd\x4d\x28\x7f\x97\xb9\x3e\xa0\x2b\x96\xee\xf0\x06\ +\xda\x45\x94\x8a\x76\xbb\xcd\xf0\xf0\x30\xcd\x66\x93\x64\x2a\x49\ +\x2a\x95\x22\x1a\x8e\x6a\x9e\x54\x6a\x3b\x5d\x63\x1f\x09\x0a\xdf\ +\xc3\x0c\x73\x85\x96\xba\xe6\x4a\xd5\xa9\x50\x55\x52\x78\xf1\x68\ +\x40\xc1\x7d\x0a\xda\x47\x9f\x9a\x45\xec\x0a\x6f\xbb\xcb\xd7\x84\ +\x93\xf3\x3e\x4b\x14\xc0\xaf\xbc\x91\x81\xf8\x5d\x79\xc4\x87\xd4\ +\xdd\x02\x01\x50\x36\x7b\x17\x2a\xed\x22\x76\xcc\x77\xbb\x6d\x53\ +\xab\xd5\x48\x24\x12\x24\x13\x49\x6a\x95\x2a\x53\x93\x53\x64\xb2\ +\x59\xa2\x91\x08\x42\x08\x4d\xb1\x3c\xc2\xa8\xab\x46\x40\x8f\x1a\ +\xf4\xb4\xb5\xd2\x43\x52\x2d\x6d\xed\xf3\x05\x6a\x4e\xda\x5a\x07\ +\x99\x7a\xe8\xaa\x5b\x37\xb4\xa4\x98\xfb\x20\x87\xb8\x0a\x5c\x89\ +\xf7\xb9\x02\x48\x14\x42\x04\x3b\x7f\x7c\x21\xea\xa1\xde\x5c\xbb\ +\x23\x10\x3a\x68\x60\x2f\xc0\xf8\x81\x61\x08\xda\xad\x16\xc9\x64\ +\x92\x25\x4b\x96\x70\xf9\xe5\x97\xf3\xe2\x8b\x2f\xb2\x67\xcf\x1e\ +\x0a\xf9\x3c\xe9\x54\x8a\x70\x24\x82\x61\x1a\x5d\xae\x41\x73\x50\ +\x1a\x32\xd3\x3f\xa3\xd0\x3a\x99\x5c\x02\x57\xf3\xed\x5e\x28\x18\ +\x0c\x3f\x03\x96\xa0\x1b\xd0\x6b\xce\x5d\x6a\x5c\x81\x52\x2e\x4d\ +\xaa\x57\x46\x9d\x0d\x18\x40\xcc\x91\x43\x57\x73\x30\x82\x1e\xe2\ +\xd7\xaf\x91\x4f\xf8\xb8\x75\x01\xaa\x9b\x29\x04\xda\xed\x16\xcd\ +\x56\x93\x56\xbb\x4d\x34\x1a\xa5\x5e\xaf\x53\x2c\x16\xf9\xd4\xa7\ +\x3e\xc5\x81\x03\x07\xd9\xb5\xeb\x69\xf6\xec\xd9\x4d\x3e\x9f\x27\ +\x1e\x8f\x11\x8d\xc6\x82\xb1\x84\x66\x4d\xa4\x74\x6a\x13\x11\x86\ +\x16\xa6\xe1\xe7\x08\x34\x9a\x5f\xab\x4d\x24\x68\xdd\x74\xf4\xd2\ +\x4d\x62\x09\x15\x00\xa6\x41\xf7\xa2\x66\x91\x58\x67\x47\x18\x18\ +\xc0\x46\x1d\x13\xdb\xf1\xbf\x52\xe3\x07\xbc\x1c\xbe\x03\xdc\x04\ +\x9d\x1a\xbf\x20\xbb\xd6\xf1\xd1\x85\x42\x91\xa9\xf1\x31\xb2\x96\ +\xc5\x4c\xa9\xc4\x8d\x37\xde\xc8\x23\x8f\x3c\xc2\xe2\xc5\x8b\x59\ +\xbc\x78\x09\x95\xca\x20\xd9\xec\x05\x1c\x38\xf0\x0c\xfb\xf7\xef\ +\x61\x7c\x7c\x82\x6c\x26\x4b\x34\x16\x05\x04\xcd\x66\x83\x46\xa3\ +\x81\x94\x12\x43\x18\x98\x96\x89\x69\x18\x08\xc3\xf0\x4b\xc4\x02\ +\x89\x23\xcd\x95\xf8\xda\xd3\x05\xf4\xe8\x62\x1f\x3d\x06\x14\x29\ +\x02\xa1\x6f\x37\x43\xa9\xa4\x13\x4e\xd2\x05\x84\xdf\xe7\x18\x80\ +\x40\x68\xa7\x5b\x03\x9d\x25\x53\x74\x13\x2c\xc1\x74\xad\x4e\xf0\ +\xf9\x17\x58\x2a\xaa\x95\x19\xd6\xc4\xe3\xcc\x4b\x26\x39\x16\x0a\ +\xb1\x6c\xd9\x32\x16\x2c\x58\xc0\x73\xcf\x3d\xc7\x4d\x37\xf5\x31\ +\x3e\xde\xcf\xd4\xd4\x0a\x36\x6e\xbc\x98\x0b\x2f\x7c\x85\x43\x87\ +\x76\xf0\xfa\xeb\xfb\x18\x1f\x1f\xf7\x85\xbb\x78\xf1\x62\xe2\xf1\ +\x38\xb5\x5a\x8d\x42\xa1\x40\xa5\x5a\xa5\xdd\x6e\x63\x08\x41\x24\ +\x1a\x25\x12\x89\x74\x5c\x90\x08\x96\x98\x3b\xd1\x80\x24\x68\x4e\ +\x82\x3c\x03\x52\x69\x89\x25\x8d\x75\xa4\xcb\x05\xe8\xc9\xa4\xb3\ +\x26\x0c\xec\x06\x58\x6e\xb6\xc4\x17\xbe\x6e\x36\x75\x57\xd0\x15\ +\x33\xeb\xdc\x81\x4e\xd0\xb4\x9b\x4d\x7a\xa2\x51\x6a\x8d\x3a\xcb\ +\xd7\xad\x25\x1a\x8d\xb2\x62\xc5\x4a\x5e\x78\xe1\x79\x4a\xa5\x02\ +\x7d\x7d\x8a\xe1\x61\x9b\xc7\x1f\x1f\xa0\xdd\x5e\x44\x6f\xef\x26\ +\x56\xac\xd8\xca\xc8\xc8\xb7\xd9\xbc\x79\x33\x1f\xbe\xf6\x5a\x16\ +\x2f\x5a\x84\x69\x18\xc4\xe2\x71\x84\x10\x14\x0a\x05\x8e\x1c\x39\ +\xc2\xee\xdd\xbb\xd9\xbb\x77\x2f\xe3\xe3\xe3\xc4\xa2\x31\x62\xf1\ +\x18\x86\x30\x5c\xdf\x7d\x0a\x21\xea\x7e\xdd\xa7\x80\x5d\xdd\x11\ +\xc1\x4a\xa8\x00\x2b\x84\x42\x6a\x5e\x41\x9c\x4d\x16\xa0\x93\xf2\ +\xd5\x76\x3f\x1a\x69\xa3\x82\xe0\x47\x2a\x27\x35\xac\x27\x5f\x82\ +\xc4\x4a\x27\xf6\x6f\xb5\x5a\x44\x2c\x8b\xe1\x66\x83\x95\xfd\x03\ +\xb4\xdb\x36\xb9\x6c\x96\x42\xa1\x40\xb1\x58\x20\x97\x6b\x72\xf5\ +\xd5\xa3\x6c\xdc\x68\x71\x62\x28\xcb\xd0\x89\x3e\x6c\xbb\x9f\xe5\ +\xcb\x97\xf3\x89\x4f\x7c\x82\x95\xab\x56\x12\x0e\x85\xb1\x4c\xd3\ +\x8d\xc1\x25\x0b\x17\x2e\x60\xe5\xca\x55\x5c\x79\xe5\x95\x0c\x0d\ +\x0d\xf1\xc2\x0b\x2f\xf0\xdc\xb3\xcf\x32\x74\xe2\x04\xa6\x69\x12\ +\x89\x44\x08\x59\x21\xbf\x7e\xd1\xab\x71\x0c\xec\x7a\x35\x3b\x51\ +\x85\x9a\x9d\xe1\xd4\x6f\x07\x73\x11\xa0\xce\x0a\x26\x50\xab\xb9\ +\x0f\xb0\x7e\x5e\x62\x47\x28\x3f\xa1\x23\xb4\x1d\xa1\xbc\x78\x5b\ +\xba\xb4\xb0\x6e\x09\xdc\xfb\x6c\xbb\x85\x68\xb5\x08\x03\x35\xdb\ +\x26\xe6\x82\x40\x61\x08\x9a\xcd\x26\xa5\x52\x09\xc3\x30\x1c\xff\ +\x6e\x54\x18\x18\x2c\x90\xcd\x8d\xb2\x6b\xd7\x2b\xf4\xf4\xf4\xb0\ +\x70\xe1\x42\x50\xd0\x6c\x36\x69\x81\xd3\x81\xea\xfe\x32\x0c\x83\ +\x4c\x26\xe3\x54\x0c\xaf\x59\xc3\x35\x57\x5f\xcd\x77\xbf\xf7\x3d\ +\x76\xee\xdc\x49\xb5\x5a\xc5\x30\x0d\x12\xf1\x04\x42\x38\xf5\x09\ +\xb2\x2b\xec\x0b\xe4\x14\x34\x4e\x40\xd2\x45\x2f\xab\x4e\x1d\x80\ +\xef\xee\xbc\xac\x95\x38\x5b\x2c\x80\x76\x51\x74\x02\x67\x16\x0b\ +\xa6\xb4\x74\xb1\x97\x37\x20\x58\x1c\xe2\xb1\x6f\x28\xb0\x6d\x09\ +\xb6\x4d\xb5\xd5\xa2\x06\xd4\x6a\x35\x1a\x8d\x3a\xad\x56\x0b\x21\ +\x04\x95\x99\x19\x22\x91\x08\x33\x33\x33\xd8\xb6\xc3\x15\x4c\x4d\ +\x4d\x50\x28\xec\x63\xf3\xe6\x8b\xb0\x2c\x8b\x56\xab\xe5\x0a\xbd\ +\x73\xb5\xf5\xdb\x08\x10\x08\xfa\xfb\xfb\x59\xbf\x7e\x3d\xe5\x72\ +\x99\x55\xab\x56\x71\xdf\x7d\x5b\xa9\x54\x2a\xc4\x63\xf1\x0e\x28\ +\xd4\x89\x4d\xff\x0f\xe1\x24\x87\xba\xbe\x67\x80\x31\x94\x1d\xa0\ +\xe8\xb1\xd1\xba\xd2\xbf\xcf\x31\x00\xc1\x5a\x7e\xcf\x07\xce\xba\ +\x28\xca\xcf\x8b\xf8\xf6\x60\x16\x08\xec\x38\x7f\x29\x9d\xc2\xd2\ +\x2a\xf0\x9c\x94\xc8\x6c\x96\xdd\x7b\xf6\x90\x4a\xa7\xa8\x54\xaa\ +\x98\xa6\xc9\x4b\xaf\xbc\x42\x2c\x1a\x45\x29\x45\xa9\x54\x62\x66\ +\x66\x86\x6c\x36\xcb\xe2\xc5\x4b\x59\xb9\x72\x25\x52\x4a\xbf\x1a\ +\xc8\x91\xb9\xf0\x7f\x77\x2b\x43\xdb\x6e\x33\x31\x39\x49\x7f\x7f\ +\x3f\x1f\xfb\xd8\xc7\xc8\xe5\x72\xfc\xc3\x3f\xfc\x03\xcd\x56\x13\ +\xcb\xb4\x4e\xd1\xd6\xd6\xc9\x40\x05\xaa\x8e\xd0\x29\xe2\x6e\x97\ +\xd0\x01\x0e\x4a\x9c\x15\x0a\x10\x20\xff\x83\x7c\x80\x17\xf6\x68\ +\x5f\x3c\x10\x05\xa0\xb1\x70\xc8\x00\x6b\xa6\x94\xa2\x56\xaf\x11\ +\x89\xc7\xd9\x78\xd9\x65\x5c\x78\xe1\x85\x3c\xfc\xf0\xc3\x3c\xfd\ +\xf4\x0e\x94\x92\x14\x8b\x45\x62\xb1\x18\xf1\x58\x9c\x68\x34\x4c\ +\xff\xc2\x7e\x56\xac\x58\x4e\x22\x99\x24\x1a\x8d\xd2\xd3\xd3\x43\ +\xb3\xd9\x74\x05\xac\xdc\xdf\x42\x53\x02\x47\x2b\xbc\x9b\x95\x4a\ +\x85\xe3\xc7\x8f\x73\xc1\x86\x0d\xd8\xb6\xcd\x96\x2d\x5b\x78\xed\ +\xb5\xd7\x78\xe2\x89\x27\xc9\xa4\xd3\x7e\xde\xdb\xc1\x03\xa2\xeb\ +\x7b\xca\xa0\x2d\x54\xce\x5e\xef\x60\x04\x81\x52\x76\x90\x7d\x14\ +\xef\x1e\x13\xf4\x2e\x85\x81\xcc\xca\x00\x7a\x05\x00\x5a\x1a\x48\ +\xdb\x11\x7a\xaf\x9e\x08\x90\x23\x52\x39\xfe\x7f\x7a\x3a\xcf\xe6\ +\x4d\x9b\xb8\xf5\xd6\x5b\x49\xa5\x52\x48\x29\xf9\xd9\xcf\x76\x93\ +\xcd\x66\xb9\xe6\x9a\x6b\xc8\x66\xb3\x98\xa6\x45\x4f\x4f\x8e\x58\ +\x2c\x86\x2d\x25\xa6\x61\x60\x9a\xa6\x0f\x20\x9d\x0e\x62\x81\x61\ +\xcc\xed\x02\xbc\xdb\x27\x4e\x0c\x51\x2a\x16\x19\x1c\x1c\xa4\xd5\ +\x6c\x82\x10\x5c\x7d\xf5\xd5\x3c\xf7\xdc\x73\x34\x5b\x4d\xc2\xa1\ +\x90\x9f\xc3\x50\x48\x2d\xa1\xa3\x50\x7e\x9b\xb2\xea\x28\xbb\x47\ +\x0d\xe3\x55\x41\x75\x6a\x23\xba\x01\xe4\xfb\xde\x05\x08\xa1\x02\ +\xb1\xb0\x5e\x19\xec\xed\x14\xc3\x30\xb0\x6d\xbb\x03\x02\x85\x0c\ +\xa0\xe2\x40\xac\x8c\xa2\xd5\xb6\x69\xb5\x5a\xac\x5e\xbd\x9a\x44\ +\x22\x81\x94\x92\xd5\xab\x57\xb3\x7c\xf9\x72\xa2\xd1\x28\xd2\xb6\ +\x41\x08\x2c\xcb\x44\x29\x45\xa3\xd1\x70\x94\xc7\x30\x68\x36\x9b\ +\x4e\x19\x94\x30\x5c\x6b\xaf\xed\xfa\x39\x14\x40\x4a\xc9\xde\x57\ +\x5f\x25\x99\x4c\x32\x6f\xde\x3c\x9a\x2e\xc6\x18\x1c\x1c\xe0\xfc\ +\x35\xe7\xf3\xca\x4b\xaf\xb8\x93\x4c\xd4\xac\xb1\x36\xbe\xca\xcb\ +\x4e\x07\xd1\xac\x2a\xe5\x59\xf4\xb4\x46\x7a\xbd\xef\x2d\x40\xa0\ +\x47\x3f\x98\x30\xf1\x2e\xd8\xbc\x25\x8b\x09\x25\x7b\x68\xd7\xcb\ +\xb4\xcb\x45\x9a\x95\x2a\xf5\x46\x83\x66\xb3\x05\xb6\xdd\x45\x04\ +\x39\xcf\x09\x99\x26\x21\x2b\xc4\xd0\xd0\x10\x9b\x36\x6d\x22\x14\ +\x0a\x03\x0a\xc3\x30\x68\x34\x9a\x3e\x82\x6a\xb7\xdb\x18\x86\x5b\ +\x7d\xa4\x14\xa6\x69\x82\x10\xd8\x4a\xa1\x64\x1b\x61\x88\x40\x53\ +\xa8\xae\x09\xc2\x41\x80\x94\xcb\x65\x0e\x1e\x3c\xc8\xea\x55\xab\ +\x09\x85\x42\x3e\xc8\x14\xc2\x60\xed\xda\xb5\xbc\xf0\xfc\x0b\x2e\ +\x63\x29\x02\x34\x70\xa7\x32\x48\x75\xed\x6e\x7c\x65\xf0\x72\x00\ +\x81\xc2\x14\x3d\xed\x7d\x36\xa4\x83\x03\x89\x9e\x00\x69\xe2\x88\ +\xf3\xfc\x6b\x6e\xa7\x69\x7c\x88\x91\x03\x8a\x7c\x7d\x0c\x15\x3b\ +\x4a\xbc\xf7\x30\xb9\xd0\x71\xec\xfa\x04\x63\x87\x8f\xf8\x51\x83\ +\x10\x20\x6d\x85\x30\x4d\xe6\xf5\xf5\xb1\x73\xe7\x2e\x6c\xdb\xe6\ +\xba\xeb\xae\xa3\xa7\xa7\x27\xd0\x51\x6c\x18\x06\xad\x56\x8b\x46\ +\xb3\xe1\x03\xb5\x7a\xa3\x4e\xb3\xd1\x24\x64\x59\x84\xc3\x61\x84\ +\x61\xf8\x3c\xbf\x65\x59\x44\x42\x61\x0c\xd3\x08\x60\x98\xd7\x5e\ +\x7d\x95\xca\x4c\x85\x15\x2b\x56\x60\xb7\x6d\x5f\xb1\xa5\x54\x54\ +\x66\x2a\x8e\x65\xb1\x25\xc2\xd1\x34\x0d\xbb\xa8\xae\x01\x15\xaa\ +\x53\xad\xac\x13\x61\x92\x39\x13\x5e\x67\x45\x18\xa8\x57\xfb\x06\ +\x0a\x26\x34\x66\xb0\xd5\x84\xa3\x87\x62\x34\x1b\x16\x4b\x2e\xc8\ +\x51\x9b\x59\x43\xa5\xa8\xb0\x43\x4d\x96\x5c\x54\x64\xe9\x25\x8f\ +\x31\x79\x74\x37\x33\xf9\x32\x96\x05\xf5\xd2\x34\xf5\x62\x89\x70\ +\x28\x44\x28\x6c\xb2\x73\xe7\x4e\x26\x27\x26\xb8\xe3\xce\x3b\x89\ +\x27\x12\x58\x86\x41\xa9\x54\xa2\x5c\x2e\x63\x48\x89\x85\xa0\x56\ +\xaf\xd1\xa8\x56\x49\x44\xc2\xc4\x42\x61\x0a\xcd\x26\xf5\x46\x03\ +\x25\x25\x91\x48\x84\x70\x24\x02\xe1\x30\x84\xc3\x44\x92\x49\x52\ +\xe9\x34\xf1\x58\x8c\x7a\xad\xc6\x9e\xbd\x7b\x19\x1c\x1c\x24\x97\ +\xcb\xd1\x6e\xb7\xfd\xb8\x7d\xcf\x9e\x3d\x3c\xfb\xec\xb3\x9a\xdb\ +\x98\x8d\xe8\x03\x3d\x89\x82\x4e\x53\x4c\x17\x59\xd4\x49\x30\x05\ +\x13\x4a\x67\x81\x05\xa0\x8b\xe9\xea\x28\xba\x07\x8e\x8f\x3d\xfb\ +\x20\xe7\x5d\x52\xc1\x6e\x35\x69\x54\x0d\x2e\xbc\xf3\x23\x1c\xd9\ +\x93\xe4\xd5\x1d\x11\xbe\xf7\x5f\x17\x30\xb0\xfc\x2e\x56\x6e\xfe\ +\x10\x7d\x6b\x05\xe9\xbe\x34\xc5\xc9\x3c\x33\xe3\x43\xb4\x6a\x87\ +\x99\xdf\xdc\xcf\xe0\x9a\x21\x46\x8e\xef\xe7\xfe\xfb\x7e\xc4\x45\ +\x1b\x36\x11\x13\x06\x21\x29\x19\xc8\x66\x89\x9a\x26\xc2\xb6\x49\ +\x67\x32\x64\xfa\xfb\x91\xb6\x4d\xa3\xd1\xc0\x02\xa2\xa1\x10\x48\ +\x49\xb9\x5a\xa5\x50\x2e\x53\x29\x16\xa9\x34\x9b\x94\x6d\x9b\xe9\ +\x48\x84\x44\x7f\x3f\x85\x5a\x8d\x89\x89\x09\x2e\xbd\xf4\x52\x2c\ +\xcb\x42\xa1\x68\x35\x5b\x1c\x3a\x74\x88\x6d\xdb\xb6\x31\x3c\x3c\ +\x4c\x2c\x16\x73\xc0\xa4\xec\x22\x79\x3c\x21\x4b\x02\x39\x7f\xed\ +\x41\x81\x14\x32\x5d\x2d\xef\x67\x89\x0b\x20\xd8\xdb\xa7\xc5\xbf\ +\x5e\xa8\x33\x7a\xe0\x20\x23\xfb\x0e\x20\x42\x16\xa9\x9e\x1c\x1b\ +\xae\xbb\x94\xda\xcc\xf9\xd4\x66\x60\xc5\x46\x45\xef\x60\x14\xa5\ +\xfa\x38\xb2\xb7\x49\xab\x15\x26\x9e\x5e\x40\x32\x3b\x88\x95\xbe\ +\x0c\xd3\x82\x9e\x95\x33\xac\xfc\xe0\x09\x7e\xfa\xc3\x2f\x31\x79\ +\xe8\x20\xbf\x71\xd5\x55\x64\xe3\x49\xec\x76\x1b\x4b\x08\x22\x96\ +\x45\xbb\xd9\xa4\xdd\x68\x38\x15\x37\x42\x60\xb7\xdb\xc8\x46\x03\ +\xbb\xdd\x26\xa7\x24\xb9\x70\x18\x29\x04\xed\x70\x98\x6a\xbd\xce\ +\x54\x65\x86\x57\x9f\x7b\x8e\xc7\x47\x46\x58\xb4\x62\x05\x8b\x16\ +\x2d\x42\x08\x87\x61\x3c\x7c\xf8\x30\x0f\x3f\xfc\x30\xc7\x8e\x1d\ +\x23\x1a\x8d\x62\x9a\x96\xdf\x78\xaa\x82\x5b\x3f\xa0\x08\x72\x96\ +\x55\x24\x58\x8e\xd6\xd5\x28\xa3\x84\x3a\x8b\x5c\x80\x36\x1a\x46\ +\x47\xcb\x81\xd1\x30\xcd\x26\xc5\xb1\x31\x5e\x7f\xf2\x49\x12\xd9\ +\x0c\x97\xdd\x22\x49\x26\x86\x38\xf1\xea\x3e\xa0\xcd\xc2\x05\x2d\ +\x92\xd9\x04\x43\xaf\x9f\xa4\x5e\x4c\x43\x74\x39\x6d\xce\x63\x6a\ +\xa4\x9f\x56\x73\x1d\x98\x5f\x60\xcf\xa1\xbf\xa3\xb4\xde\x20\x51\ +\x9d\x44\xd8\x2d\x9a\xd2\xa1\x89\xa5\x6d\x83\x6d\x23\xa5\x8d\x6a\ +\xdb\x28\xdb\xf9\x91\x52\x22\xdb\x6d\x94\xf4\xee\x93\x28\xdb\x26\ +\x27\x6d\x8c\xa9\x29\x1a\xe3\xe3\xa4\x36\x6d\x22\x12\x89\xd0\x68\ +\x34\xd8\xb3\x67\x0f\x8f\x3f\xfe\x38\x47\x8e\x1c\x21\x91\x4c\x12\ +\x72\xa3\x8c\x59\xc9\x2b\x37\xe1\x15\x74\x7f\x9d\xde\x86\xb9\xd2\ +\xc6\x81\x26\xd4\xb3\x06\x04\xa2\x27\xbc\xb4\x4c\x98\xcf\xf8\x75\ +\x62\x61\x0f\x31\xbf\xfa\xe8\x83\x9c\xb7\x69\x94\x5a\xb9\xc4\xc8\ +\xfe\x03\xa8\x96\x4d\xb3\x5e\xa3\xd9\x6c\x3a\x48\x3e\x14\xc2\x32\ +\x0d\xc2\xd1\x18\xd1\x44\x82\x85\xeb\x36\xb0\x70\xf5\x87\x99\x9a\ +\x58\xcb\x8b\xe6\xa7\xf9\xe1\x91\x29\xae\xe8\x7b\x95\x65\xf1\x03\ +\x44\xa6\x0e\x23\x6d\x89\xdd\x56\x8e\x70\xa5\x8d\xec\x52\x00\xff\ +\xb6\xdd\xb9\x7f\xa2\xd1\xe0\xa5\xf1\x71\xd6\x47\x22\xa4\x86\x86\ +\x38\x31\x34\xc4\xc1\x43\x87\xd8\xb1\x63\x07\xa3\xa3\xa3\xa4\x52\ +\x29\x0c\xc3\xe8\xb0\x97\x82\x00\xb6\x09\x94\xb8\x69\xcd\x1f\x52\ +\x06\x53\xda\x7a\x01\x8c\xe8\x2e\x4b\x17\x67\x0b\x06\x10\xc1\x24\ +\x90\x40\xb8\x4d\xa0\xb3\xc7\xb8\x81\x62\x66\x72\x8a\xdd\x8f\x3c\ +\xda\x35\x55\xac\x53\x80\xd1\x6e\x34\x68\x01\xd5\x4a\x15\x26\x27\ +\x19\x39\x7a\x94\xc4\xae\x67\x58\xb4\x76\x13\x57\xde\x7c\x2b\xe3\ +\xe3\x1f\xe0\x47\x7b\x2e\x24\x31\x32\xc2\xca\x99\x47\x59\x91\x7e\ +\x9d\x6c\xe1\x67\x84\xdb\x05\x54\xbb\x89\x6c\xdb\x48\xdb\x49\x36\ +\x75\x76\xbe\xab\x00\xd2\xa6\xd5\x6a\xb3\xab\x56\xa3\xda\x68\x70\ +\xc5\xbc\x79\x8c\x1d\x3d\xca\xbf\x7e\xe7\x3b\x4c\x14\x0a\xd4\xea\ +\x75\x52\xc9\x14\xc2\x34\x7c\x20\x13\x28\x21\xef\x4e\x78\x75\x36\ +\x7e\x47\xdd\xbb\xd2\xdc\x73\x65\x08\x95\x50\x67\x51\x59\x78\xc0\ +\x27\xea\xee\x80\xae\x2c\x61\x27\x33\x48\xd7\x85\xf1\x52\xaa\xca\ +\x9b\xc9\xe1\xa6\xe0\xbc\x8b\x5e\x9e\x9c\xe2\xb5\x27\x1f\x61\x62\ +\xff\x5e\x56\x5f\x79\x05\x8b\xef\xf8\x00\xca\xbc\x92\xe1\x97\x3f\ +\xca\xe8\x78\x81\x54\xfe\x49\x7a\x4b\xbb\xc8\x85\x4f\x92\xb0\x27\ +\x30\x2b\x53\xa8\x4a\x01\x51\x2b\x21\x64\xdb\x2d\x09\x13\xb4\x25\ +\xec\x93\x36\x87\xec\x36\x0b\x85\x60\xbc\x58\xe2\x67\xa1\x10\xd5\ +\x79\x69\xe2\x3d\x49\x12\x2a\x45\xb3\xd2\x70\x12\x51\xaa\xd3\x5e\ +\x26\xe6\x6a\x6c\xd5\x62\xff\xc0\xd0\x8a\x80\x35\x50\x81\xd1\xb7\ +\x4a\x2f\x36\x3a\x6b\xea\x01\x7c\x9a\x53\x2b\xbe\x0c\x74\x0c\x74\ +\x1c\x9e\xec\x46\xc6\x74\x3a\x6d\xfd\x52\x71\xa1\x55\xed\xba\x1a\ +\xe3\x59\xe0\xf1\x91\x51\xc6\xbf\xff\x03\x0c\xeb\xc7\x9c\x77\xd1\ +\xe5\x44\x52\x6b\x60\xe1\x66\xf2\xbd\x1f\xe3\xc4\xc9\x8f\x62\x95\ +\x4f\x92\xa9\x1f\xa2\xa7\xf5\x1a\xe9\xea\x3e\xc2\xa5\x13\xa8\xe9\ +\x31\xc8\x4f\x60\x19\x2d\xa6\x65\x89\xa7\xec\x2a\x93\x18\x84\x12\ +\x59\x4e\x0e\x0c\x10\xdf\xfc\x71\xce\x8b\x5e\x8b\x65\x8c\x81\xbd\ +\x8f\x56\xfd\x00\xf5\x99\x61\x86\x5f\x7b\xdd\x25\x9d\x64\xa7\xe7\ +\xc0\xff\xb6\xba\x89\x97\xc1\x56\x20\xbd\x32\xaa\xcb\x35\xfa\x5b\ +\xc0\xab\x3e\x3a\x5b\x92\x41\xdd\x7e\x31\x38\x7d\x43\x06\x4b\xa5\ +\xb4\x4e\x60\x9d\x3f\x57\xdd\x54\x6b\x17\xa8\xd4\x9b\x37\xda\xad\ +\x16\x87\x9e\x7b\x1a\xcb\x78\x86\xde\x81\x41\x56\x7d\x70\x0b\x62\ +\xe9\x00\x95\x99\x01\xf2\xd3\x03\xec\x2b\x6d\xa6\x59\xca\x62\x36\ +\x2a\xc4\x6b\xc7\x09\x4f\x1e\x40\xd9\x0d\x0e\x17\xe1\xf0\x58\x13\ +\x61\x16\x18\x59\xd4\xe2\xe2\xbb\x36\x70\xfe\xc5\xd7\x70\xe8\xa5\ +\x08\xa1\xb0\x81\xe2\x36\x62\x89\x36\x99\xbe\x22\xf9\x13\x8f\x71\ +\xf2\xf0\x53\x4c\x0f\xed\x63\xe8\xc0\x41\x64\xbd\xae\xf5\x2d\xcc\ +\x51\x21\x4c\x97\x6b\x08\x00\x41\x1d\x2f\x74\xbb\xc5\xb3\x01\x04\ +\x2a\x8d\x0b\xe8\x4a\xef\xaa\xae\x2e\x21\xbd\x71\x6b\xce\x36\x2f\ +\xd5\x29\xc7\xf6\xe7\x0a\xa8\x20\xaa\x16\x80\x6c\xb7\x69\x28\xc5\ +\x89\xc3\x47\x38\x71\xe8\x10\xc2\xb2\x48\xf4\xcc\x23\xdd\xbb\x90\ +\x74\xdf\x20\xf1\xe5\x03\x58\xd1\x05\xd8\x0c\xd0\x56\x1b\x90\xf6\ +\x3c\xb2\x07\x5e\xe6\xd7\xd6\x0f\x50\x2b\x0b\xa6\x46\x2c\xa6\x87\ +\xfb\x79\xe2\x70\x04\x25\x05\x89\xb4\x22\xd3\x2b\xa8\xcf\x84\x38\ +\xba\xb7\x97\x56\xf3\x4e\x72\x7d\x5b\xb8\xf0\x8e\x93\x2c\x1d\xba\ +\x9f\x57\x9f\xbc\x9f\xd1\x23\x47\xe8\x50\xfb\xaa\xcb\xb2\x05\xbb\ +\x81\x3a\x43\x28\xba\x9a\x62\x82\x55\x14\xef\x7f\x2a\x38\x30\x0e\ +\x45\xa3\x41\x03\xa0\xc8\x4b\x83\x77\x0f\x72\xd2\xad\x80\x26\xe8\ +\xb9\xe2\x6c\x3d\x79\x26\x03\xa1\x94\xbb\xe3\x5a\x6d\x8a\x27\x4f\ +\x52\x3c\x39\x8a\x52\x2f\x3a\x11\x45\x38\x42\xba\xb7\x8f\xbe\x45\ +\x03\x64\x7b\x7b\x90\xc5\xfd\x1c\x7f\x3e\x45\x38\x91\x22\x62\x85\ +\x49\xcf\x5f\x42\x24\x39\x88\xdd\x1e\x20\x14\xff\x00\xd5\x72\x9a\ +\x74\x4e\xb0\xf1\x1a\x85\x15\x0a\xf3\xd2\x23\xfd\x3c\xf7\xd0\x00\ +\x03\x2b\x37\x72\xdd\xff\xfc\x51\x8a\x27\xb7\x31\x76\xec\x75\x46\ +\x0f\xee\x63\x78\xdf\x7e\x5a\x8d\x46\x30\xb3\x17\xe8\x25\xf4\xd2\ +\xbf\x02\x0d\x42\xfa\xd4\xb0\x38\x3b\xa8\x60\xa7\xc6\x45\xa8\xe0\ +\x90\x87\x40\x57\xaf\xeb\x06\xf4\x96\x3d\xbc\x9e\x3b\x85\x56\x0f\ +\x40\x57\xbb\x98\x4b\x96\x74\x51\xab\x4a\xe8\xe5\xda\x72\x96\xe5\ +\xd1\x71\x46\xbb\x51\x67\xea\xc4\x71\xa6\x86\x8e\xf9\xe3\x69\x0c\ +\x61\x62\xb7\xdb\x81\x1d\x18\x4b\xf7\x70\xfe\x95\x37\x92\x9e\x7f\ +\x25\xb5\x99\x2d\x3c\xf6\x9d\x1c\x86\x09\x33\x05\x90\x36\xbc\xf0\ +\x50\x88\xdd\x4f\xac\x63\xf5\x25\x2b\xe9\x1d\x28\xb1\xea\xe2\x09\ +\xc6\x8f\x3d\xc0\x91\x97\x1f\x61\xf2\xd8\x71\x26\x46\x46\xba\xe6\ +\x1a\x76\x98\x71\x81\xdd\xe9\x33\x40\xc3\x47\xf2\xac\x50\x00\xa7\ +\x40\xc2\x1f\xe3\x4a\x70\x50\x93\x0e\x0e\xd5\xac\x5d\xe2\x0d\x89\ +\xf6\xb2\x79\xda\x6b\x48\x15\xcc\xa7\x4b\x6d\x17\xc9\xd9\x53\x45\ +\xf4\x41\xd3\xcc\x39\xdf\xa7\x43\xcd\xd9\xb2\x1d\x9c\x14\xa2\x14\ +\x33\xf9\x09\x5e\x79\xe8\x5f\x48\x65\x1f\x64\xfd\xd5\x57\xb3\xee\ +\xb2\x2b\x68\x36\xaf\xe5\x85\x6d\x7d\xa4\x72\x8a\x5f\xf9\xbf\x25\ +\xa5\x89\xa3\x1c\x7a\x69\x98\xe9\xd1\x7e\xc6\x8e\xad\x40\x18\x9f\ +\x65\xe5\xa5\x9f\xe4\xe2\xdb\x5e\xe6\xa5\x87\xbe\xc6\xfe\x67\x9f\ +\xa5\x56\xa9\x76\x35\xb8\xb8\x35\x04\x73\x25\xca\xce\x06\x10\x18\ +\x28\x6f\xf6\x26\x84\xfb\xa2\xf3\x06\x43\x11\x14\x8a\x2f\x35\x9d\ +\x5c\x97\x5d\x8f\xe9\x6e\x1d\x93\xb3\xbb\x8d\xb4\xb2\xac\x40\xd5\ +\xed\xac\x71\xb1\x04\x53\xb5\x74\x0f\x8a\x72\x6b\x10\x5a\x4d\xa6\ +\xc7\x27\x79\xe2\x5f\xfe\x15\xc3\xfa\x1f\x6c\xba\xee\x76\xae\xb8\ +\xe3\x77\x18\x3b\xbe\x99\xe2\x38\x08\xb5\x93\xbd\x4f\xfc\x35\xe9\ +\xbe\x01\x56\x5d\x7c\x23\xb9\xfe\xeb\x98\x1a\x59\xc6\xd1\x57\x6f\ +\x60\xf5\xa5\x0b\xc9\x0d\xfc\x7f\x3c\xfe\x9d\x7f\xf4\x47\xca\x74\ +\xbd\xf9\xac\x21\x16\xef\x56\x4d\xd8\x99\xef\x0c\x52\xf0\xd1\x8f\ +\x7e\x94\xc9\xc9\x49\x8e\x1d\x3b\xce\xb1\x63\x47\x69\xb5\x5a\x01\ +\x2b\x20\x08\x5a\x04\xa9\xa7\x90\xbb\x5c\x47\xb0\x7f\x50\x05\x6a\ +\xe9\xba\xe7\xff\x05\xe6\x02\xcd\x72\x0b\x9e\x0d\x9e\xdd\x96\xe5\ +\x4f\x20\x21\x98\xd2\xf5\xdc\x87\xdd\x6a\xb1\xfb\xd1\xad\x54\xa6\ +\x8e\x73\xc5\xaf\xff\x1f\x24\x32\x6b\x39\x79\x78\x8a\xf1\x63\x07\ +\x18\x3b\xba\x9f\xa3\x2f\x3f\x4d\xdf\xe2\xff\x97\x75\x57\xdf\xce\ +\x79\xeb\x3f\x45\xbd\xb2\x81\x0f\x7f\xf2\x33\x1c\x78\x61\x07\xc7\ +\x5f\xdd\x1f\xa8\x05\xea\x06\xc4\x3a\xaf\x70\x16\x44\x01\xce\x17\ +\xb9\xf6\xda\x6b\x81\x4e\xe5\x6e\xa9\x54\xe6\x85\x17\x5e\x60\xd7\ +\xce\x5d\x4c\x4e\x4d\x6a\x03\x17\x3a\xe0\x50\x11\x1c\x98\xd0\x4d\ +\x9d\x2a\x8d\x20\xf2\x98\x00\x5d\x01\x82\x63\x64\x35\x4c\x0a\x41\ +\xa5\x92\x5d\xc3\x19\xf4\xf2\x2d\x08\x8c\xb1\xd1\x3f\x4b\xa3\xd1\ +\xe0\xb5\x5d\xcf\x51\x2b\xfd\x01\x03\x6b\xce\xe7\xf8\x6b\xfb\xfc\ +\xcf\xd8\x6a\x36\x39\x71\xf0\x10\x63\xc7\xff\x86\xf5\x57\xbd\x46\ +\xef\xd2\x2b\xd8\xbf\x2b\x44\xa5\x50\xc6\x6b\x15\x51\x2a\x48\x86\ +\x49\x6f\x7e\x51\x20\xac\x7d\x37\x58\x9a\x33\xbc\xf6\xee\xdd\xab\ +\x66\x75\xfc\x6a\xbb\x0b\x60\xcf\x9e\x3d\xec\xd8\xb1\x83\x83\x07\ +\x0f\xd1\x68\xd4\xa9\xd5\x1c\xee\xdf\x8b\x22\xfc\xe1\x90\x6a\xae\ +\xea\xdb\x0e\x23\xe7\x44\x18\xc1\x69\xe1\xc1\x8a\xdd\xce\x40\x48\ +\xa1\xf1\x10\xdd\xa3\xec\x83\x25\x5b\xc1\x2a\x9d\x40\xab\xb7\x74\ +\x89\x29\xe9\x94\xbe\xd9\xf6\x6c\x66\x13\x70\x2a\x91\x0c\x41\xb3\ +\x56\x0f\xce\x1f\xec\x9a\x63\xe4\x09\xfe\x27\xf7\xfe\x04\x14\x8c\ +\x8e\x8e\x02\xef\xe3\x39\x81\x00\xeb\xd7\xaf\xf7\x3f\xfc\x9e\xdd\ +\xbb\x55\xb0\x87\xde\xb9\xaa\xeb\xd7\xaf\x67\xdd\xfa\x75\xa0\x60\ +\x7a\x7a\x9a\x23\x47\x8e\x70\x72\x74\x94\x91\xd1\x51\x0e\x1c\x38\ +\xc0\xc4\xc4\x44\x40\x48\xb3\x48\x14\x8d\x5d\x54\x5d\xe6\x5f\x31\ +\x3b\x04\xeb\x9e\x0c\xa2\xe6\x18\xd7\xa2\x54\x70\x27\xce\x6a\xe6\ +\xec\x9a\x5b\xe0\xe5\x2b\x02\xed\x62\xae\xa1\xb7\x9b\xb6\x86\x7c\ +\xdc\x91\x71\xee\xae\xf7\x46\xc8\xe9\x6e\x4f\xaf\x18\x3a\x0b\xa8\ +\xe0\xce\xda\x70\xc1\x05\xe2\x8e\x3b\xef\x14\x7d\xbd\xbd\xc6\xd4\ +\xe4\xe4\xbf\x35\x2d\xeb\x2b\x7f\xfc\xc7\x7f\x9c\xd3\x95\x22\x97\ +\xcb\x91\xcb\xe6\xe0\x42\x45\xab\xdd\xa6\xd1\x6c\x3a\x79\xf8\x43\ +\x87\x78\xfa\xe9\xa7\x79\xf1\xc5\x17\xbb\x84\xaf\xba\xce\x04\xe8\ +\x1a\x25\xe7\x0d\x8d\xea\x2e\xbc\xd0\xa7\x81\x30\x57\x31\x46\x30\ +\xa2\x10\xba\x9f\xee\x9a\x2b\x30\xab\xf5\x5b\xea\x60\xb2\x6b\x0e\ +\x82\x3b\x1e\x5f\x2f\x10\xf1\x8f\xcd\x11\xef\x7e\x7b\xf8\xbb\x36\ +\x98\xf8\xb6\x5b\x6f\x8d\x18\xa6\x99\x32\x4c\xf3\xdf\x98\x86\xf8\ +\xaf\x86\x61\x46\x84\x10\x01\x22\xe8\x0b\x7f\xf8\x85\x2e\xbe\x7c\ +\x8e\x49\x63\xc0\xd4\xd4\x14\xbb\x76\xed\xe2\x85\x17\x5f\xa0\x90\ +\x2f\x30\x33\x53\xa1\x52\x9d\x99\x63\x32\x68\xf0\x9c\xa1\xe0\x54\ +\x70\x3d\xcc\xd4\x14\xc1\xc5\x04\x92\xee\x53\x4a\xba\x40\xa9\xc7\ +\x39\xb8\xa3\xe1\xbc\x71\xf5\xde\x70\xea\x59\xc0\x54\xab\x05\x08\ +\xcc\x4c\xd6\xba\x8a\x3d\x8b\x70\xdf\xbd\xf7\xa2\x14\x8c\x8d\x9d\ +\x3c\xe3\x2e\xe0\x8c\xbd\xf0\x6d\xb7\xdd\x66\x6c\xdd\xba\x55\xde\ +\x74\xe3\x4d\xd1\x48\x2c\xb2\xc2\x10\xc6\x47\x85\x10\x7f\x60\x59\ +\x66\x64\x16\x20\xeb\xea\xaf\xd7\x51\xfc\x17\xbf\xf8\x47\xc1\x69\ +\xdb\xba\x32\x28\x68\xb5\xda\x0c\x0d\x1d\x67\x68\x68\x88\xf1\xf1\ +\x71\x0e\x1c\x38\xc8\xbe\xfd\xfb\x68\xb7\x5a\xc1\xe9\xe0\x7e\x2d\ +\x82\x0a\xe4\x15\xfc\xbc\x84\x9a\xbb\x50\x23\x78\xd2\x89\xb3\xbd\ +\x75\xa5\x72\xac\x83\x17\x91\x48\x37\xae\x0f\x4e\x34\x0f\x64\x02\ +\x5d\x0b\x10\x1c\x20\x11\xc4\x35\xf7\xdd\x7b\x1f\x4a\x28\xc6\x4e\ +\x8e\xbd\xff\x14\xe0\xd6\xdb\x6e\x33\xee\xdf\xba\x55\x02\xdc\x71\ +\xc7\x1d\x1f\x36\x4c\xe3\x0e\x21\xc4\xa7\x0c\xc3\xcc\x18\x62\x76\ +\xbf\x43\x80\xf8\xe8\x02\x79\xfe\x64\x6e\x6d\xee\xff\x9f\xfc\xc9\ +\x9f\xcc\x1a\x23\xe3\x25\xcf\xa4\x72\x1a\x3e\xda\xed\x36\x85\x42\ +\x81\x5d\xcf\xee\xe2\xc9\x27\x9e\x64\x6c\x6c\x2c\x70\x1e\x41\x37\ +\x01\x75\x6a\x61\x04\xcf\x30\xf0\x4f\x3d\x11\x32\x38\x77\x30\x70\ +\xba\x59\xd7\x99\x87\x4a\x06\x7a\x1b\x65\xd7\x89\x67\xfe\x61\x17\ +\x6e\x26\x51\x4a\xc5\x7d\x5b\xef\x03\x05\x63\x63\x41\x05\x50\x4a\ +\x89\xfd\x8f\x3d\x96\x4e\xf6\xf6\xa4\xc3\x89\x64\xb5\x77\xf9\x8a\ +\xbc\x10\x42\xbe\x27\x14\xe0\xd6\x5b\x6f\x4d\xdf\x7f\xff\xfd\x25\ +\x77\xf7\x7f\xda\x0a\x99\x97\x80\x71\xb3\x21\xc4\x7c\x61\xe8\xd3\ +\x31\xbc\xe4\xad\x60\x56\xbb\x58\x80\x14\xd2\xd1\x79\x37\x8b\x28\ +\xfd\xbf\xff\xec\xcf\xfe\x3c\xe0\x1e\x4e\x65\x2d\xf6\xec\xde\xc3\ +\x8e\x1d\xcf\x70\xf0\xe0\x61\x2a\x95\x19\x8a\xa5\x22\x4d\xb7\x87\ +\x40\x37\xcd\xdd\x8a\xe0\x09\x1d\x4d\x58\x9d\x91\x6e\xce\xf1\xb5\ +\x7e\x37\xd0\x5c\x5c\x85\x0c\x0e\x99\x54\x1a\x23\xa9\xf4\x1a\x09\ +\x8d\xcf\xb8\xf7\xbe\xfb\x40\x29\x7f\x90\x85\x78\xe2\x49\xf3\xe6\ +\x7b\x3e\xd7\x27\xda\x8d\xeb\x0c\xd5\x5c\x25\x22\x89\xd7\x6d\xac\ +\x5d\x0b\xd7\xae\x1b\x12\x42\xd8\xbf\x50\x05\xb8\xe5\xe6\x5b\x22\ +\x0f\x3c\xf8\x40\x03\xe0\x96\xdb\x6e\xfd\xdf\x2d\xc3\xbc\xd1\x30\ +\x8c\xcb\x10\x22\xee\x56\x4b\x13\x6c\x76\xed\x08\x7e\x56\x5c\xaf\ +\x82\x39\xf2\xd9\x08\x3d\x38\xbe\x55\x2a\x85\x21\x0c\x96\x2f\x5f\ +\xc6\x85\x17\x5e\xe8\x87\x5c\xeb\xd6\xad\xeb\x4c\xef\x56\xcc\x9a\ +\xcd\x33\x9d\xcf\x73\xfc\xd8\x31\xc6\xc7\xc7\x39\x76\xec\x18\xbb\ +\x77\xef\xe6\xe4\xe8\x68\x67\x54\x6d\x57\x0e\xa1\xc3\x23\x74\x15\ +\x76\x28\x15\x18\x71\x1f\xc0\x10\xdd\xe7\x21\xf8\x84\x92\xf3\xda\ +\xb3\xb3\x98\x9d\x5c\xe8\xbd\xf7\xde\x07\xc0\xf8\xf8\x18\x4a\x29\ +\x6e\xf9\xc0\xa6\xdb\xa3\xa2\xf6\x09\x53\xd5\x97\xce\xb4\x12\x7f\ +\x6b\x1b\xe1\x1f\x2f\xbd\xf8\x92\xf2\x7b\xc6\x05\xdc\x72\xcb\xad\ +\x5f\x32\x4d\xe3\xd7\x0d\x21\x06\x95\x10\xb1\x4e\x7f\xa5\x98\x8b\ +\x1b\x74\xf7\xbf\x98\x2d\xf8\x80\x6f\x26\xd0\x7a\xad\xe6\x12\x8a\ +\x52\x2c\x5b\xbe\x8c\xcb\x2e\xbb\x6c\xd6\x67\x32\xdc\x3e\x40\xd3\ +\x34\x39\xef\xbc\xa5\x9d\xd7\x14\xba\x95\x01\x29\xdb\xb4\x5b\x6d\ +\xda\xb6\xcd\xeb\xfb\xf6\xf1\xd8\xa3\x8f\xf2\xec\xae\x5d\xb4\x6c\ +\x89\xd0\xa7\x97\xca\x2e\x1e\xc1\x3f\xf8\x42\x06\x07\x5b\xf9\x55\ +\x4f\x4a\x43\xfd\xfa\x78\xb9\x2e\xab\xa2\x9d\x87\xe4\xad\x7b\xef\ +\xbd\x0f\x85\x64\x62\x7c\x82\xfe\x4c\x92\x0f\xad\x4c\xee\x17\x28\ +\x2b\xdf\xcc\xfd\xf1\xa2\x4b\xb7\x7c\xfb\xad\xc8\x64\xf4\xb5\xd7\ +\xa2\x91\x64\x22\xdb\xb3\x78\xc9\xc9\x33\x12\x06\xde\x78\xe3\xf5\ +\x71\xc3\xb0\xbe\x60\x18\xc6\x67\x84\x10\x49\x50\xa2\x63\xaa\x45\ +\xe7\xe8\x56\xe1\x76\xcc\x0a\xad\xd0\x45\x68\xf5\x72\x5e\x85\x8f\ +\x50\x01\x26\x0c\x9d\x0e\xd6\xf2\xe6\xdd\xd9\xbd\x0d\x1b\x36\xcc\ +\xad\xd9\x02\x7f\x72\xe8\x89\x13\xc3\x18\x86\x89\x69\x1a\xf4\xf5\ +\xf5\x05\x4a\xb3\x0d\x61\x12\x0a\x1b\x84\x94\x62\xf3\xa6\x4d\x6c\ +\xde\xb4\x09\x50\xe4\xf3\x05\x9e\x79\xe6\x19\x5e\x7c\xe9\x45\xa6\ +\x26\xa7\x9c\xa9\x23\xa5\x62\x90\xb6\x65\xf6\x79\x03\x5e\x16\x74\ +\x16\x4e\x51\x81\xd0\xc6\x1b\x23\x3d\x37\xe9\xeb\x30\x4b\x2c\x48\ +\x27\xb9\x68\xa1\x20\x2e\x4a\x2b\xa7\xda\xfd\xff\x3d\x32\x6f\xc1\ +\x03\x6f\x55\x3e\xe1\x78\xdc\x34\x4d\x71\x69\xfe\xf8\xd1\xf1\xdc\ +\x92\xf3\x76\x9e\x16\x05\xb8\xf6\xda\x6b\xc3\xa1\x50\xa8\x57\x29\ +\xf5\xbf\x08\x21\xfe\xd0\x4f\x5a\xab\xce\x44\x5f\xe8\xcc\x52\xf2\ +\x67\x04\x6a\x8f\xd1\x07\x40\xa2\x1d\xe1\x8a\x9c\x63\x72\x68\x37\ +\x00\xf3\xfa\xed\xb5\x38\x31\x16\x8b\xbd\xa1\x71\x13\x78\x53\x3f\ +\x04\xc2\x10\xe4\xf3\x79\x7f\x72\x88\x94\x12\xdb\x2d\x0d\xef\xf3\ +\xce\xf9\x71\x5f\x3b\x9b\xcd\x70\xcb\x2d\xb7\x72\xcb\x2d\xb7\x60\ +\xb7\xdb\x0c\x0d\x9f\x60\x64\x64\x94\xb1\x93\x63\xec\xd9\xbd\x9b\ +\x9f\xed\xfe\x99\x5f\xa9\xac\x02\x8c\x9e\x98\xfb\x54\x11\x9f\x96\ +\xd6\xe6\x03\x48\xc5\xa9\x66\x41\xc4\x2c\x93\x65\xbd\x16\x7d\xd6\ +\x38\xcd\x76\xef\x64\x43\xc5\xee\x5d\xb4\x62\xe5\xd4\x5b\x95\xd5\ +\xbc\xa5\x4b\x2b\x85\xa1\x63\x4d\x93\xf6\xc7\x27\x0e\x1e\x1c\xee\ +\x5b\xb9\x72\xe8\x1d\x29\xc0\xf5\xd7\x5f\x7f\x99\x52\xea\x36\x29\ +\xe5\x17\xbd\x9d\xe5\xc5\xae\x9e\x1e\x08\x70\xd2\xbf\xae\x06\x08\ +\xf7\xdf\xfc\x0b\x83\x97\xfc\x11\x9d\x01\x0a\x10\x2c\xde\xe8\x3e\ +\x05\xdc\xf7\xb3\x22\x30\x7c\xc9\x5b\x13\x13\x13\x2c\x58\xb0\x60\ +\xee\x44\x14\x5d\xd3\xb9\x11\x08\x04\x86\x10\x08\xd3\xec\x80\x4d\ +\x21\x38\x79\x72\x94\x76\xbb\x8d\x6d\xdb\x2c\x5e\xb2\x58\xcb\x65\ +\x28\x0c\xd3\x64\xe9\x92\xa5\x2c\x59\xb2\x14\x25\x25\xb7\xdd\x7e\ +\x2b\xca\x56\xe4\x0b\x05\x7e\xfa\xd3\xa7\x78\xe4\x91\x47\x38\x71\ +\xe2\x84\x4e\xe7\x9d\xa2\x68\x45\xf9\x16\xef\xcd\x7a\x40\x73\x21\ +\xc1\xa2\x68\x1e\xc3\xae\xd2\xb0\x62\xc3\x6d\xa9\xf6\xbe\x5d\x2b\ +\x6d\x84\xa3\xaf\x19\xf5\xea\x7f\x08\x85\xc2\x37\x28\xa5\xbe\x21\ +\xc4\xec\x1c\xf3\xdb\xb1\x00\x3b\x63\xb1\x18\xe5\x99\x19\x84\x00\ +\xcb\x34\x11\xc2\x9b\xa7\xd7\xf1\xf5\x4e\x38\x27\x5c\x7b\x20\x02\ +\x47\xa8\x09\x81\xa9\x0a\x8a\x9e\x00\x00\x17\xf5\x49\x44\x41\x54\ +\xe6\xff\x82\x61\x20\xa2\xab\x4c\x4c\x0f\x0b\x99\x5d\x25\xec\xad\ +\x97\x5e\x7a\x89\xeb\xaf\xbf\xde\x6d\xd1\xd6\x53\xd1\x9a\xa5\x91\ +\x0a\x0c\xef\x35\x9c\xd1\xf4\xaa\xab\x31\xc5\xc3\x2c\x02\xc1\xb1\ +\x23\xc7\xb4\x93\x49\xe0\xbc\xa5\x4b\x03\x8f\x31\x0d\x13\x0c\xe8\ +\xed\x9d\xc7\x47\xee\xfa\x08\x1f\xb9\xeb\x2e\x3f\xd2\xd8\xb9\x73\ +\x27\x87\x0e\x1f\x22\x9f\x2f\x30\x39\x39\x41\xdd\xad\x15\x0c\x4c\ +\xff\x7c\x93\xfe\xff\x88\x69\xd2\x1f\xad\x11\x69\x4f\xb9\x35\x93\ +\x46\x49\xb6\xed\xd2\xdb\x47\x78\xa2\x88\x10\xca\xa2\x7d\xe7\xf8\ +\x81\xfd\x3f\x02\xa6\xdf\x89\x02\xa8\xdb\x6e\xbb\x4d\x4c\x4c\x4e\ +\x50\x2c\x14\x19\x3b\x79\x92\xb1\xf1\x71\x6a\xb5\x1a\x86\x0b\xb6\ +\x9c\x21\x8b\x02\x03\xa1\x75\x4b\x3b\x43\x12\x02\xe7\xfd\xd0\x19\ +\xc3\xaa\x6f\xd9\xee\x6a\x19\xfd\x74\xcf\x53\x7f\x47\xc1\x8e\x1d\ +\x3b\xb8\xea\xaa\xab\x02\xf7\x3b\xd3\xc6\x84\x7b\x58\x95\x44\x48\ +\xe9\x0a\xd8\x1b\xcd\xea\xf4\xfe\x4b\xbd\x4c\xdd\x35\x63\xdd\xef\ +\x78\xf4\xd8\x31\xff\x76\x3e\x9f\xe7\xc1\x07\x1f\xe4\xf3\xf7\xdc\ +\xe3\xba\xb9\x4e\x2a\x7f\xc3\x86\xf5\xac\xdf\xb0\x1e\x14\xe4\x8b\ +\x79\x46\x86\x47\x18\x1f\x9f\xe0\xe0\xc1\x03\x3c\xff\xfc\xf3\x0c\ +\x0d\x0d\x05\x94\xff\x54\x8e\x2b\x6a\x0a\x72\xc6\x14\xd4\xab\x60\ +\x45\x41\x49\xcb\x0c\x87\xcd\xb7\x2b\xff\x66\xa5\x12\x8a\x99\x44\ +\x42\x46\x73\x8d\x9d\xea\x59\x09\x3c\xfb\x8e\x30\xc0\xda\x75\xeb\ +\x58\xd9\x6c\x51\xaf\xd7\x28\xbb\x1d\xb8\xe5\x99\x19\x46\x47\x47\ +\x19\x1a\x1a\x72\x09\x17\xe5\xa2\x6f\xcb\xf1\xbb\xee\x45\x97\x5d\ +\x05\x22\xaa\xcb\x5e\xfb\xcd\x10\x81\x98\xfe\xcd\x79\xf1\xe9\xe9\ +\x69\xa6\xa7\xa7\xb9\xef\xbe\xfb\xd8\xb2\x65\x0b\xb9\x5c\x2e\x98\ +\xad\x43\x22\x85\x81\xc7\x97\x28\xb7\x3f\xd0\x19\xfe\xe0\x0d\x9d\ +\x94\x6e\x2c\x2e\xdd\x90\xed\xd4\xef\x9b\xc9\x64\x00\xf8\xbf\xfe\ +\xcb\x7f\x09\xdc\x7f\xf7\xe7\x3e\xd7\x89\x32\x50\x64\x33\x59\x32\ +\x99\x0c\x6b\xd7\xae\xe5\xaa\x0f\x7d\x90\xdf\xfc\xad\xdf\xc4\xb6\ +\x25\x7b\xf7\xee\x65\xdb\xc3\x0f\xb3\x63\xc7\x0e\x27\xe3\xd9\x2d\ +\x10\xcb\x22\x6e\x2a\xc2\x34\xa0\x5d\x07\x61\x60\xd1\x9c\x67\x9a\ +\xc6\x7c\x60\xe4\xed\x65\xe3\xe5\x3c\x43\x35\x07\x0c\xd5\xea\x11\ +\x52\xae\x7e\xc7\x0a\xd0\x6a\x36\x69\xb5\x5a\x98\xa6\x49\x36\x97\ +\x23\xd7\x93\x43\x4a\xc5\xf2\xe5\x2b\x68\x34\x6a\x34\x1a\x0d\xf2\ +\x79\x67\xd0\xe2\xd1\xa3\x47\x7d\xc0\xe5\x9d\xce\xed\x63\x87\x59\ +\x15\x03\xa0\x4f\x4a\xfc\x79\xd2\x21\xe5\x72\x99\x27\x9f\x7c\x92\ +\x25\x4b\x96\xb0\x62\xc5\x0a\xd2\xe9\xb4\x43\xd4\xb8\xd3\xc2\x85\ +\x3e\xaa\xc5\x3b\x57\xc0\x3b\x2f\x50\x3a\x67\x11\x2b\xa9\x66\x9d\ +\x4a\x32\xd7\xfb\xcc\xb5\xfe\xe2\x2f\xff\xd2\xbf\xfd\x1f\xfe\xe3\ +\x7f\x24\x16\x8d\x68\x23\xea\x1d\xb7\x61\x08\x93\xcd\x9b\x36\xb1\ +\x69\xe3\x46\x10\x90\x9f\xce\xf3\xec\xb3\xcf\xf2\xd2\x4b\x2f\x31\ +\x39\x39\xc9\xe4\xe4\x24\xf5\x5a\x8d\xa8\x29\x11\xed\x1a\xc8\xb6\ +\xa3\x04\x76\xf9\xbc\xa7\x5e\xdc\xf1\x9f\xae\xbf\xfe\xfa\xaf\x6e\ +\xdf\xbe\xfd\x05\x17\x93\x19\xdb\xb7\x6f\x7f\x43\x16\xd0\x34\xd4\ +\x45\x66\x63\x6a\x40\x88\x56\x58\x85\x33\x8b\xde\x11\x0f\x70\xfd\ +\xf5\xd7\xcb\x7b\xee\xb9\x5b\xb4\x9a\x4e\xc1\x64\x3e\x9f\x77\x7b\ +\xe4\xcc\x4e\x21\xa6\x74\x62\x5a\x69\xb7\xb1\x6d\x45\xbd\x59\x67\ +\x64\x64\x84\x43\x07\x0f\x71\xfc\xf8\x71\x1a\x8d\xc6\x1c\x8a\x70\ +\xfa\x67\xa2\x0d\x0e\x0e\x72\xde\x79\xe7\xd1\xd7\xd7\x47\x3c\x16\ +\xc7\x30\x4d\x2c\xd3\x99\x01\x2c\x9c\xf8\x30\xa0\x10\x52\x29\x3f\ +\x2a\xd0\xa7\x87\x75\x2f\xdb\xb6\x79\xe6\x99\x67\x1c\xc0\xf7\x73\ +\xac\xdf\xff\xfd\xcf\xa2\x57\xb2\x09\xad\xbc\xad\xdd\x6a\x33\x76\ +\x72\x94\xc9\x89\x09\x7e\xed\x43\x17\xb1\xda\x7c\x0d\xa3\x7a\xd2\ +\xc1\x00\xa9\xc5\x3c\x3e\x94\x6a\x7f\xe3\xde\xc7\x8f\x9e\x9c\x98\ +\x78\x19\x98\x01\xf6\x03\x0f\x6d\xdf\xbe\xfd\x45\x57\x3e\xf1\xed\ +\xdb\xb7\xfb\x67\xd3\x4e\x1d\x3d\x3a\x3f\x2c\x67\xfe\x36\x3e\xfe\ +\xe4\x9d\xca\x4a\xd8\xb5\xfe\xab\xff\xcf\xe4\xc0\xd2\x3f\xed\x06\ +\x82\x6f\x4b\x01\xee\xfe\xdc\xe7\x44\xb3\xdd\x02\x05\x3b\x77\xee\ +\x42\x29\x67\xf0\x52\x32\x95\x22\x93\xc9\x90\xce\x64\xfc\xd1\x6c\ +\x74\x15\x7f\x0a\x21\x28\x14\x8b\x0c\x1d\x3f\xc6\xa1\x43\x87\x19\ +\x1f\x1f\x3f\xe5\x85\x7e\xc7\x39\x6e\xcb\x22\x95\x4a\x23\x0c\x58\ +\x34\xb8\x88\xf9\xf3\x17\x90\xcd\x65\x9c\x76\x6e\xc3\x74\xc7\xbf\ +\x74\x46\x94\x79\x04\x8d\x2d\x65\x60\xaa\x97\xef\x4b\x9b\x4d\x1a\ +\x8d\x06\xaf\xbc\xf2\x0a\x27\x4e\x9c\x38\x2d\x29\xdb\xcf\x7e\xf6\ +\xb3\xda\x98\x18\xef\x30\x2c\xe7\x63\x2d\x4b\x9a\xac\xb3\xf6\x62\ +\x54\x46\x1c\x2b\x10\x8a\x33\x1d\x5e\xc1\x3f\x3e\x3d\xca\x7d\x8f\ +\x3f\xed\xbd\x44\x0d\x18\x07\x4e\x02\x79\x60\x8f\x10\xe2\x07\xdb\ +\xb6\x6d\xdb\x79\x78\xe7\xae\x70\x3c\x1d\xf9\xe3\x79\xf6\xe1\xcf\ +\x5a\x87\xb6\x26\xec\xc5\xd7\x34\xaa\xf3\x3f\xf8\xc5\xf4\xe2\x65\ +\x7f\xf1\x8e\x5c\x80\xad\x3a\x33\xff\xbc\x91\xea\xad\x76\x8b\xa9\ +\xa9\x29\x26\xa7\xa6\x5c\x5f\xaa\x88\xc7\xe3\x64\xb2\x19\x72\x99\ +\x1c\x89\x64\x02\xc3\x9d\xcb\x93\x4c\x24\x58\xbb\x76\x1d\xeb\xd6\ +\xad\x47\x29\xc9\xc4\xc4\x24\xc7\x8f\x3b\x99\xbc\x72\xb9\xec\x1f\ +\xfd\xf2\x8e\x14\xc3\x25\x80\x1a\x8d\x06\xe1\x90\xc5\xe8\xe8\x28\ +\xd1\x68\x94\x72\xb9\x44\x24\x12\x21\x91\x48\x90\x88\xc7\x89\x44\ +\x23\x08\xc3\xc1\x55\x76\xbb\xed\xef\x70\x21\x84\x3f\xb4\xaa\x54\ +\x2a\x92\xcf\x17\xa8\xcc\x54\xd8\xb7\xef\x75\x5a\xee\xe3\x4e\xc7\ +\xfa\xf2\x97\xbf\x1c\xf8\xfb\x33\x9f\xf9\xb4\x1f\x29\x34\x6d\x20\ +\x12\xea\xfc\x63\xbd\x40\x8f\x71\x8c\xdf\xd8\xb2\x02\xb8\x8a\x67\ +\x77\xbf\xca\xf8\xd4\x54\x0c\x58\xea\xfe\x00\x5c\xab\x94\xfa\x9d\ +\x7f\xf7\xc9\xdf\x68\x3c\xf5\xd2\xb3\xea\xd7\xb7\x2c\xee\xb3\x8e\ +\x3c\x60\x52\x3a\x81\x8a\x66\x1a\x0a\x31\xfc\x8e\x89\x20\xdd\x3c\ +\xfa\x04\x47\xf7\x09\x9c\x52\x51\x2e\x97\x29\x95\x4a\x1c\x93\xc7\ +\x90\x4a\x11\x09\x87\x49\xa7\x53\xe4\xb2\x39\x52\xe9\x0c\xe1\x70\ +\x18\xa5\x24\xd9\x6c\x96\x5c\x4f\x8e\x0b\x2f\xba\x90\x46\xbd\xc1\ +\xf8\xd8\x18\xc3\x23\xc3\x4c\x4c\x4c\xd2\x68\x34\x68\xba\xc5\x20\ +\xed\x76\xdb\x77\x19\xe2\x4d\x3a\x26\xbc\xd0\xd4\xb1\xf4\x8e\xc9\ +\x1f\x1e\x1e\x71\x47\xca\x84\x08\x85\xdc\x9f\x70\x98\x50\x28\x04\ +\x4a\xf9\x6e\x49\x4a\x49\xbd\x5e\x27\x9f\xcf\xd3\x6a\x36\x91\x4a\ +\x51\xc8\x17\x68\xb6\x5b\xbe\xf0\x3d\xec\x70\xba\xd7\x57\xbe\xf2\ +\xd7\x00\x2c\xed\xef\xe7\x93\xd7\x5f\x0c\x4b\xaa\xce\xee\x97\xae\ +\xd2\x95\x47\xe8\x8d\x37\xf9\xad\x0f\xae\xe0\xe2\xb5\xb7\xb0\x6b\ +\xef\x11\x0e\x9f\x18\xa1\x34\x53\x41\x29\x45\x26\x9d\x0e\x2f\x5b\ +\x3c\x18\xbe\xec\x82\x55\x5c\xd0\xd7\x26\x7a\x64\x2b\x8c\x3c\x0f\ +\x03\x17\x53\x90\x99\x5a\x48\x98\xaf\xbf\x63\x05\x50\x2a\x98\xf5\ +\xea\xd4\xea\xcd\xee\x8a\xd5\xc2\x7b\xea\xb5\x1a\xd5\x6a\x95\xd1\ +\xd1\x93\x48\x25\x31\x84\x20\x91\x4c\x91\xcb\x66\xc9\xe5\x72\x24\ +\x12\x71\x94\x84\xf9\x0b\xe6\xb3\x60\xc1\x42\x84\x21\x98\x99\x99\ +\x61\x62\x62\x82\x89\x89\x09\xca\xe5\x32\xf5\x7a\x9d\x6a\xb5\x4a\ +\xad\x56\xf3\xc1\xdd\x9c\xa0\x52\x4a\x1a\x0d\xe7\x1c\x80\x48\x4f\ +\xc4\x8d\x44\x40\x18\xde\x20\x48\xe1\x9c\x07\x80\x73\xe0\x73\xd3\ +\x05\xb6\xad\x56\x8b\x66\xab\xe5\x03\x5d\xe7\xa7\xe9\xbb\x07\xcb\ +\xb2\x68\xb7\xdb\x67\xb4\x62\x67\x70\x7e\x1f\xbf\x7a\xd5\x66\xb6\ +\x2c\xad\x63\xd4\xa6\xdc\x8a\x55\xe9\x28\x81\x92\x50\x1e\x21\xd3\ +\x9c\xe1\x8a\xdc\x20\x17\x5c\x33\x48\x41\x9e\x4f\xb5\xe9\x0c\x9e\ +\x4c\x46\x4d\x72\x56\x95\x44\x6d\x1f\xc6\xf1\xdd\x90\x3f\x0c\x56\ +\x14\xbb\x77\x3d\x56\x7c\xde\xa3\x46\x28\x7c\xe8\x9d\x5b\x00\x5b\ +\x75\x52\x97\x81\xd3\x37\xb5\xe3\x99\xfc\xe2\x0a\xe9\x13\x2f\x01\ +\x26\x4c\x82\xad\x6c\xf2\xd3\x79\xa6\xa7\xa6\x5c\xf4\x6d\x13\x8f\ +\xc5\xc9\xe6\xb2\x64\xb3\x3d\x64\xd2\x69\x2c\xd3\x64\x60\xe1\x42\ +\x06\x06\xfa\x51\x52\x51\x2a\x97\x29\x14\x0a\x94\x4a\x25\x6a\xb5\ +\x2a\xe5\xf2\x0c\xe5\x72\x99\x6a\xb5\x1a\x50\x06\x5d\x21\xa6\xa7\ +\x83\xbc\xc7\x9a\x35\x6b\x1c\x13\x2f\x00\x43\xf8\x07\x59\x7b\xbf\ +\x3d\x17\xa6\xbb\xb8\x5a\xb5\xfa\xae\x54\x4c\xcd\xcb\x64\xb8\xf3\ +\x8a\x8d\xdc\xb0\xaa\x49\xa8\x36\xee\xa0\x7f\x4f\x01\xf4\x9f\xea\ +\x24\x46\x75\x92\xb4\xb5\x8f\xb4\x15\x05\xc3\x72\x14\xa4\x54\x87\ +\x46\x09\x6a\xd3\xce\x73\x01\x99\x5b\xcd\x58\x68\x15\xb4\x8d\x9f\ +\x0c\x2e\x58\x50\x3c\x0d\x16\xa0\x73\xc4\x6b\x3a\x93\xa1\x5c\x2a\ +\xd1\xb2\xed\x39\x0e\x7c\x96\x5d\xa7\x76\x77\x1d\x00\x85\x4e\x99\ +\x3a\x8f\x99\xa9\x54\x28\xcf\x94\x39\x7a\xf4\x38\x4a\x49\x42\x56\ +\x88\x74\x3a\x4d\xcf\xbc\x1e\xff\x94\x8f\xfe\x85\x0b\xe9\x5f\xb8\ +\x90\x56\xbb\x4d\xb5\x52\x61\xa6\x52\xa1\x5e\xaf\x33\x33\x33\xe3\ +\x8e\x88\x2f\xfa\x91\x86\x67\xd6\xf5\xf5\xfa\xeb\xaf\xf3\x5e\x5c\ +\xf3\x32\x19\x7e\xf5\x83\x17\xf2\x91\x0d\x36\x46\x23\x0f\x76\x73\ +\xb6\xe0\x03\x3b\xb1\x0d\xf5\x42\xc7\x45\x78\x56\x42\xff\x3b\xde\ +\x0b\x4b\xb6\xb0\x7b\xb8\x42\xb6\x32\xb6\xe3\xb4\x24\x83\x1c\xa2\ +\xc4\x11\xd8\xaa\x55\x2b\x5d\x6e\xa0\x45\xb1\x5c\xa6\x58\x28\x50\ +\x2c\x14\xa9\xd6\xaa\xb3\x0f\x70\xd6\xcf\xce\xd3\x0b\x2d\xfc\xdc\ +\x19\x7e\x7e\xdf\xbb\xdd\x68\x36\x18\x9f\x18\xe7\xe4\xd8\x49\xd7\ +\xe4\x43\x32\x99\x26\x97\xcb\xd1\xd3\x93\x23\x99\x4c\xd2\x1b\x8b\ +\xa1\x94\xa2\xd9\x6a\xd1\x70\x67\x00\x36\x9b\x4d\x0a\x85\x02\x53\ +\x53\x53\x94\xcb\x65\x6c\xdb\x3e\x25\x07\xf1\x5e\x58\xf3\x73\x39\ +\xee\xda\xb2\x99\x5f\xd9\x64\x60\x34\x26\xe7\x16\x7e\xb7\x2b\xe8\ +\x56\x0c\xfd\xb7\x30\x20\x7b\x1e\x9c\x77\x0d\x8f\x8f\x64\x79\x6c\ +\xc7\xf3\x54\x6b\xb5\x89\xd3\xa2\x00\x52\xda\xfe\x81\x0e\x85\x62\ +\x89\x44\x3c\x8e\x69\x59\xe4\x72\x59\x7a\xb2\x59\x07\x49\x4b\x49\ +\x65\x66\x86\x7c\xa1\xc0\xf4\xf4\x34\xe5\x72\x29\x78\xe8\x23\x5d\ +\xe7\xed\x68\x05\x16\x02\xed\x90\x65\x3d\x31\x24\x04\xb6\x6d\x53\ +\x28\xe4\xc9\xe7\xa7\x39\x78\xd0\xc1\x22\xd1\x68\x84\x6c\x2e\xcb\ +\xbc\xdc\x3c\x32\x99\x0c\xa9\x54\x12\x25\x15\xe9\x74\x9a\x81\x81\ +\x01\xec\x76\x9b\x6a\xb5\xca\x74\x3e\xcf\xf4\xf4\x34\x95\x4a\xc5\ +\xaf\x15\x78\x2f\x28\x43\x5f\x36\xc3\x5d\x57\x6e\xe4\xce\x0b\x0c\ +\x42\xcd\xe9\xd9\x02\xd6\xff\x9e\x4b\xf8\xfa\xfd\x00\x89\xf9\xd0\ +\xbb\x86\x72\xee\x22\x9e\x1b\x31\x79\xe8\xa7\xcf\x52\x28\x16\x09\ +\x87\xc3\xa7\xa7\x1e\x40\xc9\x4e\x41\xc3\xb1\x63\x8e\xa9\x36\x84\ +\x20\x16\x8f\x93\x4e\xa5\x48\x24\x93\x4e\xa8\x95\x4c\x12\x4f\x26\ +\x19\x1c\x18\x40\x2a\x45\xbd\x5e\xa7\x50\x2c\x30\x3d\x35\x4d\x3e\ +\x5f\xa0\xd9\x6c\xf8\x11\x03\xcc\x71\x5a\x96\xa2\x93\x3d\x54\x5e\ +\xfe\x9c\xae\xc3\x95\x15\xd5\x6a\x95\x4a\xa5\xc2\xf0\x89\x61\x3f\ +\xfe\xff\xe0\x07\xaf\xc2\x30\x0c\xac\x90\x85\x69\x9a\x84\x42\x21\ +\x52\xe9\x14\x8b\x17\x2f\xc2\xb6\x6d\xca\xe5\x19\xa6\xa6\xa6\x7c\ +\x77\xf1\x56\xa3\x8b\xd3\xbd\xb2\xc9\x24\xb7\x5d\xba\x81\xdb\x37\ +\x98\x44\xed\xc2\x1b\xef\x7c\xfd\xc7\x8a\x42\x72\xa1\x73\xbb\x39\ +\xe3\xfc\x8e\xa4\x69\xc7\x07\xa8\x45\x06\x38\x51\x4f\xf3\xfc\x4b\ +\xa3\xbc\xb2\xef\x20\xf9\x42\x11\x43\x10\x48\x6c\xbd\x33\x0b\xa0\ +\x9b\x6f\x17\x24\xb5\xa5\x4d\xb1\x58\xa4\x50\x2c\xa2\xdc\x30\x31\ +\x16\x8b\x91\x4a\xa5\x48\xa5\x52\xc4\xe3\x71\x22\x91\x08\xf3\xe7\ +\xcf\xa7\xaf\x77\x3e\xb8\xdc\x41\xb1\x54\x64\x7a\x6a\x9a\xe9\xe9\ +\x3c\xe5\x99\xb2\x6f\xc1\x94\x77\xc4\x4c\x77\xae\xc0\xd5\x14\xa9\ +\xe6\x38\x8f\xcf\x5d\x0e\x4a\x97\xb3\x46\xb7\x29\xe5\x46\x00\x86\ +\xe9\x7c\xae\x74\x0a\x25\x15\xad\x96\xf3\x39\x9c\xd2\x72\xe7\x60\ +\x89\x77\x63\x25\x63\x31\x6e\xbb\xf4\x02\x3e\x7a\x51\x98\xa8\x2a\ +\xbf\x75\xe1\x9b\x61\xe4\xfc\x4d\xbc\x5a\x59\x84\x11\x0a\x11\x89\ +\x48\x84\x65\x51\xae\xc3\xc4\x54\x8b\xc3\xc3\x13\x1c\x1e\xda\xcd\ +\xc4\xf4\xb4\xef\x36\xa5\x12\x6f\xc8\xab\x9c\x76\x1e\x00\xe5\xcc\ +\xd7\x9f\x99\x99\x61\x78\x78\x18\xa9\x14\x21\xcb\x22\x99\x4a\x92\ +\xc9\x64\x48\x26\x92\x84\xc3\x61\x72\xd9\x1c\xd9\x74\x86\x65\xcb\ +\x96\xa1\x94\xa2\x5c\x2e\x31\x3d\x9d\x67\x72\x72\x8a\x62\xb1\x40\ +\xdb\x6e\x6b\xc7\xb0\xcc\x3e\x45\x67\xd6\x19\x7c\x01\xac\xa2\x35\ +\x8c\x8a\x4e\x89\xb7\x4f\xbd\x4a\x27\x92\x31\x0d\x93\x6c\x26\x4b\ +\x2e\x9b\x43\x08\x41\xbd\x5e\xa7\x5c\x2e\x53\x2c\x16\xa9\xd7\xeb\ +\xfe\xf7\x3d\x9d\xa1\x5f\x2a\x1e\xe7\x8e\xcb\x36\xf2\xef\x2e\x0f\ +\x61\xc8\xea\xdb\xdb\xf9\xf3\x37\xf0\xf0\xf1\x5e\xee\x7d\xea\xa7\ +\xb4\xa5\x24\x64\x59\x18\x42\xd0\x68\xb7\x68\x34\x9a\xd8\xd2\xf6\ +\x07\x59\x3b\x7c\x85\x00\xa1\xb0\xdf\x20\x03\xf9\x36\x2d\x40\x50\ +\x01\xde\x2a\x0f\xd0\x6c\x34\x98\xac\xd7\x99\x18\x9f\xf0\x79\x80\ +\x58\x3c\x41\x36\xed\xd0\xc7\xf1\x78\x8c\x44\x22\x49\x22\x9e\x60\ +\x70\x70\x11\x20\xa9\xd5\xea\x14\x0a\x05\x26\x27\xa7\x98\x9e\x9e\ +\xea\x84\x63\xde\x51\x32\xa7\x48\x23\x04\x0e\x5e\x72\x7b\xef\xbd\ +\xd3\xe8\xd5\xac\x88\x26\x58\xc1\x1b\x0e\x87\xe9\xed\xed\xa5\xaf\ +\xaf\x0f\x80\x6a\xb5\x4a\xb9\x5c\x66\x66\x66\x86\x66\xb3\x89\x6d\ +\xdb\x3e\x53\xe9\x65\x15\xdf\xae\xd9\xbf\xe5\xe2\x75\x7c\xfc\xd2\ +\x08\x86\xac\xbf\xad\x9d\x4f\xdf\x3a\x1e\x3d\x31\x8f\xad\x3f\x7d\ +\x81\xb1\xe9\x29\x0c\x61\x04\xc3\x5f\x04\x86\x30\x9c\x12\x3c\x43\ +\xfa\xf7\x09\x83\x37\x3c\x8b\xf8\x6d\x5a\x00\xbd\xdc\xf9\x9d\xf1\ +\x00\xc5\x42\x91\x42\x3e\xef\xf3\x00\xb1\x68\x8c\x74\x26\x4d\x26\ +\x93\x23\x95\x4c\x12\x0a\x85\xe9\xed\xeb\xa3\xaf\xaf\x17\xe9\x1e\ +\x12\x5d\x2a\x96\x98\x9c\x72\xb2\x66\xc5\x52\x71\xce\x29\x1a\xdd\ +\x07\x93\x0b\x08\x16\x5d\xba\x07\x53\x06\x0e\xf9\xd1\x94\x42\xdf\ +\xed\xd1\x68\x94\x58\x2c\xc6\x82\x05\x0b\xfc\x73\x87\x66\x66\x66\ +\xa8\xd5\x6a\x1a\x59\xd4\x0a\x98\xd8\x53\x29\x45\x3a\x1e\xe7\xa6\ +\x8b\xd6\xf2\xb1\x8b\x62\x44\x45\xfd\xd4\xa0\xae\xfb\xc7\xb0\x60\ +\xde\x6a\x1e\x1f\xee\xe5\xc7\x4f\xbd\xcc\xc8\xf8\xb8\x53\xcb\x20\ +\x94\xcb\x76\x2a\x57\xf0\x9d\x73\x87\x84\x14\x08\x0c\x47\xf8\x12\ +\xda\xa7\xcb\x02\x28\x29\xfd\x94\x69\x22\x91\xa0\x52\xa9\xd0\x96\ +\xf2\xb4\xf0\x00\x95\x6a\x95\x99\xca\x0c\x43\x43\xc3\x28\x25\xb1\ +\x4c\x8b\x54\x2a\x45\x2e\x97\x25\x95\x4e\x13\x8d\x46\xc9\x64\x33\ +\xa4\x33\x69\x96\x2d\x5b\x86\x94\x92\x6a\xb5\xca\xd4\xd4\x94\x0f\ +\xea\x9c\x43\xa0\x14\x74\x45\x12\xfa\xf1\xed\x81\x49\x65\x6f\x81\ +\xf7\xd0\x1f\x17\x8f\xc7\x49\x24\x12\x08\x21\x68\xb5\x5a\xd4\x6a\ +\x35\xbf\x93\xb9\xd9\x6c\x52\xaf\xd7\x69\x36\x9b\x9d\x34\xb4\xab\ +\x10\xf1\x48\x84\x1b\x2f\x5c\xc3\xaf\x5d\x1c\x23\x1d\x7e\x1b\xc2\ +\x17\x06\xf4\xac\xe4\x89\xd1\x05\xfc\xf0\xa9\x97\x39\x36\x7a\xd2\ +\x61\x36\xf5\x11\xa5\xc2\x21\xb4\x04\x06\x1d\x9b\xeb\x2a\x83\x9b\ +\x06\x57\x6f\x80\x6d\xde\x76\x14\x20\xdd\xa6\x8c\x45\x8b\x17\xbb\ +\xc0\xab\x45\xa5\x52\x65\xa6\x5c\xa6\x5c\x9e\xa1\xde\xa8\x9f\x16\ +\x1e\xa0\xd9\x6a\x32\x39\x35\xc9\xf8\x44\x27\x6b\x98\x48\x24\xc9\ +\xe5\xb2\x64\x33\x19\xe7\xfc\x9f\x58\x8c\xc1\x81\x01\xfa\xfb\xfb\ +\x1d\x3e\xc0\x6d\x29\x0f\x74\x12\xeb\x8d\x22\xb2\xfb\xc4\xf0\xb7\ +\xe7\xbf\xf5\xe7\x1a\x86\x41\x32\xe9\x1c\x57\x0f\xd0\x6a\xb5\x7c\ +\x05\xf0\x94\xa1\x5a\xad\x22\xa4\xe4\xe6\x8b\xd6\xf0\xc9\xcb\xa3\ +\x24\xc2\x2d\x67\x52\xca\xa9\xc2\x3a\xfd\x3e\x61\x20\xb3\x2b\x78\ +\x6a\x74\x01\xdf\x7f\xea\x65\x8e\x0c\x0f\x3b\xbe\x1d\x67\xb7\x0b\ +\xc0\x50\x0a\x70\x4f\x3e\x51\xb6\x53\x79\x65\x08\x84\xea\x70\x1e\ +\x4a\x89\x37\xac\x42\x7a\x3b\x0a\x20\x0e\x1d\x3a\x44\x5f\x5f\x2f\ +\x56\xc8\x72\xd8\x36\xd3\xc4\x34\x2c\x1f\xf1\xf7\xbb\x56\xa2\x5a\ +\xab\x51\x2a\x95\x28\x95\x4a\x54\x2a\x33\xa7\x85\x07\x90\x6e\x76\ +\xae\x58\x2c\xb8\xe0\x4c\x11\x8d\x86\x49\x67\xb2\xe4\xb2\x59\xd2\ +\xe9\x34\xa1\x70\xd8\x4d\xe7\x06\x4f\x19\x01\xbd\xbb\x27\x88\x15\ +\xde\xc9\xd2\x15\xc2\x34\x4d\x92\xc9\x64\xa7\x78\xa6\xd5\x42\x28\ +\xc5\x25\x4b\xfb\xf8\x37\x9b\x5a\x58\x86\x9a\x9b\xc0\x39\x15\xa9\ +\x93\x5b\xce\xd3\x63\xfd\x7c\xff\xf1\x17\x39\x3c\x32\xea\xc8\x58\ +\x74\x8e\x98\x37\x94\x40\x0a\xd1\x29\x75\xf3\xca\xee\xdc\xd2\x7a\ +\xe7\x3e\x40\x18\xd8\xea\xf4\x28\xc0\x8e\xc7\x1e\x7f\x2c\x22\x84\ +\xb8\x28\x9d\x4e\xd3\xdf\xdf\x4f\x7f\x7f\x3f\xa9\x54\x8a\x50\x28\ +\x44\x38\x1c\xc6\xb2\x2c\x84\x30\x88\xc7\x63\xc4\x62\x31\xe6\xcf\ +\x9f\xef\x64\x33\x35\x74\x5d\x2a\x95\x4f\x23\x0f\x50\xa3\x52\xa9\ +\x32\x3a\x32\xe2\xf3\x00\x4e\x93\x48\x90\xcf\xf7\x72\xfc\xb3\x8e\ +\x77\x3b\xcd\xe1\x5d\xc0\x5d\x44\xa3\x6c\x1e\x9c\xc7\x6d\xab\xea\ +\x58\xa6\xf1\xd6\x4c\xbe\x27\xfc\xec\x79\x3c\x33\xb6\x80\x7f\x79\ +\xfc\x25\x0e\x1c\x3f\xe1\xec\x6a\xe1\x36\xa1\x79\xe1\x9d\x10\x18\ +\x18\x5d\xe8\x47\xb8\x3d\x19\xc2\x3f\x01\xc7\x39\xdc\xd2\x7e\xc3\ +\x1a\xc4\xb7\xb5\xae\xbf\xfe\xfa\x1f\x4a\x29\xab\xed\x76\xdb\x56\ +\x4a\x5d\x15\x0a\x85\x96\x65\x73\x59\xe6\xf7\xcd\xa7\xb7\xb7\x97\ +\x48\x34\x42\x3c\x16\x23\x16\x8b\x3b\x87\x2c\x68\x5d\xb4\x5e\x59\ +\xb4\xdd\xb2\x29\x97\xcb\x14\x0a\x79\x0a\xc5\x12\x95\x4a\xc5\xc7\ +\x17\x52\x69\xe5\x59\x6e\xf6\x51\x79\xc5\x9b\x52\xba\x35\x09\x9d\ +\xc7\x76\xfb\xf2\x2d\x5b\xb6\x04\x9e\xaf\x27\x79\x74\xd4\xef\x25\ +\xb5\xce\xc4\x0a\x99\x26\x1b\xfb\x7b\xb8\x79\x65\x83\x9e\xa4\xea\ +\xf0\xf7\xdd\x7c\xfd\x5c\xf7\xa5\x17\xf1\xcc\xd8\x02\xbe\xfb\xe4\ +\xab\xec\x3b\x7a\xd4\x05\x73\x22\xd0\xe8\xd2\xb9\x4f\xcc\x91\x08\ +\xd3\x1e\xeb\x5a\xcf\x50\x28\x94\xf8\xee\x77\xbf\x5b\x7d\xc7\x18\ +\x00\x60\xfb\xf6\xed\xbf\xaa\x29\xc3\x87\x94\x52\x37\x4d\x4f\x4d\ +\xdb\xe3\x63\xe3\x2d\xd3\x34\xff\x2c\x12\x89\x90\xcd\x66\xc9\x66\ +\xb3\xa4\x53\x69\x15\x8f\xc7\x45\x2a\x9d\x22\x91\x48\x38\x25\xe4\ +\x4a\x82\x69\x92\x4e\xa7\x48\xa7\x53\x2c\x76\x77\x7f\xa5\x52\xa1\ +\x90\x2f\x30\x9d\xcf\x53\x2e\x97\x7e\x6e\x1e\x40\x76\xb5\x7f\xeb\ +\x87\x35\xe8\x8d\x26\x67\x6a\x04\x87\x69\x18\x5c\xb0\x20\xc3\xcd\ +\x2b\x6a\xf4\x24\xc5\xdc\xa6\xfe\x54\x3f\xe9\x45\xec\x9a\x58\xc8\ +\x3f\x3f\xb9\x97\xd7\x8f\x1c\x75\xb7\xa8\xd6\xd3\x26\x44\x27\xcc\ +\x93\x5a\x6a\xdb\xab\x2a\x12\xda\xee\xc7\x2b\x7d\x53\xa7\x8f\x08\ +\xd2\xd7\x4d\x37\xdd\x24\x1e\x7a\xe8\xa1\x27\x81\x27\x35\x85\x38\ +\xd4\x6e\xb7\xcd\xb1\xb1\x31\x71\xf2\xe4\xc9\x8d\x96\x65\xfd\x6f\ +\xd1\x48\x94\x44\x32\x41\x32\x99\x24\x9e\x48\x38\x67\xf2\x66\xb3\ +\x24\x12\x09\x94\x72\xca\xb0\x50\x0e\x7b\x18\x8d\x46\x59\xd8\xbf\ +\x10\xa9\x14\xcd\x46\x83\x62\xa1\x40\x3e\x5f\x20\x5f\xc8\x53\xaf\ +\xd5\xde\x12\x0f\xe0\x4e\x74\xe8\x74\x10\x69\xd1\x89\x42\x05\xea\ +\x4f\x4f\xf7\x32\x80\x0b\x17\xa4\xb9\xeb\xfc\x19\xe2\xf1\x10\x08\ +\x73\xf6\x8e\xef\x06\x7c\xee\x6f\x99\x1c\xe4\x67\xf9\x7e\xfe\xf9\ +\xc9\xbd\xbc\xea\x09\xdf\x77\x59\x8e\x20\x0d\xaf\xd3\xd6\x9b\x34\ +\x07\x18\xb6\x44\x1a\xce\x85\x30\xf0\xc8\x1f\xc7\x5d\x78\xff\x97\ +\x6f\x60\xea\xce\x18\x01\x7e\xc3\x0d\x37\xc4\x94\x52\x97\xd9\xb6\ +\x2d\x5b\xad\x56\x39\x14\x0a\x7d\xdf\x34\xcd\xe5\x91\x48\x84\x68\ +\x34\x4a\x34\x1a\x55\xc9\x64\x52\xcc\xeb\x9d\x47\x4f\x2e\x47\x38\ +\x1c\x45\x29\xaf\x24\xcc\xf6\x7b\xe6\x3d\xe1\xb5\x6d\x9b\x99\x72\ +\x99\xe9\xe9\x29\xa6\xa6\x1d\x2b\x21\xed\xd9\xa2\xbc\xfc\xf2\xcb\ +\x83\x43\x20\xbb\x7e\x4e\x37\xb3\xe7\xef\x7c\x21\xb8\x60\x7e\x9a\ +\x8f\x5f\x50\xc6\x8a\x26\x3a\x79\xfa\x37\x32\xf7\xde\xed\xc4\x7c\ +\x76\x17\x17\xf2\xed\x27\x0e\xf2\xe2\xbe\x03\x6f\x50\xed\xd4\x6d\ +\xf2\xe9\x14\xb9\xb8\x3b\xde\x70\x81\x9f\xdf\xad\xe5\xba\x80\xef\ +\x7f\xff\xfb\xd5\x77\x55\x01\xe6\x50\x88\xf9\x52\xca\x84\x94\x52\ +\xd8\xb6\x6d\x85\x42\xa1\x7d\x86\x61\x10\x0a\x85\xb0\x2c\x93\x48\ +\x24\xaa\x7a\x7a\x7a\x44\x5f\x5f\x1f\xd9\x6c\xd6\x2f\xd1\xf2\x95\ +\x61\x0e\x61\x56\xab\x35\x0a\x05\x27\xd3\x57\x2a\x95\x68\xb7\xdb\ +\x5c\x7e\xf9\xe5\x5a\x7f\xbf\xec\x3c\x17\xe5\x17\xb4\x9c\x89\x9d\ +\xbf\x6e\x7e\x96\xbb\x56\xd7\xe9\xc9\x86\x1c\xe6\xee\xcd\x7c\xbe\ +\xf7\x77\xac\x87\x97\xa7\x17\xf2\x4f\x4f\x1d\xe4\xe5\x03\x87\xde\ +\x5a\x38\xd6\xad\x08\x08\x37\x1a\xec\x44\x03\xc2\x73\x09\x38\x0a\ +\xf0\xc3\x1f\xfe\xe0\x17\xab\x00\x73\x80\xc9\xb8\x52\x4a\x4c\x4c\ +\x4c\x34\xe6\xcf\x9f\xff\x59\xe0\x2f\xbd\x82\x4c\x21\x04\x89\x44\ +\x82\x3e\x97\x09\x4c\x26\xd3\x7e\x2a\x5a\xd9\x1e\x50\xec\x90\x4d\ +\x1e\xe8\x6b\xdb\x2d\x4c\xc3\x9c\x63\xc7\x13\x88\x0a\x4e\xab\xf0\ +\x85\xe0\xfc\x79\x29\x6e\x5b\xd9\xa0\xbf\x37\xec\x08\x7f\xae\x1d\ +\x3f\x97\x12\x44\xb3\xbc\x32\xbd\x80\x6f\xff\xf4\xc8\x5b\x16\x7e\ +\x37\xe3\xe8\x83\x3f\x8f\xfa\x75\xfd\xbe\xd7\x07\x89\x80\x50\xc8\ +\x4a\xfc\xe8\x47\x3f\x7e\x6f\x29\xc0\x9b\x28\xc7\x41\x60\xb9\xf7\ +\xf9\x0c\xc3\x20\x93\xc9\x30\x7f\xfe\x7c\x7a\x7a\x72\x84\xc3\x61\ +\x47\xb0\x38\x87\x36\xaa\xae\xe1\x50\x4a\xc9\xc0\x0c\x1f\x27\x83\ +\x68\x9f\xf6\xf1\x6b\x02\x58\x33\x2f\xc5\xad\x2b\x1b\x0c\xf4\x45\ +\x9c\x84\x8d\x2e\x6c\x9d\xeb\x97\xed\xce\xdf\xb2\x0d\x91\x34\x7b\ +\x0b\x7d\x7c\xeb\xa9\xe3\xbc\xb8\xff\xe0\xcf\xfd\xfe\xee\x19\xf7\ +\x81\x82\x17\xe1\x1e\x7b\x6f\x18\x26\x08\xf6\x98\x96\x75\xc9\x4f\ +\x7e\xfc\xe3\xfa\x69\x05\x81\x67\x6a\xdd\x78\xe3\x8d\xe2\xe1\x87\ +\x1f\x5e\xe9\xfd\x7d\xfb\xed\xb7\x47\xea\xf5\x7a\x65\x7a\x7a\xba\ +\x38\x35\x35\x25\x94\x52\xf1\x70\x38\x1c\xe9\xe9\xc9\x31\xaf\xb7\ +\x97\x54\x32\xed\x1c\xe0\xa4\x3c\xfa\x55\xfa\x6c\xa0\x3f\xbd\x43\ +\xca\xd3\x0f\xfa\x95\x62\x7d\x5f\x9a\xbb\x56\x96\xe8\xe9\x4d\x43\ +\x28\x3e\x9b\xdd\xf3\x22\x00\xbd\x68\x43\x49\x64\x28\xc5\x70\x73\ +\x21\xdf\xdb\xf1\xf3\x0b\x9f\x00\xa5\xde\x19\xcc\x2d\xc0\xe9\x7c\ +\x16\xe2\x09\xc3\x10\xdb\x0d\xcb\xfc\x57\x04\x8d\x77\x1d\x04\x9e\ +\x41\x2c\xf1\x3b\x4a\xa9\x3f\x90\x52\xd6\xdd\x1d\xbf\x36\x1e\x4f\ +\xf8\x14\x71\x2c\x1e\xef\x30\x61\x18\x6e\x77\xad\x3a\xed\xa6\x7f\ +\x55\x36\xce\xaf\xad\x2e\x91\x9b\x97\xc6\x88\x65\x66\x9b\x7a\xbb\ +\x39\x1b\xfd\xcb\x36\x58\x51\x86\x6a\xbd\x7c\xeb\x99\x09\x1e\x7f\ +\xe5\xd5\xd3\xeb\x8e\x9c\x5a\xc8\xc7\x0c\x21\xbe\x61\x5a\xd6\x53\ +\xf7\xde\x7b\xef\xd1\xb7\x66\x45\xde\x27\xeb\x96\x5b\x6e\x11\x0f\ +\x3c\xf0\x80\xea\x72\x17\xff\xac\x94\xca\x4a\x29\x4d\xa5\x54\xd2\ +\x30\x8c\xcb\x12\x89\x04\xe9\x74\x9a\x64\x32\x89\x65\x39\xb4\xb5\ +\xf7\xbb\x9b\xb1\xfb\x79\x76\xfe\xb2\x4c\x82\xdb\x97\xd7\x38\x6f\ +\x30\x0e\x91\xf4\xa9\x01\x9e\x6e\xf2\x5d\xe1\x1f\xaf\x0f\xf0\xcd\ +\x9f\x8e\xf0\xe4\xcf\xf6\x9e\xb6\xeb\x22\x84\xc0\x34\xcd\x87\x81\ +\x3f\x37\x4d\x73\xdf\xd6\xad\x5b\x27\xde\x9e\x1b\x79\x9f\xae\x1b\ +\x6e\xb8\x41\x6c\xdb\xb6\xcd\x97\xe6\x9d\x77\xde\x19\xaa\x56\xab\ +\xdf\x94\x52\x56\xa5\x94\x36\x70\x83\x65\x59\xcb\xbc\x2c\x5e\x3c\ +\xee\xb0\x93\x5e\x73\x88\x69\x9a\xb3\x32\x7e\x6f\xb6\x96\x26\xa3\ +\xdc\x72\x5e\x9d\x55\x4b\x13\x10\xcd\x06\x7d\xfd\x1b\x29\x80\x19\ +\xe6\x78\xa5\x97\x87\x8f\x86\xf8\xd1\x63\x4f\xd2\x98\xa3\x33\xf8\ +\xe7\x14\xfc\x13\x42\x88\xdf\x15\x42\x1c\xbe\xff\xfe\xfb\x5b\x3f\ +\x1f\x8e\x38\x4b\xd7\x0d\x37\xdc\x70\xb5\x94\xf2\x5a\xa5\x94\x6d\ +\xdb\x76\xcb\x30\x8c\xff\x1c\x0e\x87\xfd\x3c\x7f\x24\x12\x51\x91\ +\x48\x44\x44\x22\x11\xe7\x34\x71\xbf\x63\x58\x9d\x52\xf8\x37\x2f\ +\xad\xb3\x7a\x69\xcc\x29\xbb\x7e\x2b\x48\xdf\xcd\xe9\x8f\x35\x7b\ +\xb8\x77\x9f\xc5\x81\xc9\x02\xbb\xf7\xec\x71\x53\xd7\x3f\xb7\xeb\ +\xaf\x9b\xa6\xf9\xb2\x65\x59\xbf\xbe\x75\xeb\xd6\x13\xef\xe4\x1a\ +\x59\x67\xab\xf0\x6f\xbe\xf9\x66\xf1\xe0\x83\x0f\x3e\x01\x3c\xa1\ +\xb9\x8b\xc3\xed\x76\x3b\x52\x2a\x95\x8c\x62\xb1\xb8\xc4\x34\xcd\ +\x3f\x0d\x85\x42\x44\x22\x11\xef\x47\x45\xa3\x51\x11\x8f\xc7\xdd\ +\xf6\xb5\x4e\x64\xb1\x2c\x19\xe1\xd6\xc5\x45\x96\x2f\x49\x3b\xc2\ +\x3f\x55\x22\xa7\x0b\x08\x4a\x2c\x9a\x22\xc9\x43\x87\xc2\xbc\x3e\ +\x36\x81\x61\x9a\xef\xe4\x6b\x9d\x30\x4d\xf3\x80\x65\x59\x9f\xdc\ +\xba\x75\xeb\xc8\xe9\xb8\x4e\x67\xb5\x05\x78\x13\x05\x31\xdb\xed\ +\xf6\xb5\x52\x4a\xdb\xb6\xed\x9a\x69\x9a\x7f\x6e\x18\xc6\x75\x9e\ +\x7b\xb0\x2c\x8b\x58\x2c\x46\x32\x99\x64\x75\x5f\x0f\xb7\x2d\x2e\ +\xb3\x6a\x49\x14\x23\xbb\xf8\xcd\x99\x3d\xef\x47\x18\x94\x5a\x09\ +\xee\x3b\x94\xe2\xc5\x13\x13\x28\x9c\xb4\xf1\x9e\xb7\x6f\x01\x5e\ +\x10\x86\x71\xc0\x10\xe2\x9e\x87\x1e\x7a\x68\xe8\x74\x5e\x87\x5f\ +\x5a\x05\x98\x83\x7b\xe8\x55\x4a\xf5\x29\xa5\x44\xab\xd5\xaa\x86\ +\xc3\xe1\x23\x86\x61\xb0\x6e\x60\x01\x9f\xd8\x9c\xe0\xe2\xb5\x19\ +\x48\x0d\xd0\xb6\xc1\xa4\x89\x29\xd4\x1b\xbb\x00\x60\xa2\x9e\xe6\ +\x81\xc3\x31\x76\x8f\x4e\xf9\x7c\xfc\xdb\x54\x80\x47\x11\xe2\x69\ +\xe0\xeb\xdb\xb7\x6d\x1b\x3e\x13\xdf\xfb\x9c\x02\x9c\x5a\x21\xb2\ +\x9f\xb9\xf1\xda\x0f\x6f\x9e\x37\xf1\x47\x8b\x06\x43\x1b\x77\x97\ +\x06\x8d\xdd\xc7\x8a\x94\x6b\x4d\x7a\x93\x61\x2e\x18\x0c\xb3\x66\ +\x7e\x63\x6e\x9f\xaf\x24\x13\xd5\x38\x0f\x1c\x49\xb2\x77\x2c\x4f\ +\x5b\xcb\xc6\xbd\x45\x05\x78\x08\xf8\x0e\xf0\xd8\xf6\xed\xdb\x87\ +\xce\xe4\xf7\x34\xce\x89\x7a\xee\xf5\xa7\x9f\xf8\x44\x73\x55\xb6\ +\x75\xd3\xe0\xbc\xfa\xfa\x42\x78\xdd\x8b\xd1\xd4\xf2\x3b\x4c\x11\ +\xcf\x5e\xb1\xe1\x03\xa1\xef\x3e\xfe\xfc\x5f\xff\xed\xb6\xfd\xec\ +\x3c\x8c\x73\x34\x7d\x17\x16\x28\x35\x22\x3c\x74\x34\xc1\xab\xe3\ +\x85\x80\xf0\xdf\xca\x8e\x17\x42\x6c\x01\x7e\x73\xfb\xf6\xed\xdf\ +\x3a\xd3\xc2\x3f\xab\x41\xe0\x3b\xde\x19\xaa\x3d\x90\x0b\x4f\x5f\ +\x69\x87\x73\x8d\x92\xdd\xf3\xbd\xd1\x43\xc7\x1e\xf8\xc4\xe7\x3e\ +\xe7\x95\xd6\x7c\x46\x29\xf5\x9f\x5e\xfd\xc1\xb7\xff\xa7\x7a\xfb\ +\xd8\x7f\x8b\x9b\xe5\x79\x9e\xf0\x5b\x36\xfc\xf7\x9d\x75\x76\x1e\ +\x3d\x46\x22\x95\x22\x99\x4c\x3a\x47\xc6\xbc\x31\xff\xb0\x13\xf8\ +\xb7\xc0\xe4\xb6\x6d\xdb\x2a\xef\xe6\xf7\x3c\xa7\x00\xa7\x8a\xb5\ +\xec\x76\x32\x16\x69\xf6\xd8\xd6\x40\xa3\x25\x8d\x83\x1f\xfe\xf4\ +\xa7\xed\xae\x18\x5c\x3d\xf7\x4f\xdf\x7e\xac\x12\x8a\x1d\x8d\x45\ +\x8a\x3d\x42\x49\xd1\x68\x5b\x95\x03\xf9\xc5\x5f\x7d\xf0\xe5\x07\ +\x7e\xbf\xd9\x6e\x97\xd4\xc4\x84\x01\xc4\x22\x91\x48\x2c\x93\xc9\ +\x38\x8d\x31\x9d\xba\x41\x1b\xd8\x29\x84\xb8\x7e\xdb\xb6\x6d\xf5\ +\x5f\xd4\xf7\x3c\xa7\x00\xa7\x54\x00\xd9\x6e\x4b\xa3\x19\x55\xcd\ +\xa4\x21\x64\x66\x4e\x2b\x11\x0a\x35\xa5\xa2\x85\x6c\x53\x6b\x18\ +\x85\xa3\xe5\x25\x5f\x2b\x34\xa2\x7f\xf1\xc0\x43\x0f\x7d\x5e\xc3\ +\x12\x1f\x69\xb5\x5a\x7f\x3d\x3e\x3e\x5e\x19\x1b\x1b\x33\x0c\xc3\ +\x30\x84\x10\x69\xc3\x30\x36\x3d\xfc\xf0\xc3\x23\xbf\xe8\xef\x79\ +\x4e\x01\x4e\x75\x61\x12\xa9\xb1\x62\x23\xb9\x2f\xd3\x9c\xba\x36\ +\x12\x9a\xb9\x76\xff\xa3\x8f\xdc\xbf\xfa\xda\xeb\x26\x03\x0f\x6a\ +\x56\x57\x47\x42\xa5\x85\x8d\x86\x2a\x1f\x2d\x2f\xfe\xfa\x54\x35\ +\xf4\xe5\xab\x7e\xef\x77\x0b\xfa\x43\xb6\x6f\xdf\xfe\x23\xe0\x47\ +\xef\xd9\xef\x79\x4e\xd4\x73\xaf\x70\x32\x9d\x2f\xd6\x7a\xb7\xd9\ +\xf5\x83\x1f\xec\x0b\x1d\xf8\x95\xe1\x8a\x3a\xf1\xb3\x1f\xfd\x8f\ +\xaf\x87\xd3\xd9\x93\x85\xe1\x13\x46\x38\x64\x2c\x4f\xdb\x27\x7f\ +\x3b\x2e\xf2\xf3\x0f\xe6\x17\x7f\xad\x2c\x32\xff\xcf\x55\xbf\xf7\ +\xef\xc7\xdf\x6f\xdf\xf3\x5c\x18\xf8\x06\xeb\xa9\xbf\xf9\x5a\x7f\ +\x4e\x8e\xfc\xd1\xba\xfe\xe1\xdf\x55\xd1\x9c\x9c\x68\x2d\x7a\xae\ +\x6a\x27\xf7\xc8\x46\xcd\x4c\x1a\x85\x8d\x7d\xb1\xb1\x0b\xf7\x4d\ +\x2d\xfb\xf2\x54\x33\xf5\xa5\xab\x7e\xf7\xf7\xa6\xde\x8f\xdf\xf1\ +\x9c\x02\xbc\x59\x5c\xf6\xdf\xfe\x72\x60\x41\x56\xfe\xaf\x3d\xa1\ +\xc9\x6b\xd3\xe1\xd2\x32\xd3\x14\x61\x5b\x8a\x66\xb1\x99\x3b\x58\ +\x34\x16\xdd\x5f\x68\x46\xbf\x7c\xc5\x6f\xfd\xfb\xfc\x69\xe6\x20\ +\xac\xed\xdb\xb7\xb7\xcf\x29\xc0\x7b\x64\x3d\xfe\x95\xbf\x4a\x46\ +\x62\x91\xa5\x61\xd1\x5a\x6f\x5a\x66\x4a\x62\xe4\x6d\x23\xfc\xba\ +\xb2\xa2\xc7\x2e\xfd\xf8\xc7\x2b\xe7\xae\xd0\xb9\xf5\xbe\x5d\xff\ +\x3f\xdd\x4b\xaa\x24\xa0\xd0\xd0\x8a\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x38\xda\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\x7a\x00\xff\x00\x80\x19\x01\xf4\xdc\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x07\x08\ +\x0b\x1f\x36\xd0\x09\xf6\xed\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x79\x94\x25\xd5\x7d\xe7\xf9\xb9\ +\x11\xf1\xf6\x25\xdf\xcb\xb5\x32\xb3\xaa\xa8\x9d\xa2\x0a\x51\x20\ +\xb3\x23\x84\x84\x00\x09\x10\x92\xa6\xe5\x76\xcf\x78\xfc\xcf\xc8\ +\xdd\x67\xce\x4c\xdb\x23\xf7\x58\xa0\x69\xcb\x6a\x7b\xec\xa3\xf9\ +\xa3\xc7\x3e\x7d\xec\xf6\x72\xe4\x19\xcb\xc7\xee\xb1\x2c\xb5\xb7\ +\x96\xa1\x10\x05\x85\x04\x58\xa2\x28\x10\x20\x54\x59\x1b\xb5\x57\ +\xee\xcb\xcb\xb7\xaf\x11\x71\xef\xfc\x11\xcb\x8b\x78\x99\x85\x40\ +\x54\x96\xa0\x94\xb7\x4e\x9e\x7c\xf9\xea\xad\x71\xbf\xf7\xb7\x7c\ +\x7f\x1b\xac\xaf\xf5\xb5\xbe\xd6\xd7\xfa\x5a\x5f\xeb\x6b\x7d\xad\ +\xaf\xf5\xb5\xbe\xd6\xd7\xfa\x5a\x5f\xeb\x6b\x7d\xad\xaf\x9f\x89\ +\x25\xae\xd4\x1b\x7d\xe9\x4b\x5f\x52\xde\xed\xaf\x7c\xe5\x2b\x62\ +\xfd\xd2\xff\x8c\x00\x60\x61\x61\xc1\xdf\xf8\x3f\xf8\x83\x3f\xb8\ +\xe4\xe3\xd6\x41\x71\x15\x02\x20\xb8\xf9\xde\x52\x28\x50\xdd\xbf\ +\xfe\xf0\x0f\xff\xf3\x3a\x20\xae\x76\x00\x14\x8b\x45\xf2\xf9\xbc\ +\xb3\xfd\xca\x01\x81\xf0\x71\xe0\xdc\x87\x7b\xff\x1f\xff\xf1\x1f\ +\xaf\x83\xe1\x6a\x03\xc0\xa3\x8f\x3e\x8a\x10\x82\x5d\xbb\x76\xb1\ +\x7b\xf7\x6e\x86\x06\x07\xc9\xf6\xf5\x31\xd0\xdf\x8f\x6e\x18\x28\ +\xa5\x42\x12\x42\x28\x50\x0a\xfe\xe4\x4f\xff\xe4\x2d\x5f\x7f\x1d\ +\x18\xef\x23\x00\xf4\xae\x74\x3a\x4d\xae\xaf\x8f\x4c\xb6\x8f\xed\ +\xdb\xb7\xb1\x67\xcf\x1e\x72\xf9\xbc\xb3\xf3\x3d\xaa\x42\xb9\x22\ +\xc2\xc3\xc9\x57\xbf\xfa\xd5\x75\x30\xbc\x5f\x00\xa0\x94\xe2\xb1\ +\xc7\x1e\x5b\xf1\x7f\x4a\xa9\xc0\x8f\xb3\xe1\xba\xa6\xb1\xeb\xda\ +\x6b\xb9\xed\xd6\x5b\xd9\xb1\x63\x07\x86\x61\x38\x1f\x52\xb8\x58\ +\x50\xc1\xdf\x12\x81\xe0\xcf\xfe\xec\xcf\xd6\xa5\xc3\x7b\x16\x00\ +\xf3\xf3\x4a\x41\x08\x00\x0a\x40\x2a\xfc\x7f\x4a\xb9\x7f\xbb\x27\ +\x5d\x79\xf7\x43\x3e\x9f\x67\xf7\xee\xdd\x6c\xde\xbc\x99\x5c\x2e\ +\xc7\xd0\xe0\x10\xd9\xbe\x6c\x40\x2a\xe0\x23\x42\xba\xbf\xff\xfc\ +\xcf\xff\x7c\x5d\x65\xbc\x57\x00\x30\x3f\x3f\xaf\x08\x02\xc0\x3b\ +\xf1\xa1\xcd\x06\xa5\xa4\x0b\x8c\xee\xed\xa0\x74\x00\x85\x61\xe8\ +\xf4\x65\xfb\x48\xa6\xd3\x8c\x8d\x6e\xe0\xfa\xeb\x6f\xe0\xba\xeb\ +\x76\xfb\x40\x08\xd9\x11\xbe\x1a\x01\xa1\x14\x5f\xfb\x8b\xbf\x58\ +\x07\xc4\x4f\x03\x00\x73\xf3\xf3\x4a\xa0\x78\xec\xb1\x2f\xe2\x1c\ +\x7c\x85\xf0\x36\x57\x76\x25\x80\xa3\xef\x9d\xcd\x96\xb2\xbb\xa1\ +\x0a\x89\x70\x04\x04\x4a\x49\xc7\x0e\x90\x0a\x49\xd7\x6b\xe8\xcf\ +\xe7\xb9\xe5\x96\x5b\xb8\xe5\xe6\x9b\xe9\xcb\xe5\x11\x1a\x68\x42\ +\x73\xd4\x86\xea\xb5\x25\x9c\x27\xfe\xe5\x5f\xfe\xe5\x3a\x18\xae\ +\x08\x00\xe6\xe6\x15\x28\xbe\xf8\xc5\x2f\xfa\x27\x1a\x40\x4a\xe9\ +\xbc\xb3\x04\xa9\x64\x40\x12\xa8\xd0\x89\xf6\xed\x03\x77\xf3\xa5\ +\xea\x4a\x11\xa0\x0b\xa2\x80\x74\xd9\xb9\x73\x27\x3b\x77\xee\x62\ +\x68\x68\x90\xa1\xc1\x21\x36\x8c\x8e\x60\x18\x11\xf7\x39\xce\x9b\ +\x2a\x84\xff\x9e\xff\xe5\xaf\xfe\xea\x67\xda\xd3\x58\x63\x00\xcc\ +\x29\x3c\x09\xa0\x9c\xcd\xf6\x37\x0b\xd5\xb5\x05\x7c\x43\x10\x94\ +\x94\x21\x00\x78\x27\xdd\x03\x8d\x27\x3d\xc2\x8f\x71\x36\xd3\x01\ +\x93\x7b\xda\xa5\x24\x99\x4a\x91\xc9\x64\xc8\x64\x32\x5c\x77\xdd\ +\x75\x7c\xf0\x83\x1f\x64\xa0\xbf\xdf\x97\x04\x5d\x7f\x43\x84\x81\ +\xa5\xe0\xeb\x5f\xff\xeb\x9f\x09\x30\xac\x31\x00\x66\x95\x52\xf0\ +\xc5\x2f\x3e\xe6\x9e\xe4\xee\x86\xc9\xa0\x4d\x10\xda\x44\x47\x4d\ +\x48\x29\xbb\x12\xa3\xcb\x14\xa1\xa4\x74\xc5\xba\x40\xe2\x6e\x78\ +\x10\x5c\xee\xff\x2b\x57\x5a\x48\xa5\x56\x00\x6a\xcf\xde\x3d\xdc\ +\x79\xd7\x9d\x5c\xb7\xfb\x3a\x84\x10\xe8\xba\x8e\xa6\x69\x5d\x3b\ +\xc5\x51\x54\xfe\xf3\xfe\xe6\x6f\xfe\xe6\xaa\x95\x0e\x6b\xfa\x05\ +\x66\xe7\xe6\x14\xae\x1b\x18\x34\xe8\x1c\x3d\xaf\xfc\x93\x2a\x5d\ +\x63\x4d\x06\x8c\x44\x4f\x3a\x84\xd4\x81\x6b\x03\x04\x79\x01\xe5\ +\x6d\xb2\xbf\xd1\x12\xff\x4f\x25\x43\x40\xf3\xa4\x49\xd0\xf5\xcc\ +\xe7\x73\xec\xbe\xd6\xf1\x34\xf2\xf9\x3c\x1b\x37\x8e\xd3\x9f\x1f\ +\x08\x48\x07\xdf\x78\xf0\x0d\xcb\x6f\x7e\xe3\x1b\x57\x8d\xca\x58\ +\x5b\x00\xcc\xce\x2a\x85\xe2\xb1\x47\x1f\x73\xc5\xbb\x72\x99\x3e\ +\xe5\x9e\x58\x01\x52\x39\x5a\xd9\x07\x80\xbb\x61\x42\xa1\xec\xee\ +\x36\x48\x5f\x35\xb8\x1b\x1b\xb2\xfe\x5d\x03\x32\xe8\x59\x78\x8f\ +\xc7\x53\x19\x0a\x24\xd8\xf8\xba\x26\xe4\x91\x28\xa5\x30\x0c\x83\ +\x54\x2a\x45\x32\x99\x64\x7c\x7c\x23\x37\xdf\x72\x33\x37\xde\x70\ +\x43\x40\x6d\x11\x22\xa4\x9c\xcf\xe9\x3c\xff\xef\xfe\xf6\xef\xde\ +\x97\x80\x58\x5b\x00\xcc\x38\x00\x78\xf4\xb1\xc7\x56\x11\xf7\x2a\ +\xac\x16\x08\x9c\x66\x77\xb3\xa4\x92\xfe\x85\xf6\x37\x5c\xca\x15\ +\x6e\xa4\x27\x55\xc2\x06\xa4\x74\x55\x43\xd0\x48\xc4\xbf\xbf\x2b\ +\x09\x94\xef\x29\x74\x3f\x8b\x0a\x79\x23\xb9\x7c\x8e\xdb\x6f\xbb\ +\x9d\xdb\x6e\xbb\x8d\xfe\x81\x7e\x74\x4d\xc7\x88\x44\xdc\x8b\xe7\ +\xa8\xa3\xa0\xb4\x42\xc1\xdf\xff\xc3\xdf\xbf\x2f\xa4\xc4\x9a\x7e\ +\x90\x99\x99\x19\x87\x0a\xfe\xc2\xa3\x5d\xbd\x8c\xf2\x37\xd1\xf7\ +\x08\x42\xa2\xbb\xc7\x46\x08\x12\x47\x41\xf6\x70\x95\xfb\x1d\xdc\ +\x04\x36\x58\xae\x02\x2c\x7f\xa3\x5d\x01\x2f\x65\x57\x35\x79\xef\ +\xed\x7d\xce\xe0\xe3\x02\xef\xbd\x73\xe7\x4e\xb6\x6f\xdf\xc1\xf0\ +\xf0\x20\xe3\xe3\xe3\x6c\xda\xb4\x99\x48\x34\xe2\x93\x52\x2a\x10\ +\xed\xf4\x5e\xfb\xc0\x81\xa7\x69\x34\x1a\xef\x39\x40\xac\x2d\x00\ +\xa6\x67\x1c\x09\xf0\xe8\xa3\x21\x1b\xc0\xdb\x10\xe1\xb9\x76\x01\ +\x77\xce\x07\x47\xcf\xe9\x94\x2a\x20\xba\x7b\xa5\x47\xef\x89\x0e\ +\x9c\x76\x21\xba\xdc\x82\xaf\x22\x2e\xf1\x3c\x02\x1b\xbe\xba\xb1\ +\xea\x50\xd0\x3e\x88\x80\x78\x3c\x4e\x2a\x91\x24\x93\x4d\x73\xc3\ +\xbe\x7d\xdc\x7e\xfb\xed\x8c\x0c\x8f\x84\x80\xe0\x7d\xef\xb0\xfa\ +\x80\x6f\xfd\xd3\xb7\x7e\xea\x60\x58\xd3\x37\x9b\x9e\x9e\xf6\x83\ +\x41\x61\x43\x2e\xa0\xbb\x03\xfa\xda\x91\x06\xde\x86\x7b\x9b\xdd\ +\xdd\x38\x1f\x08\x74\xed\x07\xe5\x01\x42\x0a\x1c\x6b\x22\xa0\x1e\ +\x42\x6c\x63\x10\x18\xaa\x7b\xc2\x83\x24\x94\xff\x3e\x41\x09\xd4\ +\xb5\x21\x94\x24\x00\xdc\xa0\x31\x2a\x1c\xe0\x0a\xfc\xcf\xb9\x67\ +\xef\x1e\xee\xbe\xfb\x6e\x76\x5d\xbb\x8b\x58\x34\x46\x2c\x1a\x43\ +\x37\x74\x8f\x9f\x0c\x3d\x17\x14\x8f\x3f\xfe\xf8\x4f\x45\x3a\xac\ +\x39\x00\x14\x8a\x47\xbf\xf0\x05\xa4\xc2\x65\xf5\x64\x80\xc7\x77\ +\x2e\xb4\x92\x2e\xe3\x47\x50\x94\x07\x36\x91\xee\xe9\x0b\x81\x47\ +\x76\xc5\xb3\x24\xac\xdf\xb1\x15\x52\x84\x45\x3e\x2e\xbb\xa8\xa4\ +\x40\x09\xd7\x46\xe8\xe1\x1d\xba\xae\x64\xc0\xf6\xf0\xb8\x88\x20\ +\xb0\x60\x15\x95\x14\xa4\xb1\xbb\xd2\x2e\x97\xcf\xb1\x73\xe7\x4e\ +\x36\x8d\x6f\x62\x64\xc3\x08\xdb\xb6\x6e\x63\x68\x64\xc8\x77\x61\ +\x41\x75\x39\x0e\xe5\x90\x55\xfb\xf7\x3f\xc9\xb6\x6d\xdb\x00\xf8\ +\xe5\x5f\xfe\xe5\x35\xdb\x27\x63\x2d\x01\x10\x12\x81\x2a\xa8\x1b\ +\xbb\x22\x94\xc0\x86\xab\x50\x90\x27\x4c\xcc\x48\x25\x1d\xb4\x76\ +\x35\x41\x40\x4f\x07\x9f\xe3\x5e\x53\x11\x36\xec\xba\x9c\x82\x1b\ +\x74\x90\x84\x37\x92\x2e\xa8\x58\xc5\xc8\x54\xbe\x0a\xa2\x47\xaa\ +\xd0\x05\x8b\x7b\xa2\x9c\xbf\xa5\xef\x21\x2c\x17\x96\x39\x5c\x38\ +\xcc\x21\x75\x08\x5d\xd3\x49\x24\x12\x44\xa3\x31\xb6\x6d\xdb\xc2\ +\x1d\x77\xdc\xc9\xad\xb7\xde\x4a\x50\x37\x28\x05\x0f\x3d\xf4\x30\ +\x27\x4e\x1c\x5f\x73\x15\x60\xac\xed\xcb\xab\x9e\x64\x0f\xe9\x83\ +\x81\x55\xf4\xbc\x27\xc2\x83\xc6\x5a\x57\x77\xd3\x65\xfb\x42\x9b\ +\xb2\xd2\xff\x5f\xed\x84\x06\x0d\x32\xe8\x0d\x3a\x75\x81\xd5\x0b\ +\x08\xe1\xab\x1d\x07\x38\x61\x10\x7b\x48\x14\x61\xc0\xf8\xbf\xbb\ +\x6a\x44\xb8\xef\x61\xd9\x16\x95\x4a\x15\xa8\xb0\xb8\xb8\xc0\xe1\ +\xc3\x2f\x23\xa5\x22\x9f\xef\xe3\xce\x3b\xee\xe2\xd6\xdb\x6e\x61\ +\xe7\xae\x5d\x21\xee\x61\x2d\x97\xb6\xb6\xdb\xdf\xb5\xf4\x83\x3e\ +\xb7\x74\xdd\xb4\x90\xdb\xe5\xd1\xb8\x4a\xad\x20\x81\x84\x2f\xf2\ +\x83\xcc\xa0\xb7\x25\x1e\x90\x44\x98\xb4\x51\xdd\xd7\xf0\x4e\xbe\ +\x6b\x3e\x04\x5c\xc9\x80\x81\x16\x04\x8a\xeb\x86\xa2\x04\x1e\x85\ +\xa0\xfc\xf7\x50\xbe\x9b\xe9\x7f\x27\xc2\xb6\x06\xa1\x58\x05\x5d\ +\x95\xe6\x1b\x37\x84\x0c\x59\x50\x2c\x2f\x97\x78\xe2\x89\xc7\xf9\ +\xf2\x6f\xfe\x87\x10\x88\xdf\xd7\x12\x40\x10\x3c\x55\x81\x5c\x50\ +\xf0\x2f\xa6\x77\x4d\x84\xbf\x49\x61\xeb\xdc\xdf\x0b\xa9\x10\xee\ +\x49\x13\x01\x23\xcd\x11\xbd\xca\xdf\x65\xff\x35\x3d\x2e\x01\x9f\ +\x16\xec\x1a\x9d\x01\x02\x29\x74\xe2\x83\xd2\x43\xb8\x80\x5b\xb1\ +\xb1\x8a\xb0\x10\x53\x1e\x15\x00\xb6\x43\x60\x75\xf9\x0a\xe1\x7b\ +\x0d\x41\xe0\x2a\xdf\x0e\xea\x01\x15\x5d\x6f\xe1\x4a\xad\x35\xb6\ +\x01\x82\xa7\xd1\x63\xdf\xba\x27\xce\x37\xd8\x90\x48\xd7\xf8\xf1\ +\x2f\x66\xe8\xa4\x04\x6e\xf7\xbe\xbe\x62\xc5\x26\xfa\x5c\x80\x50\ +\x08\xe9\x4a\x09\xd9\xdd\xf8\xde\x13\x1b\x0a\x4b\x13\xb6\x57\x54\ +\x8f\x4a\x90\x4a\x21\x5c\xcb\xdd\x37\xf4\x44\x97\xe5\x0c\xba\x88\ +\xf4\xaa\x97\xa0\x19\xe1\x8b\x48\xe9\x27\xc4\x08\x8f\x83\x50\x5c\ +\x31\x10\x18\x6b\x6c\x02\x84\x09\x20\x15\xb8\xe0\x84\xc9\x16\xcf\ +\xe5\x0b\x06\x72\xfc\x0c\x62\xd4\x8a\x00\x8f\x08\xbd\xbe\x5a\x79\ +\xca\x7a\x80\xe3\xe8\x6f\x11\xc8\x39\xec\x49\x51\x17\x9e\x3e\xf1\ +\xa4\x46\xf0\x35\x94\x0f\x20\x82\x36\x41\x0f\x88\x56\xda\x1d\x84\ +\x3e\x8b\x52\x3d\x34\x72\x20\x2a\x19\x52\x1d\x57\x6e\xff\xd7\x58\ +\x02\x74\x6d\xeb\x9e\x2f\x4f\x40\x2c\x07\x2e\x64\x48\x14\x06\x02\ +\xb6\x81\x44\x11\x7c\x10\x38\x96\xbe\x92\x4e\x9c\xc0\xb6\x6d\x84\ +\x10\x08\x21\x7c\x96\xd0\xf7\xb3\xdd\x08\x5f\xd0\x3d\x43\xf5\x8a\ +\x77\x8f\x0d\xec\x02\xab\xfb\xff\x41\x56\xcf\xcb\x27\x00\x25\xc2\ +\x46\x21\xc1\x70\xb4\x97\xfc\x42\x20\xd4\x4d\x6f\xd6\x52\x40\xed\ +\x78\xd1\x50\xa9\xae\xa4\x06\x58\x6b\x09\xe0\x26\x61\xf8\xdf\x29\ +\xcc\xf2\x05\xd5\x84\xf2\x4f\x99\xab\x03\x7a\x7c\xe9\x2e\x6f\x10\ +\xb8\x88\x52\x61\x59\x16\xd3\xd3\xd3\x74\x3a\x1d\xd2\x99\x34\x99\ +\x4c\x86\x78\x34\x1e\xd0\xa4\x32\x70\xd2\x03\xec\x23\xe1\xcd\xf7\ +\x6c\x86\xd5\x5c\xcb\x20\x72\xa5\xea\x66\xa8\x2a\x29\x3c\x7f\x34\ +\x04\x70\x9f\x82\xf6\xad\xcf\x80\x44\xec\x71\x6f\x7b\xd3\xd7\x84\ +\x13\xf3\xbe\x4a\x00\xe0\x67\xde\xc8\x90\xff\xae\x3c\xe2\x43\x06\ +\xd5\x02\x21\xa3\x6c\xe5\x29\x54\x81\x8b\xd8\x15\xdf\x96\x65\xd3\ +\x6c\x36\x49\xa5\x52\xa4\x53\x69\x9a\xf5\x06\x85\xa5\x02\x7d\xb9\ +\x1c\xf1\x58\x0c\x21\x44\x00\x58\x1e\x61\xd4\x93\x23\x10\xf4\x1a\ +\x82\x61\x6b\x15\x74\x49\x03\x61\x6b\x9f\x2f\x50\xab\xd2\xd6\x41\ +\x23\x33\xe8\xba\x06\xa5\x1b\x81\xa0\x98\xfb\x20\x87\xb8\x0a\x5d\ +\x89\xf7\x39\x00\x24\x0a\x21\xc2\x95\x3f\xfe\x26\x06\x5d\xbd\xd5\ +\x4e\x47\xc8\x75\x08\x18\x7b\x21\xc6\x0f\x34\x4d\x60\x99\x26\xe9\ +\x74\x9a\xcd\x9b\x37\x73\xfb\xed\xb7\xf3\xda\x6b\xaf\x31\x31\x31\ +\x41\xa9\x58\x24\x9b\xc9\x10\x8d\xc5\xd0\x74\xad\x47\x35\x04\x14\ +\x54\xc0\x32\x0b\x7e\x46\x11\xa8\x64\x72\x09\xdc\x80\x6e\xf7\x5c\ +\xc1\xb0\xfb\x19\x92\x04\xbd\x06\x7d\x40\xb9\xcb\x00\x57\xa0\x94\ +\x4b\x93\x06\x33\xa3\xae\x06\x1b\x40\xac\x12\x43\x57\xab\x30\x82\ +\x9e\xc5\x1f\xbc\x46\x3e\xe1\xe3\xe6\x05\xa8\x5e\xa6\x10\xb0\x2c\ +\x93\x8e\xd9\xc1\xb4\x2c\xe2\xf1\x38\xad\x56\x8b\x72\xb9\xcc\xe7\ +\x3e\xf7\x39\x4e\x9d\x3a\xcd\xe1\xc3\xdf\x67\x62\xe2\x08\xc5\x62\ +\x91\x64\x32\x41\x3c\x9e\x08\xfb\x12\x01\x69\x22\xa5\x93\x9b\x88\ +\xd0\x02\x6e\x1a\x7e\x8c\x20\x40\xf3\x07\x72\x13\x09\x4b\xb7\xa0\ +\xf5\xd2\x4b\x62\x09\x15\x32\x4c\xc3\xea\x45\xad\x20\xb1\xae\x0e\ +\x37\x30\x64\x1b\x75\x45\x6c\x57\xff\xca\x00\x3f\xe0\xc5\xf0\x1d\ +\xc3\x4d\xd0\xcd\xf1\x0b\xb3\x6b\x5d\x1d\x5d\x2a\x95\x29\x2c\xcc\ +\x93\x33\x0c\x6a\x95\x0a\x0f\x3c\xf0\x00\xcf\x3e\xfb\x2c\x9b\x36\ +\x6d\x62\xd3\xa6\xcd\xd4\xeb\xe3\xe4\x72\x1f\xe0\xd4\xa9\x17\x79\ +\xf3\xcd\x09\x16\x16\x16\xc9\xf5\xe5\x88\x27\xe2\x80\xa0\xd3\x69\ +\xd3\x6e\xb7\x91\x52\xa2\x09\x0d\xdd\xd0\xd1\x35\x0d\xa1\x69\x7e\ +\x8a\x58\x28\x70\x14\x50\x25\x3e\x7a\x7a\x0c\x3d\x7a\xd8\x47\x8f\ +\x01\x45\x8a\x90\xeb\xdb\xcb\x50\x2a\xe9\xb8\x93\xf4\x18\xc2\xef\ +\x73\x1b\x80\x90\x6b\x17\x94\x06\x41\x96\x4c\xd1\x4b\xb0\x84\xc3\ +\xb5\x41\x82\xcf\xbf\xc0\x52\xd1\xa8\xd7\xd8\x9d\x4c\x32\x90\x4e\ +\x73\x21\x12\x61\xeb\xd6\xad\x8c\x8c\x8c\xf0\xca\x2b\xaf\xf0\xf1\ +\x8f\x0f\xb1\xb0\x30\x4a\xa1\xb0\x9d\x1b\x6e\xb8\x99\x9b\x6e\x7a\ +\x83\x33\x67\x0e\x71\xe2\xc4\x49\x16\x16\x16\xfc\xcd\xdd\xb4\x69\ +\x13\xc9\x64\x92\x66\xb3\x49\xa9\x54\xa2\xde\x68\x60\x59\x16\x9a\ +\x10\xc4\xe2\x71\x62\xb1\x58\x57\x05\x89\x70\x8a\xb9\xe3\x0d\x48\ +\xc2\xe2\x24\xcc\x33\x20\x55\x20\xb0\x14\x60\x1d\xe9\x51\x01\xc1\ +\x60\xd2\x55\xe3\x06\xf6\x1a\x58\x6e\xb4\xc4\xdf\xfc\xa0\xd8\x0c\ +\xaa\x82\x1e\x9f\x39\xc8\x1d\x04\x09\x1a\xab\xd3\xa1\x3f\x1e\xa7\ +\xd9\x6e\xb1\x6d\xcf\x75\xc4\xe3\x71\xb6\x6f\xdf\xc1\xab\xaf\xfe\ +\x80\x4a\xa5\xc4\xd0\x90\x62\x7a\xda\xe6\xb9\xe7\xc6\xb0\xac\x8d\ +\x0c\x0e\xee\x63\xfb\xf6\xfd\xcc\xcc\xfc\x7f\xdc\x78\xe3\x8d\x7c\ +\xf4\xde\x7b\xd9\xb4\x71\x23\xba\xa6\x91\x48\x26\x11\x42\x50\x2a\ +\x95\x38\x77\xee\x1c\x47\x8e\x1c\xe1\xe8\xd1\xa3\x2c\x2c\x2c\x90\ +\x88\x27\x48\x24\x13\x68\x42\x73\x75\xf7\x25\x36\x31\xa8\xd7\x7d\ +\x0a\xd8\xc5\x8e\x08\x67\x42\x85\x58\x21\x14\x32\xa0\x15\xc4\xd5\ +\x24\x01\xba\x21\xdf\xc0\xe9\x27\x40\xda\xa8\xb0\xf1\x23\x95\x13\ +\x1a\x0e\x06\x5f\xc2\xc4\x4a\xd7\xf7\x37\x4d\x93\x98\x61\x30\xdd\ +\x69\xb3\x63\x74\x0c\xcb\xb2\xc9\xe7\x72\x94\x4a\x25\xca\xe5\x12\ +\xf9\x7c\x87\x7b\xee\x99\xe5\x86\x1b\x0c\xa6\x26\x73\x4c\x4e\x0d\ +\x61\xdb\xa3\x6c\xdb\xb6\x8d\x5f\xfc\xc5\x5f\x64\xc7\xce\x1d\x44\ +\x23\x51\x0c\x5d\x77\x7d\x70\xc9\x86\x0d\x23\xec\xd8\xb1\x93\x3b\ +\xef\xbc\x93\xc9\xc9\x49\x5e\x7d\xf5\x55\x5e\x79\xf9\x65\x26\xa7\ +\xa6\xd0\x75\x9d\x58\x2c\x46\xc4\x88\xf8\xf9\x8b\x5e\x8e\x63\xe8\ +\xd4\xab\x95\x81\x2a\xd4\xca\x08\x67\xf0\x76\x38\x16\x01\xea\xaa\ +\x60\x02\x03\x39\xf7\x21\xd6\xcf\x0b\xec\x08\xe5\x07\x74\x44\xe0\ +\x44\x28\xcf\xdf\x96\x2e\x2d\x1c\x94\x04\xee\x7d\xb6\x6d\x22\x4c\ +\x93\x28\xd0\xb4\x6d\x12\xae\x11\x28\x34\x41\xa7\xd3\xa1\x52\xa9\ +\xa0\x69\x9a\xa3\xdf\xb5\x3a\x63\xe3\x25\x72\xf9\x59\x0e\x1f\x7e\ +\x83\xfe\xfe\x7e\x36\x6c\xd8\x00\x0a\x3a\x9d\x0e\x26\x38\x15\xa8\ +\xee\x2f\x4d\xd3\xe8\xeb\xeb\x73\x32\x86\x77\xef\xe6\x23\xf7\xdc\ +\xc3\xdf\x7c\xe3\x1b\xbc\xf4\xd2\x4b\x34\x1a\x0d\x34\x5d\x23\x95\ +\x4c\x21\x84\x93\x9f\x20\x7b\xdc\xbe\x50\x4c\x21\xc0\x09\x48\x7a\ +\xe8\x65\xd5\xcd\x03\xf0\xd5\x9d\x17\xb5\x12\x57\x8b\x04\x08\x5c\ +\x94\x20\x81\xb3\x82\x05\x53\x81\x70\xb1\x17\x37\x20\x9c\x1c\xe2\ +\xb1\x6f\x28\xb0\x6d\x09\xb6\x4d\xc3\x34\x69\x02\xcd\x66\x93\x76\ +\xbb\x85\x69\x9a\x08\x21\xa8\xd7\x6a\xc4\x62\x31\x6a\xb5\x1a\xb6\ +\xed\x70\x05\x85\xc2\x22\xa5\xd2\x49\x6e\xbc\xf1\x83\x18\x86\x81\ +\x69\x9a\xee\xa6\x77\xaf\x76\xf0\x36\x02\x04\x82\xd1\xd1\x51\xf6\ +\xee\xdd\x4b\xb5\x5a\x65\xe7\xce\x9d\x3c\xf1\xc4\x7e\xea\xf5\x3a\ +\xc9\x44\xb2\x6b\x14\x06\x89\x4d\xff\x0f\xe1\x04\x87\x7a\xbe\x67\ +\x88\x31\x94\x5d\x43\xd1\x63\xa3\x83\xa0\x7f\x9f\xdb\x00\x84\x73\ +\xf9\x3d\x1d\xb8\xe2\xa2\x28\x3f\x2e\xe2\xcb\x83\x15\x46\x60\x57\ +\xf9\x4b\xe9\x24\x96\x36\x80\x57\xa4\x44\xe6\x72\x1c\x99\x98\x20\ +\x93\xcd\x50\xaf\x37\xd0\x75\x9d\xd7\xdf\x78\x83\x44\x3c\x8e\x52\ +\x8a\x4a\xa5\x42\xad\x56\x23\x97\xcb\xb1\x69\xd3\x35\xec\xd8\xb1\ +\x03\x29\xa5\x9f\x0d\xe4\xec\xb9\xf0\x7f\xf7\x82\xc1\xb2\x2d\x16\ +\x97\x96\x18\x1d\x1d\xe5\xe7\x7f\xfe\xe7\xc9\xe7\xf3\x7c\xed\x6b\ +\x5f\xa3\x63\x76\x30\x74\xe3\x12\x65\x6d\xdd\x08\x54\x28\xeb\x88\ +\x20\x45\xdc\xab\x12\xba\x86\x83\x12\x57\x05\x00\x42\xe4\x7f\x98\ +\x0f\xf0\xdc\x9e\xc0\x17\x0f\x79\x01\x04\x58\x38\x64\x88\x35\x53\ +\x4a\xd1\x6c\x35\x89\x25\x93\xdc\x70\xdb\x6d\xdc\x74\xd3\x4d\x3c\ +\xfd\xf4\xd3\x7c\xff\xfb\x87\x50\x4a\x52\x2e\x97\x49\x24\x12\x24\ +\x13\x49\xe2\xf1\x28\xa3\x1b\x46\xd9\xbe\x7d\x1b\xa9\x74\x9a\x78\ +\x3c\x4e\x7f\x7f\x3f\x9d\x4e\xc7\xdd\x60\xe5\xfe\x16\x01\x10\x38\ +\xa8\xf0\x6e\xd6\xeb\x75\x2e\x5e\xbc\xc8\x07\xae\xbf\x1e\xdb\xb6\ +\xb9\xeb\xae\xbb\x38\x7e\xfc\x38\xcf\x3f\xff\x02\x7d\xd9\xac\x1f\ +\xf7\x76\xec\x01\xd1\xf3\x3d\x65\x58\x16\x2a\xe7\xac\x77\x6d\x04\ +\x81\x52\x76\x98\x7d\x14\x57\x8e\x09\xba\x42\x6e\x20\x2b\x22\x80\ +\x5e\x02\x40\x20\x0c\x14\x38\x11\xc1\x5a\x3d\x11\x22\x47\xa4\x72\ +\xf4\xff\xf2\x72\x91\x1b\xf7\xed\xe3\xa1\x87\x1e\x22\x93\xc9\x20\ +\xa5\xe4\x47\x3f\x3a\x42\x2e\x97\xe3\x23\x1f\xf9\x08\xb9\x5c\x0e\ +\x5d\x37\xe8\xef\xcf\x93\x48\x24\xb0\xa5\x44\xd7\x34\x74\x5d\xf7\ +\x0d\x48\xa7\x82\x58\xa0\x69\xab\xab\x00\xef\xf6\xd4\xd4\x24\x95\ +\x72\x99\xf1\xf1\x71\xcc\x4e\x07\x84\xe0\x9e\x7b\xee\xe1\x95\x57\ +\x5e\xa1\x63\x76\x88\x46\x22\x7e\x0c\x43\x21\x03\x01\x1d\x85\xf2\ +\xcb\x94\x55\x17\xec\x1e\x35\x8c\x97\x05\xd5\xcd\x8d\xe8\x35\x20\ +\xdf\xf7\x2a\x40\x08\x15\xf2\x85\x83\x99\xc1\xde\x49\xd1\x34\x0d\ +\xdb\xb6\xbb\x46\xa0\x90\x21\xab\x38\xe4\x2b\xa3\x30\x2d\x1b\xd3\ +\x34\xd9\xb5\x6b\x17\xa9\x54\x0a\x29\x25\xbb\x76\xed\x62\xdb\xb6\ +\x6d\xc4\xe3\x71\xa4\x6d\x83\x10\x18\x86\x8e\x52\x8a\x76\xbb\xed\ +\x80\x47\xd3\xe8\x74\x3a\x4e\x1a\x94\xd0\x5c\x69\x1f\x38\xf5\xab\ +\x00\x40\x4a\xc9\xd1\x63\xc7\x48\xa7\xd3\x0c\x0c\x0c\xd0\x71\x6d\ +\x8c\xf1\xf1\x31\xae\xdd\x7d\x2d\x6f\xbc\xfe\x86\xdb\xc9\x44\xad\ +\x68\x6b\xe3\x43\x5e\x76\x2b\x88\x56\x64\x29\xaf\xa0\xa7\x03\xa4\ +\xd7\xfb\x5e\x02\x84\x6a\xf4\xc3\x01\x13\xef\x82\x0d\x6c\xde\x44\ +\x24\xdd\x8f\xd5\xaa\x62\x55\xcb\x74\xea\x0d\x5a\xed\x36\x9d\x8e\ +\x09\xb6\xdd\x43\x04\x39\xcf\x89\xe8\x3a\x11\x23\xc2\xe4\xe4\x24\ +\xfb\xf6\xed\x23\x12\x89\x02\x0a\x4d\xd3\x68\xb7\x3b\xbe\x05\x65\ +\x59\x16\x9a\xe6\x66\x1f\x29\x85\xae\xeb\x20\x04\xb6\x52\x28\x69\ +\x21\x34\x11\x2a\x0a\x0d\x22\x41\x38\x16\x20\xd5\x6a\x95\xd3\xa7\ +\x4f\xb3\x6b\xe7\x2e\x22\x91\x88\x6f\x64\x0a\xa1\x71\xdd\x75\xd7\ +\xf1\xea\x0f\x5e\x75\x19\x4b\x11\xa2\x81\xbb\x99\x41\xaa\xe7\x74\ +\xe3\x83\xc1\x8b\x01\x84\x12\x53\x82\x61\xef\xab\x21\x1c\x1c\x0a\ +\xf4\x84\x48\x13\x67\x3b\xaf\xfd\xc8\x27\xe9\x68\x1f\x66\xe6\x94\ +\xa2\xd8\x9a\x47\x25\xce\x93\x1c\x3c\x4b\x3e\x72\x11\xbb\xb5\xc8\ +\xfc\xd9\x73\xbe\xd7\x20\x04\x48\x5b\x21\x74\x9d\x81\xa1\x21\x5e\ +\x7a\xe9\x30\xb6\x6d\xf3\xb1\x8f\x7d\x8c\xfe\xfe\xfe\x50\x45\xb1\ +\xa6\x69\x98\xa6\x49\xbb\xd3\xf6\x0d\xb5\x56\xbb\x45\xa7\xdd\x21\ +\x62\x18\x44\xa3\x51\x84\xa6\xf9\x3c\xbf\x61\x18\xc4\x22\x51\x34\ +\x5d\x0b\xd9\x30\xc7\x8f\x1d\xa3\x5e\xab\xb3\x7d\xfb\x76\x6c\xcb\ +\xf6\x81\x2d\xa5\xa2\x5e\xab\x3b\x92\xc5\x96\x08\x07\x69\x01\xdb\ +\x45\xf5\x34\xa8\x50\xdd\x6c\xe5\x20\x11\x26\x59\x35\xe0\x75\x55\ +\xb8\x81\xc1\x6c\xdf\x50\xc2\x44\x80\x19\x34\x3b\x70\xfe\x4c\x82\ +\x4e\xdb\x60\xf3\x07\xf2\x34\x6b\xbb\xa9\x97\x15\x76\xa4\xc3\xe6\ +\x0f\x96\xb9\xe6\x96\xef\xb2\x74\xfe\x08\xb5\x62\x15\xc3\x80\x56\ +\x65\x99\x56\xb9\x42\x34\x12\x21\x12\xd5\x79\xe9\xa5\x97\x58\x5a\ +\x5c\xe4\x91\x4f\x7d\x8a\x64\x2a\x85\xa1\x69\x54\x2a\x15\xaa\xd5\ +\x2a\x9a\x94\x18\x08\x9a\xad\x26\xed\x46\x83\x54\x2c\x4a\x22\x12\ +\xa5\xd4\xe9\xd0\x6a\xb7\x51\x52\x12\x8b\xc5\x88\xc6\x62\x10\x8d\ +\x42\x34\x4a\x2c\x9d\x26\x93\xcd\x92\x4c\x24\x68\x35\x9b\x4c\x1c\ +\x3d\xca\xf8\xf8\x38\xf9\x7c\x1e\xcb\xb2\x7c\xbf\x7d\x62\x62\x82\ +\x97\x5f\x7e\x39\xa0\x36\x56\x5a\xf4\xa1\x9a\x44\x41\xb7\x28\xa6\ +\x87\x2c\xea\x06\x98\xc2\x01\xa5\xab\x40\x02\xd0\xc3\x74\x75\x81\ +\xee\x19\xc7\x17\x5e\x7e\x8a\x2d\xb7\xd4\xb1\xcd\x0e\xed\x86\xc6\ +\x4d\x9f\xfa\x0c\xe7\x26\xd2\x1c\x3b\x14\xe3\x1b\xbf\x3f\xc2\xd8\ +\xb6\x4f\xb3\xe3\xc6\x0f\x33\x74\x9d\x20\x3b\x94\xa5\xbc\x54\xa4\ +\xb6\x30\x89\xd9\x3c\xcb\x70\xe7\x4d\xc6\x77\x4f\x32\x73\xf1\x4d\ +\x9e\x7c\xe2\xbf\xf1\xc1\xeb\xf7\x91\x10\x1a\x11\x29\x19\xcb\xe5\ +\x88\xeb\x3a\xc2\xb6\xc9\xf6\xf5\xd1\x37\x3a\x8a\xb4\x6d\xda\xed\ +\x36\x06\x10\x8f\x44\x40\x4a\xaa\x8d\x06\xa5\x6a\x95\x7a\xb9\x4c\ +\xbd\xd3\xa1\x6a\xdb\x2c\xc7\x62\xa4\x46\x47\x29\x35\x9b\x2c\x2e\ +\x2e\x72\xeb\xad\xb7\x62\x18\x06\x0a\x85\xd9\x31\x39\x73\xe6\x0c\ +\xcf\x3c\xf3\x0c\xd3\xd3\xd3\x24\x12\x09\xc7\x98\x94\x3d\x24\x8f\ +\xb7\xc9\x92\x50\xcc\x3f\xf0\xa0\x50\x08\x99\x9e\x92\xf7\xab\x44\ +\x05\x10\xae\xed\x0b\xf8\xbf\x9e\xab\x33\x7b\xea\x34\x33\x27\x4f\ +\x21\x22\x06\x99\xfe\x3c\xd7\x7f\xec\x56\x9a\xb5\x6b\x69\xd6\x60\ +\xfb\x0d\x8a\xc1\xf1\x38\x4a\x0d\x71\xee\x68\x07\xd3\x8c\x92\xcc\ +\x8e\x90\xce\x8d\x63\x64\x6f\x43\x37\xa0\x7f\x47\x8d\x1d\x1f\x9a\ +\xe2\x7b\xff\xf0\x15\x96\xce\x9c\xe6\x7f\xbc\xfb\x6e\x72\xc9\x34\ +\xb6\x65\x61\x08\x41\xcc\x30\xb0\x3a\x1d\xac\x76\xdb\xc9\xb8\x11\ +\x02\xdb\xb2\x90\xed\x36\xb6\x65\x91\x57\x92\x7c\x34\x8a\x14\x02\ +\x2b\x1a\xa5\xd1\x6a\x51\xa8\xd7\x38\xf6\xca\x2b\x3c\x37\x33\xc3\ +\xc6\xed\xdb\xd9\xb8\x71\x23\x42\x38\x0c\xe3\xd9\xb3\x67\x79\xfa\ +\xe9\xa7\xb9\x70\xe1\x02\xf1\x78\x1c\x5d\x37\xfc\xc2\x53\x15\x3e\ +\xfa\x21\x20\xc8\x15\x52\x91\x70\x3a\x5a\x4f\xa1\x8c\x12\xea\x2a\ +\x52\x01\x81\xd6\x30\x41\x6b\x39\xd4\x1a\xa6\xd3\xa1\x3c\x3f\xcf\ +\x89\x17\x5e\x20\x95\xeb\xe3\xb6\x07\x25\xe9\xd4\x24\x53\xc7\x4e\ +\x02\x16\x1b\x46\x4c\xd2\xb9\x14\x93\x27\xe6\x68\x95\xb3\x10\xdf\ +\x86\xc5\x16\x0a\x33\xa3\x98\x9d\x3d\xa0\x7f\x89\x89\x33\x7f\x46\ +\x65\xaf\x46\xaa\xb1\x84\xb0\x4d\x3a\xd2\xa1\x89\xa5\x6d\x83\x6d\ +\x23\xa5\x8d\xb2\x6c\x94\xed\xfc\x48\x29\x91\x96\x85\x92\xde\x7d\ +\x12\x65\xdb\xe4\xa5\x8d\x56\x28\xd0\x5e\x58\x20\xb3\x6f\x1f\xb1\ +\x58\x8c\x76\xbb\xcd\xc4\xc4\x04\xcf\x3d\xf7\x1c\xe7\xce\x9d\x23\ +\x95\x4e\x13\x71\xbd\x8c\x15\xc1\x2b\x37\xe0\x15\x56\x7f\xdd\xda\ +\x86\xd5\xc2\xc6\xa1\x22\xd4\xab\xc6\x08\x24\x18\xf0\x0a\x44\xc2\ +\x7c\xc6\xaf\xeb\x0b\x7b\x16\xf3\xb1\xef\x3c\xc5\x96\x7d\xb3\x34\ +\xab\x15\x66\xde\x3c\x85\x32\x6d\x3a\xad\x26\x9d\x4e\xc7\xb1\xe4\ +\x23\x11\x0c\x5d\x23\x1a\x4f\x10\x4f\xa5\xd8\xb0\xe7\x7a\x36\xec\ +\xfa\x28\x85\xc5\xeb\x78\x4d\xff\x15\xfe\xe1\x5c\x81\x3b\x86\x8e\ +\xb1\x35\x79\x8a\x58\xe1\x2c\xd2\x96\xd8\x96\x72\x36\x57\xda\xc8\ +\x1e\x00\xf8\xb7\xed\xee\xfd\x8b\xed\x36\xaf\x2f\x2c\xb0\x37\x16\ +\x23\x33\x39\xc9\xd4\xe4\x24\xa7\xcf\x9c\xe1\xd0\xa1\x43\xcc\xce\ +\xce\x92\xc9\x64\xd0\x34\xad\xcb\x5e\x0a\x42\xb6\x4d\x28\xc5\x2d\ +\x50\xfc\x21\x65\x38\xa4\x1d\x4c\x80\x11\xbd\x69\xe9\xe2\x6a\xb1\ +\x01\x44\x38\x08\x24\x10\x6e\x11\xe8\xca\x36\x6e\xa0\xa8\x2d\x15\ +\x38\xf2\xec\x77\x7a\xba\x8a\x75\x13\x30\xac\x76\x1b\x13\x68\xd4\ +\x1b\xb0\xb4\xc4\xcc\xf9\xf3\xa4\x0e\xbf\xc8\xc6\xeb\xf6\x71\xe7\ +\x27\x1e\x62\x61\xe1\xe7\xf8\x6f\x13\x37\x91\x9a\x99\x61\x47\xed\ +\x3b\x6c\xcf\x9e\x20\x57\xfa\x11\x51\xab\x84\xb2\x3a\x48\xcb\x46\ +\xda\x4e\xb0\xa9\x7b\xf2\x5d\x00\x48\x1b\xd3\xb4\x38\xdc\x6c\xd2\ +\x68\xb7\xb9\x63\x60\x80\xf9\xf3\xe7\xf9\xdb\xaf\x7f\x9d\xc5\x52\ +\x89\x66\xab\x45\x26\x9d\x41\xe8\x9a\x6f\xc8\x84\x52\xc8\x7b\x03\ +\x5e\xdd\x83\xdf\x85\x7b\x4f\x98\x7b\xb5\x08\xa1\x12\xea\x2a\x4a\ +\x0b\x0f\xe9\xc4\xa0\x3a\xa0\x27\x4a\xd8\x8d\x0c\xd2\x73\x61\xbc\ +\x90\xaa\xf2\x7a\x72\xb8\x21\x38\xef\xa2\x57\x97\x0a\x1c\x7f\xe1\ +\x59\x16\xdf\x3c\xca\xae\x3b\xef\x60\xd3\x23\x3f\x87\xd2\xef\x64\ +\xfa\x87\x9f\x65\x76\xa1\x44\xa6\xf8\x02\x83\x95\xc3\xe4\xa3\x73\ +\xa4\xec\x45\xf4\x7a\x01\x55\x2f\x21\x9a\x15\x84\xb4\xdc\x94\x30\ +\x81\x25\xe1\xa4\xb4\x39\x63\x5b\x6c\x10\x82\x85\x72\x85\x1f\x45\ +\x22\x34\x06\xb2\x24\xfb\xd3\xa4\x54\x86\x4e\xbd\xed\x04\xa2\x54\ +\xb7\xbc\x4c\xac\x56\xd8\x1a\xf0\xfd\x43\x4d\x2b\x42\xd2\x40\x85\ +\x5a\xdf\xaa\x60\xb2\xd1\x55\x93\x0f\xe0\xd3\x9c\x81\xe4\xcb\x50\ +\xc5\x40\x57\xe1\xc9\x5e\xcb\x98\x6e\xa5\xad\x9f\x2a\x2e\x02\x59\ +\xbb\x2e\x62\x3c\x09\xbc\x30\x33\xcb\xc2\xdf\xfd\x3d\x9a\xf1\x2d\ +\xb6\x7c\xf0\x76\x62\x99\xdd\xb0\xe1\x46\x8a\x83\x3f\xcf\xd4\xdc\ +\x67\x31\xaa\x73\xf4\xb5\xce\xd0\x6f\x1e\x27\xdb\x38\x49\xb4\x32\ +\x85\x5a\x9e\x87\xe2\x22\x86\x66\xb2\x2c\x2b\xfc\xb3\xdd\x60\x09\ +\x8d\x48\x2a\xc7\xdc\xd8\x18\xc9\x1b\xff\x07\xb6\xc4\xef\xc5\xd0\ +\xe6\xc1\x3e\x89\xd9\x3a\x45\xab\x36\xcd\xf4\xf1\x13\x2e\xe9\x24\ +\xbb\x35\x07\xfe\xb7\x0d\x8a\x78\x19\x2e\x05\x0a\x66\x46\xf5\xa8\ +\x46\xff\x08\x78\xd9\x47\x57\x4b\x30\xa8\x57\x2f\x86\xbb\x6f\xc8\ +\x70\xaa\x54\xa0\x12\x38\xc8\x9f\xab\x5e\xaa\xb5\xc7\xa8\x0c\x16\ +\x6f\x58\xa6\xc9\x99\x57\xbe\x8f\xa1\xbd\xc8\xe0\xd8\x38\x3b\x3f\ +\x74\x17\xe2\x9a\x31\xea\xb5\x31\x8a\xcb\x63\x9c\xac\xdc\x48\xa7\ +\x92\x43\x6f\xd7\x49\x36\x2f\x12\x5d\x3a\x85\xb2\xdb\x9c\x2d\xc3\ +\xd9\xf9\x0e\x42\x2f\x31\xb3\xd1\xe4\xe6\x4f\x5f\xcf\xb5\x37\x7f\ +\x84\x33\xaf\xc7\x88\x44\x35\x14\x0f\x93\x48\x59\xf4\x0d\x95\x29\ +\x4e\x7d\x97\xb9\xb3\xff\xcc\xf2\xe4\x49\x26\x4f\x9d\x46\xb6\x5a\ +\x81\xba\x85\x55\x32\x84\xe9\x51\x0d\x21\x43\x30\x68\x2f\xf4\xaa\ +\xc5\xab\xc1\x08\x54\x01\x2e\xa0\x27\xbc\xab\x7a\xaa\x84\x82\x85\ +\x5b\xab\x96\x79\xa9\x6e\x3a\xb6\xdf\x57\x40\x85\xad\x6a\x01\x48\ +\xcb\xa2\xad\x14\x53\x67\xcf\x31\x75\xe6\x0c\xc2\x30\x48\xf5\x0f\ +\x90\x1d\xdc\x40\x76\x68\x9c\xe4\xb6\x31\x8c\xf8\x08\x36\x63\x58\ +\xea\x7a\xa4\x3d\x40\xee\xd4\x0f\xf9\x97\x7b\xc7\x68\x56\x05\x85\ +\x19\x83\xe5\xe9\x51\x9e\x3f\x1b\x43\x49\x41\x2a\xab\xe8\x1b\x14\ +\xb4\x6a\x11\xce\x1f\x1d\xc4\xec\x7c\x8a\xfc\xd0\x5d\xdc\xf4\xc8\ +\x1c\xd7\x4c\x3e\xc9\xb1\x17\x9e\x64\xf6\xdc\x39\xba\xd4\xbe\xea\ +\x91\x6c\xe1\x6a\xa0\x6e\x13\x8a\x9e\xa2\x98\x70\x16\xc5\xfb\x9f\ +\x0a\x0e\xb5\x43\x09\xd0\xa0\x21\xa3\xc8\x0b\x83\xf7\x36\x72\x0a\ +\x4a\x81\xc0\x46\xaf\xe6\x67\x07\x83\x67\x32\xe4\x4a\xb9\x27\xce\ +\xb4\x28\xcf\xcd\x51\x9e\x9b\x45\xa9\xd7\x1c\x8f\x22\x1a\x23\x3b\ +\x38\xc4\xd0\xc6\x31\x72\x83\xfd\xc8\xf2\x9b\x5c\xfc\x41\x86\x68\ +\x2a\x43\xcc\x88\x92\x1d\xde\x4c\x2c\x3d\x8e\x6d\x8d\x11\x49\xfe\ +\x1c\x8d\x6a\x96\x6c\x5e\x70\xc3\x47\x14\x46\x24\xca\xeb\xcf\x8e\ +\xf2\xca\x81\x31\xc6\x76\xdc\xc0\xc7\xfe\xcd\x67\x29\xcf\x3d\xc3\ +\xfc\x85\x13\xcc\x9e\x3e\xc9\xf4\xc9\x37\x31\xdb\xed\x70\x64\x2f\ +\x54\x4b\xe8\x85\x7f\x05\x01\x13\xd2\xa7\x86\xc5\xd5\x41\x05\x3b\ +\x39\x2e\x42\x85\x9b\x3c\x84\xaa\x7a\x5d\x35\x10\x2c\xd9\xc3\xab\ +\xb9\x53\x04\xf2\x01\xe8\x29\x17\x73\xc9\x92\x1e\x6a\x55\x89\x60\ +\xba\xb6\x5c\x21\x79\x82\x76\x86\xd5\x6e\x51\x98\xba\x48\x61\xf2\ +\x82\xdf\x9e\x46\x13\x3a\xb6\x65\x85\x4e\x60\x22\xdb\xcf\xb5\x77\ +\x3e\x40\x76\xf8\x4e\x9a\xb5\xbb\xf8\xee\xd7\xf3\x68\x3a\xd4\x4a\ +\x20\x6d\x78\xf5\x40\x84\x23\xcf\xef\x61\xd7\x2d\x3b\x18\x1c\xab\ +\xb0\xf3\xe6\x45\x16\x2e\x7c\x9b\x73\x3f\x7c\x96\xa5\x0b\x17\x59\ +\x9c\x99\xe9\xe9\x6b\xd8\x65\xc6\x05\x76\xb7\xce\x80\x80\x7d\x24\ +\xaf\x0a\x00\x38\x09\x12\x7e\x1b\x57\xc2\x8d\x9a\x82\xc6\xa1\x5a\ +\x71\x4a\xbc\x26\xd1\x5e\x34\x2f\xf0\x1a\x52\x85\xe3\xe9\x32\x70\ +\x8a\xe4\xca\xae\x22\xc1\x46\xd3\xac\xda\xdf\xa7\x4b\xcd\xd9\xd2\ +\x0a\x77\x0a\x51\x8a\x5a\x71\x91\x37\x0e\xfc\x57\x32\xb9\xa7\xd8\ +\x7b\xcf\x3d\xec\xb9\xed\x0e\x3a\x9d\x7b\x79\xf5\x99\x21\x32\x79\ +\xc5\x7f\xf7\x9f\x24\x95\xc5\xf3\x9c\x79\x7d\x9a\xe5\xd9\x51\xe6\ +\x2f\x6c\x47\x68\x9f\x67\xc7\xad\xbf\xc4\xcd\x0f\xff\x90\xd7\x0f\ +\xfc\x09\x6f\xbe\xfc\x32\xcd\x7a\xa3\xa7\xc0\xc5\xcd\x21\x58\x2d\ +\x50\x76\x35\x18\x81\xa1\xf4\x66\xaf\x43\xb8\xbf\x75\x5e\x63\x28\ +\xc2\x9b\xe2\xef\x5a\x90\x5c\x97\x3d\x8f\xe9\x2d\x1d\x93\x2b\xab\ +\x8d\x02\x69\x59\xa1\xac\xdb\x15\xed\x62\x09\x87\x6a\xe9\x6d\x14\ +\xe5\xe6\x20\x98\x1d\x96\x17\x96\x78\xfe\xbf\xfe\x2d\x9a\xf1\x8f\ +\xec\xfb\xd8\x27\xb9\xe3\x91\x7f\xcd\xfc\xc5\x1b\x29\x2f\x80\x50\ +\x2f\x71\xf4\xf9\x3f\x22\x3b\x34\xc6\xce\x9b\x1f\x20\x3f\xfa\x31\ +\x0a\x33\x5b\x39\x7f\xec\x7e\x76\xdd\xba\x81\xfc\xd8\xff\xcb\x73\ +\x5f\xff\x2f\x7e\x4b\x99\x9e\x37\x5f\xd1\xc4\xe2\x4a\xe5\x84\xad\ +\x7d\x65\x90\x82\xcf\x7e\xf6\xb3\x2c\x2d\x2d\x71\xe1\xc2\x45\x2e\ +\x5c\x38\x8f\x69\x9a\x21\x29\x20\x08\x4b\x04\x19\x0c\x21\xf7\xa8\ +\x8e\x70\xfd\xa0\x0a\xe5\xd2\xf5\xf6\xff\x0b\xf5\x05\x5a\xa1\x16\ +\x3c\x19\xbc\xb2\x2c\xcb\xef\x40\x42\x38\xa4\xeb\xa9\x0f\xdb\x34\ +\x39\xf2\x9d\xfd\xd4\x0b\x17\xb9\xe3\x17\xfe\x3d\xa9\xbe\xeb\x98\ +\x3b\x5b\x60\xe1\xc2\x29\xe6\xcf\xbf\xc9\xf9\x1f\x7e\x9f\xa1\x4d\ +\xff\x0f\x7b\xee\xf9\x24\x5b\xf6\x7e\x8e\x56\xfd\x7a\x3e\xfa\x4b\ +\xbf\xca\xa9\x57\x0f\x71\xf1\xd8\x9b\xa1\x5c\xa0\x5e\x83\x38\xc8\ +\x2b\x5c\x05\x5e\x80\xf3\x45\xee\xbd\xf7\x5e\xa0\x9b\xb9\x5b\xa9\ +\x54\x79\xf5\xd5\x57\x39\xfc\xd2\x61\x96\x0a\x4b\x81\x86\x0b\x5d\ +\xe3\x50\x11\x6e\x98\xd0\x4b\x9d\xaa\x00\x41\xe4\x31\x01\x41\x00\ +\x84\xdb\xc8\x06\x6c\x52\x08\x83\x4a\xf6\x34\x67\x08\xa6\x6f\x41\ +\xa8\x8d\x4d\xf0\xb3\xb4\xdb\x6d\x8e\x1f\x7e\x85\x66\xe5\x37\x18\ +\xdb\x7d\x2d\x17\x8f\x9f\xf4\x3f\xa3\xd9\xe9\x30\x75\xfa\x0c\xf3\ +\x17\xff\x94\xbd\x77\x1f\x67\xf0\x9a\x3b\x78\xf3\x70\x84\x7a\xa9\ +\x8a\x57\x2a\xa2\x54\x98\x0c\x93\x5e\xff\xa2\x90\x5b\x7b\x25\x58\ +\x9a\x35\x5e\x47\x8f\x1e\x55\x2b\x2a\x7e\x03\xa7\x0b\x60\x62\x62\ +\x82\x43\x87\x0e\x71\xfa\xf4\x19\xda\xed\x16\xcd\xa6\xc3\xfd\x7b\ +\x5e\x84\xdf\x1c\x52\xad\x96\x7d\xdb\x65\xe4\x1c\x0f\x23\xdc\x2d\ +\x3c\x9c\xb1\xdb\x6d\x08\x29\x02\x3c\x44\x6f\x2b\xfb\x70\xca\x56\ +\x38\x4b\x27\x54\xea\x2d\x5d\x62\x4a\x3a\xa9\x6f\xb6\xbd\x92\xd9\ +\x04\x9c\x4c\x24\x4d\xd0\x69\xb6\xc2\xfd\x07\x7b\xfa\x18\x79\x1b\ +\xff\x4f\x8f\xff\x13\x28\x98\x9d\x9d\x05\xde\xc7\x7d\x02\x01\xf6\ +\xee\xdd\xeb\x7f\xf8\x89\x23\x47\x54\xb8\x86\xde\xb9\xaa\x7b\xf7\ +\xee\x65\xcf\xde\x3d\xa0\x60\x79\x79\x99\x73\xe7\xce\x31\x37\x3b\ +\xcb\xcc\xec\x2c\xa7\x4e\x9d\x62\x71\x71\x31\xb4\x49\x2b\x48\x94\ +\x00\xbb\xa8\x7a\xc4\xbf\x62\xa5\x0b\xd6\xdb\x19\x44\xad\xd2\xae\ +\x45\xa9\xf0\x49\x5c\x51\xcc\xd9\xd3\xb7\xc0\x8b\x57\x84\xca\xc5\ +\x5c\x41\x6f\x77\xec\x80\xe5\xe3\xb6\x8c\x73\x4f\xbd\xd7\x42\x2e\ +\xa8\xf6\x82\x19\x43\x57\x01\x15\xdc\x5d\xd7\x7f\xe0\x03\xe2\x91\ +\x4f\x7d\x4a\x0c\x0d\x0e\x6a\x85\xa5\xa5\xff\x5e\x37\x8c\xff\xfc\ +\x5b\xbf\xf5\x5b\xf9\x20\x28\xf2\xf9\x3c\xf9\x5c\x1e\x6e\x52\x98\ +\x96\x45\xbb\xd3\x71\xe2\xf0\x67\xce\xf0\xfd\xef\x7f\x9f\xd7\x5e\ +\x7b\xad\x67\xf3\x55\xcf\x4c\x80\x9e\x56\x72\x5e\xd3\xa8\xde\xc4\ +\x8b\x60\x37\x10\x56\x4b\xc6\x08\x7b\x14\x22\xa8\xa7\x7b\xfa\x0a\ +\xac\x28\xfd\x96\x41\x63\xb2\xa7\x0f\x82\xdb\x1e\x3f\x98\x20\xe2\ +\x8f\xcd\x11\x57\xbe\x3c\xfc\x8a\x35\x26\x7e\xf8\xa1\x87\x62\x9a\ +\xae\x67\x34\x5d\xff\x57\xba\x26\x7e\x5f\xd3\xf4\x98\x10\x22\x44\ +\x04\x7d\xe9\x37\xbf\xd4\xc3\x97\xaf\xd2\x69\x0c\x28\x14\x0a\x1c\ +\x3e\x7c\x98\x57\x5f\x7b\x95\x52\xb1\x44\xad\x56\xa7\xde\xa8\xad\ +\xd2\x19\x34\x3c\x67\x28\xdc\x15\x3c\xe8\x66\x06\x80\xe0\xda\x04\ +\x92\xde\x29\x25\x3d\x46\xa9\xc7\x39\xb8\xad\xe1\xbc\x76\xf5\x5e\ +\x73\xea\x15\x86\x69\x20\x17\x20\xd4\x33\x39\x50\x55\xec\x49\x84\ +\x27\x1e\x7f\x1c\xa5\x60\x7e\x7e\x6e\xcd\x55\xc0\x9a\xbd\xf0\xc3\ +\x0f\x3f\xac\xed\xdf\xbf\x5f\x7e\xfc\x81\x8f\xc7\x63\x89\xd8\x76\ +\x4d\x68\x9f\x15\x42\xfc\x86\x61\xe8\xb1\x15\x06\x59\x4f\x7d\x7d\ +\xd0\x8a\xff\xf2\x97\xff\x43\xb8\xdb\x76\x10\x0c\x0a\x4c\xd3\x62\ +\x72\xf2\x22\x93\x93\x93\x2c\x2c\x2c\x70\xea\xd4\x69\x4e\xbe\x79\ +\x12\xcb\x34\xc3\xdd\xc1\xfd\x5c\x04\x15\x8a\x2b\xf8\x71\x09\xb5\ +\x7a\xa2\x46\x78\xd2\x89\x73\xbc\x83\xa0\x72\xa4\x83\xe7\x91\x48\ +\xd7\xaf\x0f\x77\x34\x0f\x45\x02\x5d\x09\x10\x6e\x20\x11\xb6\x6b\ +\x9e\x78\xfc\x09\x94\x50\xcc\xcf\xcd\xbf\xff\x00\xf0\xd0\xc3\x0f\ +\x6b\x4f\xee\xdf\x2f\x01\x1e\x79\xe4\x91\x8f\x6a\xba\xf6\x88\x10\ +\xe2\x73\x9a\xa6\xf7\x69\x62\x65\xbd\x43\x88\xf8\xe8\x31\xf2\xfc\ +\xce\xdc\x81\xbe\xff\xbf\xfd\xdb\xbf\xbd\xa2\x8d\x8c\x17\x3c\x93\ +\xca\x29\xf8\xb0\x2c\x8b\x52\xa9\xc4\xe1\x97\x0f\xf3\xc2\xf3\x2f\ +\x30\x3f\x3f\x1f\x9a\x47\xd0\x4b\x40\x5d\x7a\x33\xc2\x33\x0c\xfc\ +\xa9\x27\x42\x86\xfb\x0e\x86\xa6\x9b\xf5\xcc\x3c\x54\x32\x54\xdb\ +\x28\x7b\x26\x9e\xf9\xc3\x2e\xdc\x48\xa2\x94\x8a\x27\xf6\x3f\x01\ +\x0a\xe6\xe7\xdf\x47\x00\x78\xe8\xa1\x87\xb2\x4f\x3e\xf9\x64\xc5\ +\x3d\xfd\xbf\x62\x44\xf4\x5b\x40\xfb\x84\x26\xc4\xb0\xd0\x82\xdd\ +\x31\xbc\xe0\xad\x60\x45\xb9\x58\x88\x14\x0a\x5a\xe7\xbd\x2c\xa2\ +\xf4\xff\xfe\x9d\xdf\xf9\xdd\x90\x7a\xb8\x94\xb4\x98\x38\x32\xc1\ +\xa1\x43\x2f\x72\xfa\xf4\x59\xea\xf5\x1a\xe5\x4a\x99\x8e\x5b\x43\ +\x10\x14\xcd\xbd\x40\xf0\x36\x9d\xc0\x66\x75\x5b\xba\x39\xe3\x6b\ +\xfd\x6a\xa0\xd5\xb8\x0a\x19\x6e\x32\xa9\x02\x8c\xa4\x0a\xe6\x48\ +\x04\xf8\x8c\xc7\x9f\x78\x02\x94\xf2\x1b\x59\xbc\xa7\x01\xf0\xe0\ +\x27\x1e\x8c\x7d\xfb\xa9\x6f\xb7\x01\x1e\x7c\xf8\xa1\xff\xc3\xd0\ +\xf4\x07\x34\x4d\xbb\x0d\x21\x92\x6e\xb6\x34\xe1\x62\xd7\xee\xc6\ +\xaf\xf0\xeb\x55\x38\x46\xbe\xd2\x42\x0f\xb7\x6f\x95\x4a\xa1\x09\ +\x8d\x6d\xdb\xb6\x72\xd3\x4d\x37\xf9\x2e\xd7\x9e\x3d\x7b\xba\xdd\ +\xbb\x15\x2b\x7a\xf3\x2c\x17\x8b\x5c\xbc\x70\x81\x85\x85\x05\x2e\ +\x5c\xb8\xc0\x91\x23\x47\x98\x9b\x9d\xed\xb6\xaa\xed\x89\x21\x74\ +\x79\x84\x9e\xc4\x0e\xa5\x42\x2d\xee\x43\x36\x44\xef\x3c\x04\x9f\ +\x50\x72\x5e\x7b\x65\x14\xb3\x1b\x0b\x7d\xfc\xf1\x27\x00\x58\x58\ +\x58\x7b\x09\xf0\xae\xbd\x80\x6f\x3f\xf5\xed\xf6\x83\x0f\x3e\xf4\ +\x15\x5d\xd7\x7e\x41\x13\x62\x5c\x09\x91\xf0\xad\x6d\x21\x02\x21\ +\xde\x70\xb0\x57\x04\xfb\x07\xf6\x06\x42\x54\xb8\xa2\x28\x98\x31\ +\x13\xda\x14\xa5\xb8\x66\xdb\x66\x6e\xbe\xf9\xe6\xd0\x67\x3a\x76\ +\xec\x18\x9a\x5b\x07\xa8\xeb\x3a\x5b\xb6\x5c\xd3\x6d\xf2\x24\x20\ +\x9f\xcb\x91\xcf\xe5\xdc\x06\x94\x16\x96\x69\x61\xd9\x36\x27\x4e\ +\x9e\xe4\xbb\xdf\xf9\x0e\x2f\x1f\x3e\x8c\x29\x65\x97\xca\x16\x81\ +\xa1\x11\x01\xd5\xa4\x7a\x5a\x96\xa8\x90\x71\x19\x6e\x11\x23\x08\ +\x27\x7e\x28\xd9\x93\x03\xb1\x82\x42\xbb\x32\xd1\xa0\x9f\x18\x00\ +\x0f\x3c\x70\x5f\x52\xd3\x8c\x2f\x69\x9a\xf6\xab\x42\x88\x34\x28\ +\xd1\x15\xd5\xa2\x3b\xba\x55\xb8\x15\xb3\x22\x90\xe8\x22\x02\xf9\ +\x72\x5e\x86\x8f\x50\x21\x26\x2c\x78\x51\x83\x71\xf3\xde\xe8\xde\ +\xf5\xd7\x5f\xbf\xba\x68\x13\xf8\x9d\x43\xa7\xa6\xa6\xd1\x34\x1d\ +\x5d\xd7\x18\x1a\x1a\x0a\xa5\x66\x6b\x42\x27\x12\xd5\x88\x28\xc5\ +\x8d\xfb\xf6\x71\xe3\xbe\x7d\x80\xa2\x58\x2c\xf1\xe2\x8b\x2f\xf2\ +\xda\xeb\xaf\x51\x58\x2a\x38\x5d\x47\x2a\xe5\x30\x6d\xcb\xca\x79\ +\x03\x5e\x14\x74\x85\x9d\xa2\x42\xae\x8d\xd7\x46\x7a\x75\xd2\xd7\ +\x61\x96\xde\x7b\x00\xb8\xf7\xde\x7b\xa3\x91\x48\x64\x50\x29\xf5\ +\xbf\x08\x21\x7e\xd3\xff\x90\xaa\xdb\xd1\x17\xba\xbd\x94\xfc\x1e\ +\x81\x81\xc7\x04\x1b\x40\x12\x18\xe1\x8a\x5c\xa5\x73\x68\xaf\x01\ +\xe6\xd5\xdb\x07\xfc\xc4\x44\x22\xf1\x96\xda\x4d\xe0\x75\xfd\x10\ +\x08\x4d\x50\x2c\x16\xfd\xce\x21\x52\x4a\x6c\x37\x35\x7c\xc8\x9b\ +\xf3\xe3\xbe\x76\x2e\xd7\xc7\x83\x0f\x3e\xc4\x83\x0f\x3e\x88\x6d\ +\x59\x4c\x4e\x4f\x31\x33\x33\xcb\xfc\xdc\x3c\x13\x47\x8e\xf0\xa3\ +\x23\x3f\xf2\x33\x95\x55\x88\xd1\x13\xab\x4f\x15\xf1\x69\xe9\x40\ +\x7f\x00\xa9\xb8\x64\x2f\x88\xf7\x5a\x75\xf0\x7d\xf7\xdd\x77\x9b\ +\x52\xea\x61\x29\xe5\x97\xbd\x93\xe5\xf9\xae\x1e\x0e\x04\x38\xe1\ +\x5f\x17\x01\xc2\xfd\x3f\xff\xc2\xe0\x05\x7f\x44\xb7\x81\x02\x84\ +\x93\x37\x7a\xa7\x80\xfb\x7a\x56\x84\x9a\x2f\x79\x6b\x71\x71\x91\ +\x91\x91\x91\xd5\x03\x51\xf4\x74\xe7\x46\x20\x10\x68\x42\x20\x74\ +\xbd\x6b\x6c\x0a\xc1\xdc\xdc\x2c\x96\x65\x61\xdb\x36\x9b\x36\x6f\ +\x0a\xc4\x32\x14\x9a\xae\x73\xcd\xe6\x6b\xd8\xbc\xf9\x1a\x94\x94\ +\x3c\xfc\xc9\x87\x50\xb6\xa2\x58\x2a\xf1\xbd\xef\xfd\x33\xcf\x3e\ +\xfb\x2c\x53\x53\x53\x41\x3a\xef\x12\x49\x2b\xca\x97\x78\x6f\x55\ +\x03\xda\xdb\x0f\xf1\xbd\x22\x01\x5e\x4a\x24\x12\x54\x6b\x35\x84\ +\x00\x43\xd7\x11\xc2\xeb\xa7\xd7\x15\x57\x8e\x3b\x27\x5c\x79\x20\ +\x42\x23\xd4\x84\x20\x60\x55\x87\xdd\x40\x44\x4f\x9a\x58\xd0\x2d\ +\x7c\x0b\x5d\xf9\xfa\xeb\xaf\x73\xdf\x7d\xf7\xb9\x25\xda\xc1\x50\ +\x74\x40\xd2\x48\x05\x9a\xf7\x1a\x4e\x6b\x7a\xd5\x53\x98\xe2\xa8\ +\x0d\x07\x20\x17\xce\x5d\x08\x4c\x26\x81\x2d\xd7\x5c\x13\x7a\x8c\ +\xae\xe9\xa0\xc1\xe0\xe0\x00\x9f\xf9\xf4\x67\xf8\xcc\xa7\x3f\xed\ +\x7b\x1a\x2f\xbd\xf4\x12\x67\xce\x9e\xa1\x58\x2c\xb1\xb4\xb4\x48\ +\xcb\xcd\x15\x0c\x75\xff\xbc\x82\xf5\xff\x97\x13\x00\xea\xe1\x87\ +\x1f\x16\x8b\x4b\x8b\x94\x4b\x65\xe6\xe7\xe6\x98\x5f\x58\xa0\xd9\ +\x6c\xa2\xb9\xc6\x96\xd3\x64\x51\xa0\x21\x02\xd5\xd2\x4e\x93\x84\ +\xd0\xbc\x1f\xba\x6d\x58\x83\xb0\xef\xcd\x96\x09\x4e\xf7\xbc\xa4\ +\x1b\x23\x04\x87\x0e\x1d\xe2\xee\xbb\xef\x0e\xdd\xef\x74\x1b\x13\ +\xee\xb0\x2a\x89\x90\xd2\xdd\x60\xaf\x35\xab\x53\xfb\x2f\x83\x69\ +\xea\xae\x18\xeb\x8f\xca\xc9\x00\x00\x00\x18\x29\x49\x44\x41\x54\ +\x7d\xc7\xf3\x17\x2e\xf8\xb7\x8b\xc5\x22\x4f\x3d\xf5\x14\x5f\x7c\ +\xec\x31\x57\xcd\x75\x43\xf9\xd7\x5f\xbf\x97\xbd\xd7\xef\x05\x05\ +\xc5\x72\x91\x99\xe9\x19\x16\x16\x16\x39\x7d\xfa\x14\x3f\xf8\xc1\ +\x0f\x98\x9c\x9c\x0c\x81\xff\x92\x17\xfa\x0a\x82\x43\xbc\x03\x15\ +\x20\x7f\xf3\xcb\x5f\x16\x66\xc7\xa4\xd5\x6a\x52\x75\x2b\x70\xab\ +\xb5\x1a\xb3\xb3\xb3\x4c\x4e\x4e\xba\x84\x8b\x72\xad\x6f\xc3\xd1\ +\xbb\x81\x16\xee\x97\xec\x7f\x17\x20\x82\xc2\x3e\xfd\xdb\xbf\x10\ +\x99\x4c\x86\xbb\xee\xba\x8b\x7c\x3e\x1f\x8a\xc2\xe9\x9a\x8e\xa6\ +\x6b\xfe\x80\x68\x4d\xd3\xfc\xcf\x24\xdd\xb1\x73\x52\x4a\xa4\x6d\ +\x63\x4b\x1b\xdb\xb2\xb1\x6d\xfb\x92\xa0\x93\x52\xf2\xcd\x6f\x7e\ +\x73\xc5\xfd\x8f\x7e\xe1\x0b\xbe\x97\x41\x8f\x1d\x23\xdd\xf7\xb0\ +\x6d\xc9\xd1\xa3\x47\x79\xe6\xe9\xa7\x39\x74\xe8\x90\x13\xf1\x5c\ +\x65\x7d\xeb\x5b\xdf\x42\x29\x45\xa1\x50\x78\x6f\xb9\x81\x66\xa7\ +\x83\x69\x9a\xe8\xba\x4e\x2e\x9f\x27\xdf\x9f\x47\x4a\xc5\xb6\x6d\ +\xdb\x69\xb7\x9b\xb4\xdb\x6d\x8a\x45\xa7\xd1\xe2\xf9\xf3\xe7\x7d\ +\x83\xcb\xbb\xf8\xbe\xed\xb0\x22\x63\x00\x82\x9d\x12\x7f\x12\xfc\ +\x57\xab\x55\x5e\x78\xe1\x05\x36\x6f\xde\xcc\xf6\xed\xdb\xc9\x66\ +\xb3\x0e\x51\xe3\x76\x0b\x17\xc1\x56\x2d\x1e\x28\xbd\x79\x81\xd2\ +\x99\x45\xac\xa4\x5a\x31\x95\x64\xb5\xf7\x59\x6d\xfd\xdf\xbf\xf7\ +\x7b\xfe\xed\xff\xf5\xdf\xfe\x5b\x12\xf1\x58\xa0\x45\xbd\xa3\x36\ +\x34\xa1\x73\xe3\xbe\x7d\xec\xbb\xe1\x06\x10\x50\x5c\x2e\xf2\xf2\ +\xcb\x2f\xf3\xfa\xeb\xaf\xb3\xb4\xb4\xc4\xd2\xd2\x12\x85\x42\x61\ +\x05\xf0\xef\xbb\xef\xbe\xdf\x02\x26\x81\x37\x0e\x1e\x3c\xf8\xaa\ +\x7b\x9f\x76\xf0\xe0\x41\x79\x45\x25\xc0\x63\x8f\x3d\x2a\xcc\x8e\ +\x93\x30\x59\x2c\x16\xdd\x1a\x39\xbd\x9b\x88\x29\x1d\x02\x44\xda\ +\x16\xb6\xad\x68\x75\x5a\xcc\xcc\xcc\x70\xe6\xf4\x19\x2e\x5e\xbc\ +\x48\xbb\xdd\x5e\x05\x08\x97\xbf\x27\xda\xf8\xf8\x38\x5b\xb6\x6c\ +\x61\x68\x68\x88\x64\x22\x89\xa6\xeb\x18\xba\xd3\x03\x58\x38\xfe\ +\x61\x08\x10\x52\x29\xdf\x2b\x08\x76\x0f\xeb\x5d\xb6\x6d\xf3\xe2\ +\x8b\x2f\x3a\x06\xdf\x4f\xb0\x7e\xed\xd7\x3e\x1f\x70\x21\xbb\x12\ +\x51\x01\x96\x69\x31\x3f\xe7\x84\xc0\x3d\x5e\xc3\x93\x00\xee\xf8\ +\xfa\x2a\x30\x05\x1c\x05\x6a\xc0\x9b\xc0\x81\x83\x07\x0f\xbe\xe6\ +\xee\x4f\xf2\xe0\xc1\x83\x8d\x35\x05\xc0\xa3\x5f\xf8\x82\xe8\x58\ +\x26\x28\x78\xe9\xa5\xc3\x28\xe5\x34\x5e\x4a\x67\x32\xf4\xf5\xf5\ +\x91\xed\xeb\xf3\x5b\xb3\xd1\x93\xfc\x29\x84\xa0\x54\x2e\x33\x79\ +\xf1\x02\x67\xce\x9c\x65\x61\x61\xe1\x92\x17\xfa\x5d\x8b\x35\xc3\ +\x20\x93\xc9\x22\x34\xd8\x38\xbe\x91\xe1\xe1\x11\x72\xf9\x3e\xa7\ +\x9c\x5b\xd3\xdd\xf6\x2f\xdd\x16\x65\xd2\x75\xc9\x6c\x29\x43\x5d\ +\xbd\xbc\xd5\xe9\x74\x68\xb7\xdb\xbc\xf1\xc6\x1b\x4c\x4d\x4d\xbd\ +\x2d\xd5\x24\x34\x0d\x74\x50\xb6\x63\x8b\xf4\x3e\xe7\xf3\x9f\xff\ +\x7c\xa0\x4d\x8c\x37\x0c\x2b\x6c\x7f\x14\x0a\x05\x6f\xf3\x57\x5b\ +\x4d\x60\x01\x98\x03\x8a\xc0\x84\x10\xe2\xef\x9f\x79\xe6\x99\x97\ +\xdc\xfd\x4a\x1d\x3c\x78\xb0\x7e\x59\x01\xf0\xbf\xff\xfa\xaf\x0b\ +\xcb\x34\x51\x4a\x71\xf8\xf0\x61\x3f\x23\xc7\x0b\x66\x28\xb7\x45\ +\x4b\x32\x99\xa4\x2f\xd7\x47\xbe\x2f\x4f\x2a\x9d\x42\x13\x22\x34\ +\xea\xcd\x11\xbf\x92\xc5\xc5\x25\x2e\x5e\x74\x22\x79\xd5\x6a\xd5\ +\x1f\xfd\xf2\xae\x80\x21\x20\x62\x44\x88\x44\xa2\x44\x23\x06\x91\ +\x68\x94\xad\x5b\xb7\x22\x84\x20\x16\x8b\x91\x4a\xa5\x48\x25\x93\ +\xc4\xe2\x31\x84\xe6\xb8\x82\xb6\x65\xf9\x27\x5c\x08\xe1\x37\xad\ +\xaa\x54\xca\x14\x8b\x25\xea\xb5\x3a\x27\x4f\x9e\xc0\x74\x1f\xf7\ +\xe3\x96\xa6\x69\xa8\x1c\x24\x07\x53\x10\xd3\x10\x1d\x81\x58\x54\ +\x54\x97\xcb\x97\x7c\xce\xaf\xfe\xea\xaf\x84\x8c\xe2\x3f\xfa\xa3\ +\x3f\x7a\xa7\xdf\xbc\x03\x34\x80\x3a\xb0\x28\x84\x78\xcd\x34\xcd\ +\x7f\x7c\xee\xb9\xe7\x9e\xb8\x6c\x00\xf8\xb5\x7f\xf7\xef\x84\xe5\ +\x76\xd7\xf4\x01\x20\x95\xef\x32\x49\x29\xfd\xbf\x95\x27\x56\x95\ +\x22\x16\x8d\x92\xcd\x66\xc8\xe7\xf2\x64\xb2\x7d\x44\xa3\x51\x3f\ +\x72\xe6\x35\x6a\x6a\xb7\xda\x2c\xcc\xcf\x33\x3d\x33\xcd\xe2\xe2\ +\x12\xed\x76\x9b\x8e\x9b\x0c\x62\x59\x96\xaf\x32\xc4\x8f\x61\xc8\ +\x84\xa6\x11\x8d\x44\x30\x0c\x83\x68\x24\x4a\x24\xea\x81\x21\xe2\ +\xde\x76\x7f\xa2\x51\x22\x91\x08\x28\xe5\xab\x25\x29\x25\xad\x56\ +\x8b\x62\xb1\x88\xd9\xe9\x20\x95\xa2\x54\x2c\xd1\xb1\x4c\xa7\x3d\ +\x9c\x0f\xde\xb7\x96\x00\xba\xae\x13\xd9\x18\x23\xbb\x3b\x47\x62\ +\x53\x1a\x0c\x98\x3a\x39\x45\xdf\xd1\x04\xe5\x4a\x19\xbb\x65\xb1\ +\xd6\xcb\xb6\x6d\xb9\x71\xe3\x46\x19\x89\x44\xb5\xe9\xe9\xa9\x7f\ +\x73\xe0\xc0\x81\xaf\xbd\x6b\x23\xd0\x3b\xed\x9e\x85\xde\xcd\xd5\ +\x5b\x59\x15\x1b\x70\xef\x69\x35\x9b\x34\x1a\x0d\x66\x67\xe7\x90\ +\x4a\xa2\x09\x41\x2a\x9d\x71\x38\xf9\x7c\x9e\x54\x2a\x89\x92\x30\ +\x3c\x32\xcc\xc8\xc8\x06\x84\x26\xa8\xd5\x6a\x2c\x2e\x2e\xb2\xb8\ +\xb8\x48\xb5\x5a\xa5\xd5\x6a\xd1\x68\x34\x68\x36\x9b\xbe\x71\xb7\ +\xaa\x51\x29\x25\xed\xb6\x33\x07\x20\xd6\x1f\x73\x3d\x11\x07\x68\ +\x4e\x4b\x38\xe1\xcc\x03\xc0\x19\xf8\xdc\x71\x0d\x5b\xd3\x34\xe9\ +\x98\xa6\x6f\xe8\x3a\x3f\x1d\x5f\x3d\x18\x86\x81\x65\x59\xef\xc0\ +\x33\x11\xe8\x71\x9d\xd4\xb6\x2c\xe9\x6b\xd2\xa4\xb7\x66\x29\x6f\ +\x28\x52\x7e\xb3\x4a\xdf\xf9\x1c\x95\x52\x19\x65\x5f\x5e\xdb\xc7\ +\x03\xe7\xe0\xe0\x20\xfd\xfd\xfd\x0e\xf7\x29\xe0\x43\x77\xdd\xf9\ +\xd7\x07\x0e\x1c\x78\xf7\x5e\x80\xb4\x55\x37\x74\x19\x9a\xbe\x19\ +\x18\xcf\xe4\x27\x57\x48\x9f\x78\x09\x31\x61\x12\x6c\x65\x53\x5c\ +\x2e\xb2\x5c\x28\xb8\xd6\xb7\x4d\x32\x91\x24\x97\xcf\x91\xcb\xf5\ +\xd3\x97\xcd\x62\xe8\x3a\x63\x1b\x36\x30\x36\x36\x8a\x92\x8a\x4a\ +\xb5\x4a\xa9\x54\xa2\x52\xa9\xd0\x6c\x36\xa8\x56\x6b\x54\xab\x55\ +\x1a\x8d\x46\x08\x0c\x41\x40\x2c\x2f\x2f\x87\x3e\xff\xee\xdd\xbb\ +\x1d\x11\x2f\x00\x4d\x74\x25\x95\xc7\x37\x48\x19\x08\xe7\x3a\xb7\ +\x9b\x8d\x77\x6c\x57\x05\x62\x1e\x1a\xd1\x64\x8c\xf4\x70\x86\x58\ +\x26\x4e\x2c\x95\x24\x33\x9c\xa6\x38\xb8\x4c\xfc\x74\x92\x85\xe9\ +\x39\x54\xeb\xf2\xd8\x41\xba\xae\xfb\xbd\x0c\x75\x5d\xc7\xb6\x6d\ +\x07\xfc\x68\x14\x8a\x25\xfd\xb2\xb8\x81\xde\xc5\x42\x41\xb6\xaf\ +\x8f\x6a\xa5\x82\x69\xdb\xab\x0c\x7c\x96\x3d\x53\xbb\x7b\x06\x40\ +\x11\xa4\x4c\x9d\xc7\xd4\xea\x75\xaa\xb5\x2a\xe7\xcf\x5f\x44\x29\ +\x49\xc4\x88\x90\xcd\x66\xe9\x1f\xe8\xf7\xa7\x7c\x8c\x6e\xd8\xc0\ +\xe8\x86\x0d\x98\x96\x45\xa3\x5e\xa7\x56\xaf\xd3\x6a\xb5\xa8\xd5\ +\x6a\x6e\x8b\xf8\xb2\xef\x69\x78\x62\x3d\xb8\x4e\x9c\x38\x71\x45\ +\x59\x36\xa5\x24\xca\x72\xa6\x85\xc8\xa8\x44\x8e\x42\x26\x9f\x27\ +\x32\x12\xa7\xdc\xbf\xc4\xc6\xa3\x9b\x59\xbc\xb8\x40\xab\xd2\x0c\ +\x8d\xcd\x79\xbb\x7b\x21\x84\x20\x12\x89\x10\x8f\xc7\xe9\xeb\x73\ +\x54\xab\xd7\x2a\xcf\x69\xc4\x81\xdb\xd1\x5c\x72\x99\x00\x20\xfd\ +\x49\x5f\x3b\x77\xee\x70\xb9\x01\x93\x72\xb5\x4a\xb9\x54\xa2\x5c\ +\x2a\xd3\x68\x36\x56\x0e\x70\x0e\x86\x41\x83\x89\x16\x7e\xec\x8c\ +\x40\x98\xd5\xb9\xdd\xee\xb4\x59\x58\x5c\x60\x6e\x7e\xce\x15\xf9\ +\x90\x4e\x67\xc9\xe7\xf3\xf4\xf7\xe7\x49\xa7\xd3\x0c\x26\x12\x28\ +\xa5\xe8\x98\x26\x6d\xb7\x07\x60\xa7\xd3\xa1\x54\x2a\x51\x28\x14\ +\xa8\x56\xab\xee\x49\x58\x9d\x83\x58\x4b\x76\x4d\xc3\x69\x21\x53\ +\xae\x95\x59\x3e\x5f\xe4\xf4\x85\x33\xcc\x2d\xcd\xb3\x79\x6c\x9c\ +\x2d\xc3\xdb\x18\xf8\xf0\x38\x62\x5c\x12\x39\x16\xa3\x72\x62\x99\ +\xc2\xc5\x45\x94\xf5\xf6\x37\x3f\x1a\x8d\x12\x8f\x27\x48\x26\x13\ +\xc4\x62\x31\x27\x1b\xca\x32\x9d\x68\x87\xd0\xd0\xdc\xce\x65\x42\ +\xe3\x2d\x8d\xea\x77\xa6\x02\xa4\xed\x0f\x74\x28\x95\x2b\xa4\x92\ +\x49\x74\xc3\x20\x9f\xcf\xd1\x9f\xcb\x39\xc6\x87\x94\xd4\x6b\x35\ +\x8a\xa5\x12\xcb\xcb\xcb\x54\xab\x95\xf0\xd0\x47\x7a\xe6\xed\x04\ +\x12\x2c\x04\x81\x21\xcb\xc1\xc0\x90\x10\xd8\xb6\x4d\xa9\x54\xa4\ +\x58\x5c\xe6\xf4\x69\xc7\x16\x89\xc7\x63\xe4\xf2\x39\x06\xf2\x03\ +\xf4\xf5\xf5\x91\xc9\xa4\x51\x52\x91\xcd\x66\x19\x1b\x1b\xc3\xb6\ +\x2c\x1a\x8d\x06\xcb\xc5\x22\xcb\xcb\xcb\xd4\xeb\x75\xdf\x4a\x5f\ +\x6b\x30\x78\xad\xa6\x4d\x65\xd1\x36\xdb\x14\xea\x05\x2e\x2e\x9c\ +\xa7\xa3\x75\xb0\xa3\x02\xb5\x09\x86\x6e\x1a\x24\x3d\x90\x83\x11\ +\x41\x76\xa2\x9f\xd9\xb3\xd3\xb4\xcb\x0d\xa4\x25\x2f\xb9\xf1\x86\ +\x61\x90\x4e\xa7\xd0\x8d\x08\xf1\x58\xd4\xe9\x87\xe0\x19\xc9\x6e\ +\xcf\x6b\x21\x9c\x78\x87\x40\x20\xa4\xb8\x8c\x12\x40\x76\xd3\xa7\ +\x2e\x5c\x70\x44\xb5\x26\x04\x89\x64\x92\x6c\x26\x43\x2a\x9d\x76\ +\x5c\xad\x74\x9a\x64\x3a\xcd\xf8\xd8\x18\x52\x29\x5a\xad\x16\xa5\ +\x72\x89\xe5\xc2\x32\xc5\x62\x89\x4e\xa7\xed\x7b\x10\xb0\xca\xb4\ +\x2c\x45\x37\x7a\xa8\xbc\xf8\x39\x3d\xc3\x95\x15\x8d\x46\x83\x7a\ +\xbd\xce\xf4\xd4\xb4\xef\xff\x7f\xe8\x43\x77\xa3\x69\x1a\x46\xc4\ +\x70\xac\xf1\x48\x84\x4c\x36\xc3\xa6\x4d\x1b\xb1\x6d\x9b\x6a\xb5\ +\x46\xa1\x50\xf0\xd5\xc5\xdb\xf5\x2e\x7e\x52\x10\xe8\x86\x46\x3c\ +\x99\x20\xda\x17\xa3\x93\x30\x99\x6d\x4c\xd3\x9a\xae\x53\xb7\xca\ +\x6c\xdb\xb0\x9d\xf1\x5d\x63\x0c\x6d\x1a\xa5\x36\x5e\x61\xf0\xc8\ +\x08\x8d\x1f\xd5\x29\xcf\x2e\x61\x77\xec\xc0\xf5\x71\x3c\x95\x6c\ +\x26\xeb\x78\x39\xb1\xa8\xd3\x2f\xc9\xb2\x10\x42\x73\x4f\xbc\xf2\ +\xe2\xde\x7e\xfb\x19\x21\x34\x10\x2a\x14\xd8\x7a\x77\x12\x20\x28\ +\xbe\x5d\x23\xc9\x92\x36\xe5\x72\x99\x52\xb9\x8c\x72\x59\xb4\x44\ +\x22\x41\x26\x93\x21\x93\xc9\x90\x4c\x26\x89\xc5\x62\x0c\x0f\x0f\ +\x33\x34\x38\x0c\x4a\x61\x5a\x26\xe5\x4a\x99\xe5\xc2\x32\xcb\xcb\ +\x45\xaa\xb5\xaa\x1f\x00\x52\xde\x88\x99\xde\x58\x81\x8b\x14\xa9\ +\x56\x99\xc7\xe7\x2e\xc7\x4a\x97\x2b\x5a\xb7\x29\xe5\x7a\x00\x9a\ +\xee\x7c\xae\x6c\x06\x25\x15\xa6\xe9\x7c\x0e\x27\xb5\xdc\x19\x2c\ +\x71\x99\xad\x00\x27\xfc\x6b\x08\xb4\x84\x46\xa4\x2f\x42\x2c\x16\ +\xc3\x8a\x49\xce\xd4\xcf\x32\x37\x35\xc7\x48\x79\x03\x1b\xf3\xe3\ +\x6c\xbc\x6e\x13\x83\x63\x23\xd4\x47\xab\x30\x21\xb1\x4e\x9b\x94\ +\xe6\x97\x11\x4a\x90\x4e\x67\xd0\x74\x81\xae\x69\x8e\x34\x74\x87\ +\x5a\x21\x34\xd0\x5c\x83\x1b\xef\xc4\xcb\x80\xba\xb3\x91\x4a\x5c\ +\x4e\x15\x20\xc3\xc3\x0f\xbc\x4e\x98\x2a\x3c\xf1\xb3\x5e\xaf\x53\ +\xab\xd5\x98\x9e\x9e\x46\x2a\x45\xc4\x30\x48\x67\xd2\xf4\xf5\xf5\ +\x91\x4e\xa5\x89\x46\xa3\xe4\x73\x79\x72\xd9\x3e\xb6\x6e\xdd\x8a\ +\x52\x8a\x6a\xb5\xc2\xf2\x72\x91\xa5\xa5\x02\xe5\x72\x09\xcb\xb6\ +\x02\x63\x58\x56\x4e\xd1\x59\x31\x83\xaf\x27\x97\xa2\x3b\xd9\xbb\ +\x9b\xe2\xed\x53\xaf\xd2\xf1\x64\x74\x4d\x27\xd7\x97\x23\x9f\xcb\ +\x23\x84\xa0\xd5\x6a\x51\xad\x56\x29\x97\xcb\xb4\x5a\x2d\xff\xfb\ +\xbe\xab\xe8\x9c\xdb\xfd\x5c\x46\x6d\x54\x4a\xa1\x27\x74\x34\x43\ +\xa3\xd1\x69\xd2\x34\x9b\x34\x2a\x4d\x5a\xb4\x40\xd3\x19\x1f\x1e\ +\x25\x75\x7b\x8e\x78\x7f\x82\x72\x7e\x89\xfe\x0b\x83\xaa\xbc\x58\ +\xa4\x53\x6f\x0b\xa1\xc0\x96\x0a\xaf\xb7\xb5\xb3\xe5\x12\x4d\x3a\ +\x89\x2e\x0a\x0d\xb0\x7d\x0b\xc4\xb9\x0e\x02\x84\xc2\x7e\x0b\x03\ +\xf3\x1d\x4a\x80\x30\x00\xde\x2e\x0f\xd0\x69\xb7\x59\x6a\xb5\x58\ +\x5c\x58\xf4\x79\x80\x44\x32\x45\x2e\xeb\xd0\xc7\xc9\x64\x82\x54\ +\x2a\x4d\x2a\x99\x62\x7c\x7c\x23\x20\x69\x36\x5b\x94\x4a\x25\x96\ +\x96\x0a\x2c\x2f\x17\xba\xee\x98\x37\x4a\xe6\x12\x61\x84\xd0\xe0\ +\x25\x97\x82\xf5\xa6\xd1\xab\x15\x1e\x4d\x38\x83\x37\x1a\x8d\x32\ +\x38\x38\xc8\xd0\xd0\x10\x00\x8d\x46\x83\x6a\xb5\x4a\xad\x56\xa3\ +\xd3\xe9\x60\xdb\xb6\xcf\x54\x7a\x56\xf8\x8f\xa7\x05\xdd\x1f\x03\ +\x64\x4c\x22\xe3\x12\x2d\xae\x91\x54\x29\x2c\x65\xd1\x6a\x37\xb9\ +\xd8\xba\x40\x63\xb9\x41\xdd\x2e\x73\xed\xd0\x5e\x06\x6f\xe9\x27\ +\xbe\x21\x4e\xe5\x64\x49\x24\x8e\x9a\x44\x2f\xc4\x68\x94\x6a\x28\ +\x4b\xa2\x94\xe6\x24\xa9\xb8\x9b\x2c\x01\x21\x5d\x30\x08\xcd\x49\ +\xc1\xd3\xa4\x9f\xdb\x20\x34\xde\x72\x16\xf1\x3b\x94\x00\xc1\x74\ +\xe7\x77\xc7\x03\x94\x4b\x65\x4a\xc5\xa2\xcf\x03\x24\xe2\x09\xb2\ +\x7d\x59\xfa\xfa\xf2\x64\xd2\x69\x22\x91\x28\x83\x43\x43\x0c\x0d\ +\x0d\x22\xdd\x21\xd1\x95\x72\x85\xa5\x82\x13\x35\x2b\x57\xca\xab\ +\x76\xd1\xe8\x1d\x4c\x2e\x20\x44\x43\x7b\x83\x29\x43\x43\x7e\x02\ +\xa0\x08\x9e\xf6\x78\x3c\x4e\x22\x91\x60\x64\x64\xc4\x9f\x3b\x54\ +\xab\xd5\x68\x36\x9b\x01\xb2\xc8\x0c\x89\xd8\x30\x28\x9c\xbc\x08\ +\xa5\x29\xa4\xa1\x90\x71\x89\x4c\x38\x20\x70\xab\x05\x30\x62\x11\ +\x94\xa5\x58\xb2\x96\x68\x2c\xd5\x99\xad\x2e\x30\x10\xed\xa7\x2f\ +\x9a\x63\x60\x67\x9e\xc1\x81\x11\x3a\xa7\x9a\x44\x4f\x45\xa9\xcc\ +\x14\xb1\xab\x8e\xde\x97\x42\xb9\x79\x8f\xca\xdd\xf8\xee\xdc\x21\ +\x21\x1d\xff\x5f\x68\x0e\x42\xac\xcb\x25\x01\x94\x4b\xf5\x2a\x14\ +\xa9\x54\x8a\x7a\xbd\x8e\x25\xe5\x65\xe1\x01\xea\x8d\x06\xb5\x7a\ +\x8d\xc9\xc9\x69\x94\x92\x18\xba\x41\x26\x93\x21\x9f\xcf\x91\xc9\ +\x66\x1d\x5f\x37\xd7\x47\xb6\x2f\xcb\xd6\xad\x5b\x91\x52\xd2\x68\ +\x34\x28\x14\x0a\xbe\x51\xe7\x0c\x81\x52\xd0\xe3\x49\x04\xc7\xb7\ +\x87\x3a\x95\xbd\x0d\x77\x2b\xf8\xb8\x64\x32\x49\x2a\x95\x42\x08\ +\x81\x69\x9a\x34\x9b\x4d\xbf\x92\xb9\xd3\xe9\xd0\x6a\xb5\xe8\x74\ +\x3a\xbe\x84\x70\x72\xa2\x24\x42\x57\x10\x55\xa8\x98\x03\x02\x3b\ +\x61\xa3\x94\xed\xea\x6c\x0d\x65\x29\x3a\x66\x87\x62\xad\x42\xad\ +\xd6\x62\x91\x02\x7d\x91\x3e\xc6\x53\x63\xc4\xb6\xc5\x49\xe7\x53\ +\x68\x83\x06\xb9\xd3\xa3\x2c\x5d\xbc\x48\x63\xa1\x8e\x6c\xdb\x9e\ +\xc9\xef\x78\x66\x68\x74\x65\xae\x0b\x06\x37\x0c\xae\xde\xc2\xb6\ +\x79\xc7\x5e\x80\x74\x53\x9e\x37\x6e\xda\xe4\x1a\x5e\x26\xf5\x7a\ +\x83\x5a\xb5\x4a\xb5\x5a\xa3\xd5\x6e\x5d\x16\x1e\xa0\x63\x76\x58\ +\x2a\x2c\xb1\xb0\xd8\x8d\x1a\xa6\x52\x69\xf2\xf9\x1c\xb9\xbe\x3e\ +\x67\xfe\x4f\x22\xc1\xf8\xd8\x18\xa3\xa3\xa3\x0e\x1f\xe0\x96\x94\ +\x87\x2a\x89\x83\x85\x22\xb2\x77\x62\xf8\x3b\x25\x76\x54\x68\x1e\ +\x41\x3a\xed\x8c\xab\x07\x30\x4d\xd3\x07\x80\x6d\xdb\xc8\x8c\x40\ +\xd7\x75\xc7\x99\x11\x02\xa9\x2b\x88\x28\x94\x61\xa3\x22\x12\x5b\ +\xb3\x1d\xd5\x60\x09\xf4\x96\x46\x4c\xc4\x10\x29\x0d\xd5\x56\x54\ +\xab\x65\x0a\xa5\x45\x8a\xa5\x02\x76\xdb\x62\xe7\x86\x1d\x6c\x1c\ +\x1d\x47\x6d\x86\xf6\xc9\x01\x52\x47\xb3\x2c\x9e\x9d\x43\x36\x4c\ +\x47\xbf\x08\x40\xd9\x4e\xe6\x95\x26\x10\xaa\xcb\x79\x28\x25\xde\ +\x32\x0b\xe9\x9d\x00\x40\x9c\x39\x73\x86\xa1\xa1\x41\x8c\x88\xe1\ +\xb0\x6d\xba\x8e\xae\x19\xbe\xc5\x3f\xea\x4a\x89\x46\xb3\x49\xa5\ +\x52\xa1\x52\xa9\x50\xaf\xd7\x2e\x0b\x0f\x20\xdd\xe8\x5c\xb9\x5c\ +\x72\x8d\x33\x45\x3c\x1e\x25\xdb\xe7\xe4\xf8\x67\xb3\x59\x22\xd1\ +\xa8\xeb\xf3\x86\xa7\x8c\x78\xe0\x0d\x55\x28\x5c\xca\x95\xf8\x09\ +\x01\xe1\x51\xb1\x1e\x38\x64\x0e\xe4\x80\x46\x3b\xd1\xa1\x26\x5a\ +\xae\xa2\x56\x48\x5d\xa1\x22\x8e\x4a\x40\x73\xc6\xca\x29\x5b\xa1\ +\x23\x10\x3a\x68\xba\x4e\x2c\x1a\xc3\xb0\x22\x98\xed\x0e\x67\xa6\ +\x4e\xd3\xac\x37\xe9\x8c\x77\x18\xde\x34\x42\xdf\x50\x9e\xe6\x70\ +\x9d\xf1\xfe\xcd\xcc\x1d\x9f\xc2\x2a\x9a\xce\xc0\x0a\x2f\xed\xce\ +\x4d\xad\x77\x3c\x01\x87\x8e\xb6\xd5\xe5\x01\xc0\xa1\xef\x3e\xf7\ +\xdd\x98\x10\xe2\x83\xd9\x6c\x96\xd1\xd1\x51\x46\x47\x47\xc9\x64\ +\x32\x44\x22\x11\xa2\xd1\x28\x86\x61\x20\x84\x46\x32\x99\x20\x91\ +\x48\x30\x3c\x3c\x0c\x10\xb2\xae\x2b\x95\xea\x65\xe4\x01\x9a\xd4\ +\xeb\x0d\x66\x67\x66\x7c\x1e\xe0\xb6\xdb\x6e\x0b\x88\xfe\x2e\xc7\ +\xdf\xb5\x0f\x7a\x1a\x35\x5f\x56\xea\xb7\x2b\xf5\x74\x3d\x82\x11\ +\xd1\xb1\x74\xe9\x93\x42\xde\x2f\x0d\x0d\x4d\x6a\x7e\xb1\x8a\x73\ +\x5a\x35\x84\x72\xf2\x29\x23\x7a\x04\x11\x15\x74\xcc\x0e\xe5\x5a\ +\x05\xb3\x61\x63\xd7\x6d\x2a\x1b\xaa\x8c\x0c\x6f\x20\xb9\x27\x89\ +\x96\x17\xf4\x0f\x6e\x40\x1d\xb3\x29\xcf\x17\x30\x6b\x1d\xa7\x21\ +\xb6\xf2\xb2\x9d\xbc\xda\x08\xa7\x49\xf6\xbb\x06\xc0\xc1\x83\x07\ +\xef\x74\xc3\xc2\xff\x50\xaf\xd7\x1b\x27\x4e\x9c\xb0\x8f\x1f\x3f\ +\x7e\x77\x24\x12\xd9\x9a\xcb\xe7\x18\x1e\x1a\x66\x70\x70\x90\x58\ +\x3c\x46\x32\x91\x20\x91\x48\x3a\x43\x16\x94\x72\xc6\xad\x46\xa3\ +\xe4\xfb\xfb\x1d\xb7\xc4\xb4\xa9\x56\xab\x94\x4a\x45\x4a\xe5\x8a\ +\xcf\xd0\x5d\x0e\x1e\x00\xba\xc3\x37\x2f\xe1\x1b\xc2\x9a\x6c\xff\ +\xea\x06\xa9\xab\x03\xd0\x94\x86\xb0\x35\x74\x4b\x43\x58\xc2\x07\ +\x85\x90\x0a\x61\x81\xb0\x14\x58\x02\x65\x3b\xad\xe7\x34\x04\x31\ +\x23\x41\x24\x9e\xc0\xaa\x58\x9c\xbb\x70\x9e\xb9\xa9\x39\x06\x07\ +\x06\xd8\xb6\x65\x3b\x5b\xaf\xd9\x42\xdf\x60\x3f\xed\x0d\x4d\xac\ +\xe3\x16\xd6\xe9\x0e\x95\xc5\x12\xaa\xa5\x10\xc2\xf5\x50\x14\x28\ +\x71\x19\x79\x00\x17\x08\xff\x22\x90\x23\xf0\x61\xa5\xd4\xc7\x97\ +\x0b\xcb\xf6\xc2\xfc\x82\xa9\xeb\xfa\xef\xc4\x62\x31\x72\xb9\x1c\ +\xb9\x5c\x8e\x6c\x26\xab\x92\xc9\xa4\xc8\x64\x33\xa4\x52\x29\x27\ +\x85\x5c\x49\xd0\x75\xb2\xd9\x0c\xd9\x6c\x86\x4d\xee\xe9\xaf\xd7\ +\xeb\x94\x8a\x25\x96\x8b\x45\xaa\xd5\xca\x4f\xcc\x03\xc8\x9e\xf2\ +\xef\xe0\xb0\x86\x60\xa1\xc9\xda\xef\xbf\xdf\xda\x1a\x65\x81\xb2\ +\x04\xaa\x03\x22\xa2\x41\x4b\x73\x4f\xbc\x42\x28\x0d\xcd\x14\xa8\ +\xb6\x00\x13\x84\x0d\x9a\xad\x21\x6c\x81\xb2\x9d\x5c\x89\x68\x44\ +\x60\x1b\x1a\x96\x65\xb3\xb4\x5c\x44\xd3\xce\xd3\xee\x74\x18\x1e\ +\x1a\xa1\xff\xba\x2c\xe9\x81\x3e\x3a\xa3\x4d\xf2\xe7\x06\x59\x98\ +\x9c\xc5\x5a\xea\xd0\x69\xb6\xdd\xd4\x37\x75\x79\x01\xe0\xad\x8f\ +\x7f\xfc\xe3\xe2\xc0\x81\x03\x2f\x00\x2f\x04\x00\x71\xc6\xb2\x2c\ +\x7d\x7e\x7e\x5e\xcc\xcd\xcd\xdd\x60\x18\xc6\xaf\xc7\x63\x71\x52\ +\xe9\x14\xe9\x74\x9a\x64\x2a\xe5\xcc\xe4\xcd\xe5\x48\xa5\x52\x28\ +\xe5\xa4\x61\xa1\x1c\xf6\x30\x1e\x8f\xb3\x61\x74\x03\x52\x29\x3a\ +\xed\x36\xe5\x52\x89\x62\xb1\x44\xb1\x54\xa4\xd5\x6c\xbe\x2d\x1e\ +\xc0\xed\xe8\xd0\xad\x20\x0a\x78\x27\x8a\x40\x47\xf2\x35\x89\xfe\ +\x29\x27\xf8\xa4\xeb\x44\x94\xe1\xd7\x3f\x82\x42\xb3\x04\x7a\x5b\ +\xa0\xe9\xa0\x0b\x81\x42\x77\x44\x95\x4b\x52\x08\xe9\x48\x09\xcd\ +\xd4\xc0\x72\x38\x1d\xcd\x02\x61\x82\x10\x3a\x91\x68\x04\x4b\xb3\ +\xb1\x4c\x93\xd9\x85\x39\x96\xcb\x25\xaa\x8d\x1a\xda\x96\x6d\xf4\ +\x6f\x1f\xa4\x7f\xa4\x8f\xfa\x60\x05\x23\x1e\xa5\x22\xab\x18\x33\ +\xdd\x0e\xeb\xf2\x32\xd9\x00\xa1\x75\xe0\xc0\x01\xb5\x8a\x74\xf8\ +\xba\x77\xfb\xfe\xfb\xef\x4f\x28\xa5\x9e\x68\xb6\x9a\xb2\x52\xad\ +\x54\x23\x91\xc8\xdf\xe9\xba\xbe\x2d\x16\x8b\x11\x8f\xc7\x89\xc7\ +\xe3\x2a\x9d\x4e\x8b\x81\xc1\x01\xfa\xf3\x79\xa2\xd1\x38\x4a\x49\ +\x77\x7e\xa0\xc4\x30\x0c\xfa\x07\x07\xe9\x1f\x18\x70\x28\x67\xdb\ +\xa6\x56\xad\xb2\xbc\x5c\xa0\xb0\xec\x48\x89\x55\x79\x80\x60\xe3\ +\xc9\x55\x8a\x49\xd6\x72\x28\xa3\x94\x92\x64\x32\x49\xb3\xd5\xa2\ +\xde\xae\x23\x1a\x11\x6c\x53\xa2\x2c\x05\x6d\x81\x68\x69\x08\xcd\ +\x29\xa8\x31\x94\x02\xa9\x79\xa5\x53\x08\x5b\x80\x05\xc2\x72\x11\ +\xda\x01\xd1\x51\xd0\x72\xb8\x13\xa1\x14\x86\xa1\x23\x80\x5a\xbd\ +\x46\xb5\x5c\x46\xda\x16\x86\xd0\x88\xc6\xe2\xe4\x86\x72\xc8\x8a\ +\x24\x3a\x57\x21\x35\x93\xc2\x8c\xb6\x31\x9b\x4e\xac\x43\xad\x85\ +\x04\xf8\x71\xeb\x99\x67\x9e\x69\x02\xcf\x05\x00\x71\x87\x94\x32\ +\xd5\x68\x34\x44\xb5\x5a\x35\x22\x91\xc8\x49\x4d\xd3\x98\x9c\x9c\ +\xc4\x30\x74\x62\xb1\xb8\xea\xef\xef\x17\x43\x43\x43\xee\xd4\x4f\ +\xad\x5b\xb8\xa1\x14\x9a\x10\x64\x32\x19\xd2\xe9\x34\x9b\x36\x6d\ +\x46\x29\xc7\x08\x2c\x95\x9c\x48\x5f\xa5\x52\xf1\x6d\x80\x50\xcb\ +\xe5\xc0\xe9\x0f\x12\x59\x6b\xb5\xa4\x94\x18\xba\x8e\x14\x4e\x6f\ +\x22\xa5\x5c\xa3\xcf\x14\x68\x6d\x81\xae\x09\x74\xa1\x75\x03\x34\ +\x0a\x90\xc2\x11\x5a\x96\x42\x98\x1a\xc2\xd6\x11\x1d\x0d\x61\xbb\ +\xa4\x8e\x10\xa0\x04\x66\xdb\xa2\x6d\xb6\x88\x44\xa2\x8c\x6d\x18\ +\x67\x7c\x74\x94\xd1\x0d\xa3\x24\x55\x8c\xca\xf1\x65\x6a\x47\x4a\ +\x30\xa1\x30\xa7\x5b\xd8\x6d\xcb\xef\x5e\x22\xa5\xba\xf2\x00\x58\ +\x05\x10\x0b\x3d\x39\x86\x29\x29\xa5\x98\x9a\x9a\x6a\x0f\x0f\x0f\ +\x7f\xbe\xd1\x68\xfe\x5e\xa9\x54\xe2\xfc\xf9\xf3\x08\x21\x48\xa5\ +\x52\x0c\xb9\x4c\x60\x3a\x9d\x75\xe6\xfd\x84\xea\xef\x25\xf1\x78\ +\x8c\x91\x91\x11\x86\x86\x87\x51\x52\x61\xd9\xe6\x2a\x81\xa0\x70\ +\x33\xc9\xb5\x5c\xa6\x5b\x5b\x08\xb8\xb1\x7d\x0d\xdb\x72\xfa\x08\ +\x69\x6d\x0d\xad\x61\xa0\xa1\xa3\x09\x0d\x29\x75\xb7\xac\x48\xa0\ +\xd9\xae\xe6\xb2\x1c\x55\x81\x05\x9a\x29\x1c\xa9\x60\x7b\x14\xbc\ +\x8d\x44\x11\x4b\xc4\x18\x19\x1c\x61\xc7\xb6\x6d\x0c\x66\x07\x88\ +\x99\x71\x3a\x27\x9a\x2c\xbe\x51\xa2\x71\xbc\x4a\x6b\xa6\xe1\x8e\ +\x64\x73\x0c\x4d\x25\x40\x4a\xf1\xd3\x07\xc0\x2a\xea\x22\x98\x6b\ +\xf5\xfb\xee\x8f\x07\x8e\xd3\xe5\x72\x79\x5b\xb9\x5c\x16\xa7\x4f\ +\x9f\x46\xd3\x34\xfa\xfa\xfa\x18\x1e\x1e\xa6\xbf\x3f\xef\x0c\x7d\ +\x54\xe1\xe1\x4c\x00\xba\x66\x84\xfa\xfd\x85\x1a\x4d\x22\xd7\xbc\ +\x1e\xaf\x5e\xab\xfb\xb9\x06\x5a\xda\x40\xb7\x23\x60\xbb\x6c\x9f\ +\xa9\x43\xd3\x40\x68\x06\x9a\x2e\xd0\x2c\xcd\xad\x95\xd4\xd0\x3c\ +\xf2\xd4\x56\x68\x96\x23\x2d\x90\x20\x2d\x1b\x4b\xda\x34\x1b\x2d\ +\x3a\xb6\x49\x7f\x36\xcf\x35\x1b\xb7\xb0\x63\xf3\x76\xc6\xf3\x63\ +\x58\x17\xda\x2c\x9f\x28\xb0\x3c\x51\xc5\x3e\x53\xa4\x5d\xeb\x38\ +\x15\xc7\xee\xd8\x7b\x37\xeb\x79\x42\xbe\x45\xb3\x81\x9f\x1a\x00\ +\x2e\xb5\x1e\x78\xe0\x01\xf1\xf4\xd3\x4f\xef\xf0\xfe\xfe\xe4\x27\ +\x3f\x19\x6b\xb5\x5a\xf5\xe5\xe5\xe5\x72\xa1\x50\x10\x4a\xa9\x64\ +\x34\x1a\x8d\xf5\xf7\xe7\x19\x18\x1c\x24\x93\xce\x3a\x69\xd8\xca\ +\xad\x02\xf2\x63\x10\xdd\xd8\x84\xdf\xf7\x77\x8d\x57\x34\x1a\xa1\ +\x52\x2e\x23\x74\x9d\x68\x27\x46\xc4\x12\x08\x15\x45\x93\xa0\x77\ +\x20\x52\x17\x44\xd0\xd1\x84\x81\xee\x7a\x2b\x1a\x8e\xe5\x8f\xe7\ +\xaa\x4b\x81\x6d\x49\x4c\xdb\x42\x28\x41\x3c\x91\xa0\xbf\x6f\x80\ +\x4c\x26\xc3\xf0\xe0\x20\x23\x7d\xc3\xc4\x6b\x71\xca\xc7\x0b\x74\ +\x4e\xb6\xa8\x9d\x2a\xd2\x9c\x2f\x62\x36\xdd\x6c\x20\x70\x2a\x9f\ +\x85\x78\x5e\xd3\xc4\x41\xcd\xd0\xff\x16\x41\xfb\xad\xb2\x97\xde\ +\x57\xeb\xfe\xfb\xef\xff\xd7\x4a\xa9\xdf\x90\x52\xb6\xdc\xd3\x7e\ +\x5d\x32\x99\xf2\x29\xe2\x44\x32\xd9\x65\xc2\xd0\xdc\x89\x24\xea\ +\x8a\x14\x5c\x16\x8b\x45\x00\x4a\xa5\x32\x91\xd1\x28\xf1\x7d\x29\ +\xa2\xd7\x27\xb1\x47\x15\x13\x27\x8f\x71\xf2\xcd\x93\xa4\x52\x29\ +\xe2\x89\x18\xb6\xb2\x9d\xa2\x31\x57\x4f\x77\x2b\xa4\x9d\xec\x27\ +\x5b\xda\x24\xe3\x71\x86\x87\x47\x18\x1a\x1c\x62\xb0\x6f\x90\xac\ +\x96\xc1\x98\xd7\xa8\x1e\x2b\x51\x3a\x56\xa0\x71\xbe\x46\xb3\xd4\ +\xf0\x39\x05\x37\x17\xf2\xbb\x9a\x10\x7f\xa1\x1b\xc6\x3f\x3f\xfe\ +\xf8\xe3\xe7\xdf\x4e\xfa\xda\xfb\x66\x3d\xf8\xe0\x83\xe2\xdb\xdf\ +\xfe\xb6\xea\xb1\x25\xbe\xa9\x94\xca\x49\x29\x75\xa5\x54\x5a\xd3\ +\xb4\xdb\x52\xa9\x14\xd9\x6c\x96\x74\x3a\x8d\x61\x38\xb4\xb5\xf7\ +\x3b\xc8\xd8\xad\xc5\x5a\x5a\x5c\x04\x21\x68\xa5\x3a\x64\x6e\xc9\ +\x63\x7c\x20\x46\x67\xd8\xe2\xe8\x89\x93\x9c\x7c\xf3\x38\xe9\x54\ +\x8a\x58\x34\xe6\x37\xaf\xf4\xb2\x87\x95\x02\x5b\xda\x74\x3a\x8e\ +\xe5\x9e\x4c\xa6\xd8\x38\x36\xca\x8e\xed\x3b\xc9\x25\x73\x68\x0b\ +\x36\xf5\x13\x35\xca\x13\xcb\x98\x67\x4d\x2a\x8b\x25\xbf\xbe\x40\ +\x08\x81\xae\xeb\x4f\x03\xbf\xab\xeb\xfa\xc9\xfd\xfb\xf7\x2f\xbe\ +\xfd\xac\xa5\xf7\xf1\xba\xff\xfe\xfb\xc5\x33\xcf\x3c\xe3\xef\xe6\ +\xa7\x3e\xf5\xa9\x48\xa3\xd1\xf8\x4b\x29\x65\x43\x4a\x69\x03\xf7\ +\x1b\x86\xb1\xd5\x8b\xe2\x25\x93\x0e\x3b\xe9\x15\x87\xe8\xba\xbe\ +\x22\xe2\x77\x39\x96\xae\xeb\x68\xc3\x06\x72\x87\xa0\xbd\xdd\xa6\ +\xda\x57\x67\xe2\xc4\x71\xde\x74\x25\x40\x2c\x16\x77\x5c\x33\xb7\ +\x3c\x51\x4a\xdb\x0f\x22\xe9\xba\xce\xd0\xd0\x10\x9b\xc6\x37\xb2\ +\x61\x68\x03\x79\xad\x0f\x79\xde\xa4\x3e\x51\xc1\x3e\x25\xb9\x78\ +\xee\x2c\xa2\xe1\xb8\x76\xee\xc6\x3f\x2f\x84\xf8\x9f\x85\x10\x67\ +\x9f\x7c\xf2\x49\xf3\x9d\xa7\xad\x5d\xc5\xeb\xfe\xfb\xef\xbf\x47\ +\x4a\x79\xaf\x52\xca\xb6\x6d\xdb\xd4\x34\xed\xff\x72\xb2\x69\x9d\ +\x38\x7f\x2c\x16\x53\xb1\x58\x4c\xc4\x62\x31\xc7\xb0\xf4\x2b\x86\ +\xd5\x65\x01\x00\xd7\xea\x34\xb7\x58\x2e\x00\x8e\x05\x00\x10\xf3\ +\x13\x4a\xbc\xbe\x86\x4a\x29\x62\xd1\x18\xfd\xb9\x1c\x63\xa3\xe3\ +\x6c\x1c\x1c\x27\xd1\x89\x63\x1e\x6f\x50\x3e\x5a\xa2\x75\xa2\x49\ +\x79\xa9\x08\x96\x52\x40\x4b\xd7\xf5\x1f\x1a\x86\xf1\x0b\xfb\xf7\ +\xef\x9f\x7a\x37\x9f\xd5\xb8\x5a\x37\xff\x13\x9f\xf8\x84\x78\xea\ +\xa9\xa7\x9e\x07\x9e\x0f\xa8\x8b\xb3\x96\x65\xc5\x2a\x95\x8a\x56\ +\x2e\x97\x37\xeb\xba\xfe\x7f\x46\x22\x4e\x9e\x9e\xfb\xa3\xe2\xf1\ +\xb8\x48\x26\x93\x6e\xf9\x9a\xba\x3c\x12\xc2\x9b\x43\xe0\x39\x67\ +\x42\x20\x6d\x49\xc7\xea\x50\x6f\xd4\x89\xc5\x62\x6c\xde\xb8\x99\ +\x4d\xe3\x9b\x18\x1b\xde\x40\xac\x1d\xa5\x7d\xb6\x49\x61\x62\x0e\ +\x75\x54\x52\x9c\x5b\xc2\x6c\x98\x20\xd5\x94\xae\xeb\xa7\x0c\xc3\ +\xf8\xa5\xfd\xfb\xf7\xcf\x5c\x8e\xeb\x74\x55\x4b\x80\x1f\x03\x10\ +\xdd\xb2\xac\x7b\xa5\x94\xb6\x6d\xdb\x4d\x5d\xd7\x7f\x57\xd3\xb4\ +\x8f\x79\xea\xc1\x30\x0c\x12\x89\x84\x43\x61\x27\x93\x44\x22\x91\ +\x6e\xa2\xc7\xdb\xa8\x0d\xec\x95\x00\x47\x4f\x9e\xe0\xc4\xc9\xe3\ +\x4e\x85\x72\xc4\xc0\x36\x4d\x34\x5d\x27\x1e\x8b\x33\x3c\x34\xc4\ +\xce\x2d\x3b\x19\x4a\x0e\x22\x16\x14\xcd\x53\x55\xea\x13\x4d\x0a\ +\x67\x67\xb0\x0b\x16\xb6\x65\xbf\x2a\x34\xed\x94\x26\xc4\x63\x07\ +\x0e\x1c\x98\xbc\x9c\xd7\xe1\x67\x16\x00\xbd\xeb\xbe\xfb\xee\x1b\ +\x54\x4a\x0d\x29\xa5\x84\x69\x9a\x8d\x68\x34\x7a\xce\x33\x1e\xdd\ +\xf4\x72\x95\x4a\xa5\x84\x97\xe9\xec\xb8\x9e\xab\x4b\x88\x5e\x00\ +\xd4\xfa\x1a\x1c\x39\x79\x94\x13\x27\x8e\xe1\xa8\x9b\x18\x11\xdd\ +\x20\x9b\xc9\x32\x32\x34\xc2\xf8\xe0\x28\x23\xb1\x61\xc4\x39\x45\ +\xe1\x47\x4b\xd4\x4f\x54\x29\x4e\x2f\x61\x35\xcd\xef\x20\xc4\xf7\ +\x81\xaf\x1e\x7c\xe6\x99\xe9\xb5\xf8\xde\xeb\x00\xb8\x34\x20\x72\ +\x4a\x29\xdd\xb2\x2c\xcd\x30\x8c\x6d\x42\x88\x97\xbc\xd2\x71\x4d\ +\xd3\x88\xc7\xe3\x2a\x93\xc9\x88\xac\x9b\xae\xd6\x8d\x43\xa8\x10\ +\x00\x6a\x9b\x5a\x94\xd2\x55\x7e\x78\xe4\x87\x1c\x3b\x7e\x8c\xfe\ +\xfe\x01\x36\x6f\xdc\xc4\x96\x4d\x5b\x18\x1b\x1b\x23\x29\x12\x58\ +\x53\x1d\xaa\x13\x65\xc4\xb1\x16\x73\xe7\x96\x69\x15\x6b\x4f\x2b\ +\x5b\xfd\x35\xf0\xdd\x83\x07\x0f\x4e\xae\xe5\xf7\x5c\x07\xc0\xdb\ +\x07\x84\x06\x68\x07\x0f\x1e\xb4\xee\xbb\xef\xbe\xdf\x03\x7e\xdd\ +\x4b\xbb\xd2\x34\x8d\x94\x1b\xe9\xcc\x64\x32\xc4\x13\x09\xb4\x21\ +\x1d\x76\xe9\x34\xae\xe9\x50\xed\x6b\x72\xe2\xf4\x71\x2e\x4c\x9e\ +\x67\x74\x78\x8c\x8d\x63\xe3\x8c\x0e\x8c\x93\xef\x64\x68\x9f\x6d\ +\x52\x3a\xb9\x8c\x75\xd2\x62\x7e\x76\xf6\x05\x59\x31\xff\xbd\x52\ +\xea\xcc\xc1\x83\x07\xe7\xaf\xc4\xf7\x5a\x07\xc0\xe5\x01\xc7\x79\ +\x60\xdc\xb3\xf3\x22\xd1\xa8\x36\xb8\x7b\x88\xfe\xdb\x87\x30\xae\ +\x8f\x63\x0d\x4b\x66\x17\xe7\x28\xd7\xcb\x0c\x65\x87\xc8\x6a\x59\ +\xf4\x02\xb4\x8f\xd5\xa9\x9c\x2c\x61\x4e\xb7\x5f\x93\xba\xfc\x57\ +\xd5\xa9\xca\xec\xdb\xe9\xea\x71\x39\x97\xb1\xbe\x7d\x97\x85\x8b\ +\xd8\xe2\xfd\xfd\xd0\x43\x0f\x19\xb6\x94\xf5\x72\xbd\xd2\x10\xe5\ +\x68\x74\x44\x25\xe2\x23\xfd\xc3\x5a\x7e\xa0\x9f\x4e\xa7\x0d\x73\ +\x36\x0b\xaf\xce\xa3\xbd\x21\xe4\xd2\xe4\xfc\xeb\x9f\xf9\x17\xbf\ +\xf8\x09\xed\x61\x55\xfc\x25\xf1\x59\xfb\xa7\xf1\xf9\xd7\x25\xc0\ +\x1a\xac\x49\x55\x8b\x7e\x95\x3f\xdc\x23\x30\x1e\x10\x25\xf5\x3f\ +\xc5\xd3\xa9\x6b\x65\xcd\xb6\xeb\xa7\xcb\xed\xc4\x44\xa2\x75\xf2\ +\x87\x47\xf4\xf1\xed\xd7\xdc\xf9\x1f\xff\xb7\xdf\x3d\xfe\xd3\xfe\ +\xac\xeb\x12\x60\x4d\x4e\x95\x8e\x8e\x40\xc3\xb0\x44\x8e\x33\x1d\ +\xda\xa6\x95\x33\x5f\xe9\xbb\x79\xe0\x89\xc4\xcd\x89\x57\xfe\x5a\ +\xfc\xd5\xd4\x7b\xe5\xb3\xae\x03\x60\x0d\xd6\x45\x5a\xaa\x8a\xdd\ +\x4e\x62\xcf\x68\xc8\xef\x29\x04\x77\x70\xf7\x2b\xb3\x4c\xbf\x72\ +\x9c\xd7\x6b\xef\x2d\xb0\xae\xaf\xcb\xbe\xfe\x93\xfa\x9e\x7e\x0d\ +\x99\x81\xa7\xf8\xc7\x91\x07\xf9\x68\xec\x3b\xfc\x69\xf3\x5f\xf2\ +\x1f\xa7\x3f\x2c\x36\x97\xd6\xaf\xce\xcf\xc8\xea\xa8\x45\x71\x51\ +\x4d\xe8\xdf\x53\x4f\x6a\x3f\x81\x57\xb1\x2e\x99\xd7\xd7\xfa\x5a\ +\x5f\x57\x60\xfd\xff\x91\xff\x98\x4a\x74\x03\x10\x92\x00\x00\x00\ +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x21\x68\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x05\x0f\ +\x0e\x20\x02\x55\xba\xb1\xee\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\x9d\x79\x7c\x56\xc5\xbd\xff\xdf\xe7\ +\xc9\x9e\x40\x12\x08\x59\x88\x40\xd8\x13\x30\xec\xb2\x09\x82\x52\ +\x40\x83\xd8\x7a\xeb\xd5\xab\xed\x7d\xb5\x0a\xb6\x5a\xeb\xd2\x5a\ +\xf5\xd7\xed\xde\xb6\xfe\x6c\x6b\xb5\xbd\xbf\x6a\xed\x6d\xa9\x6d\ +\x7f\xbd\x95\xda\x5a\xbd\xda\x5e\xc1\xaa\x60\x71\x81\x4a\x20\xec\ +\x81\x00\x61\x0b\x49\x90\xb0\x84\x24\x24\x79\x92\x9c\x33\x67\xee\ +\x1f\x33\xe7\x79\xe6\x79\xc8\x9e\x00\x11\x9e\xef\x8b\x87\x3c\xcf\ +\x39\x33\x73\xce\x99\xef\xe7\xbb\xce\x9c\x19\x88\x50\x84\x22\x14\ +\xa1\x08\x45\x28\x42\x11\x8a\x50\x84\x22\x14\xa1\x08\x45\x28\x42\ +\x11\x52\x24\xbb\xf8\xb9\x1c\x28\x03\xf8\x1e\xb0\x09\xa8\x05\x6c\ +\xe0\x04\xb0\x0a\xf8\xa7\x2e\xb6\xf5\x68\x58\xff\xfd\xba\x9b\x3c\ +\x69\x04\x8e\x00\x6f\x00\x8f\x01\xc3\x22\x00\x38\x3f\xb4\x14\x38\ +\xd3\x41\x1f\xbc\x0a\xc4\x77\xb2\xbd\xed\x61\x75\xab\x81\x98\x5e\ +\xe0\x89\x0d\x3c\xdb\x85\xfb\xe8\xd4\xc5\x2e\x77\x9a\x0d\x34\xeb\ +\xbe\x70\x81\xff\x04\x26\xea\x4e\x1e\x0c\x7c\x1d\x68\xd2\xe7\x5f\ +\xea\x44\x7b\xe3\x8d\xbe\x5d\x67\x7c\x5f\xda\x0d\x9e\xa4\x00\x93\ +\xb5\xf4\x57\x18\xe7\x3f\x00\x12\xfa\x02\x00\xbc\x36\x3e\xa9\x7f\ +\x0f\xd2\xea\xee\x23\xc0\x01\x1a\x80\x03\x9d\x64\xc2\xaf\x81\xbd\ +\xba\x4e\x8b\x56\x7d\x2b\x81\xab\xbb\xc0\xc8\xae\xb6\xe1\x03\x8a\ +\x8d\xe7\xf8\x6a\x1b\xe5\x96\x00\x22\xec\x59\xdb\xa2\xef\x1b\xed\ +\xe5\xeb\xfb\x90\xc0\x1f\x7a\xc8\x93\x54\xe0\x5d\xa3\xcc\x73\x7d\ +\x09\x00\xdf\x03\xfa\x01\x25\x5d\x34\x21\x96\x56\x69\x1d\xa9\xbe\ +\x1f\xeb\xb2\xbd\xdd\xc6\x62\xe3\xfc\xae\x76\xae\x01\xf0\x3b\x5d\ +\x6e\x63\x07\x7d\x72\x48\x97\xdb\xaa\x7f\xbf\xa5\x7f\x9f\xed\x40\ +\x6a\x3b\xd3\x5f\x69\xda\x9c\x48\x2d\x60\xc3\xfb\x0a\x00\xfe\x0c\ +\xfc\xc0\x40\xe6\x08\x20\x0a\x48\xd6\xea\xb4\x2d\x7a\xc2\x68\xe3\ +\x28\x70\xab\x56\x7b\x49\x5a\x65\xee\x37\xce\x3f\x72\x1e\xda\xf8\ +\x99\x71\xee\xb1\x0e\x9e\x75\x02\xf0\x3e\xb0\xa8\x9d\x32\x57\x1b\ +\xed\x7d\x57\x1f\xbb\xdb\x38\x76\x5b\x2f\xf0\xe4\xc7\x46\xb9\x6f\ +\xf7\x15\x00\x14\x03\x35\xc0\x37\xbb\x50\x77\xa4\x76\x6a\xa4\xae\ +\xdb\x1a\x9a\xaf\x30\x9c\xb3\xb3\x40\x7a\x2f\xb7\xf1\x0f\xe3\x19\ +\xe6\xf4\x82\x3f\xf1\xf3\x30\xf5\xef\x45\x17\xc2\x70\x24\x7b\xca\ +\x93\x45\x46\xb9\xb5\x7d\x05\x00\x1e\x08\x7c\x5d\xa8\xfb\x83\x56\ +\xa4\xa5\x35\x7a\xd2\x28\x77\x5f\x2f\xb7\xf1\x91\x71\x3c\xab\x87\ +\x7d\x11\xad\xc3\x46\xa9\x4d\xa1\x49\xef\xeb\xe3\x7e\xad\x15\x7b\ +\xc2\x93\x2b\x8c\x72\x15\x17\x3b\x0c\x34\xcb\x7c\xa5\x8b\xf7\xb0\ +\xd1\xa8\x3b\xb5\x9d\x72\x73\x8c\x72\xaf\xf5\x72\x1b\xcd\xc6\xf1\ +\x84\x1e\x02\x60\x89\xd1\xd6\xff\x0d\x3b\xf7\x55\xe3\xdc\xe7\x7b\ +\x08\x80\x38\xa3\x5c\x53\x5f\x02\xc0\x94\x2e\xde\xc3\x69\xa3\x6e\ +\x6a\x3b\xe5\x06\x18\xe5\xf6\xf7\x72\x1b\xc2\x38\xee\xeb\x21\x00\ +\x56\x1a\x6d\x85\xfb\x3d\xc3\x8d\x73\x7f\xeb\x21\x00\xa2\x8c\x72\ +\xa2\x2f\x99\x80\xfe\x5d\xac\xeb\x74\x03\x88\x35\xbd\xdc\x46\x9d\ +\x71\x3c\xb1\x07\xfd\x90\x08\xd4\xb7\x01\x52\x8f\xb6\x1a\xc9\x9c\ +\x41\x3d\xe0\x49\x8a\x51\xee\x2c\xed\xc4\xb7\x17\x9a\xea\xbb\x01\ +\x9e\xae\x52\xff\x5e\x6e\xe3\x74\x58\x88\xd5\x5d\xfa\x94\x8e\x3a\ +\x00\x5e\x69\xa3\xcc\x6b\x86\xaf\xf0\xcf\x3d\xb8\xd6\x60\xe3\xfb\ +\xb1\xbe\xa4\x01\xba\x4a\xa6\x03\x16\xd7\xcd\xeb\xf7\xb4\x8d\x37\ +\x8c\xfa\xd7\xf5\xa0\x1f\x56\x75\x51\x0b\xbd\xd7\x83\xbe\xbc\xd5\ +\x28\xf7\x72\x5f\xd2\x00\x5d\xa5\x3d\xc6\xf7\x9c\x8b\xd4\x46\x91\ +\xf1\x7d\x6e\x07\x65\xaf\x02\x3e\x6c\x45\x7a\xd3\x74\x42\xa9\x2b\ +\x34\x17\xc8\xee\xe6\x33\xdf\x64\x7c\x5f\xfb\x71\xd6\x00\xff\xc7\ +\xa8\xfb\x50\x37\xaf\xdf\xd3\x36\x26\x19\xf5\xf7\x76\x90\x09\xfc\ +\x8b\x2e\xf7\x76\xd8\xf1\x2f\x85\x65\x1b\xdb\xa3\x9f\xd0\x76\xda\ +\xb9\x33\x7d\x99\xa3\x43\x49\xcf\xfe\x0f\xf8\x38\x03\x20\x13\x95\ +\xb3\x97\xda\x96\x65\xb4\x83\xf8\x63\xc0\xeb\xad\x64\xeb\x7a\xa3\ +\x8d\xb7\x3b\x91\x6d\xbc\xcb\xf0\xba\x67\x84\x9d\xfb\xc0\xa8\x3f\ +\xa3\x83\x67\x9e\x69\x94\xdd\xd4\xc5\xbe\xec\x17\x96\xb8\xfa\xb7\ +\x8b\xc5\xb8\xde\x6c\xe7\xcb\x46\xfd\x03\xa8\x71\xf7\x14\xd4\xd0\ +\x69\x1e\xf0\xb8\x81\xf8\xb6\x52\x9f\x3d\x6d\x63\x8c\x8e\x0c\xbc\ +\xd1\xc0\x9f\xea\x63\xd1\x5a\xe2\x9e\x32\xc2\xc5\x27\x5a\x91\x48\ +\x57\x9f\x3b\xd4\xc9\x67\x3e\x6c\xdc\xcb\xa8\x0e\xfa\x32\x56\x5f\ +\xe3\x8b\x61\xf5\xde\xd4\xe1\xe0\xc7\x1e\x00\x00\x0f\x84\x25\x64\ +\x5a\xfb\x38\xa8\x51\x36\xeb\x3c\xb5\x31\x03\xa8\xa4\xeb\x83\x49\ +\x5f\x37\xce\xff\xa8\x93\xcf\xfb\x94\x51\xe7\x5b\x5d\xcc\xcd\x08\ +\x54\xba\x39\x8e\x3e\xc0\xb8\xde\x6c\x27\x47\xdb\xc7\x9d\x5a\xa5\ +\x3b\x5a\x2a\x8b\x74\x87\x8d\xbd\x00\x6d\x24\x6b\x86\x6e\x24\x38\ +\x23\xe8\x23\xd4\x40\x57\x5b\x0e\xe2\x2e\xe3\xf9\xa7\x75\xf2\x59\ +\xa7\x11\x3a\x02\xd9\x1e\x00\x5c\xe3\x19\x9e\x06\xc6\x11\xa1\x08\ +\x45\x28\x42\x11\x8a\x50\x84\x22\x14\xa1\x08\x45\x28\x42\x11\x8a\ +\x50\x84\x22\xf4\x31\xa2\x21\xa8\x29\x5a\x51\x91\xae\xb8\xbc\x68\ +\x0c\x6a\x52\xc4\x5a\x82\x33\x73\xfe\x1b\x95\xe7\x1e\x1e\xe9\x9e\ +\x4b\x9b\x66\x68\xa6\xcb\x98\x98\x18\x19\x1b\x1b\xdb\x5a\xda\x73\ +\x2f\x6a\x9e\xfe\x12\xd4\xc8\x57\x84\x7a\x40\x56\x1f\xbb\x9f\x39\ +\xc0\x7a\x80\xdb\x6f\xbf\x9d\x3f\xfd\xe9\x4f\xdc\x7d\xf7\xdd\x0c\ +\x1d\x3a\x94\xf5\xeb\xd7\xf3\xe1\x87\x1f\x52\x5f\x1f\x32\xa3\xac\ +\x45\x97\x5f\x83\x7a\xb3\xc6\x7b\xd9\xb2\x37\x28\x15\x35\xab\x66\ +\xae\xd6\x4a\x83\x51\xd3\xc4\xac\xb0\xeb\xd7\x00\x65\xa8\xe9\xee\ +\x85\xc0\x6a\xd4\xdb\xba\x11\xea\x06\x8d\x07\xe4\xc8\x91\x23\xe5\ +\x13\x4f\x3c\x21\x01\xb9\x74\xe9\x52\xb9\x6b\xd7\x2e\xb9\x63\xc7\ +\x76\x59\xb4\x79\xb3\xfc\xed\x6f\x7f\x2b\x97\x2f\x5f\x2e\xf3\xf3\ +\xf3\xa5\xcf\xe7\x0b\xd7\x0e\xc7\x51\xb3\x6e\xff\x95\xee\xcd\xdf\ +\x1f\x05\xbc\x48\x70\xde\x7e\x77\x3f\x35\x1a\x94\x9f\x47\x0d\xd5\ +\x46\x34\x40\x17\x1c\xbf\xf2\x8c\x8c\x0c\x9e\x7c\xf2\x49\x96\x2d\ +\x5b\x46\x4e\x4e\x0e\x3f\x7b\xee\x39\xb2\xb3\xb3\x71\x85\xc0\x75\ +\x05\xae\xeb\x22\x84\x4b\x4d\x4d\x0d\x45\x5b\xb6\xb0\xa9\xb0\x90\ +\xa2\xa2\x22\x4e\x9e\x3c\x69\xb6\x25\xb5\x46\xf0\xb4\xc3\x7a\x2d\ +\xb1\xad\xd1\x2c\xe0\x79\x82\x6f\xe9\x00\x90\x93\x93\x43\x6e\x6e\ +\x2e\xa3\x47\x8f\x26\x33\x33\x93\xac\xcc\x2c\x84\x2b\x88\x8e\x8e\ +\xc6\xb6\x6d\x5a\x5a\x6c\x4e\x54\x55\x71\xec\xd8\x31\x8e\x96\x1f\ +\xa5\xa4\xa4\x84\xe3\xc7\x8f\x87\xb7\xed\x02\xfb\x50\xaf\xc2\xfd\ +\x27\xea\x5d\x80\x57\x81\x6d\x11\x00\x9c\x4b\xc9\xa8\x21\x56\x72\ +\x72\x72\x90\x52\x52\x57\x57\x47\x7d\x7d\x3d\xdf\xf8\xfa\xd7\x29\ +\x58\xb2\x04\x21\x5c\x5c\xd7\x0d\x02\xc1\x15\xb8\xfa\x58\x59\xd9\ +\x11\x8a\x8a\xb6\xb0\x6d\xdb\x36\x8a\x8b\x8b\x69\x69\x09\xe1\x77\ +\x03\xea\xcd\x9b\xbf\x69\x07\xb3\x04\x35\x4d\xfb\x2d\x8c\x61\xdc\ +\xe9\xd3\xa7\x73\xd3\x4d\x37\x31\x77\xce\x1c\xd2\xd2\x07\x05\x64\ +\x5a\x6a\xcb\x22\x25\x58\x96\x44\x1a\x86\x46\x4a\x55\x48\x4a\xa8\ +\xad\xad\x65\xcb\x96\x2d\x6c\xdc\xb8\x91\x0d\x1b\x36\x84\x03\xa2\ +\x99\xe0\x18\xfd\x41\xad\xa9\x36\x46\x00\x10\x4a\x12\x20\x3a\x3a\ +\x9a\xd5\xab\x57\xf3\xd0\x43\x0f\xb1\x77\xef\x5e\x00\xbe\xf3\x9d\ +\xef\x70\xdd\x75\xd7\xe2\x0a\x17\xe1\xba\xfa\xaf\xd0\x80\x70\x11\ +\x22\xf8\xdd\xef\xf7\xb3\x6f\xdf\x3e\xb6\x6f\xdf\xce\xce\x9d\x3b\ +\x29\x2f\x2f\x0f\xbf\xce\x49\x0d\x80\x24\x80\x85\x0b\x17\x72\xdf\ +\x7d\xf7\x31\x72\xc4\x48\x8f\xd5\xfa\x7f\x69\xdc\x95\xf4\xfe\x05\ +\x7e\x9a\xd3\x1c\x8c\x22\x58\x52\xd5\x3c\x50\x7a\x80\xd5\x6f\xac\ +\xe6\xd5\x57\x5f\xc5\xef\xf7\x83\x9a\x3f\x60\x2e\x02\xf1\x07\x0d\ +\x84\x8b\x42\x7d\x31\xc6\xbe\x12\x18\xdf\xbf\x7f\x7f\x6b\xe9\xd2\ +\xa5\xdc\x71\xc7\x1d\xf8\xfd\x7e\x8a\x8b\x8b\xd9\xbe\x7d\x3b\x05\ +\x05\x05\xf8\xa2\xa2\x10\x42\xe0\xb8\x02\x21\x04\xab\x56\x0d\xa5\ +\xb2\x32\x9e\xf8\x78\x3f\x71\x71\xcd\x38\x42\x00\x16\x69\x69\x03\ +\x18\x37\x7e\x3c\xf3\xe7\xcf\x67\xde\xbc\x79\x64\x67\x67\x13\x13\ +\x13\x43\x75\x75\x35\x8e\xe3\x24\x01\xb1\x59\x59\x59\xfc\xf8\x27\ +\x3f\xe1\xce\x3b\xef\x24\x35\x35\x15\x57\x4a\xa4\x74\x91\xae\xab\ +\xe6\x70\xb9\x52\x7d\xa4\x0c\x9e\x93\xe8\xbf\x12\x57\xba\xa0\xcf\ +\xab\x72\x2e\x12\xfd\x5b\xba\xa4\x0e\x18\xc0\x8c\x19\x33\xa8\xa8\ +\xa8\x60\xff\xfe\xfd\x3c\xfc\xf0\xc3\x51\x8f\x3c\xf2\x08\x15\x15\ +\x95\x1e\x28\x27\xa2\xd6\x12\xf8\x35\x17\x61\x21\x8e\xbe\x04\x80\ +\x91\xa8\xe9\x54\xb7\x03\x2d\xcd\xcd\xcd\x31\x67\xcf\x9e\x65\xf6\ +\xac\xd9\x4c\x99\x3a\x85\xc2\xc2\x42\x2a\x2b\x2b\xb1\xb0\xc8\x9f\ +\x90\x8f\x10\x0e\xae\x10\xd8\xb6\xe0\xf1\xc7\xaf\xe6\xfd\xf7\x87\ +\xb1\x6a\xd5\x58\xd6\xad\x1b\xce\x81\xd2\x81\x9c\x3e\x1d\x8b\x65\ +\x09\x12\x13\xeb\x91\xae\x4b\x74\x4c\x34\x83\xb3\xb3\x99\x38\x61\ +\x02\xc5\xc5\xc5\xd4\xd4\xd4\x90\x95\x95\xc5\xca\x95\x7f\x60\xe4\ +\xc8\x11\xb8\x52\x82\x66\x6a\xe0\x83\x0c\x32\x5a\xab\x7a\x29\x51\ +\x40\xf0\x98\x2e\x95\x5d\x10\xae\x9a\x98\xe3\x4a\x55\xce\x75\xdd\ +\x00\x68\x90\x92\x97\x5f\x7e\x99\x8f\x3e\xfa\x88\x4f\x7d\xf2\x93\ +\x8c\x1b\x37\x8e\x45\x8b\x16\x92\x95\x95\xc5\xfa\xf5\xeb\xd1\x11\ +\xc6\x27\x80\xff\x7f\x39\x02\x20\x59\x3b\x47\xbf\x46\x4d\x83\x72\ +\x51\x2f\x44\x8c\x6a\x68\x68\xe0\xe6\x9b\x6f\x46\x08\x41\x56\x56\ +\x16\x6b\xd7\xae\xa5\xaa\xaa\x8a\x1b\x6f\xbc\x11\x57\x08\x1c\x21\ +\x68\x6a\x52\x8c\x88\x89\x71\xa8\xab\x8b\xa7\xae\x2e\x81\x8a\x8a\ +\x54\x76\xed\x1a\xc2\x7b\xef\xe5\xb2\x66\x4d\x3e\x25\x25\xd9\x1c\ +\x3f\xde\x8f\xe6\x66\x18\x38\xb0\x9a\x77\xdf\x7d\x97\x86\x86\x06\ +\x9e\x7c\xf2\x49\x46\x8e\x1c\xa9\x25\x5e\x33\xd8\x75\x71\x91\x21\ +\x40\x08\x30\x1c\x17\xd7\x35\x8e\x6b\x26\x4b\x57\xcd\xf7\x74\x03\ +\xe5\x5d\xd0\xdf\x91\x0a\x14\xbf\x5a\xb1\x82\xc6\xc6\x46\xee\x5a\ +\xbe\x8c\xfe\xfd\xfb\x23\xa5\x64\xf4\xe8\xd1\x0c\x1f\x3e\x82\x77\ +\xdf\x7d\x17\xd4\xc2\x4e\x71\xc0\x3b\x17\xb2\xf3\xa3\xfb\x48\xec\ +\xbf\x0c\x60\xc1\xd8\xb1\xdc\x32\x71\x62\xf4\xba\xfd\xfb\x17\xbf\ +\xb2\x73\x27\x69\x69\x69\xd8\x8e\x92\xf4\xf1\xe3\xc7\x93\x9a\x9a\ +\xca\xc9\x93\x27\x29\x29\x29\x61\xf4\xe8\xd1\x08\x21\xb0\x7c\x2e\ +\x9f\xbc\x69\x17\xc2\x15\x08\xe1\x52\x5e\x9e\x4c\x69\x69\x3a\x07\ +\x0e\x64\x70\xe8\x50\x26\x27\x4e\xa4\xb2\x6f\xdf\x10\xf6\xed\x1b\ +\x42\x72\xf2\x59\x1e\xfe\xea\x4f\xa8\xaa\xaa\x22\x2e\x2e\x8e\x49\ +\x93\x26\xe1\xba\x02\x89\x05\xd2\x35\x1c\xba\x80\x77\x17\xd0\xc9\ +\x12\xa9\xa0\x69\xf8\x04\x9e\xf5\xb7\x3c\x53\xa1\x7f\x59\x5a\x63\ +\x78\xf5\xce\x54\x9f\xe1\xd4\xa9\x53\x24\xc4\xc7\x93\x95\x99\x85\ +\xeb\xba\x81\xb6\xe7\xcd\x9b\xcb\xdd\x5f\xf8\x02\xbf\x7e\xfe\x79\ +\x50\xef\x2f\xac\xd0\x79\x85\xcb\x06\x00\xd9\x00\x93\xb3\xb3\xb9\ +\x77\xfa\x74\x5a\x5a\x5a\x78\x6b\xdf\x3e\x00\x0a\x0a\x6e\x40\xd8\ +\x36\xc2\x55\x4e\xdf\xb4\x69\xd3\x78\xe7\x9d\x77\xd8\xb9\x73\x07\ +\x39\xc3\x87\x07\xc2\x42\xe1\x4a\xa4\x10\x08\xd7\x25\x33\xeb\x24\ +\xe9\xe9\x55\xcc\x9a\xa5\x9c\xc4\x9a\xda\x38\x0e\x1d\xca\xe2\xd0\ +\xa1\xc1\x44\x45\xdb\xec\x2f\x2d\x05\x20\x3f\x3f\x9f\xa8\xa8\x28\ +\x84\x30\x58\x25\x43\x3d\x51\xcf\x91\x0b\x89\x02\xbc\x50\xc0\x8b\ +\x08\x30\x98\x2d\x83\x8e\xa3\x25\xad\x40\x9d\x9d\xbb\xd4\x9c\xce\ +\xdc\xbc\x3c\x35\x83\x53\x88\x10\xa7\xf1\xb6\x5b\x6f\x65\xc3\xfa\ +\xf5\x94\x94\x94\xf8\x80\xbf\xa2\x16\x7c\xba\x20\xd4\x17\x5e\x0d\ +\x1b\x06\x30\x32\x35\x15\xc7\xef\x67\xeb\xd1\xa3\x9c\x6d\x6e\x26\ +\x2d\x2d\x8d\xb9\xd7\x5c\x83\xed\x38\x38\xfa\x93\x97\xa7\x26\xbb\ +\x96\x1e\x38\x88\x63\xdb\xfa\xb8\xc0\xb1\x6d\xa3\x9c\xd0\xc7\x1c\ +\x6c\xc7\x26\x21\xa1\x8e\x71\xe3\xf6\x72\x43\xc1\x3b\x2c\xfc\xc4\ +\x3a\x0e\x1d\x52\xd3\xf2\x27\x4e\x9c\x14\x12\x41\xb8\xae\x76\xfc\ +\x74\x74\xe1\x0a\x81\xe3\x85\x99\x5e\x39\x21\x34\xe8\x14\x20\xa5\ +\x14\x3a\x1a\x09\x86\xa2\xae\xeb\x22\x85\x0c\xd4\x13\xae\xcb\xd6\ +\x2d\x5b\x00\x98\x30\x21\x1f\xa9\x23\x18\xe1\x45\x2e\xae\x8b\x94\ +\x2e\x0f\x3c\xf8\xa0\xd7\x1f\x93\xb4\x3f\x70\xd9\x68\x80\x61\x00\ +\x03\x62\x62\x70\x9a\xfc\x94\x54\x55\x01\x30\x6f\xde\x3c\x1c\xdb\ +\x09\x32\x48\xb8\x0c\xb9\x42\xbd\x26\x57\x7e\xf4\x28\x8e\xe3\x04\ +\xf2\x01\x5e\x6e\xc0\xcc\x09\x04\x18\x13\x12\x22\x4a\x8e\x1c\x39\ +\x02\xc0\xe4\x49\x13\x95\x24\x4a\x0b\x69\xc9\x73\xe2\x7d\xad\x02\ +\x82\x1a\x20\xdc\x34\x58\x96\x52\x01\xda\x06\x48\xdc\x80\x48\x4b\ +\x9d\xfe\x91\x3a\x0f\xb4\x75\xeb\xd6\x10\xd0\x79\x5a\xc4\x32\x34\ +\xca\xf0\xe1\x39\xcc\x9c\x39\x93\xc2\xc2\x42\x50\x2b\x95\x4c\xbf\ +\x5c\x00\x30\x14\x20\xd5\xe7\xc3\xf6\x37\x51\x5e\x5b\xab\x42\x82\ +\x91\x23\x14\x93\xa5\x8e\xf7\x85\x60\x50\xba\x5a\xb6\xe7\xd4\xa9\ +\x53\xd8\xb6\xad\x1d\x31\x0d\x00\xe1\x22\xa4\xd0\x65\xcf\x4d\x16\ +\x21\xc1\xef\xf7\x53\x55\x55\x45\x74\x74\x34\xb9\x79\x79\x4a\x5a\ +\xb1\x54\x18\x87\x52\xe7\xe7\x30\x5c\x4a\xa4\x05\xfa\xbf\x10\x06\ +\x7b\x40\xb0\x5c\x19\x92\x17\x70\x8d\xef\x27\x4e\x9c\xa0\xbc\xbc\ +\x9c\xc4\xc4\x44\x72\x73\x73\x71\xf5\xbd\x48\xc3\xd8\x48\x94\x0b\ +\x72\xdb\x6d\xff\xe2\x01\x60\x2a\x6a\xa0\xab\xfe\xb2\x31\x01\xc9\ +\x58\xd8\xfe\x26\xaa\x9b\xd4\x6a\x26\x83\x06\xa5\xab\x58\xdf\x0e\ +\xaa\x76\x9f\xcf\x47\x52\x52\x12\x42\x08\x15\xcb\xdb\x9e\xca\x77\ +\x70\x84\xad\x7e\x0b\x07\xe1\x38\x08\xc7\x56\xdf\x85\xea\x70\xc7\ +\x71\x28\x2b\x2b\x43\x4a\x49\x5e\x5e\x1e\xd1\x31\xd1\xb8\x42\x1a\ +\x5a\xc2\x00\x92\x79\x4c\x4a\xa4\x70\x03\xea\x5c\xd5\x31\xd5\xbd\ +\x32\x15\xaa\xac\xca\x4d\x48\x21\x90\x1a\x7c\x85\x1b\x0b\x01\x98\ +\x3a\x75\x2a\x3e\x9f\x15\x50\xfd\x01\xa0\x7a\x1f\x57\x30\x7a\xf4\ +\x28\x86\x0f\x1f\xee\xf1\xe5\xdf\x2f\x2b\x0d\x90\x82\xc4\x69\x6a\ +\xa4\x4e\xa7\x6f\x53\x52\x92\xb1\x6d\xdb\x50\xe9\xaa\x43\x93\x92\ +\x92\x68\x68\x68\xa0\xae\xb6\x8e\x84\xf8\x78\x5c\x37\x68\x6f\x55\ +\x66\x50\x06\x24\x1f\xa0\xa6\xa6\x86\x2d\x5b\x54\x7a\x38\x23\x23\ +\x23\xe0\x00\xba\x42\xc5\xed\xa1\x19\x3d\x25\xf9\x96\x16\xf0\x80\ +\x13\xe8\x65\x00\xb5\xda\x97\x61\x91\x40\x50\x9c\x5d\xed\x18\x06\ +\x75\xc5\xfa\x0d\xeb\x01\x98\x36\x6d\x1a\x42\x78\x47\x43\x9d\x44\ +\xd3\x74\xcc\xbf\x76\x3e\x47\x7e\x77\x04\xe0\xb3\x74\xbc\x24\xdd\ +\xc7\x1e\x00\x19\x40\x7c\x62\x54\x14\x56\x73\x0b\xb6\xeb\xd0\xa8\ +\x3d\xe4\xd8\xd8\x78\x1c\xc7\x51\x4e\x92\xeb\xa9\x75\x87\x84\x78\ +\xb5\x46\x53\x7d\x43\x3d\x03\x9d\x81\x41\x1b\x1f\x70\xd4\xd4\xef\ +\x03\x07\x0e\x50\x54\x54\x44\x69\x69\x69\x40\x9d\x8f\x1a\x35\x8a\ +\x9b\x6f\xbe\x99\x99\x33\x66\xea\xf0\x4f\xab\xfd\x90\xf4\x6d\x90\ +\x7d\x6e\x30\x06\x0c\x19\x0b\x08\xe1\x7e\x60\x5c\x40\xd7\xd5\xa0\ +\xb1\x24\xd4\xd6\xd5\xb2\x7b\xf7\x6e\xa2\xa2\xa2\x98\x36\x6d\x9a\ +\x52\xff\x1e\xab\xbd\x36\xa5\xa5\x0a\xab\x7c\x11\x73\xae\x9e\xc3\ +\xef\xff\xeb\xf7\x48\x29\xb3\x51\x2b\x7d\x55\x5e\xca\x00\x50\xf6\ +\x3f\x2a\x0a\xc7\xdf\x48\x8b\xe3\xe0\x02\x51\x51\x51\x58\x48\x1c\ +\x47\x9c\x93\xe3\x8f\x8d\x53\xa3\xab\x4d\x4d\x4d\xfa\x7c\xd0\x2b\ +\x3f\x5b\x57\xc7\xb6\x6d\xdb\xd8\xb2\x65\x0b\xb5\xda\x97\x88\x8e\ +\x8e\x66\xee\xdc\xb9\xdc\x78\xe3\x8d\xe4\x5f\x79\x65\x60\x78\xce\ +\x15\x6e\xc0\xf9\xf3\x62\x79\x57\x06\x63\xf9\x40\xa8\x17\x16\xf6\ +\x85\x5a\x6f\x42\xfd\x87\x80\x9f\xa0\x74\xcb\x07\x1f\x7c\x80\x10\ +\x82\xa9\x53\xa7\x2a\xd3\xe5\xba\x46\x68\x19\xda\x8e\x77\x2c\x35\ +\x35\x95\x8c\x8c\x0c\xaa\x94\x33\x7c\x0b\x6a\x75\xd3\x4b\x16\x00\ +\xc3\x00\x52\x7c\x3e\xec\x26\x3f\x7e\xdb\xd1\xd2\x1f\xab\x12\x40\ +\x5e\x98\xe4\xaa\xac\x9f\xeb\xba\x44\x45\xa9\xe4\x65\x53\x73\x13\ +\x8e\xb0\x11\x8e\xe0\xf0\xe1\xc3\x14\x15\x15\x51\x52\x52\x12\x50\ +\xfd\x59\x59\x59\x2c\x29\x58\xc2\xa2\x45\x0b\x49\x4e\x49\x41\x4a\ +\x10\xfa\x5c\x40\xf5\xba\xc1\x4c\x8e\x2b\x3d\x35\xaf\x3c\x32\x0f\ +\x14\x9e\x44\x87\x44\x01\x86\xb4\x87\x24\x8f\x02\xf5\xd5\x6f\x9d\ +\xe1\xe3\x9a\x6b\xae\x51\x80\x33\x1c\x4d\x19\x96\x74\xd0\x3a\x87\ +\xed\xdb\xb6\x7b\xcc\x97\xa8\xb9\x09\x97\xb4\x09\xb8\x02\xa0\xbf\ +\x04\xd1\x62\xd3\xec\xba\x24\x58\x16\xb6\x6d\x73\xe6\xcc\x19\x12\ +\x93\x92\x90\xae\x40\x08\x6d\xd7\x85\x20\x3e\x3e\x1e\xe0\xb0\x70\ +\xc4\x88\xf5\x1f\xac\xa7\xa8\xa8\x88\xd3\xa7\xd5\x1a\x4e\x3e\x9f\ +\x8f\xd9\xb3\x67\x53\x50\x50\xc0\xe4\xc9\x93\xf1\x59\x96\x4a\xbc\ +\x04\x42\x2f\x42\x54\xb0\xa9\xde\x43\xa4\xd2\xf4\xd2\x4d\x9b\x1f\ +\x5e\xb7\x0d\x46\x82\xa4\xa2\xa2\x82\xd2\xd2\x52\x12\x12\x12\xb8\ +\x6a\xda\x55\xb8\x7a\x4c\x41\x5d\xc3\x0a\xc2\x50\x06\x93\x50\xfe\ +\xe6\x26\x7e\xf3\x9b\xdf\x78\xad\xbd\x0d\x9c\xba\xd4\x01\xa0\x35\ +\x80\xc5\x29\x21\x78\xb9\xbe\x1e\xbf\x94\xe0\x38\xbc\xf0\xc2\x0b\ +\x2c\x5f\xbe\x3c\x24\x51\x23\x84\xcb\xf4\x19\xd3\xd9\xbe\x7d\xbb\ +\xfb\xe2\x8b\x41\xe1\x48\x4b\x4b\x63\xf1\xe2\xc5\x2c\x5e\xbc\x98\ +\xb4\x81\x03\xc1\xb2\x90\x52\x2a\x0f\xde\x74\xd8\x42\x62\x6f\x42\ +\xb5\x01\xa1\xe3\xfa\x26\x47\x65\x88\xce\x97\x21\x43\x76\x52\xca\ +\xd0\xfc\x81\x06\xcd\x7b\xef\xa9\xf5\x9d\x66\xcf\x9e\x4d\x54\x74\ +\x14\x42\x38\x4a\xfe\x03\x31\x64\x68\xaa\x19\x60\xe5\x0b\x2f\x70\ +\xea\xd4\x29\x50\x0b\x3b\x7e\xfa\x72\x88\x02\x86\x00\xac\xf1\xfb\ +\x5f\x5c\xe3\xf7\xdf\x01\x58\x89\x89\x6a\x19\xbe\x3d\x7b\xf6\xf0\ +\xde\xfb\xef\x31\x7b\xd6\xd5\xf8\xfd\x8d\x6c\xdd\xb6\x8d\xa2\xcd\ +\x9b\xbd\x09\x16\xa3\x2c\xcb\x62\xf2\xe4\xc9\xdc\x70\xfd\x0d\x5c\ +\x35\x7d\x3a\x51\x51\x3e\x90\x20\xa4\x6b\x24\x61\x94\x4e\x56\x5e\ +\x77\x50\xd2\x2d\x33\xc7\x2f\x25\x96\x65\x08\x7f\x98\xaa\x0f\x32\ +\xd7\x88\x00\x4c\x0f\xfe\x1c\x90\x48\x1c\x21\x58\xb7\x6e\x9d\x1a\ +\xe8\x98\x33\x27\x30\x68\x14\x42\x21\x49\x27\x49\x51\x51\x51\xa0\ +\x0e\xf0\x39\x2e\xd0\xbc\xc2\x8b\x0d\x80\x4d\x40\x2e\xf0\x19\x2f\ +\x56\x7e\xf4\xd1\x47\xd9\xb1\x63\x07\x4f\x3e\xf9\x24\xab\x57\xad\ +\xe6\xd0\xc1\x43\x94\x96\x96\xd2\xdc\xdc\xac\xc3\xc3\x14\xae\xbb\ +\xee\x3a\xae\xbf\xfe\x7a\xb2\x32\x33\x03\x5e\x7b\x40\xcd\xbb\x61\ +\xde\xb5\xeb\x65\xed\x82\x62\xef\xca\x73\x43\x3e\x69\x66\xff\x64\ +\x30\x3a\x30\x5d\x7f\x79\x0e\xc3\xc3\x67\x06\xa9\x63\x45\x9b\x8b\ +\xa8\xab\xab\x23\x3b\x3b\x9b\x31\x63\xc6\x20\x5c\xe1\x39\xfa\xc1\ +\xcc\xa1\x51\xb1\xaa\xaa\x8a\x5f\xa9\xc1\x20\x50\xeb\x07\xbe\x7c\ +\xb9\xa4\x82\x0f\xa3\x97\x8e\x5d\xb0\x60\x01\xf7\xdf\x7f\x3f\x96\ +\xcf\xc7\xcc\x99\x33\x59\xb8\x68\x11\x6b\xd7\xac\xa1\xb8\xb8\x18\ +\x80\xf1\xe3\xc7\xb3\x78\xd1\x62\x66\xcd\x9e\x45\x4c\x4c\x0c\x20\ +\x95\xb4\x4b\x02\x76\x55\xb6\x16\x9a\x05\x4d\xae\x61\xe7\x03\xde\ +\x5a\x20\x6b\x17\xc6\xe2\x73\x1d\xbc\xd6\xa2\x80\x56\xcf\x49\xde\ +\x7c\xeb\x4d\x00\xae\xbd\xf6\xda\x80\x53\x2a\xc3\xa4\xdf\x23\xbf\ +\xdf\xcf\xb3\xcf\x3e\x4b\x93\x4a\x80\x55\x02\xff\x72\x21\x19\x70\ +\x31\x01\x90\x0c\xfc\x09\xb0\x66\xce\x9c\xc9\x97\xbf\x7c\x9f\xea\ +\x17\xa1\x66\xd4\x2c\xbb\xf3\x2e\x1a\x1b\x1a\x48\x4d\x4d\x65\xe1\ +\xc2\x85\x0c\x1d\x3a\x2c\x28\xc1\x42\x84\xa8\xf0\x73\x1d\x34\x0b\ +\x29\x5d\x2c\xac\x73\x6d\xbc\x99\xb4\x31\x46\xf4\x42\x9d\x3e\x5a\ +\xb5\xd1\x98\xa3\x83\x96\x6c\x75\xfe\x4e\x59\x59\x19\xfb\xf7\xef\ +\x27\x2e\x2e\x8e\x39\x73\xda\x5f\x59\x5e\x4a\xc9\x8a\x15\x2b\xa8\ +\xac\xac\xf4\xec\xfe\xf4\xa0\x83\x70\xe9\x03\xe0\xcf\x40\xfc\xa0\ +\x41\x83\x78\xe0\x81\x07\x42\x26\x56\x00\xc4\xc4\x46\xf3\x95\xaf\ +\x7c\x25\x60\xb3\xbd\x1c\x3a\x21\x1e\xbb\x65\x24\x68\xe4\x39\x22\ +\xe6\xb6\xe2\xad\x4b\x53\x25\x9c\x33\x04\x2c\x09\x9f\x02\xd8\xe6\ +\x2c\xad\x36\x0e\xaf\x5d\xbb\x36\x10\xfa\x25\x25\x25\xb5\xdb\x01\ +\xaf\xbc\xf2\x0a\xdb\xb7\x6f\xf7\x5a\x5b\x8a\x5a\x6b\x88\xcb\x01\ +\x00\xa9\xe8\x55\x33\xef\xbe\xfb\x6e\x62\x62\x63\x10\x42\x06\x46\ +\xd6\xcd\x14\x6c\x70\x70\x26\x4c\x45\x9b\xea\xbc\x4d\x4d\x20\x5b\ +\x49\xf5\x12\xca\x64\x83\x93\x8d\x8d\x8d\x9c\x3c\x79\x92\xd3\xa7\ +\x4f\x53\x5d\x5d\x4d\x63\x63\x23\x8d\x8d\x8d\x9e\x7a\x26\x2a\x2a\ +\x8a\xb8\xb8\x38\x52\x52\x52\x48\x4b\x4b\x23\x33\x33\x93\xec\xec\ +\xec\x40\x6e\xa2\xae\xae\x8e\x8d\x1b\x37\x62\x59\x16\x8b\x16\x2d\ +\x6a\xb7\x03\xde\x79\xe7\x1d\x56\xaf\x5e\xed\xfd\x7c\x94\x0b\x3c\ +\x13\xe8\x62\x03\xe0\x7e\xcf\xe3\x9f\x3c\x79\x92\x9e\x21\x63\x30\ +\xcc\xd5\xd2\xdd\xe6\x30\xad\xa9\xce\xc3\xa2\xf4\x30\x63\x6b\x66\ +\xe7\x02\xca\xdf\x75\xa9\xa8\xa8\xa0\xac\xac\x8c\xf2\xf2\x72\x2a\ +\x2a\x2a\xa8\xac\xac\xa4\xa9\xa9\x89\x8c\x8c\x0c\x46\xa4\xa6\x92\ +\x91\x9a\xca\x80\x84\x04\x86\xc6\xc5\xc9\xf8\xc4\x44\x70\x05\xb6\ +\xed\xd0\xd8\xdc\xc4\xa9\x03\x07\xac\xed\x45\x45\x1c\x38\x7b\x96\ +\x33\x67\xce\x90\x97\x97\xc7\xd4\xa9\x53\xa9\xaa\xaa\xc2\xb6\x6d\ +\xa6\x4c\x99\x42\x66\x66\x66\xdb\x9e\xef\xa6\x4d\xac\x5c\xb9\xd2\ +\xfb\xf9\x0b\xd4\xaa\x65\x5c\x4e\x00\x98\x05\x30\x63\xc6\x8c\x40\ +\x86\x2c\xc4\x91\x92\x04\xe7\xd9\x78\xf6\x56\x25\xe8\xb0\xac\x60\ +\xfa\x35\x3c\xa4\x6b\x4b\x57\xbb\xae\xcb\xd1\xa3\x47\xd9\xbd\x7b\ +\x37\x7b\xf7\xee\xa5\xb4\xb4\x94\x01\x03\x06\x30\x75\xc4\x08\xf2\ +\x87\x0c\x95\xb7\x4c\x98\xc0\xa8\xcc\x0c\x2b\xbd\x7f\x32\xae\xe3\ +\x04\x3e\x52\x08\x5c\xdb\xb6\x5c\x21\x90\xde\x31\xc7\x41\x08\x07\ +\xe9\x08\x5c\xc7\xa1\xa6\xbe\x9e\x4d\x65\x65\x72\xdd\xdb\x6f\x5b\ +\x9b\x95\x2d\xa7\xa0\xa0\xa0\xcd\xbb\xd9\xb3\x67\x0f\x2b\x56\xac\ +\xf0\x34\xd6\x5b\x9c\xbb\xbb\xc9\x65\x01\x80\x18\xcf\x03\x76\xb4\ +\xdd\xb7\xa4\x85\xeb\x05\x75\x6d\xe4\xde\xc3\x52\xe8\xed\x99\x62\ +\x6a\x6b\x6b\xd9\xb1\x63\x07\xbb\x76\xed\x62\xcf\x9e\x3d\x24\x27\ +\x27\xb3\x60\xe2\x44\xbe\xb0\x70\xa1\x9c\x72\xcf\x3d\xd6\x80\xa4\ +\x44\xc5\x50\xdb\xb1\x84\x10\xe0\xd8\xd8\xf5\xf5\x9a\xf9\x02\x57\ +\x38\x48\xdb\x51\x7f\xc3\x40\x21\x34\x10\x5c\xe1\x90\x28\x1c\xae\ +\xc9\xcc\xb2\x8e\x9f\x3a\xcd\xe6\xca\x4a\x12\x13\x13\xc9\xc9\x69\ +\x7d\x3d\xea\x83\x07\x0f\xf2\xcc\x33\xcf\xa8\x21\x6a\xd8\x01\xdc\ +\x70\x91\xa3\xb0\x8b\xf6\x62\xc8\x23\xa8\x05\x0d\xf9\xda\xd7\x1e\ +\x61\xc2\x84\xfc\x5e\x69\xf4\xe4\xc9\x93\x6c\xd9\xb2\x85\xa2\xa2\ +\x22\x8e\x1d\x3b\xc6\xfc\xc9\x93\xb9\x66\xd2\x24\x39\x27\xff\x4a\ +\x2b\xbd\x7f\x7f\x5c\x5b\x33\x56\x38\xea\xbb\x13\xc6\xe0\x80\x64\ +\xdb\x0a\x04\x01\x46\xab\x63\xd2\x00\x87\xeb\x68\xad\x60\xdb\x34\ +\x36\x37\x73\xcf\xba\x75\x9c\xb5\x6d\xc6\x8d\x1b\x47\x7a\x7a\x3a\ +\xcb\x96\x2d\x0b\xb9\xb7\x23\x47\x8e\xf0\xc3\x1f\xfe\xd0\xcb\x67\ +\x1c\x06\x46\x5f\x68\x8f\xbf\x2f\x01\x20\x1a\xf5\x02\x65\x12\xc0\ +\xe2\xc5\x8b\xb9\xe5\x96\x5b\x88\x8b\xeb\xfa\xca\xa6\xd5\xd5\xd5\ +\x14\x16\x16\xb2\x69\xd3\x26\x4e\x9c\x38\xc1\x8d\xb3\x67\xb3\x78\ +\xc6\x0c\x66\xe4\xe6\x12\x65\x59\x48\xc7\xc6\xb5\x85\x62\xba\xc1\ +\xcc\x00\x03\x1d\x81\x2b\xec\x00\xe3\xa5\x63\x48\x78\xe0\xaf\x30\ +\x80\xa2\xeb\x6b\x10\x49\xe1\xf0\xea\xa1\x43\xfc\xf1\xc8\x11\xf2\ +\x52\x53\xf9\xd6\x94\x29\xdc\xbf\x75\x2b\x0f\x3f\xfc\x70\x40\x13\ +\x1c\x39\x72\x84\xa7\x9e\x7a\x8a\xc6\xc6\x46\x50\x8b\x51\x8f\xa0\ +\xed\xf7\x14\x2f\x0b\x00\x80\x7a\x6b\x76\x1d\x7a\xb7\xce\x94\x94\ +\x14\xee\xb8\xe3\x0e\x66\xcd\x9a\xd5\x61\xc5\xa6\xa6\x26\x36\x6f\ +\xde\xcc\x86\x0d\x1b\x28\x2f\x2f\xa7\x60\xe6\x4c\x6e\x9c\x7d\x35\ +\xd3\xf3\x72\xf1\xb9\x6e\x80\x39\xe1\xea\x3b\x60\xd7\x3d\x69\xb7\ +\x4d\x5b\xef\x68\xc9\x0e\xaa\xf7\x00\x48\x84\xa3\xce\x3b\x5a\x43\ +\x18\xe5\xea\x9b\x9b\x79\x70\xfb\x76\x1a\x85\xe0\x5b\x57\x5e\x49\ +\x7e\x6a\x0a\xab\x2a\x2a\x39\x38\x78\x30\xf7\xde\x7b\x2f\x87\x0f\ +\x1f\xe6\xe9\xa7\x9f\x36\x99\x9f\xcb\x05\x98\xea\xf5\x71\x00\x80\ +\x47\x9f\x47\xbd\x18\x92\x08\x30\x65\xca\x14\xee\xba\xeb\x2e\x92\ +\x93\xcf\xdd\x35\x6d\xff\xfe\xfd\xbc\xff\xfe\xfb\x6c\xdd\xba\x95\ +\xdc\xdc\x5c\x96\x2f\x58\xc0\x35\x13\x26\x10\x63\x59\x4a\x6a\x3d\ +\xa6\x99\xcc\x0c\xa8\x7b\x5b\x4b\xbf\x62\x5c\x50\xed\x8b\x73\x40\ +\x12\x30\x05\x1e\xe3\x0d\xa7\xcf\x35\xeb\x3a\x82\x57\x8e\x55\xf2\ +\x3f\xa7\x4e\x91\xdb\x2f\x89\x6f\x8f\x19\x8b\x74\x25\xf5\xb6\xcd\ +\x43\xa5\xfb\x79\xf8\xe1\x87\x79\xe6\x99\x67\xcc\x2c\x5f\x5e\x5f\ +\x62\x7e\x5f\x01\x80\x67\x12\x56\xa2\x76\xcc\xb4\x52\x52\x52\x78\ +\xf0\xc1\x07\x19\x35\x6a\x14\x7e\xbf\x9f\x0d\x1b\x36\xf0\xf7\xbf\ +\xff\x1d\xd7\x75\xf9\xfc\xc2\x85\x72\xe9\xd5\x57\x5b\x03\x13\x93\ +\x42\xd5\xb2\xd0\x36\x3a\x20\xf9\xea\x98\x6b\x1b\x52\xec\x98\x8c\ +\x0c\x05\x84\xeb\x68\x33\x61\xab\xe3\x3a\x02\xd0\x9a\x42\x84\xd6\ +\xd7\xdf\x4f\x37\x35\xf1\x58\x59\x19\x2e\xf0\xad\x61\x39\x8c\x8a\ +\x8f\x53\x51\x89\x94\x7c\xa3\xac\x8c\x2a\xdb\xf6\x9e\xaf\x42\x4b\ +\x7e\x9f\x5b\x38\xa2\xaf\xbd\x1d\x3c\x53\x27\x44\x92\x62\x63\x63\ +\x29\x28\x28\x60\xed\xda\xb5\x5c\x79\xe5\x95\x7c\x79\xd1\x42\xa6\ +\x8d\x19\x0b\x42\x18\xd2\xea\x31\xd9\x50\xed\x8e\x40\x3a\xb6\xf1\ +\x3b\x54\xdd\x9b\x52\x2f\x85\x83\x70\x0c\x07\xcf\xf0\x15\x4c\x6f\ +\x3f\xc4\x0c\x68\x73\x21\x85\xc3\xf3\xa7\x4f\xb3\xb9\xa9\x89\x69\ +\x89\x89\xdc\x3b\x30\x2d\xf0\x1e\xe1\x86\x86\x06\x56\xd6\xd6\x7a\ +\x1e\xde\x01\xd4\x0b\xaf\x2d\xf4\x41\xea\x8b\xaf\x87\xc7\x03\xbb\ +\x51\x2f\x8b\xf2\x9b\xc7\x1e\x93\x33\x73\x73\x2d\xd7\x71\xc2\x9c\ +\x33\x4f\x45\xdb\x61\x76\x5d\x84\xa9\x7f\x27\x20\xe9\xa1\xd2\x6e\ +\x07\xcc\x85\x10\xa6\x59\xf0\xea\x9b\x8e\xa2\x13\x0a\x28\x47\xb0\ +\xbf\xc9\xcf\x4f\x1b\x1a\x88\x01\xbe\x9b\x9a\x4a\xaa\xcf\x07\x52\ +\xb2\xba\xd1\xcf\x1b\xcd\x81\x7d\x1a\x3f\x44\xad\x3d\xe0\xd2\x47\ +\x29\x00\x80\x35\xd2\xee\xf6\xab\xc9\x8b\xac\x98\x73\x80\xd4\x93\ +\xf6\xa4\x94\x2c\xf6\xc5\x56\x00\x43\x86\xa5\xa7\xf3\xc7\xc7\x1e\ +\x23\xde\xe7\x43\x38\x41\xc9\x0d\xd1\x02\xda\x7b\xf7\x4c\x82\x08\ +\x30\xcc\x33\x01\xb6\x61\xeb\x4d\xaf\x3f\xcc\xa6\x0b\x5d\xd6\x11\ +\xad\x3a\x8e\x5e\x39\xdb\x76\x78\xba\xa5\x99\x8f\x80\xeb\xa3\xa3\ +\x59\x12\x1d\x8d\xed\xba\xbc\xe8\x38\x6c\x75\x5d\x7c\x51\x3e\xee\ +\x7f\xee\x59\x6e\xba\xf7\x9e\x1e\xf5\xe1\x05\x01\x80\xc9\xa8\xa3\ +\x7b\x61\xe3\xeb\x16\xfb\x8b\x2c\x8e\xee\xb5\xa8\x3d\x09\x2d\x1a\ +\xcc\xd1\xb1\x90\x3c\x10\x32\x86\x49\xae\x18\x0b\xa3\x26\x49\xf2\ +\xe7\x4a\x86\xe6\xb6\xdd\x78\xb3\x1f\x8e\x1f\x86\xe3\x47\x2c\xce\ +\x1c\x87\xda\x53\xea\x58\x8b\x3f\xf8\xac\xf1\x49\x92\x7e\x03\xa0\ +\x5f\x2a\x64\xe6\x48\x86\xe6\x41\x6a\x3a\xb4\x34\x35\xf1\xb9\xd1\ +\xb9\x9c\xae\x3c\xc6\xdd\x0b\x16\xb0\x7c\xfe\xb5\x8a\xd1\x86\xc7\ +\x2e\xdb\xf0\xf6\xa5\xc1\x4c\x05\x1a\x2d\xf1\xb6\x40\x18\x60\x09\ +\x61\xae\x6d\xb7\xe2\x10\x1a\x6d\x07\xc2\x3e\xc1\x5a\x24\x6f\xa0\ +\xb6\x01\x7b\x4c\xc7\xb3\xbf\xd3\x23\x39\x09\xfd\xfb\xf1\x85\x1f\ +\xfd\x95\x03\xdb\xae\xa5\xde\xd8\x7a\x32\xa1\x1f\x24\xf4\x87\xfe\ +\x03\x25\x03\x32\x21\x2d\x1b\xd2\x87\x48\xb2\x46\x40\xff\x01\x17\ +\x0f\x18\xd6\x1a\x69\xcb\x92\x42\xf8\xd5\xa3\x51\x14\x7f\xd0\xf5\ +\x6b\x65\xe4\x48\x3e\xf1\x59\xc9\x82\xcf\xb8\x9c\x3e\x66\xb1\xe7\ +\x43\xd8\xb7\xc9\xe2\xd0\x4e\x8b\x93\xe5\xdd\xbb\xf7\x01\x59\x92\ +\x31\x53\x25\x99\x39\x47\x78\xfd\x17\x05\xc4\x27\x55\xf0\xe7\xbb\ +\x96\x91\x12\x1b\x6b\x64\xe1\x4c\x06\x9b\xcc\x6c\x2d\xc6\x77\x42\ +\x13\x3b\x8e\x13\xe6\x00\x86\x32\x1d\x61\x23\xb4\x3f\x20\xf5\x3a\ +\x04\xde\x08\xe2\x31\x09\xff\xa1\x75\xfa\xbd\xa8\x2d\xb9\x5e\x41\ +\xad\xfd\x02\xd8\xbf\xda\xb5\x2d\x46\x38\xf9\x7c\x69\x4a\xe7\x93\ +\xac\xfd\x07\x4a\xae\x18\x03\xc3\xf3\x25\xa3\x26\x49\x46\x4f\x91\ +\x8c\x9a\x02\x09\x49\xe7\x1f\x0c\xd6\x1a\x69\xcb\xbf\xfe\xdc\xe2\ +\xb9\xfb\xa3\xf0\x45\x4b\xe6\xdc\x2c\xb9\xea\x7a\xc9\x88\x09\x92\ +\xb4\x6c\x85\x5c\x29\xc1\x6e\x86\x9a\x13\x70\xb2\xdc\xe2\xf0\x2e\ +\xd8\xb7\xd9\x62\xcb\x1a\x8b\xa6\xfa\x76\xee\xc9\x52\x0f\x96\x3e\ +\x44\x92\x99\x03\x89\xc9\xea\x13\x9f\x24\xb1\x9b\xc1\x17\x05\x76\ +\xb3\x45\xfd\x19\x38\xfd\x11\x1c\x3f\x6c\x71\xec\x00\x34\xd6\x85\ +\xb7\x59\xc4\xf4\x82\x06\xee\xfb\xe9\x1c\xb2\x7f\x74\x6f\x40\x2a\ +\x3d\xc6\x0a\xed\xc4\x85\xc6\xf3\x1e\x08\xec\xa0\x87\xef\x49\xb1\ +\xe9\x18\x0a\x53\xd5\x1b\x1a\xc5\x15\x7a\x56\x51\xf0\x2e\x6c\x29\ +\x79\x86\xc0\x36\x9c\x47\x74\x4a\xfb\x0a\x80\xf9\xb7\xfd\x33\x5f\ +\x7d\x7e\x05\x49\xc9\xc9\xb4\x34\xc3\xaa\x5f\x5a\xa4\x1a\x1b\xd0\ +\x37\x35\x82\xff\x2c\xd4\xd7\x58\x54\x7f\x04\xa7\x2a\xa1\xaa\xcc\ +\xa2\xaa\x8c\x56\xfb\x30\x2a\x46\x32\xf6\x2a\x98\xb2\x40\x72\xf5\ +\xcd\x2e\xb9\x57\x9d\x1f\x33\x12\x30\x01\xaf\xff\xc2\x62\xc1\x67\ +\x25\x49\xc9\xed\x57\x70\x5d\xd8\xf0\x17\x8b\xff\xf9\xb9\xc5\xf6\ +\x75\x96\x9e\x59\x03\x96\x4f\x32\x6a\x32\x4c\x9c\x27\xc9\x9b\x29\ +\x19\x7b\x95\x64\xf0\x48\xf0\xf9\xba\x6a\xff\x95\xd9\xd8\xfd\x0f\ +\x8b\x8d\xaf\x5b\x14\xae\x16\x34\x35\x04\x97\xd4\xc9\x1c\x2e\x99\ +\xb6\x48\x32\x65\xa1\x32\x41\xb1\xcb\x96\x86\xda\xff\x80\xc7\x2f\ +\x82\x26\xc3\xf0\xe4\xa5\x2d\x02\x4e\xdf\x39\x09\x21\xd7\x1b\x6d\ +\x92\xe7\x30\x1f\xe0\x45\x29\x29\x02\x92\x07\x65\xe2\xaf\x4f\xc2\ +\x6e\x4a\x27\x36\x61\x38\xd7\xdd\x7e\x0f\xe3\x66\xcd\x0b\x29\xdb\ +\x6f\x00\xa4\x66\x48\x52\x33\x20\x63\xa8\x12\xa4\x36\xb3\x99\xc7\ +\xa1\x6c\x8f\x45\xd9\x1e\x38\xb0\xcd\x62\xdf\x26\x8b\xa3\x25\xe0\ +\x8a\xe0\x0d\x64\x8d\x94\xdc\xb0\xcc\x65\xdc\xcc\x50\x90\xa4\x0c\ +\x82\xcc\x9c\xb6\xdb\xef\x08\x14\x56\x6b\x0e\x9b\x59\xc9\x3b\x27\ +\x25\xbc\xfb\x92\xc5\xca\xc7\x7d\x1c\x2d\x09\x32\xfd\x9a\x5b\xd4\ +\x67\xda\x62\xd9\xa6\x2d\xeb\x2c\x32\x5b\x73\x1c\x5b\x9a\xa0\xf0\ +\x0d\x8b\x0d\xaf\x59\x6c\x7e\xd3\xa2\xee\x54\x68\x53\x19\xc3\x24\ +\x63\xa6\x49\x72\xa7\x4b\x86\x8d\x83\x9c\xf1\x12\xf1\xc9\x29\xf8\ +\xdc\x66\x1d\xe6\x79\x92\x7e\x6e\x12\x48\x08\xa1\x10\x1d\x3e\x5f\ +\xcb\x18\x41\xb6\x89\x27\xb1\xf0\x2c\x2b\xbe\xf6\x12\xc5\xeb\x05\ +\x6a\x11\x93\x31\x74\x75\xf9\xbf\xd4\x0c\xc9\xb0\xf1\x92\xd1\x93\ +\x61\xf4\x54\x05\xde\xc1\x23\x5a\x2f\x7b\xec\x20\xfc\xe3\xaf\x16\ +\x1b\x57\x59\x1c\xd8\x6a\xd1\x50\xdb\x71\xf7\xf5\x4f\x93\x8c\xc8\ +\x87\xfc\xb9\x92\x49\xd7\x6a\xe1\x88\xef\x98\x07\x56\x67\x98\x22\ +\x25\x7c\x73\x89\x8f\xa2\x37\x7d\x01\xbb\xff\xe9\x87\x5c\x6e\x58\ +\x26\x49\x4a\x39\x7f\x76\x2a\x1c\x10\xae\x0b\xa5\x5b\xa0\xe8\x6d\ +\x8b\xe2\x0f\x2c\x4a\x36\xb6\xde\x39\x51\x31\x92\xf4\x21\x90\x3e\ +\x14\xd2\x87\x2a\x29\x4c\x19\x24\x49\x4e\x83\xf8\x24\x88\x89\x53\ +\x82\x1e\x1d\x03\x4d\x0d\xaa\x17\xfc\x67\xe1\x6c\x35\xf8\xeb\x2d\ +\x8e\x1f\x86\x53\x95\x16\xc7\x0e\x2a\x55\xed\x69\xb9\x50\x09\x6f\ +\x22\x6b\x44\x1c\xc9\x69\x92\x81\x83\x15\x60\x62\xd5\x5b\x6b\x08\ +\x07\x6a\x4f\x2a\x75\x5f\x73\x02\x2a\x4b\x41\xba\xe7\xb6\x91\x3d\ +\x5a\x32\xfd\x06\xc9\xd5\x9f\x92\x8c\x9b\x2d\x59\xf7\x47\x8b\x37\ +\x7f\xeb\xa3\xe4\x43\xab\x55\x3f\x21\x63\x98\x92\xf4\x98\x78\xd5\ +\x2d\x0d\x35\x16\x75\xd5\x50\xfd\x51\xa8\x63\x0d\x90\xd0\x5f\x32\ +\xff\x36\xc9\x4d\x5f\x72\x19\x3b\xad\x6d\xfe\x58\x9d\x65\xc2\xef\ +\xbf\xeb\xe3\xa5\xa7\x2c\xee\xfd\x0f\x97\x82\xe5\x92\xe8\x98\x0b\ +\x1b\xc2\xb4\xa6\x1d\xa4\x54\x91\xcb\xfe\xcd\x16\x07\x77\x58\x94\ +\xed\x86\x8a\xfd\xca\xae\xb6\xd6\xe1\xdd\xa1\xa8\x18\xe5\xc7\xf4\ +\x4b\x2d\xe5\x6c\xf5\xdf\xb8\xf5\x91\xf9\x5c\x77\x47\x3e\xf1\x5d\ +\xdc\x44\xbe\xaa\x0c\x8e\x14\x5b\x1c\xd8\x0e\xbb\x37\x58\xec\x7a\ +\xdf\xa2\xa9\xc1\x0a\xb9\x8e\xb0\xd5\x6f\x5f\xb4\x64\xe6\x8d\x0a\ +\x1c\x79\x33\x24\xc3\xf3\x21\xa6\x03\x85\x73\xea\x18\x94\x6e\xb1\ +\xd8\xf5\x81\x45\xe1\x6a\x8b\xa3\x7b\x82\x6d\x4f\x9c\x2f\xb9\xe7\ +\x27\x22\x00\x04\x93\x5f\x9d\x56\xcd\x42\x40\xdd\x29\x18\x90\x79\ +\xf1\x63\xd7\x8e\xf2\x0c\x2d\xcd\xca\x8f\x38\x59\x6e\x51\x7d\x5c\ +\x49\x63\xcd\x09\x8b\xb3\x67\x94\xc4\x3b\x2d\x0a\x3c\x8e\xad\x3a\ +\xd6\xf2\x41\x52\x8a\xd2\x0e\xc9\x03\x95\x44\x67\x0e\x57\x61\x69\ +\x66\x0e\x01\xb0\x2f\xb2\x62\x42\xc2\xe6\x9e\x98\x36\x21\x60\xdf\ +\x26\xd8\xf0\x17\x1f\x1b\x5e\xb3\xa8\x2c\xb5\x02\x8e\xf3\xdc\x4f\ +\x4b\xee\x7c\xdc\x25\x67\x7c\xe7\xb4\x6b\x6b\xed\x97\xef\x83\x37\ +\x9e\xf7\xf1\x97\x9f\x59\x38\x2d\x16\x63\xa7\x4b\x9e\x2b\x14\x58\ +\x56\x37\x01\xd0\x17\x92\x16\x3d\x05\x46\x4f\xe8\x7c\x9a\x36\x80\ +\xe2\x0d\xb0\xea\x97\x3e\xde\xf9\x83\x72\xac\x7d\xd1\x92\xa5\xf7\ +\x48\x96\x7d\xdf\x0d\x98\xd9\xee\x00\xae\xa1\x16\x7e\xf7\xef\x3e\ +\xae\xbf\xd3\x65\xf4\x94\x6e\x6a\x80\x08\x5d\x38\xd0\x9e\x28\x87\ +\x3f\xfe\xc0\xc7\xaa\x15\x0a\x08\x19\xc3\x24\x3f\x5e\x27\x18\x3c\ +\xb2\xeb\x20\x6c\x0d\x68\x5d\xf6\x01\x22\x74\x71\x80\x70\x60\x1b\ +\xfc\xe8\x73\x51\x0c\xc8\x94\xfc\xf0\x2d\x97\xa8\xa8\xf3\x94\x08\ +\x8a\x74\x7b\xdf\x05\x82\x63\x83\xbf\x3e\x98\x2a\x8e\x00\xe0\x32\ +\xd5\x06\x7d\xdd\xef\x8a\x50\x84\x22\x14\xa1\x08\x45\x28\x42\x11\ +\x8a\x50\x84\x22\x14\xa1\x8f\x0f\xa5\x02\xff\x84\x9a\xd1\x55\x8b\ +\x5e\xad\x24\x42\x97\x3e\x3d\x82\xda\x94\xa1\xb5\x3d\xff\xfe\xc4\ +\x05\x5c\xae\x3d\x42\x17\x47\xea\xf7\x68\x66\xb7\xa0\xb6\xa7\x79\ +\x40\x83\xc2\x03\x41\x71\xa4\x9b\x2e\x3d\xf2\x32\x69\x0f\x11\xdc\ +\x65\x34\x9c\x12\xf5\x39\x41\x64\xd7\xf2\x3e\x47\xa6\x9a\xee\xee\ +\xba\x06\xfd\x74\x7d\x17\x98\xdf\x46\x99\x62\x5d\x66\xce\xe5\xd0\ +\xa9\xbe\xcb\x0c\x44\xf5\xa8\x1d\x43\x2d\xd4\x8c\xee\xd6\x34\xc4\ +\x26\xfd\xf7\xf6\x88\xcc\xf5\x2e\x8d\x44\xed\x9b\xbb\x1e\xb5\x39\ +\x73\x0b\x6a\x17\xcd\x13\xfa\xd8\xb7\x51\xcb\xc7\x9f\x4f\x0d\x00\ +\x6a\x3d\x1e\xa9\xaf\x17\x4e\x73\xf4\xb9\x13\xe8\x65\x6c\x23\xd4\ +\x7b\x5e\xb7\x4d\xc7\xbb\x6e\xd7\x01\x37\x9d\x67\x00\xcc\xd7\x6d\ +\xd4\x02\x1f\xa0\xde\x45\xbc\x03\xf8\x23\x6a\x3b\x59\xef\x1a\xff\ +\xa5\xb5\x44\x6a\x84\x7d\x3d\xa3\x5b\x8c\x4e\x6d\x00\xbe\x81\x5a\ +\x1e\x25\x16\x48\x40\x2d\x8e\xf8\x82\x51\xa6\x11\xf5\x1e\xfd\xf9\ +\x02\x40\x34\xf0\x12\xe0\xd0\xb9\xad\xe0\x97\x44\x58\xd8\x33\x2a\ +\x32\x3a\xf3\xb3\xed\x94\xfb\xad\x51\xee\xf7\x1d\x00\xc0\x07\x8c\ +\xd5\x52\xeb\x99\x93\x32\xe0\x67\xc0\xa0\x0e\x22\x81\x38\xd4\xbb\ +\xfa\xe1\x79\x00\xa1\xff\xd6\xa3\x76\x18\xff\x12\x30\x2a\xcc\x3f\ +\xe8\x0a\xa5\x18\x6d\xef\xd7\xc7\xc6\xa0\x36\x8b\x3e\xae\x01\x78\ +\x1a\x78\x0d\xb5\x55\xdc\x25\x4b\xcd\x46\x47\xb4\x37\x99\x7a\x2c\ +\x6a\x7d\xfc\xf5\xc0\xff\x6b\x07\x00\xcd\xa8\x8d\x15\x6b\xdb\x90\ +\xd8\x12\xed\xed\xb7\x45\x4f\x87\x95\xb7\x81\xbd\xfa\xfb\x3f\x7a\ +\xf1\xb9\x63\x8d\x6b\x9c\x40\xad\x11\x70\xa6\x8d\x7b\x6e\x02\x16\ +\x5d\xca\x9e\xb7\xf7\xa0\x59\xbd\x10\x06\x56\x03\xbb\x50\x1b\x2a\ +\x5c\xa9\x3b\x7a\x1e\xea\xe5\x5c\xaf\xcc\x37\xdb\x69\x67\x2e\x6a\ +\xd1\x86\xc7\x81\x19\x86\x59\xf0\xcc\x4f\x6f\x46\x58\xa6\x59\xdb\ +\xa8\x93\x4e\xd3\xb5\x16\x1a\x06\xfc\xd2\x28\x53\xd5\x81\x80\x7c\ +\x6c\xe9\x5d\xe3\x21\x5f\xa0\xab\xef\x54\xb5\x6e\x02\x76\xeb\x4e\ +\x34\x69\x99\x71\xbe\xb0\x1b\xed\x7b\x26\x61\xc2\x79\xca\x5d\x1c\ +\x6a\x83\xc1\xef\x1b\x65\x96\x5f\x8a\x00\xf8\x84\x61\x5f\x25\x70\ +\x10\xf8\x37\x2d\x09\x51\xdd\xec\xcc\xbb\x5a\x39\x3f\xd4\x38\x5f\ +\xd3\x8d\xfb\xfc\x95\xae\xfb\x8d\xf3\x04\x80\xb6\xb6\x80\xfb\x57\ +\x42\xc7\x21\x2e\x49\xba\x59\xab\xb8\x70\xdb\x57\x03\xfc\x05\xf5\ +\xaa\x7d\x7a\x17\x3a\x73\x78\x1b\xde\xbd\xe9\xd0\x75\x95\x6e\x3c\ +\x0f\x7e\x80\x79\xcf\x6d\x6d\x05\x9b\x67\x94\xd9\x75\x29\x3b\x83\ +\x89\x5a\xc5\xfd\x2d\xcc\x2f\x30\x9d\xbb\x5f\x6a\xef\xb9\xa3\xce\ +\x8c\xe9\x44\x99\xae\x92\x97\x26\x76\xe8\xbd\x0c\xa9\x79\x3f\x69\ +\x6d\x94\xe9\x6f\x94\x39\x73\xb9\x84\x86\x31\x3a\xeb\xf6\x1d\x60\ +\x6b\x58\x47\x15\xa3\x36\x93\xe8\x0e\x73\x7b\x02\x00\x74\x04\x21\ +\xd1\x8b\x59\xf7\x32\x00\xda\x32\x77\x51\x61\x11\xc9\x65\x49\xd7\ +\xeb\x50\xc9\xeb\x88\xa7\x2e\x12\x00\xbc\x34\xf1\xf7\xcf\x03\x00\ +\xac\x76\x84\xc1\xd4\x82\x97\x2d\x2d\x09\xf3\x98\x2f\x06\x00\xbc\ +\x34\xf1\x8e\x4e\x96\xf7\x98\x1a\xdf\x86\x87\x6f\xde\x4f\x5b\xdb\ +\x87\x0c\x30\xca\x9c\xbe\xd4\x98\xfa\x3d\xe0\x4d\x9d\xf9\x1a\xda\ +\x41\xd9\x04\xa3\x23\x5a\x2e\x12\x00\x4c\x69\x8c\xef\x64\x9d\xef\ +\xea\xf2\x8f\x76\x70\x3f\x79\x6d\xd4\x9f\x64\x94\xd9\x7a\xa1\x19\ +\x74\xbe\x87\x83\xe7\x6a\xf5\x9e\x89\x1a\x13\x68\x8f\x4c\x27\xa9\ +\xfa\x22\x01\xd6\x06\xb6\x18\xf7\xde\x11\x0d\x43\xed\x7e\xe2\x69\ +\xb0\x8e\xb4\x4b\x6b\x34\xc3\xf8\x7e\xc9\x45\x01\xb7\x12\x9a\x0e\ +\xcd\x69\xa7\xec\x53\x46\xd9\x95\x17\x49\x03\x98\x12\xdd\xd1\xa6\ +\xcd\xb9\x5a\xc3\x79\xd7\xdb\xd6\xc1\xfd\xec\x6c\x25\x7a\xb1\x74\ +\xd2\xca\x2b\xf3\x99\x4b\x0d\x00\x16\xb0\xca\x78\xc0\xe3\xc0\x17\ +\x51\x3b\x86\x46\xeb\xd0\x6b\x16\xf0\x1b\x42\x47\x0c\xc7\x5e\x44\ +\x00\x5c\xa5\xeb\x97\x76\xc1\xc1\x1b\xd7\x41\x99\x66\xd4\x82\xd1\ +\xab\x80\x89\xa8\x6c\x68\x4e\xd8\x73\x1f\xa5\xfb\x59\xd2\x3e\x1f\ +\xff\xbf\x44\xe7\x86\x5e\x8f\x02\xd7\xf4\x80\xb9\x1d\x95\xe9\xec\ +\xa8\x5e\x0b\xc1\x8c\xe3\x6b\x46\x6e\x62\x11\xf0\xdf\x46\xc4\xb2\ +\x1e\xb5\xc7\x6f\x6c\x1b\x6d\x9b\x00\x28\x30\xda\x0d\xff\xd4\x77\ +\xd2\xe4\x7c\xac\x69\x2e\xb0\x42\xab\xc2\x1a\x54\xb6\xae\x09\x95\ +\x83\x7f\x5d\x27\x89\x12\x7b\x28\xdd\xed\x95\x49\xe8\xe4\x3d\xfe\ +\x42\xdf\x97\x1b\x17\xeb\x3b\xae\x00\x00\x00\xb7\x49\x44\x41\x54\ +\xd6\xde\x7d\xa8\xac\xa5\x19\xb3\x7f\xb1\x93\x5a\xc2\x5b\x2c\x7a\ +\x2a\x6a\x5b\xd8\x2a\x82\xc3\xc1\xaf\xa2\x06\xb5\x22\x74\x1e\xe9\ +\x1d\xcd\x88\xbb\x8d\x70\xac\x35\x89\x5d\xdd\x8a\x74\x86\x03\xe1\ +\x73\xe8\x95\xcc\x3b\xa1\x55\x7a\xc3\x24\x45\xa8\x17\xe8\xf7\x06\ +\x23\x3e\x44\x8d\x26\x3e\xa7\x1d\xb9\x1f\x69\x67\x6e\x5a\x1b\x0c\ +\x37\x25\xfe\xdd\x1e\x24\x82\x22\xd4\x07\xa2\x91\x43\xed\x48\xb6\ +\x68\xc7\x37\xf9\x54\x37\xaf\x1b\x01\x40\x1f\xa1\x68\xc3\xbf\x78\ +\x16\xb8\x4e\x4b\x74\x29\xf0\x8c\x8e\xc5\x0f\xa3\x26\x8a\x7c\x1f\ +\x35\x64\x2d\x51\x6f\x10\xfd\x82\xf6\xa7\x99\x45\x00\xf0\x31\x09\ +\x47\xc3\xed\x75\xb8\xc3\x69\x4e\x30\xb9\x82\xf6\xa7\x95\x45\x00\ +\x70\x89\x00\xe2\x7c\x53\x04\x00\x11\x8a\x50\x84\x22\x14\xa1\xbe\ +\x4a\xff\x0b\xae\x75\xe2\xe0\x08\xd2\x80\xca\x00\x00\x00\x00\x49\ +\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x33\xb3\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\x83\x00\x0f\x00\x0f\x94\xe6\x2b\x91\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x07\x08\ +\x0b\x32\x3b\x8e\x92\xd0\xbf\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x69\x90\x5c\xd7\x75\xe7\xf9\xbb\ +\xef\xe5\xbe\x55\x66\xa1\x0a\x3b\x40\x62\x25\x48\x50\x04\x29\x73\ +\xa7\x68\x4a\x14\x48\x89\xa0\x48\x69\x5a\x9a\xf6\x8c\xa7\x3b\x62\ +\x42\xee\xfe\xd0\xd3\x52\xc8\x3d\x16\x29\xd9\xb2\x6c\xb7\x3b\x34\ +\x5f\xc6\x9e\x09\x77\xcb\xee\xb0\x67\x2c\x87\xda\xd3\xb2\xd4\xf2\ +\xd2\x32\x49\x91\x20\x41\x8a\xa2\x4d\x82\x20\x05\x52\x14\x00\x12\ +\x20\x00\x62\x29\x6c\xb5\x66\x66\x65\xe5\xfe\xde\xbd\xf3\xe1\x6d\ +\xf7\xbe\x2c\xd0\xa4\x80\x82\x04\xa8\x2e\xa2\xa2\x32\x13\xb9\xd5\ +\x3b\xe7\x9e\xf3\x3f\xff\xb3\x5c\x58\x5c\x8b\x6b\x71\x2d\xae\xc5\ +\xb5\xb8\x16\xd7\xe2\x5a\x5c\x8b\x6b\x71\x2d\xae\xc5\xb5\xb8\x16\ +\xd7\xe2\x5a\x5c\xbf\x10\x4b\x5c\xaa\x0f\xfa\xca\x57\xbe\xa2\x82\ +\xdb\x5f\xfb\xda\xd7\xc4\xe2\xa5\xff\x05\x51\x80\x89\x89\x89\x50\ +\xf0\x7f\xf4\x47\x7f\x74\xde\xe7\x2d\x2a\xc5\x15\xa8\x00\xba\xf0\ +\x83\xa5\x50\xa0\xa2\x7b\xff\xf1\x3f\xfe\xa7\x45\x85\xb8\xd2\x15\ +\xa0\x5a\xad\x52\xa9\x54\x3c\xf1\x2b\x4f\x09\x44\xa8\x07\xde\x63\ +\xf8\x8f\xff\xf1\x1f\xff\xf1\xa2\x32\x5c\x69\x0a\xf0\xc8\x23\x8f\ +\x20\x84\x60\xf3\xe6\xcd\x6c\xd9\xb2\x85\xd1\x91\x11\x4a\x43\x43\ +\x2c\x19\x1e\xc6\x4e\x24\x50\x4a\x19\x16\x42\x28\x50\x0a\xfe\xe4\ +\x3f\xff\xc9\xbb\xbe\xff\xa2\x62\x5c\x46\x0a\x10\x5f\x85\x42\x81\ +\xf2\xd0\x10\xc5\xd2\x10\x1b\x36\xac\xe7\xba\xeb\xae\xa3\x5c\xa9\ +\x78\x92\x8f\xb9\x0a\xe5\x9b\x88\x40\x4f\xfe\xf4\x4f\xff\x74\x51\ +\x19\x2e\x17\x05\x50\x4a\xf1\xe8\xa3\x8f\x0e\xfc\x9f\x52\x4a\xfb\ +\xf1\x04\x6e\x5b\x16\x9b\xaf\xb9\x86\xdb\x6e\xbd\x95\x8d\x1b\x37\ +\x92\x48\x24\xbc\x2f\x29\x7c\x5d\x50\xfa\x6f\x89\x40\xf0\x67\x7f\ +\xf6\x67\x8b\xd6\xe1\xe7\x56\x01\xc6\xc7\x95\x02\x43\x01\x14\x80\ +\x54\x84\xff\x94\xf2\xef\xfb\x3b\x5d\x05\x8f\x43\xa5\x52\x61\xcb\ +\x96\x2d\xac\x5d\xbb\x96\x72\xb9\xcc\xe8\xc8\x28\xa5\xa1\x92\x66\ +\x15\x08\x35\x42\xfa\xbf\xff\xfc\xcf\xff\x7c\xd1\x65\xfc\xbc\x28\ +\xc0\xf8\xf8\xb8\x42\x57\x80\x60\xc7\x1b\xc2\x06\xa5\xa4\xaf\x18\ +\xd1\x6d\xdd\x3a\x80\x22\x91\xb0\x19\x2a\x0d\x91\x2b\x14\x58\xb9\ +\x62\x39\xd7\x5f\x7f\x03\xd7\x5e\xbb\x25\x54\x04\x03\x47\x84\x6e\ +\x04\x84\x52\x7c\xe3\x2f\xfe\x62\x51\x21\x7e\x16\x0a\x70\x6e\x7c\ +\x5c\x09\x14\x8f\x3e\xfa\x25\xbc\x8d\xaf\x10\x81\x70\x65\x64\x01\ +\x3c\x7f\xef\x09\x5b\xca\x48\xa0\x0a\x89\xf0\x0c\x04\x4a\x49\x0f\ +\x07\x48\x85\x24\x8a\x1a\x86\x2b\x15\x6e\xb9\xe5\x16\x6e\xb9\xf9\ +\x66\x86\xca\x15\x84\x05\x96\xb0\x3c\xb7\xa1\xe2\x58\xc2\x7b\xe1\ +\x37\xbf\xf9\xcd\x45\x65\xb8\x24\x0a\x70\x6e\x5c\x81\xe2\x4b\x5f\ +\xfa\x52\xb8\xa3\x01\xa4\x94\xde\x27\x4b\x90\x4a\x6a\x96\x40\x19\ +\x3b\x3a\xc4\x07\xbe\xf0\xa5\x8a\xac\x08\x10\x29\x91\x66\x5d\x36\ +\x6d\xda\xc4\xa6\x4d\x9b\x19\x1d\x1d\x61\x74\x64\x94\xe5\x2b\x96\ +\x91\x48\x24\xfd\xd7\x78\x1f\xaa\x10\xe1\x67\xfe\xe5\x7f\xf9\x2f\ +\xbf\xd0\x91\xc6\x02\x2b\xc0\x39\x45\x60\x01\x94\x27\xec\x50\x58\ +\xa8\x08\x0b\x84\x40\x10\x94\x94\x86\x02\x04\x3b\x3d\x50\x9a\xc0\ +\x7a\x98\xcf\xf1\x84\xe9\x29\x93\xbf\xdb\xa5\x24\x97\xcf\x53\x2c\ +\x16\x29\x16\x8b\x5c\x7b\xed\xb5\x7c\xf0\x83\x1f\x64\xc9\xf0\x70\ +\x68\x09\xa2\x78\x43\x98\x8a\xa5\xe0\x5b\xdf\xfa\xaf\xbf\x10\xca\ +\xb0\xc0\x0a\x70\x56\x29\x05\x5f\xfa\xd2\xa3\xfe\x4e\x8e\x04\x26\ +\x75\x4c\x60\x08\xd1\x73\x13\x52\xca\xc8\x62\x44\x4c\x11\x4a\x4a\ +\xdf\xac\x0b\x24\xbe\xc0\x75\xe5\xf2\xff\x5f\xf9\xd6\x42\x2a\x35\ +\xa0\x50\xd7\x6d\xbd\x8e\x3b\xef\xba\x93\x6b\xb7\x5c\x8b\x10\x02\ +\xdb\xb6\xb1\x2c\x2b\xc2\x29\x9e\xa3\x0a\x5f\xf7\x57\x7f\xf5\x57\ +\x57\xac\x75\x58\xd0\x3f\xe0\xec\xb9\x73\x0a\x3f\x0c\xd4\x01\x9d\ +\xe7\xe7\x55\xb8\x53\xa5\x0f\xd6\xa4\x06\x12\x03\xeb\x60\xb8\x03\ +\x1f\x03\xe8\xbc\x80\x0a\x84\x1c\x0a\x5a\x12\xde\x55\xd2\x50\xb4\ +\xc0\x9a\xe8\xa1\x67\xa5\x52\x66\xcb\x35\x5e\xa4\x51\xa9\x54\x58\ +\xbd\x7a\x15\xc3\x95\x25\x9a\x75\x08\xc1\x43\x08\x2c\xbf\xf3\xed\ +\x6f\x5f\x31\x2e\x63\x61\x15\xe0\xec\x59\xa5\x50\x3c\xfa\xc8\xa3\ +\xbe\x79\x57\x3e\xd3\xa7\xfc\x1d\x2b\x40\x2a\xcf\x2b\x87\x0a\xe0\ +\x0b\x4c\x28\x94\x1b\x89\x41\x86\xae\xc1\x17\xac\x81\xfe\x7d\x00\ +\xa9\x47\x16\xc1\xf3\x09\x5c\x86\x02\x09\x2e\xa1\xaf\x31\x22\x12\ +\xa5\x14\x89\x44\x82\x7c\x3e\x4f\x2e\x97\x63\xd5\xaa\xd5\xdc\x7c\ +\xcb\xcd\xdc\x78\xc3\x0d\x9a\xdb\xc2\x20\xa4\xbc\xef\xe9\xbd\xfe\ +\xaf\xbf\xfb\xd7\x97\xa5\x42\x2c\xac\x02\x9c\xf1\x14\xe0\x91\x47\ +\x1f\x9d\xc7\xdc\x2b\xd3\x2d\xa0\xed\x66\x5f\x58\x52\xc9\xf0\x42\ +\x87\x02\x97\x72\x20\x8c\x0c\xac\x8a\x09\x20\xa5\xef\x1a\x74\x90\ +\x48\xf8\x78\x64\x09\x54\x18\x29\x44\xdf\x45\x19\xd1\x48\xb9\x52\ +\xe6\xf6\xdb\x6e\xe7\xb6\xdb\x6e\x63\x78\xc9\x30\xb6\x65\x93\x48\ +\x26\xfd\x8b\xe7\xb9\x23\xdd\x5a\xa1\xe0\x6f\xfe\xf6\x6f\x2e\x0b\ +\x2b\xb1\xa0\x5f\xe4\xcc\x99\x33\x1e\x15\xfc\xc5\x47\x22\xbf\x8c\ +\x0a\x85\x18\x46\x04\x86\xe9\x8e\x61\x04\x9d\x38\xd2\xd9\xc3\x79\ +\x1e\xf7\xf4\x46\x13\xb0\x9c\x47\xb1\x42\x41\xfb\x06\x5e\xca\xc8\ +\x35\x05\x9f\x1d\x7c\x4f\xfd\x79\xda\x67\x6f\xda\xb4\x89\x0d\x1b\ +\x36\xb2\x74\xe9\x08\xab\x56\xad\x62\xcd\x9a\xb5\x24\x53\xc9\x90\ +\x94\x52\x5a\xb6\x33\x78\xef\x9d\x3b\x9f\xa6\xd5\x6a\xfd\xdc\x29\ +\xc4\xc2\x2a\xc0\xe9\x33\x9e\x05\x78\xe4\x11\x03\x03\x04\x02\x11\ +\x41\x68\xa7\x85\x73\xa1\x72\xc4\x76\xa7\x54\x9a\xe9\x8e\x5b\x8f\ +\xf8\x8e\xd6\x76\xbb\x10\x11\xb7\x10\xba\x88\xf3\xbc\x0e\x4d\xe0\ +\xf3\x83\x55\x8f\x82\x0e\x95\x08\xc8\x64\x32\xe4\xb3\x39\x8a\xa5\ +\x02\x37\x6c\xdb\xc6\xed\xb7\xdf\xce\xb2\xa5\xcb\x0c\x45\x08\xfe\ +\x6e\xd3\x7d\xc0\xf7\xfe\xfe\x7b\x3f\x73\x65\x58\xd0\x0f\x3b\x7d\ +\xfa\x74\x98\x0c\x32\x81\x9c\xe6\xbb\x35\x7f\xed\x59\x83\x40\xe0\ +\x81\xb0\x23\xc1\x85\x8a\x40\x84\x1f\x54\xa0\x10\x52\xe0\xa1\x09\ +\xcd\x3d\x18\x6c\xa3\xae\x18\x2a\xda\xe1\x3a\x09\x15\x7e\x8e\x6e\ +\x81\x22\x0c\xa1\x24\x9a\xe2\xea\x60\x54\x78\x8a\x2b\x08\xbf\xe7\ +\x75\x5b\xaf\xe3\xee\xbb\xef\x66\xf3\x35\x9b\x49\xa7\xd2\xa4\x53\ +\x69\xec\x84\x1d\xf0\x93\xc6\x6b\x41\xf1\xd8\x63\x8f\xfd\x4c\xac\ +\xc3\x82\x2b\x80\x42\xf1\xc8\x17\xbf\x88\x54\xf8\xac\x9e\xd4\x78\ +\x7c\xef\x42\x2b\xe9\x33\x7e\xe8\xa6\x5c\x13\x22\xd1\xee\x33\x94\ +\x47\x46\xe6\x59\x62\xfa\x77\x5c\x85\x14\xa6\xc9\xc7\x67\x17\x95\ +\x14\x28\xe1\x63\x84\x18\xef\x10\x85\x92\x1a\xf6\x08\xb8\x08\x5d\ +\xb1\x60\x1e\x97\xa4\xd3\xd8\x91\xb5\x2b\x57\xca\x6c\xda\xb4\x89\ +\x35\xab\xd6\xb0\x6c\xf9\x32\xd6\xaf\x5b\xcf\xe8\xb2\xd1\x30\x84\ +\x05\x15\x71\x1c\xca\x23\xab\x9e\x78\xe2\xfb\xac\x5f\xbf\x1e\x80\ +\x5f\xfb\xb5\x5f\x5b\x30\x39\x25\x16\x52\x01\x0c\x13\xa8\x74\xdf\ +\x18\x99\x50\x34\x81\x2b\x23\xc9\x63\x12\x33\x52\x49\x4f\x5b\x23\ +\x4f\xa0\xf9\x69\xfd\x35\xfe\x35\x15\x26\xb0\x8b\x38\x05\x3f\xe9\ +\x20\x31\x05\x49\xa4\x54\xcc\x03\x32\x55\xe8\x82\x88\x59\x15\x22\ +\x65\xf1\x77\x94\x77\x5f\x86\x11\xc2\xcc\xf4\x0c\x7b\xa6\xf7\xb0\ +\x5b\xed\xc6\xb6\x6c\xb2\xd9\x2c\xa9\x54\x9a\xf5\xeb\xaf\xe6\x8e\ +\x3b\xee\xe4\xd6\x5b\x6f\x45\xf7\x0d\x4a\xc1\x8e\x1d\x0f\x72\xf0\ +\xe0\x5b\x0b\xee\x02\x12\x0b\xfb\xf6\x2a\x56\xec\x21\x43\x65\x60\ +\x1e\x3f\x1f\x98\x70\x1d\xac\x45\xbe\x9b\x88\xed\x33\x84\x32\x18\ +\xff\xcf\xb7\x43\x75\x40\x06\xf1\xa4\x53\xa4\x58\x71\x85\x10\xa1\ +\xdb\xf1\x14\xc7\x54\xe2\x40\x13\x85\xa9\x30\xe1\xef\xc8\x8d\x08\ +\xff\x33\x1c\xd7\x61\x76\xb6\x01\xcc\x32\x39\x39\xc1\x9e\x3d\xaf\ +\x20\xa5\xa2\x52\x19\xe2\xce\x3b\xee\xe2\xd6\xdb\x6e\x61\xd3\xe6\ +\xcd\x06\xf7\xb0\x90\xcb\x5a\x58\xf1\x47\x48\x5f\x8f\xb9\xa5\x1f\ +\xa6\x19\x61\x57\x40\xe3\x2a\x35\x40\x02\x89\xd0\xe4\xeb\xcc\x60\ +\x20\x92\x40\x91\x84\x49\xda\xa8\xe8\x3d\x82\x9d\xef\xc3\x07\x2d\ +\x94\xd4\x00\x9a\xae\x28\x7e\x18\x8a\x12\x04\x14\x82\x0a\x3f\x43\ +\x85\x61\x66\xf8\x37\x61\x62\x0d\x8c\x5c\x05\x91\x4b\x0b\xc1\x0d\ +\x06\x90\x05\xc5\xcc\x4c\x8d\xc7\x1f\x7f\x8c\xaf\xfe\xf6\xef\x18\ +\x4a\x7c\x59\x5b\x00\x81\xbe\xab\xb4\x5a\x50\x08\x2f\x66\x70\x4d\ +\x44\x28\x24\x13\x9d\x87\xb2\x90\x0a\xe1\xef\x34\xa1\x81\x34\xcf\ +\xf4\xaa\x50\xca\xe1\x7b\x06\x5c\x02\x21\x2d\x18\x81\x4e\x8d\x40\ +\x32\x76\xbc\x6e\x3d\x84\xaf\x70\x03\x82\x55\x98\x46\x4c\x05\x54\ +\x00\xb8\x1e\x81\x15\xf1\x15\x22\x8c\x1a\x74\xc5\x55\x21\x0e\x8a\ +\x29\x15\x51\xb4\x70\xa9\xd6\x02\x63\x00\x7d\x37\x06\xec\x5b\xb4\ +\xe3\x42\xc0\x86\x44\xfa\xe0\x27\xbc\x98\xc6\x4e\xd1\x6e\xc7\xdf\ +\x5f\x31\x20\xc4\x90\x0b\x10\x0a\x21\x7d\x2b\x21\x23\xc1\xc7\x77\ +\xac\x91\x96\xc6\xc4\x2b\x2a\xe6\x12\xa4\x52\x08\x1f\xb9\x87\x40\ +\x4f\x44\x2c\xa7\x1e\x22\x12\x77\x2f\x3a\x8c\x08\x4d\xa4\x0c\x0b\ +\x62\x44\xc0\x41\x28\x2e\x99\x12\x24\x16\x18\x02\x98\x04\x90\xd2\ +\x2e\x38\x26\xd9\x12\x84\x7c\x7a\x22\x27\xac\x20\x46\x0d\x24\x78\ +\x84\xf1\xfe\x6a\x70\x97\xc5\x14\xc7\xf3\xdf\x42\xab\x39\x8c\x95\ +\xa8\x8b\xc0\x9f\x04\x56\x43\x7f\x0f\x15\x2a\x10\x3a\x26\x88\x29\ +\xd1\x20\xee\xc0\xf8\x2e\x4a\xc5\x68\x64\x2d\x2b\x69\xb8\x8e\x4b\ +\x27\xff\x05\xb6\x00\x11\xb6\x8e\xfd\xf1\x68\x66\x59\xbb\x90\x86\ +\x29\xd4\x12\xb6\x5a\xa1\x08\xa1\x12\x78\x48\x5f\x49\x2f\x4f\xe0\ +\xba\x2e\x42\x08\x84\x10\x21\x4b\x18\xc6\xd9\x7e\x86\x4f\x0f\xcf\ +\x50\x71\xf3\x1e\xb0\x81\x91\x62\x45\xff\xaf\xb3\x7a\x41\x3d\x01\ +\x28\x61\x82\x42\xf4\x74\x74\x50\xfc\x82\x96\xea\x26\x5e\xb5\xa4\ +\xb9\x9d\x20\x1b\x2a\xd5\xa5\xf4\x00\x0b\x6d\x01\xfc\x22\x8c\xf0\ +\x6f\x32\x59\x3e\xdd\x4d\xa8\x70\x97\xf9\x3e\x20\x16\x4b\x47\xbc\ +\x81\x76\x11\xa5\xc2\x71\x1c\x4e\x9f\x3e\x4d\xaf\xd7\xa3\x50\x2c\ +\x50\x2c\x16\xc9\xa4\x32\x9a\x27\x95\xda\x4e\xd7\xd8\x47\x4c\xe1\ +\x07\x98\x61\xbe\xd0\x52\xd7\x5c\xa9\xa2\x0a\x55\x25\x45\x10\x8f\ +\x1a\x0a\x1e\x52\xd0\x21\xfa\xd4\x2c\x62\x2c\xbc\x8d\x97\xaf\x09\ +\x2f\xe7\x7d\x85\x28\x40\x58\x79\x23\x8d\xf8\x5d\x05\xc4\x87\xd4\ +\xdd\x02\x06\x28\x1b\xdc\x85\x4a\xbb\x88\x91\xf9\x76\x1c\x97\x76\ +\xbb\x4d\x3e\x9f\xa7\x90\x2f\xd0\x6e\xb6\x98\x9e\x9a\x66\xa8\x5c\ +\x26\x93\x4e\x23\x84\xd0\x14\x2b\x20\x8c\x62\x35\x02\x7a\xd4\xa0\ +\xa7\xad\x95\x1e\x92\x6a\x69\xeb\x90\x2f\x50\xf3\xd2\xd6\x3a\xc8\ +\xd4\x43\x57\xdd\xba\xa1\x25\xc5\xfc\x27\x79\xc4\x95\x71\x25\x2e\ +\x73\x05\x90\x28\x84\x30\x3b\x7f\x42\x21\xea\xa1\xde\x7c\xbb\xc3\ +\x08\x1d\x34\xb0\x67\x30\x7e\x60\x59\x02\xa7\xdf\xa7\x50\x28\xb0\ +\x76\xed\x5a\x6e\xbf\xfd\x76\x5e\x7b\xed\x35\xf6\xef\xdf\x4f\xad\ +\x5a\xa5\x54\x2c\x92\x4a\xa7\xb1\x6c\x2b\xe6\x1a\x34\x07\xa5\x21\ +\x33\xfd\x3b\x0a\xad\x93\xc9\x27\x70\x35\xdf\x1e\x84\x82\x66\xf8\ +\x69\x58\x82\x38\xa0\xd7\x9c\xbb\xd4\xb8\x02\xa5\x7c\x9a\x54\xaf\ +\x8c\xba\x12\x30\x80\x98\x27\x87\xae\xe6\x61\x04\x03\xc4\xaf\x5f\ +\xa3\x90\xf0\xf1\xeb\x02\x54\x9c\x29\x04\x1c\xa7\x4f\xaf\xdf\xa3\ +\xef\x38\x64\x32\x19\x3a\x9d\x0e\xf5\x7a\x9d\xcf\x7e\xf6\xb3\x1c\ +\x3e\x7c\x84\x3d\x7b\x5e\x64\xff\xfe\x7d\x54\xab\x55\x72\xb9\x2c\ +\x99\x4c\xd6\x8c\x25\x34\x6b\x22\xa5\x57\x9b\x88\xb0\xb4\x30\x8d\ +\x30\x47\xa0\xd1\xfc\x5a\x6d\x22\xa6\x75\xd3\xd1\x4b\x9c\xc4\x12\ +\xca\x00\xa6\xa6\x7b\x51\x03\x24\xd6\x95\x11\x06\x1a\xd8\x28\x32\ +\xb1\x91\xff\x95\x1a\x3f\x10\xe4\xf0\x3d\xe0\x26\x88\x6a\xfc\x4c\ +\x76\x2d\xf2\xd1\xb5\x5a\x9d\xe9\x89\x71\xca\x89\x04\x73\xb3\xb3\ +\xdc\x7f\xff\xfd\x3c\xfb\xec\xb3\xac\x59\xb3\x86\x35\x6b\xd6\xd2\ +\x6c\xae\xa2\x5c\xfe\x00\x87\x0f\xbf\xc4\xdb\x6f\xef\x67\x62\x62\ +\x92\xf2\x50\x99\x4c\x36\x03\x08\x7a\xbd\x2e\xdd\x6e\x17\x29\x25\ +\x96\xb0\xb0\x13\x36\xb6\x65\x21\x2c\x2b\x2c\x11\x33\x12\x47\x9a\ +\x2b\x09\xb5\x27\x06\xf4\x88\xb1\x8f\x01\x03\x8a\x14\x46\xe8\x1b\ +\x67\x28\x95\xf4\xc2\x49\x62\x40\xf8\x32\xc7\x00\x18\xa1\x9d\x6e\ +\x0d\x74\x96\x4c\x11\x27\x58\xcc\x74\xad\x4e\xf0\x85\x17\x58\x2a\ +\x5a\xcd\x39\xb6\xe4\x72\x2c\x29\x14\x38\x91\x4c\xb2\x6e\xdd\x3a\ +\x96\x2d\x5b\xc6\xab\xaf\xbe\xca\xc7\x3e\x36\xca\xc4\xc4\x0a\xa6\ +\xa7\x37\x70\xc3\x0d\x37\x73\xd3\x4d\x6f\x70\xf4\xe8\x6e\x0e\x1e\ +\x3c\xc4\xc4\xc4\x44\x28\xdc\x35\x6b\xd6\x90\xcb\xe5\x68\xb7\xdb\ +\xd4\x6a\x35\x9a\xad\x16\x8e\xe3\x60\x09\x41\x3a\x93\x21\x9d\x4e\ +\x47\x2e\x48\x98\x25\xe6\x5e\x34\x20\x31\xcd\x89\xc9\x33\x20\x95\ +\x96\x58\xd2\x58\x47\x62\x2e\x40\x4f\x26\x5d\x31\x61\x60\x1c\x60\ +\xf9\xd9\x92\x50\xf8\xba\xd9\xd4\x5d\x41\x2c\x66\xd6\xb9\x03\x9d\ +\xa0\x71\x7a\x3d\x86\x33\x19\xda\xdd\x0e\xeb\xaf\xbb\x96\x4c\x26\ +\xc3\x86\x0d\x1b\xd9\xbb\xf7\x47\xcc\xce\xd6\x18\x1d\x55\x9c\x3e\ +\xed\xf2\xfc\xf3\x2b\x71\x9c\xd5\x8c\x8c\x6c\x63\xc3\x86\x27\x38\ +\x73\xe6\xff\xe3\xc6\x1b\x6f\xe4\x23\xf7\xde\xcb\x9a\xd5\xab\xb1\ +\x2d\x8b\x6c\x2e\x87\x10\x82\x5a\xad\xc6\xb1\x63\xc7\xd8\xb7\x6f\ +\x1f\x07\x0e\x1c\x60\x62\x62\x82\x6c\x26\x4b\x36\x97\xc5\x12\x96\ +\xef\xbb\xcf\x23\x44\xdd\xaf\x87\x14\xb0\xaf\x3b\xc2\xac\x84\x32\ +\x58\x21\x14\x52\xf3\x0a\xe2\x4a\xb2\x00\x51\xca\x57\xdb\xfd\x68\ +\xa4\x8d\x32\xc1\x8f\x54\x5e\x6a\x58\x4f\xbe\x98\xc4\x4a\x14\xfb\ +\xf7\xfb\x7d\xd2\x89\x04\xa7\x7b\x5d\x36\xae\x58\x89\xe3\xb8\x54\ +\xca\x65\x6a\xb5\x1a\xf5\x7a\x8d\x4a\xa5\xc7\x3d\xf7\x9c\xe5\x86\ +\x1b\x12\x9c\x1a\x2b\x33\x76\x6a\x14\xd7\x5d\xc1\xfa\xf5\xeb\xf9\ +\xd5\x5f\xfd\x55\x36\x6e\xda\x48\x2a\x99\x22\x61\xdb\x7e\x0c\x2e\ +\x59\xbe\x7c\x19\x1b\x37\x6e\xe2\xce\x3b\xef\x64\x6c\x6c\x8c\xbd\ +\x7b\xf7\xf2\xea\x2b\xaf\x30\x76\xea\x14\xb6\x6d\x93\x4e\xa7\x49\ +\x26\x92\x61\xfd\x62\x50\xe3\x68\xec\x7a\x35\x98\xa8\x42\x0d\x66\ +\x38\xf5\xdb\x66\x2e\x02\xd4\x15\xc1\x04\x6a\x35\xf7\x06\xeb\x17\ +\x24\x76\x84\x0a\x13\x3a\x42\xdb\x11\x2a\x88\xb7\xa5\x4f\x0b\xeb\ +\x96\xc0\x7f\xcc\x75\xfb\x88\x7e\x9f\x14\xd0\x76\x5d\xb2\x3e\x08\ +\x14\x96\xa0\xd7\xeb\x31\x3b\x3b\x8b\x65\x59\x9e\x7f\xb7\x9a\xac\ +\x5c\x55\xa3\x5c\x39\xcb\x9e\x3d\x6f\x30\x3c\x3c\xcc\xf2\xe5\xcb\ +\x41\x41\xaf\xd7\xa3\x0f\x5e\x07\xaa\xff\xcb\xb2\x2c\x86\x86\x86\ +\xbc\x8a\xe1\x2d\x5b\xf8\xf0\x3d\xf7\xf0\x57\xdf\xfe\x36\x2f\xbf\ +\xfc\x32\xad\x56\x0b\xcb\xb6\xc8\xe7\xf2\x08\xe1\xd5\x27\xc8\x58\ +\xd8\x67\xe4\x14\x34\x4e\x40\x12\xa3\x97\x55\x54\x07\x10\xba\xbb\ +\x20\x6b\x25\xae\x14\x0b\xa0\x5d\x14\x9d\xc0\x19\x60\xc1\x94\x96\ +\x2e\x0e\xf2\x06\x98\xc5\x21\x01\xfb\x86\x02\xd7\x95\xe0\xba\xb4\ +\xfa\x7d\xda\x40\xbb\xdd\xa6\xdb\xed\xd0\xef\xf7\x11\x42\xd0\x9c\ +\x9b\x23\x9d\x4e\x33\x37\x37\x87\xeb\x7a\x5c\xc1\xf4\xf4\x24\xb5\ +\xda\x21\x6e\xbc\xf1\x83\x24\x12\x09\xfa\xfd\xbe\x2f\xf4\xe8\x6a\ +\xeb\xb7\x11\x20\x10\xac\x58\xb1\x82\xad\x5b\xb7\xd2\x68\x34\xd8\ +\xb4\x69\x13\x8f\x3f\xfe\x04\xcd\x66\x93\x5c\x36\x17\x81\x42\x9d\ +\xd8\x0c\xef\x08\x2f\x39\x14\xfb\x3b\x0d\xc6\x50\x46\x40\x31\x60\ +\xa3\x75\xa5\xbf\xcc\x31\x00\x66\x2d\x7f\xe0\x03\x07\x2e\x8a\x0a\ +\xf3\x22\xa1\x3d\x18\x00\x81\x91\xf3\x97\xd2\x2b\x2c\x6d\x01\xaf\ +\x4a\x89\x2c\x97\xd9\xb7\x7f\x3f\xc5\x52\x91\x66\xb3\x85\x6d\xdb\ +\xbc\xfe\xc6\x1b\x64\x33\x19\x94\x52\xcc\xce\xce\x32\x37\x37\x47\ +\xb9\x5c\x66\xcd\x9a\xab\xd8\xb8\x71\x23\x52\xca\xb0\x1a\xc8\x93\ +\xb9\x08\x7f\xc7\x95\xc1\x71\x1d\x26\xa7\xa6\x58\xb1\x62\x05\x9f\ +\xf9\xcc\x67\xa8\x54\x2a\x7c\xe3\x1b\xdf\xa0\xd7\xef\x91\xb0\x13\ +\xe7\x69\x6b\x8b\x32\x50\x46\xd5\x11\x3a\x45\x1c\x77\x09\x11\x70\ +\x50\xe2\x8a\x50\x00\x83\xfc\x37\xf9\x80\x20\xec\xd1\xfe\x70\x23\ +\x0a\x40\x63\xe1\x90\x06\x6b\xa6\x94\xa2\xdd\x69\x93\xce\xe5\xb8\ +\xe1\xb6\xdb\xb8\xe9\xa6\x9b\x78\xfa\xe9\xa7\x79\xf1\xc5\xdd\x28\ +\x25\xa9\xd7\xeb\x64\xb3\x59\x72\xd9\x1c\x99\x4c\x8a\x15\xcb\x57\ +\xb0\x61\xc3\x7a\xf2\x85\x02\x99\x4c\x86\xe1\xe1\x61\x7a\xbd\x9e\ +\x2f\x60\xe5\xff\x16\x9a\x12\x78\x5a\x11\xdc\x6c\x36\x9b\x9c\x3c\ +\x79\x92\x0f\x5c\x7f\x3d\xae\xeb\x72\xd7\x5d\x77\xf1\xd6\x5b\x6f\ +\xf1\xc3\x1f\xbe\xc0\x50\xa9\x14\xe6\xbd\x3d\x3c\x20\x62\x7f\xa7\ +\x34\x6d\xa1\xf2\xf6\x7a\x84\x11\x04\x4a\xb9\x26\xfb\x28\x2e\x1d\ +\x13\x74\x89\xc2\x40\x06\x32\x80\x41\x01\x80\x96\x06\xd2\x76\x84\ +\xde\xab\x27\x0c\x72\x44\x2a\xcf\xff\xcf\xcc\x54\xb9\x71\xdb\x36\ +\x76\xec\xd8\x41\xb1\x58\x44\x4a\xc9\x4f\x7e\xb2\x8f\x72\xb9\xcc\ +\x87\x3f\xfc\x61\xca\xe5\x32\xb6\x9d\x60\x78\xb8\x42\x36\x9b\xc5\ +\x95\x12\xdb\xb2\xb0\x6d\x3b\x04\x90\x5e\x07\xb1\xc0\xb2\xe6\x77\ +\x01\xc1\xed\x53\xa7\xc6\x98\xad\xd7\x59\xb5\x6a\x15\xfd\x5e\x0f\ +\x84\xe0\x9e\x7b\xee\xe1\xd5\x57\x5f\xa5\xd7\xef\x91\x4a\x26\xc3\ +\x1c\x86\x42\x6a\x09\x1d\x85\x0a\xdb\x94\x55\xa4\xec\x01\x35\x4c\ +\x50\x05\x15\xd5\x46\xc4\x01\xe4\x65\xef\x02\x84\x50\x46\x2c\xac\ +\x57\x06\x07\x3b\xc5\xb2\x2c\x5c\xd7\x8d\x40\xa0\x90\x06\x2a\x36\ +\x62\x65\x14\x7d\xc7\xa5\xdf\xef\xb3\x79\xf3\x66\xf2\xf9\x3c\x52\ +\x4a\x36\x6f\xde\xcc\xfa\xf5\xeb\xc9\x64\x32\x48\xd7\x05\x21\x48\ +\x24\x6c\x94\x52\x74\xbb\x5d\x4f\x79\x2c\x8b\x5e\xaf\xe7\x95\x41\ +\x09\xcb\xb7\xf6\xda\xae\x9f\x47\x01\xa4\x94\x1c\x78\xf3\x4d\x0a\ +\x85\x02\x4b\x96\x2c\xa1\xe7\x63\x8c\x55\xab\x56\x72\xcd\x96\x6b\ +\x78\xe3\xf5\x37\xfc\x49\x26\x6a\x60\xac\x4d\xa8\xf2\x32\xea\x20\ +\x1a\xa8\x52\x1e\xa0\xa7\x35\xd2\xeb\xb2\xb7\x00\x46\x8f\xbe\x99\ +\x30\x09\x2e\xd8\x92\xb5\x6b\x48\x16\x86\x71\x3a\x0d\x9c\x46\x9d\ +\x5e\xb3\x45\xa7\xdb\xa5\xd7\xeb\x83\xeb\xc6\x88\x20\xef\x35\x49\ +\xdb\x26\x99\x48\x32\x36\x36\xc6\xb6\x6d\xdb\x48\x26\x53\x80\xc2\ +\xb2\x2c\xba\xdd\x5e\x88\xa0\x1c\xc7\xc1\xb2\xfc\xea\x23\xa5\xb0\ +\x6d\x1b\x84\xc0\x55\x0a\x25\x1d\x84\x25\x8c\xa6\x50\x5d\x13\x84\ +\x87\x00\x69\x34\x1a\x1c\x39\x72\x84\xcd\x9b\x36\x93\x4c\x26\x43\ +\x90\x29\x84\xc5\xb5\xd7\x5e\xcb\xde\x1f\xed\xf5\x19\x4b\x61\xd0\ +\xc0\x51\x65\x90\x8a\xed\x6e\x42\x65\x08\x72\x00\x46\x61\x8a\x9e\ +\xf6\xbe\x12\xd2\xc1\x46\xa2\xc7\x20\x4d\x3c\x71\x5e\xf3\xe1\x4f\ +\xd0\xb3\x7e\x99\x33\x87\x15\xd5\xce\x38\x2a\x7b\x9c\xdc\xc8\x3b\ +\x54\x92\x27\x71\x3b\x93\x8c\xbf\x73\x2c\x8c\x1a\x84\x00\xe9\x2a\ +\x84\x6d\xb3\x64\x74\x94\x97\x5f\xde\x83\xeb\xba\x7c\xf4\xa3\x1f\ +\x65\x78\x78\xd8\xe8\x28\xb6\x2c\x8b\x7e\xbf\x4f\xb7\xd7\x0d\x81\ +\x5a\xa7\xdb\xa1\xd7\xed\x91\x4c\x24\x48\xa5\x52\x08\xcb\x0a\x79\ +\xfe\x44\x22\x41\x3a\x99\xc2\xb2\x2d\x03\xc3\xbc\xf5\xe6\x9b\x34\ +\xe7\x9a\x6c\xd8\xb0\x01\xd7\x71\x43\xc5\x96\x52\xd1\x9c\x6b\x7a\ +\x96\xc5\x95\x08\x4f\xd3\x34\xec\xa2\x62\x03\x2a\x54\x54\xad\xac\ +\x13\x61\x92\x79\x13\x5e\x57\x44\x18\xa8\x57\xfb\x1a\x05\x13\x1a\ +\x33\xd8\xef\xc1\xf1\xa3\x59\x7a\xdd\x04\x6b\x3f\x50\xa1\x3d\xb7\ +\x85\x66\x5d\xe1\x26\x7b\xac\xfd\x60\x9d\xab\x6e\xf9\x01\x53\xc7\ +\xf7\x31\x57\x6d\x90\x48\x40\x67\x76\x86\x4e\x7d\x96\x54\x32\x49\ +\x32\x65\xf3\xf2\xcb\x2f\x33\x35\x39\xc9\x43\x0f\x3f\x4c\x2e\x9f\ +\x27\x61\x59\xcc\xce\xce\xd2\x68\x34\xb0\xa4\x24\x81\xa0\xdd\x69\ +\xd3\x6d\xb5\xc8\xa7\x53\x64\x93\x29\x6a\xbd\x1e\x9d\x6e\x17\x25\ +\x25\xe9\x74\x9a\x54\x3a\x0d\xa9\x14\xa4\x52\xa4\x0b\x05\x8a\xa5\ +\x12\xb9\x6c\x96\x4e\xbb\xcd\xfe\x03\x07\x58\xb5\x6a\x15\x95\x4a\ +\x05\xc7\x71\xc2\xb8\x7d\xff\xfe\xfd\xbc\xf2\xca\x2b\x9a\xdb\x18\ +\x44\xf4\x46\x4f\xa2\x20\x6a\x8a\x89\x91\x45\x51\x82\xc9\x4c\x28\ +\x5d\x01\x16\x80\x18\xd3\x15\x29\x7a\x00\x8e\x4f\xbc\xf2\x14\x57\ +\xdf\xd2\xc4\xed\xf7\xe8\xb6\x2c\x6e\x7a\xf8\x53\x1c\xdb\x5f\xe0\ +\xcd\xdd\x69\xbe\xfd\x87\xcb\x58\xb9\xfe\x93\x6c\xbc\xf1\x97\x19\ +\xbd\x56\x50\x1a\x2d\x51\x9f\xaa\x32\x37\x31\x46\xbf\xfd\x0e\x4b\ +\x7b\x6f\xb3\x6a\xcb\x18\x67\x4e\xbe\xcd\xf7\x1f\xff\xef\x7c\xf0\ +\xfa\x6d\x64\x85\x45\x52\x4a\x56\x96\xcb\x64\x6c\x1b\xe1\xba\x94\ +\x86\x86\x18\x5a\xb1\x02\xe9\xba\x74\xbb\x5d\x12\x40\x26\x99\x04\ +\x29\x69\xb4\x5a\xd4\x1a\x0d\x9a\xf5\x3a\xcd\x5e\x8f\x86\xeb\x32\ +\x93\x4e\x93\x5f\xb1\x82\x5a\xbb\xcd\xe4\xe4\x24\xb7\xde\x7a\x2b\ +\x89\x44\x02\x85\xa2\xdf\xeb\x73\xf4\xe8\x51\x9e\x79\xe6\x19\x4e\ +\x9f\x3e\x4d\x36\x9b\xf5\xc0\xa4\x8c\x91\x3c\x81\x90\x25\x46\xce\ +\x5f\x7b\x92\x91\x42\x26\xd6\xf2\x7e\x85\xb8\x00\xcc\xde\x3e\x2d\ +\xfe\x0d\x42\x9d\xb3\x87\x8f\x70\xe6\xd0\x61\x44\x32\x41\x71\xb8\ +\xc2\xf5\x1f\xbd\x95\xf6\xdc\x35\xb4\xe7\x60\xc3\x0d\x8a\x91\x55\ +\x19\x94\x1a\xe5\xd8\x81\x1e\xfd\x7e\x8a\x5c\x69\x19\x85\xf2\x2a\ +\x12\xa5\xdb\xb0\x13\x30\xbc\x71\x8e\x8d\x1f\x3a\xc5\x3f\xfe\xed\ +\xd7\x98\x3a\x7a\x84\xff\xe5\xee\xbb\x29\xe7\x0a\xb8\x8e\x43\x42\ +\x08\xd2\x89\x04\x4e\xaf\x87\xd3\xed\x7a\x15\x37\x42\xe0\x3a\x0e\ +\xb2\xdb\xc5\x75\x1c\x2a\x4a\x52\x49\xa5\x90\x42\xe0\xa4\x52\xb4\ +\x3a\x1d\xa6\x9b\x73\xbc\xf9\xea\xab\x3c\x7f\xe6\x0c\xab\x37\x6c\ +\x60\xf5\xea\xd5\x08\xe1\x31\x8c\xef\xbc\xf3\x0e\x4f\x3f\xfd\x34\ +\x27\x4e\x9c\x20\x93\xc9\x60\xdb\x89\xb0\xf1\x54\x99\x5b\xdf\x50\ +\x04\x39\x60\x15\x31\xcb\xd1\x62\x8d\x32\x4a\xa8\x2b\xc8\x05\x68\ +\xa3\x61\x74\xb4\x6c\x8c\x86\xe9\xf5\xa8\x8f\x8f\x73\xf0\x85\x17\ +\xc8\x97\x87\xb8\xed\x01\x49\x21\x3f\xc6\xa9\x37\x0f\x01\x0e\xcb\ +\x97\xf5\x29\x94\xf3\x8c\x1d\x3c\x47\xa7\x5e\x82\xcc\x7a\x1c\xae\ +\x66\xfa\xcc\x0a\xfa\xbd\xeb\xc0\xfe\x0a\xfb\x8f\xfe\x19\xb3\x5b\ +\x2d\xf2\xad\x29\x84\xdb\xa7\x27\x3d\x9a\x58\xba\x2e\xb8\x2e\x52\ +\xba\x28\xc7\x45\xb9\xde\x8f\x94\x12\xe9\x38\x28\x19\x3c\x26\x51\ +\xae\x4b\x45\xba\x58\xd3\xd3\x74\x27\x26\x28\x6e\xdb\x46\x3a\x9d\ +\xa6\xdb\xed\xb2\x7f\xff\x7e\x9e\x7f\xfe\x79\x8e\x1d\x3b\x46\xbe\ +\x50\x20\xe9\x47\x19\x03\xc9\x2b\x3f\xe1\x65\xba\xbf\xa8\xb7\x61\ +\xbe\xb4\xb1\xd1\x84\x7a\xc5\x80\x40\xf4\x84\x97\x96\x09\x0b\x19\ +\xbf\x28\x16\x0e\x10\xf3\x9b\xcf\x3d\xc5\xd5\xdb\xce\xd2\x6e\xcc\ +\x72\xe6\xed\xc3\xa8\xbe\x4b\xaf\xd3\xa6\xd7\xeb\x79\x48\x3e\x99\ +\x24\x61\x5b\xa4\x32\x59\x32\xf9\x3c\xcb\xaf\xbb\x9e\xe5\x9b\x3f\ +\xc2\xf4\xe4\xb5\xbc\x66\x7f\x8e\xbf\x3d\x36\xcd\x1d\xa3\x6f\xb2\ +\x2e\x77\x98\xf4\xf4\x3b\x48\x57\xe2\x3a\xca\x13\xae\x74\x91\x31\ +\x05\x08\x6f\xbb\xd1\xe3\x93\xdd\x2e\xaf\x4f\x4c\xb0\x35\x9d\xa6\ +\x38\x36\xc6\xa9\xb1\x31\x8e\x1c\x3d\xca\xee\xdd\xbb\x39\x7b\xf6\ +\x2c\xc5\x62\x11\xcb\xb2\x22\xf6\x52\x60\x60\x1b\xa3\xc4\x4d\x6b\ +\xfe\x90\xd2\x4c\x69\xeb\x05\x30\x22\x5e\x96\x2e\xae\x14\x0c\x20\ +\xcc\x24\x90\x40\xf8\x4d\xa0\x83\x63\xdc\x40\x31\x37\x35\xcd\xbe\ +\x67\x9f\x8b\x4d\x15\x8b\x0a\x30\x9c\x6e\x97\x3e\xd0\x6a\xb6\x60\ +\x6a\x8a\x33\xc7\x8f\x93\xdf\xf3\x12\xab\xaf\xdd\xc6\x9d\x1f\xdf\ +\xc1\xc4\xc4\x2f\xf1\xdf\xf7\xdf\x44\xfe\xcc\x19\x36\xce\x3d\xc7\ +\x86\xd2\x41\xca\xb5\x9f\x90\x72\x6a\x28\xa7\x87\x74\x5c\xa4\xeb\ +\x25\x9b\xa2\x9d\xef\x2b\x80\x74\xe9\xf7\x1d\xf6\xb4\xdb\xb4\xba\ +\x5d\xee\x58\xb2\x84\xf1\xe3\xc7\xf9\xee\xb7\xbe\xc5\x64\xad\x46\ +\xbb\xd3\xa1\x58\x28\x22\x6c\x2b\x04\x32\x46\x09\x79\x3c\xe1\x15\ +\x6d\xfc\x48\xdd\x63\x69\xee\xf9\x32\x84\x4a\xa8\x2b\xa8\x2c\xdc\ +\xf0\x89\xba\x3b\x20\x96\x25\x8c\x32\x83\xc4\x2e\x4c\x90\x52\x55\ +\xc1\x4c\x0e\x3f\x05\x17\x5c\xf4\xc6\xd4\x34\x6f\xbd\xf0\x2c\x93\ +\x6f\x1f\x60\xf3\x9d\x77\xb0\xe6\xa1\x5f\x42\xd9\x77\x72\xfa\xc7\ +\x9f\xe6\xec\x44\x8d\x62\xf5\x05\x46\x66\xf7\x50\x49\x9d\x23\xef\ +\x4e\x62\x37\xa7\x51\xcd\x1a\xa2\x3d\x8b\x90\x8e\x5f\x12\x26\x70\ +\x24\x1c\x92\x2e\x47\x5d\x87\xe5\x42\x30\x51\x9f\xe5\x27\xc9\x24\ +\xad\x25\x25\x72\xc3\x05\xf2\xaa\x48\xaf\xd9\xf5\x12\x51\x2a\x6a\ +\x2f\x13\xf3\x35\xb6\x6a\xb1\xbf\x31\xb4\xc2\xb0\x06\xca\x18\x7d\ +\xab\xf4\x62\xa3\x2b\xa6\x1e\x20\xa4\x39\xb5\xe2\x4b\xa3\x63\x20\ +\x72\x78\x32\x8e\x8c\x89\x3a\x6d\xc3\x52\x71\xa1\x55\xed\xfa\x1a\ +\x13\x58\xe0\x89\x33\x67\x99\xf8\xeb\xbf\xc1\x4a\x7c\x8f\xab\x3f\ +\x78\x3b\xe9\xe2\x16\x58\x7e\x23\xd5\x91\xcf\x70\xea\xdc\xa7\x49\ +\x34\xce\x31\xd4\x39\xca\x70\xff\x2d\x4a\xad\x43\xa4\x66\x4f\xa1\ +\x66\xc6\xa1\x3a\x49\xc2\xea\x33\x23\x67\xf9\x07\xb7\xc5\x14\x16\ +\xc9\x7c\x99\x73\x2b\x57\x92\xbb\xf1\x7f\xe6\xea\xcc\xbd\x24\xac\ +\x71\x70\x0f\xd1\xef\x1c\xa6\x33\x77\x9a\xd3\x6f\x1d\xf4\x49\x27\ +\x19\xf5\x1c\x84\x7f\xad\x6e\xe2\xa5\xd9\x0a\xa4\x57\x46\xc5\x5c\ +\x63\xb8\x05\x82\xea\xa3\x2b\x25\x19\x14\xf7\x8b\xe6\xf4\x0d\x69\ +\x96\x4a\x69\x9d\xc0\x3a\x7f\xae\xe2\x54\x6b\x0c\x54\xea\xcd\x1b\ +\x4e\xbf\xcf\xd1\x57\x5f\x24\x61\xbd\xc4\xc8\xca\x55\x6c\xfa\xd0\ +\x5d\x88\xab\x56\xd2\x9c\x5b\x49\x75\x66\x25\x87\x66\x6f\xa4\x37\ +\x5b\xc6\xee\x36\xc9\xb5\x4f\x92\x9a\x3a\x8c\x72\xbb\xbc\x53\x87\ +\x77\xc6\x7b\x08\xbb\xc6\x99\xd5\x7d\x6e\xfe\xe4\xf5\x5c\x73\xf3\ +\x87\x39\xfa\x7a\x9a\x64\xca\x42\xf1\x20\xd9\xbc\xc3\xd0\x68\x9d\ +\xea\xa9\x1f\x70\xee\x9d\x7f\x60\x66\xec\x10\x63\x87\x8f\x20\x3b\ +\x1d\xad\x6f\x61\x9e\x0a\x61\x62\xae\xc1\x00\x82\x3a\x5e\x88\xbb\ +\xc5\x2b\x01\x04\x2a\x8d\x0b\x88\xa5\x77\x55\xac\x4b\x48\x6f\xdc\ +\x9a\xb7\xcd\x4b\x45\xe5\xd8\xe1\x5c\x01\x65\xa2\x6a\x01\x48\xc7\ +\xa1\xab\x14\xa7\xde\x39\xc6\xa9\xa3\x47\x11\x89\x04\xf9\xe1\x25\ +\x94\x46\x96\x53\x1a\x5d\x45\x6e\xfd\x4a\x12\x99\x65\xb8\xac\xc4\ +\x51\xd7\x23\xdd\x25\x94\x0f\xff\x98\xff\x71\xeb\x4a\xda\x0d\xc1\ +\xf4\x99\x04\x33\xa7\x57\xf0\xc3\x77\xd2\x28\x29\xc8\x97\x14\x43\ +\x23\x82\xce\x5c\x92\xe3\x07\x46\xe8\xf7\x1e\xa6\x32\x7a\x17\x37\ +\x3d\x74\x8e\xab\xc6\xbe\xcf\x9b\x2f\x7c\x9f\xb3\xc7\x8e\x11\x51\ +\xfb\x2a\x66\xd9\xcc\x6e\xa0\x68\x08\x45\xac\x29\xc6\xac\xa2\xb8\ +\xfc\xa9\x60\x63\x1c\x8a\x46\x83\x1a\xa0\x28\x48\x83\xc7\x07\x39\ +\xe9\x56\x40\x13\xf4\x7c\x71\xb6\x9e\x3c\x93\x46\x28\xe5\xef\xb8\ +\xbe\x43\xfd\xdc\x39\xea\xe7\xce\xa2\xd4\x6b\x5e\x44\x91\x4a\x53\ +\x1a\x19\x65\x74\xf5\x4a\xca\x23\xc3\xc8\xfa\xdb\x9c\xfc\x51\x91\ +\x54\xbe\x48\x3a\x91\xa2\xb4\x74\x2d\xe9\xc2\x2a\x5c\x67\x25\xc9\ +\xdc\x2f\xd1\x6a\x94\x28\x55\x04\x37\x7c\x58\x91\x48\xa6\x78\xfd\ +\xd9\x15\xbc\xba\x73\x25\x2b\x37\xde\xc0\x47\xff\xf5\xa7\xa9\x9f\ +\x7b\x86\xf1\x13\x07\x39\x7b\xe4\x10\xa7\x0f\xbd\x4d\xbf\xdb\x35\ +\x33\x7b\x46\x2f\x61\x90\xfe\x15\x68\x10\x32\xa4\x86\xc5\x95\x41\ +\x05\x7b\x35\x2e\x42\x99\x43\x1e\x8c\xae\x5e\xdf\x0d\xe8\x2d\x7b\ +\x04\x3d\x77\x0a\xad\x1e\x80\x58\xbb\x98\x4f\x96\xc4\xa8\x55\x25\ +\xf4\x72\x6d\x39\x60\x79\x74\x9c\xe1\x74\x3b\x4c\x9f\x3a\xc9\xf4\ +\xd8\x89\x70\x3c\x8d\x25\x6c\x5c\xc7\x31\x76\x60\xb6\x34\xcc\x35\ +\x77\xde\x4f\x69\xe9\x9d\xb4\xe7\xee\xe2\x07\xdf\xaa\x60\xd9\x30\ +\x57\x03\xe9\xc2\xde\x9d\x49\xf6\xfd\xf0\x3a\x36\xdf\xb2\x91\x91\ +\x95\xb3\x6c\xba\x79\x92\x89\x13\x4f\x72\xec\xc7\xcf\x32\x75\xe2\ +\x24\x93\x67\xce\xc4\xe6\x1a\x46\xcc\xb8\xc0\x8d\xfa\x0c\xd0\xf0\ +\x91\xbc\x22\x14\xc0\x2b\x90\x08\xc7\xb8\x62\x0e\x6a\xd2\xc1\xa1\ +\x1a\xd8\x25\xc1\x90\xe8\x20\x9b\xa7\xbd\x87\x54\x66\x3e\x5d\x6a\ +\xbb\x48\x0e\x4e\x15\xd1\x07\x4d\x33\xef\x7c\x9f\x88\x9a\x73\xa5\ +\x63\x4e\x0a\x51\x8a\xb9\xea\x24\x6f\xec\xfc\x6f\x14\xcb\x4f\xb1\ +\xf5\x9e\x7b\xb8\xee\xb6\x3b\xe8\xf5\xee\x65\xef\x33\xa3\x14\x2b\ +\x8a\xff\xe1\xff\x96\xcc\x4e\x1e\xe7\xe8\xeb\xa7\x99\x39\xbb\x82\ +\xf1\x13\x1b\x10\xd6\x17\xd8\x78\xeb\xbf\xe0\xe6\x07\x7f\xcc\xeb\ +\x3b\xff\x84\xb7\x5f\x79\x85\x76\xb3\x15\x6b\x70\xf1\x6b\x08\xe6\ +\x4b\x94\x5d\x09\x20\xd0\x28\x6f\x0e\x26\x84\x87\xa2\x0b\x06\x43\ +\x61\x0a\x25\x94\x9a\x4e\xae\xcb\xd8\x73\xe2\xad\x63\x72\xb0\xdb\ +\x48\x2b\xcb\x32\xaa\x6e\x07\xc6\xc5\x62\xa6\x6a\x89\x0f\x8a\xf2\ +\x6b\x10\xfa\x3d\x66\x26\xa6\xf8\xe1\x7f\xfb\x2e\x56\xe2\xef\xd8\ +\xf6\xd1\x4f\x70\xc7\x43\xff\x8a\xf1\x93\x37\x52\x9f\x00\xa1\x5e\ +\xe6\xc0\x0f\xbf\x4e\x69\x74\x25\x9b\x6e\xbe\x9f\xca\x8a\x8f\x32\ +\x7d\x66\x1d\xc7\xdf\xbc\x8f\xcd\xb7\x2e\xa7\xb2\xf2\xff\xe5\xf9\ +\x6f\xfd\x65\x38\x52\x26\xf6\xe1\x03\x43\x2c\x2e\x55\x4d\xd8\xc2\ +\x77\x06\x29\xf8\xf4\xa7\x3f\xcd\xd4\xd4\x14\x27\x4e\x9c\xe4\xc4\ +\x89\xe3\xf4\xfb\x7d\xc3\x0a\x08\x4c\x8b\x20\xf5\x14\x72\xcc\x75\ +\x98\xfd\x83\xca\xa8\xa5\x8b\xcf\xff\x33\xe6\x02\x0d\xb8\x85\xc0\ +\x06\x0f\xb6\x65\x85\x13\x48\x30\x53\xba\x81\xfb\x70\xfb\x7d\xf6\ +\x3d\xf7\x04\xcd\xe9\x93\xdc\xf1\xcf\x7f\x93\xfc\xd0\xb5\x9c\x7b\ +\x67\x9a\x89\x13\x87\x19\x3f\xfe\x36\xc7\x7f\xfc\x22\xa3\x6b\xfe\ +\x1f\xae\xbb\xe7\x13\x5c\xbd\xf5\xb3\x74\x9a\xd7\xf3\x91\x7f\xf1\ +\x79\x0e\xef\xdd\xcd\xc9\x37\xdf\x36\x6a\x81\xe2\x80\x58\xe7\x15\ +\xae\x80\x28\xc0\xfb\x43\xee\xbd\xf7\x5e\x20\xaa\xdc\x9d\x9d\x6d\ +\xb0\x77\xef\x5e\xf6\xbc\xbc\x87\xa9\xe9\x29\x6d\xe0\x42\x04\x0e\ +\x15\xe6\xc0\x84\x38\x75\xaa\x34\x82\x28\x60\x02\x74\x05\x30\xc7\ +\xc8\x6a\x98\x14\x4c\xa5\x92\xb1\xe1\x0c\x7a\xf9\x16\x18\x63\x6c\ +\xf4\xef\xd2\xed\x76\x79\x6b\xcf\xab\xb4\x67\x7f\x8b\x95\x5b\xae\ +\xe1\xe4\x5b\x87\xc2\xef\xd8\xef\xf5\x38\x75\xe4\x28\xe3\x27\xff\ +\x33\x5b\xef\x7e\x8b\x91\xab\xee\xe0\xed\x3d\x49\x9a\xb5\x06\x41\ +\xab\x88\x52\x26\x19\x26\x83\xf9\x45\x46\x58\x7b\x29\x58\x9a\x05\ +\x5e\x07\x0e\x1c\x50\x03\x1d\xbf\xda\xee\x02\xd8\xbf\x7f\x3f\xbb\ +\x77\xef\xe6\xc8\x91\xa3\x74\xbb\x1d\xda\x6d\x8f\xfb\x0f\xa2\x88\ +\x70\x38\xa4\x9a\xaf\xfa\x36\x62\xe4\xbc\x08\xc3\x9c\x16\x6e\x56\ +\xec\x46\x03\x21\x85\xc6\x43\xc4\x47\xd9\x9b\x25\x5b\x66\x95\x8e\ +\xd1\xea\x2d\x7d\x62\x4a\x7a\xa5\x6f\xae\x3b\xc8\x6c\x02\x5e\x25\ +\x92\x25\xe8\xb5\x3b\xe6\xfc\xc1\xd8\x1c\xa3\x40\xf0\x7f\xff\xd8\ +\xdf\x83\x82\xb3\x67\xcf\x02\x97\xf1\x9c\x40\x80\xad\x5b\xb7\x86\ +\x5f\x7e\xff\xbe\x7d\xca\xec\xa1\xf7\xae\xea\xd6\xad\x5b\xb9\x6e\ +\xeb\x75\xa0\x60\x66\x66\x86\x63\xc7\x8e\x71\xee\xec\x59\xce\x9c\ +\x3d\xcb\xe1\xc3\x87\x99\x9c\x9c\x34\x84\x34\x40\xa2\x68\xec\xa2\ +\x8a\x99\x7f\xc5\x60\x08\x16\x9f\x0c\xa2\xe6\x19\xd7\xa2\x94\xb9\ +\x13\x07\x9a\x39\x63\x73\x0b\x82\x7c\x85\xd1\x2e\xe6\x1b\x7a\xb7\ +\xe7\x6a\xc8\xc7\x1f\x19\xe7\xef\xfa\x60\x84\x9c\xee\xf6\xf4\x8a\ +\xa1\x2b\x80\x0a\x8e\xd6\xf5\x1f\xf8\x80\x78\xe8\xe1\x87\xc5\xe8\ +\xc8\x88\x35\x3d\x35\xf5\x3f\xd9\x89\xc4\x7f\xfa\xdd\xdf\xfd\xdd\ +\x8a\xae\x14\x95\x4a\x85\x4a\xb9\x02\x37\x29\xfa\x8e\x43\xb7\xd7\ +\xf3\xf2\xf0\x47\x8f\xf2\xe2\x8b\x2f\xf2\xda\x6b\xaf\xc5\x84\xaf\ +\x62\x67\x02\xc4\x46\xc9\x05\x43\xa3\xe2\x85\x17\xfa\x34\x10\xe6\ +\x2b\xc6\x30\x23\x0a\xa1\xfb\xe9\xd8\x5c\x81\x81\xd6\x6f\xa9\x83\ +\xc9\xd8\x1c\x04\x7f\x3c\xbe\x5e\x20\x12\x1e\x9b\x23\x2e\x7d\x7b\ +\xf8\x25\x1b\x4c\xfc\xe0\x8e\x1d\x69\xcb\xb6\x8b\x96\x6d\xff\x8a\ +\x6d\x89\x3f\xb4\x2c\x3b\x2d\x84\x30\x88\xa0\xaf\xfc\xf6\x57\x62\ +\x7c\xf9\x3c\x93\xc6\x80\xe9\xe9\x69\xf6\xec\xd9\xc3\xde\xd7\xf6\ +\x52\xab\xd6\x98\x9b\x6b\xd2\x6c\xcd\xcd\x33\x19\xd4\x3c\x67\xc8\ +\x9c\x0a\xae\x87\x99\x9a\x22\xf8\x98\x40\x12\x3f\xa5\x24\x06\x4a\ +\x03\xce\xc1\x1f\x0d\x17\x8c\xab\x0f\x86\x53\x0f\x00\x53\xad\x16\ +\xc0\x98\x99\xac\x75\x15\x07\x16\xe1\xf1\xc7\x1e\x43\x29\x18\x1f\ +\x3f\xb7\xe0\x2e\x60\xc1\xde\xf8\xc1\x07\x1f\xb4\x9e\x78\xe2\x09\ +\xf9\xb1\xfb\x3f\x96\x49\x67\xd3\x1b\x2c\x61\x7d\x5a\x08\xf1\x5b\ +\x89\x84\x9d\x1e\x00\x64\xb1\xfe\x7a\x1d\xc5\x7f\xf5\xab\xbf\x63\ +\x4e\xdb\xd6\x95\x41\x41\xbf\xef\x30\x36\x76\x92\xb1\xb1\x31\x26\ +\x26\x26\x38\x7c\xf8\x08\x87\xde\x3e\x84\xd3\xef\x9b\xd3\xc1\xc3\ +\x5a\x04\x65\xe4\x15\xc2\xbc\x84\x9a\xbf\x50\xc3\x3c\xe9\xc4\xdb\ +\xde\xba\x52\x79\xd6\x21\x88\x48\xa4\x1f\xd7\x9b\x13\xcd\x8d\x4c\ +\xa0\x6f\x01\xcc\x01\x12\x26\xae\x79\xfc\xb1\xc7\x51\x42\x31\x7e\ +\x6e\xfc\xf2\x53\x80\x1d\x0f\x3e\x68\x7d\xff\x89\x27\x24\xc0\x43\ +\x0f\x3d\xf4\x11\xcb\xb6\x1e\x12\x42\x7c\xd6\xb2\xec\x21\x4b\x0c\ +\xf6\x3b\x18\xc4\x47\x0c\xe4\x85\x93\xb9\xb5\xb9\xff\xbf\xf7\x7b\ +\xbf\x37\x30\x46\x26\x48\x9e\x49\xe5\x35\x7c\x38\x8e\x43\xad\x56\ +\x63\xcf\x2b\x7b\x78\xe1\x87\x2f\x30\x3e\x3e\x6e\x9c\x47\x10\x27\ +\xa0\xce\x2f\x0c\xf3\x0c\x83\xf0\xd4\x13\x21\xcd\xb9\x83\xc6\xe9\ +\x66\xb1\x33\x0f\x95\x34\x7a\x1b\x65\xec\xc4\xb3\xf0\xb0\x0b\x3f\ +\x93\x28\xa5\xe2\xf1\x27\x1e\x07\x05\xe3\xe3\x97\x91\x02\xec\xd8\ +\xb1\xa3\xf4\xfd\xef\x7f\x7f\xd6\xdf\xfd\x9f\x4b\x24\xed\x5b\xc0\ +\xfa\xb8\x25\xc4\x52\x61\xe9\xd3\x31\x82\xe4\xad\x60\xa0\x5d\xcc\ +\x20\x85\x74\x74\x1e\x67\x11\x65\x78\xff\xf7\x7f\xff\x3f\x18\xee\ +\xe1\x7c\xd6\x62\xff\xbe\xfd\xec\xde\xfd\x12\x47\x8e\xbc\x43\xb3\ +\x39\x47\x7d\xb6\x4e\xcf\xef\x21\xd0\x4d\x73\x5c\x11\x02\xa1\xa3\ +\x09\x2b\x1a\xe9\xe6\x1d\x5f\x1b\x76\x03\xcd\xc7\x55\x48\x73\xc8\ +\xa4\xd2\x18\x49\xa5\xd7\x48\x68\x7c\xc6\x63\x8f\x3f\x0e\x4a\x85\ +\x83\x2c\x7e\xae\x15\xe0\x81\x8f\x3f\x90\x7e\xf2\xa9\x27\xbb\x00\ +\x0f\x3c\xb8\xe3\xcb\x09\xcb\xbe\xdf\xb2\xac\xdb\x10\x22\xe7\x57\ +\x4b\x63\x36\xbb\x46\x82\x1f\x88\xeb\x95\x99\x23\x1f\x44\xe8\xe6\ +\xf8\x56\xa9\x14\x96\xb0\x58\xbf\x7e\x1d\x37\xdd\x74\x53\x18\x72\ +\x5d\x77\xdd\x75\xd1\xf4\x6e\xc5\xc0\x6c\x9e\x99\x6a\x95\x93\x27\ +\x4e\x30\x31\x31\xc1\x89\x13\x27\xd8\xb7\x6f\x1f\xe7\xce\x9e\x8d\ +\x46\xd5\xc6\x72\x08\x11\x8f\x10\x2b\xec\x50\xca\x18\x71\x6f\x60\ +\x88\xf8\x79\x08\x21\xa1\xe4\xbd\xf7\x60\x16\x33\xca\x85\x3e\xf6\ +\xd8\xe3\x00\x4c\x4c\x2c\xbc\x05\xb8\xe0\x28\xe0\xc9\xa7\x9e\xec\ +\x3e\xf0\xc0\x8e\xaf\xd9\xb6\xf5\xcf\x2d\x21\x56\x29\x21\xb2\x21\ +\xda\x16\x42\x4b\xf1\x9a\xc9\x5e\xa1\xcf\x0f\x8c\x27\x42\x94\xd9\ +\x51\xa4\x57\xcc\x18\x42\x51\x8a\xab\xd6\xaf\xe5\xe6\x9b\x6f\x36\ +\xbe\xd3\x9b\x6f\xbe\x89\xe5\xf7\x01\xda\xb6\xcd\xd5\x57\x5f\x15\ +\x0d\x79\x12\x50\x29\x97\xa9\x94\xcb\xfe\x00\x4a\x07\xa7\xef\xe0\ +\xb8\x2e\x07\x0f\x1d\xe2\x07\xcf\x3d\xc7\x2b\x7b\xf6\xd0\x97\x32\ +\xa2\xb2\x85\x76\x68\x84\xe6\x9a\x54\x6c\x64\x89\x32\xc0\xa5\x39\ +\x22\x46\x60\x16\x7e\x28\x19\xab\x81\x18\xa0\xd0\x2e\x4d\x36\xe8\ +\xa7\x56\x80\xfb\xef\xdf\x9e\xb3\xac\xc4\x57\x2c\xcb\xfa\xbc\x10\ +\xa2\x00\x4a\x44\xa6\x5a\x44\x47\xb7\x0a\xbf\x63\x56\x68\x85\x2e\ +\x42\xab\x97\x0b\x2a\x7c\x84\x32\x98\x30\xfd\xa2\xea\x79\xf3\x78\ +\x76\xef\xfa\xeb\xaf\x9f\xdf\xb4\x09\xc2\xc9\xa1\xa7\x4e\x9d\xc6\ +\xb2\x6c\x6c\xdb\x62\x74\x74\xd4\x28\xcd\xb6\x84\x4d\x32\x65\x91\ +\x54\x8a\x1b\xb7\x6d\xe3\xc6\x6d\xdb\x00\x45\xb5\x5a\xe3\xa5\x97\ +\x5e\xe2\xb5\xd7\x5f\x63\x7a\x6a\xda\x9b\x3a\x32\x5b\x37\x69\x5b\ +\x06\xcf\x1b\x08\xb2\xa0\x03\x38\x45\x19\xa1\x4d\x30\x46\x7a\x7e\ +\xd2\xd7\x63\x96\x7e\xfe\x14\xe0\xde\x7b\xef\x4d\x25\x93\xc9\x11\ +\xa5\xd4\xbf\x11\x42\xfc\x76\xf8\x25\x55\x34\xd1\x17\xa2\x59\x4a\ +\xe1\x8c\x40\xed\x39\xfa\x00\x48\xb4\x23\x5c\x91\xf3\x4c\x0e\x8d\ +\x03\xb0\xa0\xdf\x5e\x8b\x13\xb3\xd9\xec\xbb\x7a\x37\x41\x30\xf5\ +\x43\x20\x2c\x41\xb5\x5a\x0d\x27\x87\x48\x29\x71\xfd\xd2\xf0\xd1\ +\xe0\x9c\x1f\xff\xbd\xcb\xe5\x21\x1e\x78\x60\x07\x0f\x3c\xf0\x00\ +\xae\xe3\x30\x76\xfa\x14\x67\xce\x9c\x65\xfc\xdc\x38\xfb\xf7\xed\ +\xe3\x27\xfb\x7e\x12\x56\x2a\x2b\x83\xd1\x13\xf3\x9f\x2a\x12\xd2\ +\xd2\xda\x7c\x00\xa9\x38\xef\x2c\x88\x9f\xb7\xee\xe0\xed\xdb\xb7\ +\xdf\xa6\x94\x7a\x50\x4a\xf9\xd5\x60\x67\x05\xb1\x6b\xa0\x07\x02\ +\xbc\xf4\xaf\xaf\x01\xc2\xff\xbf\xf0\xc2\x10\x24\x7f\x44\x34\x40\ +\x01\xcc\xe2\x8d\xf8\x29\xe0\xa1\x9f\x15\xc6\xf0\xa5\x60\x4d\x4e\ +\x4e\xb2\x6c\xd9\xb2\xf9\x13\x51\xc4\xa6\x73\x23\x10\x08\x2c\x21\ +\x10\xb6\x1d\x81\x4d\x21\x38\x77\xee\x2c\x8e\xe3\xe0\xba\x2e\x6b\ +\xd6\xae\xd1\x72\x19\x0a\xcb\xb6\xb9\x6a\xed\x55\xac\x5d\x7b\x15\ +\x4a\x4a\x1e\xfc\xc4\x0e\x94\xab\xa8\xd6\x6a\xfc\xe3\x3f\xfe\x03\ +\xcf\x3e\xfb\x2c\xa7\x4e\x9d\xd2\xe9\xbc\xf3\x14\xad\xa8\xd0\xe2\ +\xbd\x5b\x0f\x68\x7c\x1e\xe2\xcf\x8b\x05\x78\x39\x9b\xcd\xd2\x98\ +\x9b\x43\x08\x48\xd8\x36\x42\x04\xf3\xf4\x22\x73\xe5\x85\x73\xc2\ +\xb7\x07\xc2\x38\x42\x4d\x08\x34\x54\x6d\x86\x81\x88\x58\x99\x98\ +\x1e\x16\xbe\x8b\xaf\x7c\xfd\xf5\xd7\xd9\xbe\x7d\xbb\xdf\xa2\xad\ +\xa7\xa2\x35\x4b\x23\x15\x58\xc1\x7b\x78\xa3\xe9\x55\xac\x31\xc5\ +\x73\x1b\x9e\x82\x9c\x38\x76\x42\x3b\x99\x04\xae\xbe\xea\x2a\xe3\ +\x39\xb6\x65\x83\x05\x23\x23\x4b\xf8\xd4\x27\x3f\xc5\xa7\x3e\xf9\ +\xc9\x30\xd2\x78\xf9\xe5\x97\x39\xfa\xce\x51\xaa\xd5\x1a\x53\x53\ +\x93\x74\xfc\x5a\x41\x63\xfa\xe7\x25\xec\xff\xbf\x98\x0a\xa0\x1e\ +\x7c\xf0\x41\x31\x39\x35\x49\xbd\x56\x67\xfc\xdc\x39\xc6\x27\x26\ +\x68\xb7\xdb\x58\x3e\xd8\xf2\x86\x2c\x0a\x2c\x84\xd6\x2d\xed\x0d\ +\x49\x30\xce\xfb\x21\x1a\xc3\xaa\xab\x7d\xbc\x5a\x46\x3f\xdd\xf3\ +\xbc\x61\x8c\x10\xec\xde\xbd\x9b\xbb\xef\xbe\xdb\x78\xdc\x9b\x36\ +\x26\xfc\xc3\xaa\x24\x42\x4a\x5f\xc0\xc1\x68\x56\xaf\xf7\x5f\xea\ +\x65\xea\xbe\x19\x8b\x7f\xe2\xf1\x13\x27\xc2\xdb\xd5\x6a\x95\xa7\ +\x9e\x7a\x8a\x2f\x3d\xfa\xa8\xef\xe6\xa2\x54\xfe\xf5\xd7\x6f\x65\ +\xeb\xf5\x5b\x41\xeb\xd9\x53\xbf\x00\x00\x13\x02\x49\x44\x41\x54\ +\x41\xb5\x5e\xe5\xcc\xe9\x33\x4c\x4c\x4c\x72\xe4\xc8\x61\x7e\xf4\ +\xa3\x1f\x31\x36\x36\x66\x28\xff\x79\x2f\xf4\x25\x54\x0e\xf1\x3e\ +\x5c\x80\xfc\xed\xaf\x7e\x55\xf4\x7b\x7d\x3a\x9d\x36\x0d\xbf\x03\ +\xb7\x31\x37\xc7\xd9\xb3\x67\x19\x1b\x1b\xf3\x09\x17\xe5\xa3\xef\ +\x84\xe7\x77\xb5\x11\xee\xe7\x9d\x7f\xa7\x11\x41\x66\x4c\xff\xde\ +\x2f\x44\xb1\x58\xe4\xae\xbb\xee\xa2\x52\xa9\x18\x59\x38\xdb\xb2\ +\xb1\x6c\x2b\x3c\x20\xda\xb2\xac\xf0\x3b\x49\xff\xd8\x39\x29\x25\ +\xd2\x75\x71\xa5\x8b\xeb\xb8\xb8\xae\x7b\x5e\xa5\x93\x52\xf2\x9d\ +\xef\x7c\x67\xe0\xf1\x47\xbe\xf8\xc5\x30\xca\x20\x86\x63\xa4\xff\ +\x19\xae\x2b\x39\x70\xe0\x00\xcf\x3c\xfd\x34\xbb\x77\xef\xf6\x32\ +\x9e\xf3\xac\xef\x7d\xef\x7b\x28\xa5\x98\x9e\x9e\xfe\xf9\x0a\x03\ +\xfb\xbd\x1e\xfd\x7e\x1f\xdb\xb6\x29\x57\x2a\x54\x86\x2b\x48\xa9\ +\x58\xbf\x7e\x03\xdd\x6e\x9b\x6e\xb7\x4b\xb5\xea\x0d\x5a\x3c\x7e\ +\xfc\x78\x08\xb8\x82\x8b\x1f\x62\x87\x81\x8a\x01\xd0\x27\x25\xfe\ +\x34\xfa\xdf\x68\x34\x78\xe1\x85\x17\x58\xbb\x76\x2d\x1b\x36\x6c\ +\xa0\x54\x2a\x79\x44\x8d\x3f\x2d\x5c\xe8\xa3\x5a\x02\xa5\x0c\xce\ +\x0b\x94\xde\x59\xc4\x4a\xaa\x81\x53\x49\xe6\xfb\x9c\xf9\xd6\xff\ +\xf9\x07\x7f\x10\xde\xfe\xdf\xfe\xed\xbf\x25\x9b\x49\x6b\x23\xea\ +\x3d\xb7\x61\x09\x9b\x1b\xb7\x6d\x63\xdb\x0d\x37\x80\x80\xea\x4c\ +\x95\x57\x5e\x79\x85\xd7\x5f\x7f\x9d\xa9\xa9\x29\xa6\xa6\xa6\x98\ +\x9e\x9e\x1e\x50\xfc\xed\xdb\xb7\xff\x2e\x30\x06\xbc\xb1\x6b\xd7\ +\xae\xbd\xfe\x63\xd6\xae\x5d\xbb\xe4\x25\xb5\x00\x8f\x3e\xfa\x88\ +\xe8\xf7\xbc\x82\xc9\x6a\xb5\xea\xf7\xc8\xd9\x51\x21\xa6\xf4\x08\ +\x10\xe9\x3a\xb8\xae\xa2\xd3\xeb\x70\xe6\xcc\x19\x8e\x1e\x39\xca\ +\xc9\x93\x27\xe9\x76\xbb\xf3\x28\xc2\xc5\x9f\x89\xb6\x6a\xd5\x2a\ +\xae\xbe\xfa\x6a\x46\x47\x47\xc9\x65\x73\x58\xb6\x4d\xc2\xf6\x66\ +\x00\x0b\x2f\x3e\x34\x14\x42\x2a\x15\x46\x05\xfa\xf4\xb0\xf8\x72\ +\x5d\x97\x97\x5e\x7a\xc9\x03\x7c\x3f\xc5\xfa\xf5\x5f\xff\x82\x16\ +\x42\x46\x16\x51\x01\x4e\xdf\x61\xfc\x9c\x97\x02\x0f\x78\x8d\xc0\ +\x02\xf8\xc7\xd7\x37\x80\x53\xc0\x01\x60\x0e\x78\x1b\xd8\xb9\x6b\ +\xd7\xae\xd7\x7c\xf9\xe4\x76\xed\xda\xd5\x5a\x50\x05\x78\xe4\x8b\ +\x5f\x14\x3d\xa7\x0f\x0a\x5e\x7e\x79\x0f\x4a\x79\x83\x97\x0a\xc5\ +\x22\x43\x43\x43\x94\x86\x86\xc2\xd1\x6c\xc4\x8a\x3f\x85\x10\xd4\ +\xea\x75\xc6\x4e\x9e\xe0\xe8\xd1\x77\x98\x98\x98\x38\xef\x85\xbe\ +\x60\xb3\x96\x48\x50\x2c\x96\x10\x16\xac\x5e\xb5\x9a\xa5\x4b\x97\ +\x51\xae\x0c\x79\xed\xdc\x96\xed\x8f\x7f\x89\x46\x94\x49\x3f\x24\ +\x73\xa5\x34\xa6\x7a\x05\xab\xd7\xeb\xd1\xed\x76\x79\xe3\x8d\x37\ +\x38\x75\xea\xd4\x45\xf1\xd1\x5f\xf8\xc2\x17\xb4\x31\x31\xc1\x61\ +\x58\x26\xfe\x98\x9e\x9e\x0e\x84\x3f\xdf\x6a\x03\x13\xc0\x39\xa0\ +\x0a\xec\x17\x42\xfc\xcd\x33\xcf\x3c\xf3\xb2\x2f\xaf\xfc\xae\x5d\ +\xbb\x9a\x17\x55\x01\xfe\xf7\xdf\xf8\x0d\xe1\xf4\xfb\x28\xa5\xd8\ +\xb3\x67\x4f\x58\x91\x13\x24\x33\x94\x3f\xa2\x25\x97\xcb\x31\x54\ +\x1e\xa2\x32\x54\x21\x5f\xc8\x63\x09\x61\x1c\xf5\xe6\x99\x5f\xc9\ +\xe4\xe4\x14\x27\x4f\x7a\x99\xbc\x46\xa3\x11\x1e\xfd\x72\x41\x8a\ +\x21\x20\x99\x48\x92\x4c\xa6\x48\x25\x13\x24\x53\x29\xd6\xad\x5b\ +\x87\x10\x82\x74\x3a\x4d\x3e\x9f\x27\x9f\xcb\x91\xce\xa4\x11\x96\ +\x17\x0a\xba\x8e\x13\xee\x70\x21\x44\x38\xb4\x6a\x76\xb6\x4e\xb5\ +\x5a\xa3\x39\xd7\xe4\xd0\xa1\x83\xf4\xfd\xe7\x2d\xc4\xfa\xfc\xe7\ +\x3f\x67\x80\xe2\xaf\x7f\xfd\xeb\xef\xf7\x2d\x7a\x40\x0b\x68\x02\ +\x93\x42\x88\xd7\xfa\xfd\xfe\xdf\x3d\xff\xfc\xf3\x8f\x5f\x34\x05\ +\xf8\xf5\x7f\xf7\xef\x84\xe3\x4f\xd7\x0c\x15\x40\xaa\x30\x64\x92\ +\x52\x86\xf7\x55\x60\x56\x95\x22\x9d\x4a\x51\x2a\x15\xa9\x94\x2b\ +\x14\x4b\x43\xa4\x52\xa9\x30\x73\x16\x0c\x6a\xea\x76\xba\x4c\x8c\ +\x8f\x73\xfa\xcc\x69\x26\x27\xa7\xe8\x76\xbb\xf4\xfc\x62\x10\xc7\ +\x71\x42\x97\x21\xfe\x09\x86\x4c\x58\x16\xa9\x64\x92\x44\x22\x41\ +\x2a\x99\x22\x99\x0a\x94\x21\xe9\xdf\xf6\x7f\x52\x29\x92\xc9\x24\ +\x28\x15\xba\x25\x29\x25\x9d\x4e\x87\x6a\xb5\x4a\xbf\xd7\x43\x2a\ +\x45\xad\x5a\xa3\xe7\xf4\xbd\xf1\x70\xa1\xf2\x5e\x98\x05\x58\xdf\ +\x68\xf0\xa7\x7b\xf6\xfc\xd4\xaf\xff\xfa\xe6\xcd\x3c\xb9\x6a\x15\ +\x3d\x9f\xcb\x38\x8f\xbb\x92\xab\x57\xaf\x96\xc9\x64\xca\x3a\x7d\ +\xfa\xd4\xbf\xde\xb9\x73\xe7\x37\x2e\x18\x04\x06\xbb\x3d\x40\xe8\ +\x51\xad\xde\x60\x57\xac\x16\xde\xd3\x69\xb7\x69\xb5\x5a\x9c\x3d\ +\x7b\x0e\xa9\x24\x96\x10\xe4\x0b\x45\x8f\x93\xaf\x54\xc8\xe7\x73\ +\x28\x09\x4b\x97\x2d\x65\xd9\xb2\xe5\x08\x4b\x30\x37\x37\xc7\xe4\ +\xe4\x24\x93\x93\x93\x34\x1a\x0d\x3a\x9d\x0e\xad\x56\x8b\x76\xbb\ +\x1d\x82\xbb\x79\x41\xa5\x94\x74\xbb\xde\x39\x00\xe9\xe1\xb4\x1f\ +\x89\x78\x8a\xe6\x8d\x84\x13\xde\x79\x00\x78\x07\x3e\xf7\x7c\x60\ +\xdb\xef\xf7\xe9\xf5\xfb\x21\xd0\xf5\x7e\x7a\xa1\x7b\x48\x24\x12\ +\x38\x8e\x73\x51\x84\xff\x2f\xdf\x79\xe7\x82\xde\xe3\x57\xfc\xb0\ +\x34\xae\x04\x81\x72\x8e\x8c\x8c\x30\x3c\x3c\xec\x71\x9f\x02\x3e\ +\x74\xd7\x9d\xff\x75\xe7\xce\x9d\x17\x1e\x05\x48\x57\x45\xa9\x4b\ +\xe3\xf4\x4d\xed\x78\xa6\xb0\xb8\x42\x86\xc4\x8b\xc1\x84\x49\x70\ +\x95\x4b\x75\xa6\xca\xcc\xf4\xb4\x8f\xbe\x5d\x72\xd9\x1c\xe5\x4a\ +\x99\x72\x79\x98\xa1\x52\x89\x84\x6d\xb3\x72\xf9\x72\x56\xae\x5c\ +\x81\x92\x8a\xd9\x46\x83\x5a\xad\xc6\xec\xec\x2c\xed\x76\x8b\x46\ +\x63\x8e\x46\xa3\x41\xab\xd5\x32\x94\x41\x57\x88\x99\x99\x19\xe3\ +\xfb\x6f\xd9\xb2\xc5\x33\xf1\x02\xb0\x44\x64\xa9\x02\xbe\x41\x4a\ +\x2d\x9d\xeb\xdd\x6e\xb7\x5a\x17\xcd\xcc\x07\xc2\xff\xd0\xe4\xe4\ +\x05\xd1\xbd\xa3\x42\x0c\x28\x81\x6d\xdb\xe1\x2c\x43\xdb\xb6\x71\ +\x5d\xd7\x53\x7e\x2c\xa6\xab\x35\xfb\xa2\x84\x81\xc1\xc5\x42\x41\ +\x69\x68\x88\xc6\xec\x2c\x7d\xd7\x9d\xe7\xc0\x67\x19\x3b\xb5\x3b\ +\x76\x00\x14\x3a\x65\xea\x3d\x67\xae\xd9\xa4\x31\xd7\xe0\xf8\xf1\ +\x93\x28\x25\x49\x26\x92\x94\x4a\x25\x86\x97\x0c\x87\xa7\x7c\xac\ +\x58\xbe\x9c\x15\xcb\x97\xd3\x77\x1c\x5a\xcd\x26\x73\xcd\x26\x9d\ +\x4e\x87\xb9\xb9\x39\x7f\x44\x7c\x3d\x8c\x34\x02\xb3\xae\xaf\x83\ +\x07\x0f\xfe\xcc\x18\x37\xa1\x14\x9f\x3f\x74\x88\xeb\x6b\x35\x53\ +\xf8\xc2\x23\xcd\x5c\x25\x70\x05\x38\xda\x6d\x57\x08\x1c\xc0\x05\ +\xef\x3e\x82\x75\xfd\x3e\x28\xc5\xa8\x10\x7c\xee\xed\xb7\x21\x99\ +\xe4\xb9\xcd\x9b\x19\x1a\xf2\x5c\x6b\x30\x2a\xcf\x1b\xc4\x81\x3f\ +\xd1\x5c\x72\x91\x14\x40\x86\x27\x7d\x6d\xda\xb4\xd1\xe7\x06\xfa\ +\xd4\x1b\x0d\xea\xb5\x1a\xf5\x5a\x9d\x56\xbb\x35\x78\x80\xb3\x9e\ +\x06\xd5\x0b\x2d\xc2\xdc\x19\x5a\x9a\xd5\xbb\xdd\xed\x75\x99\x98\ +\x9c\xe0\xdc\xf8\x39\xdf\xe4\x43\xa1\x50\xa2\x52\xa9\x30\x3c\x5c\ +\xa1\x50\x28\x30\x92\xcd\xa2\x94\xa2\xd7\xef\xd3\xf5\x67\x00\xf6\ +\x7a\x3d\x6a\xb5\x1a\xd3\xd3\xd3\x34\x1a\x0d\x7f\x27\xcc\xcf\x41\ +\x5c\x4a\xe1\xff\x5f\x7b\xf7\x9e\x5f\xf8\x08\x4f\xf0\x80\xab\x08\ +\x15\x41\x86\xc2\x8f\x14\xe1\x60\x2a\xc5\x96\xa0\x64\x5e\x08\x3e\ +\x77\xe0\x00\x43\x43\x43\x3c\x57\x1e\xa2\xef\xf4\xbd\x6c\x87\xb0\ +\xb0\xfc\xc9\x65\xc2\xe2\x5d\x41\xf5\xfb\x73\x01\xd2\x0d\x0f\x74\ +\xa8\xd5\x67\xc9\xe7\x72\xd8\x89\x04\x95\x4a\x99\xe1\x72\xd9\x03\ +\x1f\x52\xd2\x9c\x9b\xa3\x5a\xab\x31\x33\x33\x43\xa3\x31\x6b\x1e\ +\xfa\x48\xec\xbc\x1d\xad\xc0\x42\xa0\x1d\xb2\xac\x27\x86\x84\xc0\ +\x75\x5d\x6a\xb5\x2a\xd5\xea\x0c\x47\x8e\x78\x58\x24\x93\x49\x53\ +\xae\x94\x59\x52\x59\xc2\xd0\xd0\x10\xc5\x62\x01\x25\x15\xa5\x52\ +\x89\x95\x2b\x57\xe2\x3a\x0e\xad\x56\x8b\x99\x6a\x95\x99\x99\x19\ +\x9a\x4d\x2f\x2a\x9a\xcf\x3a\x2c\xd4\x0a\xcc\xfe\xbc\xc2\x47\xe0\ +\x28\x85\xf4\x77\xbb\xeb\x0b\xd9\xd1\x6e\xbb\x78\xc2\x97\x81\x65\ +\x40\xf0\x46\x2a\xcd\xb6\x5e\x37\x54\x82\x07\x7f\xfc\x63\x84\xe3\ +\xf0\xc2\xe6\xcd\x38\xc9\x24\x42\x78\xf9\x0e\x81\x40\x48\x71\x11\ +\x2d\x80\x8c\xca\xa7\x4e\x9c\xf0\x4c\xb5\x25\x04\xd9\x5c\x8e\x52\ +\xb1\x48\xbe\x50\xf0\x42\xad\x42\x81\x5c\xa1\xc0\xaa\x95\x2b\x91\ +\x4a\xd1\xe9\x74\xa8\xd5\x6b\xcc\x4c\xcf\x50\xad\xd6\xe8\xf5\xba\ +\x61\x04\x01\xf3\x9c\x96\xa5\x88\xb2\x87\x2a\xc8\x9f\x13\x3b\x5c\ +\x59\xd1\x6a\xb5\x68\x36\x9b\x9c\x3e\x75\x3a\x8c\xff\x3f\xf4\xa1\ +\xbb\xb1\x2c\x8b\x44\x32\x81\x6d\xdb\x24\x93\x49\x8a\xa5\x22\x6b\ +\xd6\xac\xc6\x75\x5d\x1a\x8d\x39\xa6\xa7\xa7\x43\x77\xf1\x5e\xa3\ +\x8b\x8b\xea\xf3\x85\xf0\x77\xb7\xf2\x05\x1f\xed\x70\x89\x08\x05\ +\xef\x0a\xbc\xc7\x45\x70\x5f\x84\xee\xe0\xd5\x74\x86\x5b\xba\x5e\ +\xa2\x69\x58\x08\x76\xec\xdf\x0f\x4a\xf1\xc2\x35\xd7\xe0\x24\x93\ +\x7e\xf2\xcd\x02\xa1\x8c\xc4\xd6\x85\x59\x00\xdd\x7c\xfb\x20\xc9\ +\x91\x2e\xf5\x7a\x9d\x5a\xbd\x8e\xf2\x59\xb4\x6c\x36\x4b\xb1\x58\ +\xa4\x58\x2c\x92\xcb\xe5\x48\xa7\xd3\x2c\x5d\xba\x94\xd1\x91\xa5\ +\xa0\x14\x7d\xa7\x4f\x7d\xb6\xce\xcc\xf4\x0c\x33\x33\x55\x1a\x73\ +\x8d\x30\x01\xa4\x82\x23\x66\xe2\xb9\x02\xff\x02\x4a\x35\xcf\x79\ +\x7c\xfe\xf2\x50\xba\x1c\x18\xdd\xa6\x94\x1f\x01\x58\xb6\xf7\xbd\ +\x4a\x45\x94\x54\xf4\xfb\xde\xf7\xf0\x4a\xcb\xbd\x83\x25\x2e\x8d\ +\xf0\x05\xae\x50\x9e\x50\x43\x01\xfb\xbf\x15\xfe\x8e\x57\x38\xbe\ +\x12\x44\xf8\x20\x78\x8d\x77\xff\xc5\x4c\x86\xbb\x3a\x9a\x12\x1c\ +\x38\x80\x82\xd0\x12\x80\x8b\x54\xe2\x62\xba\x00\x69\x1e\x7e\x10\ +\x4c\xc2\x54\xe6\x89\x9f\xcd\x66\x93\xb9\xb9\x39\x4e\x9f\x3e\x8d\ +\x54\x8a\x64\x22\x41\xa1\x58\x60\x68\x68\x88\x42\xbe\x40\x2a\x95\ +\xa2\x52\xae\x50\x2e\x0d\xb1\x6e\xdd\x3a\x94\x52\x34\x1a\xb3\xcc\ +\xcc\x54\x99\x9a\x9a\xa6\x5e\xaf\xe1\xb8\x8e\x76\x0c\xcb\xe0\x29\ +\x3a\x03\x67\xf0\xc5\x6a\x29\xa2\x93\xbd\xa3\x12\xef\x90\x7a\x95\ +\x5e\x24\x63\x5b\x36\xe5\xa1\x32\x95\x72\x05\x21\x04\x9d\x4e\x87\ +\x46\xa3\x41\xbd\x5e\xa7\xd3\xe9\x84\x7f\xef\xfb\x0d\xfd\xde\x0d\ +\xf0\x85\x3b\x3f\x14\xbe\xf0\x05\xad\xa2\x5d\x2e\x4c\xdf\x2f\x2d\ +\x70\x54\x64\x15\x5c\x08\x2d\xc6\x73\xd9\x2c\xf7\xb6\xdb\xa1\x12\ +\xfc\xcb\x57\x5f\xc5\xb5\x2c\x9e\xdf\xb2\xc5\x53\x7c\xa1\x70\xdf\ +\x25\x03\xf9\x3e\x2d\x80\xa9\x00\xef\x95\x07\xe8\x75\xbb\x4c\x75\ +\x3a\x4c\x4e\x4c\x86\x3c\x40\x36\x97\xa7\x5c\xf2\xe8\xe3\x5c\x2e\ +\x4b\x3e\x5f\x20\x9f\xcb\xb3\x6a\xd5\x6a\x40\xd2\x6e\x77\xa8\xd5\ +\x6a\x4c\x4d\x4d\x33\x33\x33\x1d\x85\x63\xc1\x51\x32\xe7\x49\x23\ +\x18\x07\x2f\xf9\xbd\xf7\xc1\x69\xf4\x6a\x20\xa2\x31\x2b\x78\x53\ +\xa9\x14\x23\x23\x23\x8c\x8e\x8e\x02\xd0\x6a\xb5\x68\x34\x1a\xcc\ +\xcd\xcd\xd1\xeb\xf5\x70\x5d\x37\x64\x2a\x95\x52\xe7\x75\x1b\xbf\ +\xf3\x93\x9f\xbc\x8b\xf0\x23\x1f\x2f\x7d\x01\x3b\x42\xf9\xa6\x5f\ +\xe0\xe2\xef\x7c\x1f\xc5\xcb\xc0\x3d\x08\x1f\x1c\x6a\x11\x82\xf7\ +\x5e\xf0\x64\x36\xc7\x03\xed\x56\x88\x09\xfe\xd7\x3d\x7b\x78\x6e\ +\xf3\x66\x0f\x03\x58\xbc\xeb\x59\xc4\xef\xd3\x02\xe8\xe5\xce\x17\ +\xc6\x03\xd4\x6b\x75\x6a\xd5\x6a\xc8\x03\x64\x33\x59\x4a\x43\x25\ +\x86\x86\x2a\x14\x0b\x05\x92\xc9\x14\x23\xa3\xa3\x8c\x8e\x8e\x20\ +\xfd\x43\xa2\x67\xeb\xb3\x4c\x4d\x7b\x59\xb3\xfa\x6c\x7d\xde\x29\ +\x1a\xf1\x83\xc9\x05\x18\x34\x74\x70\x30\xa5\x71\xc8\x8f\xa6\x14\ +\xfa\x6e\xcf\x64\x32\x64\xb3\x59\x96\x2d\x5b\x16\x9e\x3b\x34\x37\ +\x37\x47\xbb\xdd\xd6\xc8\xa2\xbe\x61\x62\x85\x10\xef\xe2\xf3\x3d\ +\xb4\x1f\x01\xba\xc8\xbf\x4b\x5f\x98\xde\x6d\x81\x0c\x42\xc2\x40\ +\x69\xfc\xf9\x8a\x9e\x2b\xf0\xdf\x4f\x44\x56\xe1\x7b\xf9\x3c\x9f\ +\x6c\x36\x0d\xce\x46\x58\x5e\x44\xee\x5c\x2c\x0b\xa0\x7c\xaa\x57\ +\xa1\xc8\xe7\xf3\x34\x9b\x4d\x1c\x29\x2f\x0a\x0f\xd0\x6c\xb5\x98\ +\x6b\xce\x31\x36\x76\x1a\xa5\x24\x09\x3b\x41\xb1\x58\xa4\x52\x29\ +\x53\x2c\x95\xc8\x64\x32\x0c\x95\x87\x28\x0d\x95\x58\xb7\x6e\x1d\ +\x52\x4a\x5a\xad\x16\xd3\xd3\xd3\x21\xa8\xf3\x0e\x81\x52\x10\x8b\ +\x24\xf4\xe3\xdb\x8d\x49\x65\xef\x81\xf7\xd0\x9f\x97\xcb\xe5\xc8\ +\xe7\xf3\x08\x21\xe8\xf7\xfb\xb4\xdb\xed\xb0\x93\xb9\xd7\xeb\xd1\ +\xe9\x74\x06\x73\xfc\xbe\xcf\x8f\x84\x19\x09\xde\x89\x61\x00\x47\ +\xc3\x01\x81\xd0\xdd\x30\x02\x88\x84\x2d\x35\x2b\xe2\x68\x56\x62\ +\xa0\x20\xc6\x4f\x83\xab\x77\xc1\x36\xef\x3b\x0a\x90\x7e\xc9\xf3\ +\xea\x35\x6b\x7c\xe0\xd5\xa7\xd9\x6c\x31\xd7\x68\xd0\x68\xcc\xd1\ +\xe9\x76\x2e\x0a\x0f\xd0\xeb\xf7\x98\x9a\x9e\x62\x62\x32\xca\x1a\ +\xe6\xf3\x05\x2a\x95\x32\xe5\xa1\x21\xef\xfc\x9f\x6c\x96\x55\x2b\ +\x57\xb2\x62\xc5\x0a\x8f\x0f\xf0\xe3\x63\xa3\x93\x58\x6f\x14\x91\ +\xf1\x13\xc3\xdf\x1f\xb0\xd3\x5f\x6b\x59\x16\x85\x82\x77\x5c\x3d\ +\x40\xbf\xdf\x9f\x57\x01\x5c\xe1\x55\x25\x45\x21\x1e\xda\x6e\x37\ +\x43\xbd\x70\x47\x5b\xba\x72\xf8\x82\xb6\xfc\xd7\x61\x86\x88\x12\ +\x15\xbe\x57\x9c\xb3\x21\x70\x83\x17\xc9\x02\x88\xa3\x47\x8f\x32\ +\x3a\x3a\x42\x22\x99\xf0\xd8\x36\xdb\xc6\xb6\x12\x21\xe2\x5f\xe1\ +\x5b\x89\x56\xbb\xcd\xec\xec\x2c\xb3\xb3\xb3\x34\x9b\x73\x17\x85\ +\x07\x90\x7e\x76\xae\x5e\xaf\xf9\xe0\x4c\x91\xc9\xa4\x28\x0d\x79\ +\x35\xfe\xa5\x52\x89\x64\x2a\xe5\xc7\xbc\xe6\x29\x23\x81\xf2\x1a\ +\x1d\x0a\xe7\x0b\x25\x7e\x4a\x85\x08\xa8\xd8\x81\xa4\x8c\x32\x4d\ +\xb5\x2e\x54\x03\x0f\x68\xf1\xbe\xc9\xfe\x05\x04\x91\xe7\x16\x74\ +\xb7\xe1\x04\x61\xe4\x3c\x0a\x10\x90\x67\x08\x0b\x57\x5d\x1c\x05\ +\xd8\xfd\x83\xe7\x7f\x90\x16\x42\x7c\xb0\x54\x2a\xb1\x62\xc5\x0a\ +\x56\xac\x58\x41\xb1\x58\x24\x99\x4c\x92\x4a\xa5\x48\x24\x12\x08\ +\x61\x91\xcb\x65\xc9\x66\xb3\x2c\x5d\xba\x14\xc0\x40\xd7\xb3\xb3\ +\x8d\x8b\xc8\x03\xb4\x69\x36\x5b\x9c\x3d\x73\x26\xe4\x01\x6e\xbb\ +\xed\x36\xcd\xf4\x47\x1c\x7f\x84\x0f\x62\x83\x9a\x2f\xe2\x9a\xcf\ +\xad\x78\x48\x5e\x45\xc2\xd3\xe2\x7c\x47\x68\xca\x41\xb4\xc3\x25\ +\xfa\x73\x85\x89\x05\xc2\xe7\x9b\x1c\x82\x9c\x07\xaf\x79\xb5\x2f\ +\xde\x90\xec\x0b\x56\x80\x5d\xbb\x76\xdd\xe9\xa7\x85\xff\xb6\xd9\ +\x6c\xb6\x0e\x1e\x3c\xe8\xbe\xf5\xd6\x5b\x77\x27\x93\xc9\x75\xe5\ +\x4a\x99\xa5\xa3\x4b\x19\x19\x19\x21\x9d\x49\x93\xcb\x66\xc9\x66\ +\x73\xde\x21\x0b\x4a\x79\xc7\xad\xa6\x52\x54\x86\x87\xbd\xb0\xa4\ +\xef\xd2\x68\x34\xa8\xd5\xaa\xd4\xea\xb3\x21\x43\x77\x31\x78\x00\ +\x88\x0e\xdf\x3c\x4f\x6c\x08\x0b\x22\xfe\xf3\xa4\x65\xf5\x1d\x2f\ +\xe6\x13\xbe\xee\xff\x35\xf3\x2e\x74\xb7\x10\x23\x84\x82\xff\x37\ +\x18\xc3\x79\x5c\x80\x02\x25\x2e\x22\x0f\xe0\x2b\xc2\x3f\xd3\x6a\ +\x04\x7e\x59\x29\xf5\xb1\x99\xe9\x19\x77\x62\x7c\xa2\x6f\xdb\xf6\ +\xef\xa7\xd3\x69\xca\xe5\x32\xe5\x72\x99\x52\xb1\xa4\x72\xb9\x9c\ +\x28\x96\x8a\xe4\xf3\x79\xaf\x84\x5c\x49\xb0\x6d\x4a\xa5\x22\xa5\ +\x52\x91\x35\xfe\xee\x6f\x36\x9b\xd4\xaa\x35\x66\xaa\x55\x1a\x8d\ +\xd9\x9f\x9a\x07\x90\xb1\xf6\x6f\xfd\xb0\x06\xbd\xd1\xe4\x52\x8d\ +\xe0\x70\x44\x9c\xd5\x3b\x0f\xcd\x1b\xb2\x81\x11\xd0\x73\x35\xa0\ +\xe7\x99\x7a\x61\x72\x08\xda\x6d\x27\x16\x92\x4a\x57\xfa\xa5\x6f\ +\xea\xe2\x2a\x40\xb0\x3e\xf6\xb1\x8f\x89\x9d\x3b\x77\xbe\x00\xbc\ +\xa0\x29\xc4\x51\xc7\x71\xec\xf1\xf1\x71\x71\xee\xdc\xb9\x1b\x12\ +\x89\xc4\x6f\x64\xd2\x19\xf2\x85\x3c\x85\x42\x81\x5c\x3e\xef\x9d\ +\xc9\x5b\x2e\x93\xcf\xe7\x51\xca\x2b\xc3\x42\x79\xec\x61\x26\x93\ +\x61\xf9\x8a\xe5\x48\xa5\xe8\x75\xbb\xd4\x6b\x35\xaa\xd5\x1a\xd5\ +\x5a\x95\x4e\xbb\xfd\x9e\x78\x00\x7f\xa2\x43\xd4\x41\xa4\x45\x27\ +\x0a\x6d\x22\xf9\x02\x2c\xa5\xd4\x00\x9b\x68\x80\xbd\x01\x53\x8e\ +\x69\x11\x30\xdd\x44\x80\xf0\xc3\x9d\xaf\x94\x17\x02\x0a\x2f\x87\ +\xe0\x0a\xcb\xc0\x0b\x03\x51\x00\x5e\xbe\x41\x5e\x24\x0c\x60\xac\ +\x9d\x3b\x77\xaa\x79\xac\xc3\xb7\x82\xdb\xf7\xdd\x77\x5f\x56\x29\ +\xf5\x78\xbb\xd3\x96\xb3\x8d\xd9\x46\x32\x99\xfc\x6b\xdb\xb6\xd7\ +\xa7\xd3\x69\x32\x99\x0c\x99\x4c\x46\x15\x0a\x05\xb1\x64\x64\x09\ +\xc3\x95\x0a\xa9\x54\x06\xa5\xa4\x7f\x7e\xa0\x24\x91\x48\x30\x3c\ +\x32\xc2\xf0\x92\x25\x1e\xe5\xec\xba\xcc\x35\x1a\xcc\xcc\x4c\x33\ +\x3d\xe3\x59\x89\x79\x79\x00\x7d\xf0\xe4\x3c\xcd\x24\x0b\x79\x28\ +\xa3\x94\x92\x5c\x2e\x67\x3e\xa6\xd3\xb9\x0a\x1c\xcb\x8f\xe7\xf5\ +\xc7\x7d\x21\x05\x3e\xdd\x15\x2a\x8c\xf5\x75\x01\x3b\x31\x17\x11\ +\xe0\x86\xe0\x7d\xe6\x03\xa8\x42\x5c\xc4\x64\xd0\xfb\x59\xcf\x3c\ +\xf3\x4c\x1b\x78\x5e\x53\x88\x3b\xa4\x94\xf9\x56\xab\x25\x1a\x8d\ +\x46\x22\x99\x4c\x1e\xb2\x2c\x8b\xb1\xb1\x31\x12\x09\x9b\x74\x3a\ +\xa3\x86\x87\x87\xc5\xe8\xe8\xa8\x7f\xea\xa7\x15\x35\x6e\x28\x85\ +\x25\x04\xc5\x62\x91\x42\xa1\xc0\x9a\x35\x6b\x51\xca\x03\x81\xb5\ +\x9a\x97\xe9\x9b\x9d\x9d\x0d\x31\x80\x31\x72\x59\xdb\xfd\x3a\x91\ +\xb5\x50\x2b\x6e\x6e\x1d\x3c\x1a\x37\x40\xf7\xd2\xdf\xc5\x7a\x62\ +\xc7\x11\xba\x29\xf7\x18\x42\x2f\x7a\xd0\xea\x01\xfc\x88\xc2\xd1\ +\x70\x84\x61\x31\xac\x79\x38\x1b\x21\xbc\x9e\x5b\xa9\x2e\xbd\x02\ +\xcc\xa3\x10\x13\xfa\xfd\xed\xdb\xb7\xe7\xa5\x94\xe2\xd4\xa9\x53\ +\xdd\xa5\x4b\x97\x7e\xa1\xd5\x6a\xff\x41\xad\x56\xe3\xf8\xf1\xe3\ +\x08\x21\xc8\xe7\xf3\x8c\xfa\x4c\x60\xa1\x50\xf2\xce\xfb\x31\xfa\ +\xef\x25\x99\x4c\x9a\x65\xcb\x96\x31\xba\x74\x29\x4a\x2a\x1c\xb7\ +\x3f\x4f\x22\xc8\x1c\x26\xb9\x90\xab\xef\xf7\x16\x9a\x2e\x40\xdb\ +\xc9\x21\x6a\xf7\xc0\xac\xa7\x08\xa6\x1f\x0f\x42\xbe\x90\x28\xd2\ +\x42\x3f\x47\xe9\x0c\xa0\xe6\x4a\xe6\xb1\x00\x6e\x30\xbc\x42\x80\ +\x94\xe2\x67\xaf\x00\xf3\xb8\x0b\xbd\xd6\xea\x0f\xfd\x9f\x40\x39\ +\x8e\xd4\xeb\xf5\xf5\xf5\x7a\x5d\x1c\x39\x72\x04\xcb\xb2\x18\x1a\ +\x1a\x62\xe9\xd2\xa5\x0c\x0f\x57\xbc\x43\x1f\x95\x79\x38\x13\x80\ +\x6d\x25\x8c\x79\x7f\xc6\xa0\x49\xe4\x82\xf7\xe3\x35\xe7\x9a\xd1\ +\x49\xa4\x7a\x14\x10\xa2\x76\x93\xd1\x0b\x84\xef\xc4\xd1\x7d\x28\ +\xe4\x28\x41\x34\x10\x05\x04\x0a\xa3\x65\x0b\xe3\x16\xc0\xaf\x7a\ +\xde\x2f\xdf\x65\xd8\xc0\xcf\x4c\x01\xce\xb7\xee\xbf\xff\x7e\xf1\ +\xf4\xd3\x4f\x6f\x0c\xee\x7f\xe2\x13\x9f\x48\x77\x3a\x9d\xe6\xcc\ +\xcc\x4c\x7d\x7a\x7a\x5a\x28\xa5\x72\xa9\x54\x2a\x3d\x3c\x5c\x61\ +\xc9\xc8\x08\xc5\x42\xc9\x3b\xc0\x49\xf9\x5d\x40\x61\x0e\x22\xca\ +\x4d\x84\x73\x7f\x17\x78\xa5\x52\x49\x66\xeb\xf5\x79\x78\x00\xbd\ +\xba\xc7\x8f\xf5\xf5\x74\x70\x2c\xde\x97\x71\xbe\x40\xc7\x0c\xf1\ +\x82\x11\xad\x82\x28\x46\x41\xff\xd0\xb2\xc4\x2e\x2b\x61\x7f\x17\ +\x41\xf7\xbc\xec\x1e\x97\xd9\xba\xef\xbe\xfb\xfe\x95\x52\xea\xb7\ +\xa4\x94\x1d\x7f\xb7\x5f\x9b\xcb\xe5\x43\x8a\x38\x9b\xcb\x85\x8d\ +\x28\x02\xcb\x3f\x91\x44\x5d\x92\x86\xcb\x6a\xb5\x0a\xc0\x37\xfe\ +\xe2\x2f\xc2\xe8\xe3\x60\x2a\x65\x50\xbf\x91\x4b\x10\xe7\x65\x05\ +\x23\xa6\x4f\x73\x01\x61\x22\x29\xc2\x05\x7a\xf2\xe8\x4b\xf5\x5a\ +\xc8\x9a\x02\x3c\xfc\xd0\x43\xeb\x1e\x7b\xec\xb1\xe3\xff\x24\xbd\ +\x7b\x39\x09\xff\x81\x07\x1e\x10\x4f\x3e\xf9\xa4\x8a\x61\x89\xef\ +\x28\xa5\xca\x52\x4a\x5b\x29\x55\xb0\x2c\xeb\xb6\x7c\x3e\x4f\xa9\ +\x54\xa2\x50\x28\x90\x48\x78\xb4\x75\xf0\xfb\x7c\x8c\xdd\xc5\x5a\ +\x53\x93\x93\x7c\xf3\x2f\xff\xd2\xc8\x06\xfe\x24\x95\xf2\x04\x68\ +\xe9\xe9\x5d\x61\xe4\xf5\x75\x50\x18\xd6\x08\x30\xcf\x8e\x1f\x20\ +\x93\x04\x5f\xae\x99\xc2\x07\xfe\x4e\xc0\x3f\x7b\x4f\xfc\x3e\x97\ +\xf1\xba\xef\xbe\xfb\xc4\x33\xcf\x3c\x13\x4a\xf3\xe1\x87\x1f\x4e\ +\xb6\x5a\xad\x6f\x4a\x29\x5b\x52\x4a\x17\xb8\x2f\x91\x48\xac\x0b\ +\xb2\x78\xb9\x9c\xc7\x4e\x06\xcd\x21\xb6\x6d\x0f\x64\xfc\x2e\xc6\ +\xba\xe3\x8d\x37\xf8\xcc\xb3\xcf\x1a\x4a\xf0\xa3\x4c\x3a\x22\x7a\ +\x02\x0b\x60\x61\xa0\x7f\x4f\xb0\xd6\xbc\xec\x5f\x98\xf5\x13\x68\ +\xd9\x45\xc1\x97\xeb\x03\xc2\xff\x47\xe0\x1e\xf1\x1e\xe9\x8e\xcb\ +\x5a\x01\xde\x83\x82\xdc\x23\xa5\xbc\x57\x29\xe5\xba\xae\xdb\xb7\ +\x2c\xeb\xff\x48\xa5\x52\x61\x9e\x3f\x9d\x4e\xab\x74\x3a\x2d\xd2\ +\xe9\xb4\x07\x2c\xc3\x8e\xe1\x0b\x53\x88\x44\xbf\xcf\xed\xfb\xf7\ +\xf3\x91\x57\x5f\xa5\x3c\x37\x17\x2a\xc1\x8b\x99\x8c\x49\xfa\x08\ +\x4d\x19\x44\x9c\x0a\xc6\x54\x98\x80\x23\x00\x4f\x71\xd4\xbc\xc2\ +\xff\x3b\xe0\xdf\x0b\x78\xe3\x3d\x67\xf8\xae\x54\xe1\x7f\xfc\xe3\ +\x1f\x17\x4f\x3d\xf5\x54\xdc\x5d\xfc\x8a\x52\x2a\x2d\xa5\xb4\x94\ +\x52\x6b\x6d\xdb\xfe\xf7\xc9\x64\x92\x74\x3a\x1d\xfc\xa8\x4c\x26\ +\x23\x72\xb9\x9c\xdf\xbe\xa6\x7e\x6a\x85\x38\x9f\x12\x3c\x97\xcd\ +\x9a\x60\x10\xe1\xf1\x00\xc2\xd2\x5c\xc2\x60\x59\x98\x4e\x27\x4b\ +\x01\x5f\xae\xd5\x2f\x58\xf8\x57\xbc\x05\xf8\x27\x14\xc4\x76\x1c\ +\xe7\x5e\x29\xa5\xeb\xba\x6e\xdb\xb6\xed\xff\x60\x59\xd6\x47\x03\ +\xf7\x90\x48\x24\xc8\x66\xb3\x1e\x85\x9d\xcb\x91\x4c\x26\xc3\x52\ +\xb0\xf7\xaa\x10\xe7\x53\x82\xa7\x72\x59\x0d\xe0\xc5\x81\x9f\x19\ +\xee\x39\x41\x18\xa8\x45\x08\x5f\xae\x5f\x1c\xe1\xff\x42\x2b\x40\ +\x7c\x6d\xdf\xbe\x7d\x44\x29\x35\xaa\x94\x12\xfd\x7e\xbf\x95\x4a\ +\xa5\x8e\x05\xe0\xd1\x2f\x2f\x57\xf9\x7c\x5e\x04\x95\xce\x5e\xe8\ +\xf9\xde\x2c\xc4\x7c\x98\xe0\x7b\xf9\xfc\x3c\xe8\x3f\x12\xba\x14\ +\xf1\x9c\x81\xa7\x04\xbf\x39\xb8\xf3\xdf\x97\xcf\x5f\x54\x80\xf7\ +\xae\x10\x65\xa5\x94\xed\x38\x8e\x95\x48\x24\xd6\x0b\x21\x5e\x0e\ +\x5a\xc7\x2d\xcb\x22\x93\xc9\xa8\x62\xb1\x28\x4a\x7e\xb9\x9a\xce\ +\xbf\xbf\x57\x25\xf8\x6e\xbe\x60\x96\x8a\x85\x26\xde\x2f\x16\x0d\ +\x6a\x03\x7d\x6b\xf0\x9b\x17\x08\xf8\x16\x15\xe0\xc2\x14\xc2\x02\ +\xac\x5d\xbb\x76\x39\xdb\xb7\x6f\xff\x03\xe0\x37\x82\xaa\x60\xcb\ +\xb2\xc8\xfb\x99\xce\x62\xb1\x18\xe2\x07\x3d\xe4\x3c\x9f\x3b\x78\ +\xff\x12\xbb\x70\xb3\xbf\xa8\x00\x17\x5f\x39\x8e\x03\xab\xfc\xeb\ +\x29\x2c\xcb\xb2\x4a\xa5\x12\xe5\x72\x99\x42\xa1\xe0\x1d\x19\x03\ +\xd8\xbd\x1e\x77\x1c\x38\xc0\x87\x5e\x7a\x89\x91\x4e\xe7\x42\x3e\ +\xf2\xa2\x08\x7f\x51\x01\x16\x80\x8b\xd8\xb1\x63\x47\xa2\xd7\xeb\ +\x35\x95\x52\xb3\x4a\x29\x0b\xc8\xa6\xd3\xe9\xec\xd0\xd0\x10\x43\ +\x43\x43\x94\xd3\x69\xae\x7a\xe6\x19\xfe\xcd\x5b\x6f\x5d\xc8\xc7\ +\xde\x78\x31\x84\xbf\xa8\x00\x97\xc6\x3a\x7c\x0a\xf8\xba\x94\xb2\ +\xa9\x94\xb2\x2c\xcb\xb2\x84\x10\x25\xcb\xb2\xb6\x3d\xfd\xf4\xd3\ +\x67\x16\xaf\xd0\xe2\x5a\x5c\x8b\x6b\x71\x2d\xae\xc5\xb5\xb8\x34\ +\xdc\x90\x58\xbc\x0a\x8b\x6b\x71\x2d\xae\x85\x5f\xff\x3f\xa5\x0f\ +\x64\x57\x3b\xb6\xe3\xb5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x3f\x66\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x09\x17\ +\x0b\x29\x38\x14\xe2\x83\x8f\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x79\x94\x26\x57\x75\x27\xf8\xbb\ +\x2f\xe2\x5b\x73\x5f\x2a\x6b\xcb\x52\x55\xa9\xaa\xb4\x22\x23\x81\ +\x04\x36\xc8\xd8\x83\x05\xc6\x67\x38\x80\x30\xb8\x51\x23\x10\xb8\ +\x25\xc1\xcc\xe0\xe6\x9c\xc6\xd0\x3e\x9e\x71\x6b\xe8\xb1\x4f\x43\ +\xab\xe9\x31\x63\x18\x23\x64\x70\x7b\xc0\x56\x43\xd3\x60\x1b\x68\ +\x99\xc5\x3d\x0d\x36\x8b\x40\x42\x08\x0b\x24\x95\x84\xaa\x24\xd5\ +\x9e\x55\x95\x4b\x65\x7e\x5b\xc4\x7b\x77\xfe\x88\x88\x17\xf7\xbe\ +\x88\xa4\x67\x00\x37\x16\x53\x1f\x47\x48\x99\xf9\x2d\xf1\xc5\xbb\ +\xeb\xef\xfe\xee\xbd\xc0\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\ +\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\xf9\xc7\ +\xf9\xc7\xf9\xc7\xff\x5f\x1e\x74\xfe\x16\xfc\xd7\x1f\xef\x7f\xff\ +\xfb\x77\x5a\x6b\xff\x37\x10\xfd\x05\x81\xbe\xfe\x1b\xbf\xf1\x96\ +\x93\x77\x7c\xf0\x83\xf4\xa6\x5b\x6f\xe5\xa7\xfb\x77\x33\xe7\x8f\ +\xb7\xfa\x78\xcf\x7b\xde\x43\x00\xf0\x67\x1f\xfd\x33\xfa\xfd\xdf\ +\xff\xfd\x77\xac\xad\xad\x3d\xb2\xba\xba\xfa\xc6\x7e\xaf\xff\xe7\ +\x69\x9a\x9e\xf8\x83\xf7\xbd\xef\x03\x6f\xba\xf5\x56\xbe\xe3\x8e\ +\x3b\xe8\xbc\x05\xf8\x29\x7b\xdc\x7e\xfb\xed\xf4\xf6\xb7\xbf\x9d\ +\x6f\xbf\xfd\xf6\xe7\x02\xf8\x93\x8d\xde\xc6\xc5\xa3\xe1\x08\x69\ +\x9a\xb2\x63\x26\x76\x8e\x17\x16\x16\x68\x6e\x6e\xee\x79\x37\xdf\ +\x7c\xf3\xd7\xce\x0b\xc0\x4f\xe1\xe3\x5d\xef\x7a\xd7\x1f\x38\xe7\ +\xde\xd2\xeb\xf5\xc0\xcc\x60\x66\x38\xe7\x60\x22\x03\x9b\xa4\x00\ +\x01\x3b\x77\xee\xfc\xda\x8e\x6d\x5b\x7e\xe1\x55\xbf\xf6\x8f\x93\ +\xa7\xf3\x77\x8d\xcf\x1f\x37\xf0\x3b\xff\xeb\xbf\xe8\x36\xe3\xc6\ +\x2b\x0d\x99\x8f\x00\x78\x78\x34\x1a\x5d\x32\x1c\x8d\x98\x08\x04\ +\x26\x80\x00\x63\x0c\x26\x3a\x5d\xac\xd8\x73\x60\xe7\xb0\xbc\xbc\ +\xfc\x73\x71\xa3\xf9\x3a\x00\x1f\x3e\x6f\x01\x9e\x26\x8f\x77\xbe\ +\xf3\x9d\x74\xdb\x6d\xb7\xf9\xc0\xed\xb6\xdb\x6e\x7b\x3b\x80\xcb\ +\xa3\x38\xda\x0e\xe0\xc5\xcc\xc8\xb4\xdd\x3a\x66\x30\x21\xd7\x7e\ +\x76\x0e\x26\x8a\xd0\x6a\x34\xb0\xb6\xbe\x01\x02\x83\x01\x6c\xd9\ +\xb2\x90\x4c\x4f\x4d\xce\xdc\x72\xeb\xad\x1b\xe7\x05\xe0\x69\xf2\ +\xf8\xed\xdf\xfe\xed\x7f\xfc\xe8\xa3\x8f\x0e\x0f\x1c\xb8\xe8\x7f\ +\xef\x74\x3b\x8b\x00\x13\x18\xc8\x0e\xdf\x79\x93\xaf\xff\x71\x68\ +\xc6\x0d\x30\x03\xfd\xe1\x00\x00\xc3\x5a\xc7\xed\x56\x9b\xb6\x6d\ +\xdf\xf6\xb9\xb7\xbc\xe5\x2d\x2f\xb9\xf3\xce\x3b\xe9\x96\x5b\x6e\ +\xe1\xf3\x02\xf0\x0f\xec\x71\xe5\x95\x57\x4d\xbc\xe4\x25\xbf\x3c\ +\xc3\xcc\xf7\x11\xd1\x7f\x69\x77\xda\xaf\x62\xc7\x68\xb7\xdb\xe0\ +\xec\xd4\x61\x5d\x76\xd0\x80\x03\x33\xe0\x72\xad\x07\x73\xf6\xdf\ +\xec\xd0\x6a\x34\x30\x4a\x12\x24\x36\xfb\x3d\x33\x23\x49\x12\x5e\ +\x58\x58\xa0\xf9\xf9\xf9\x1b\x6f\xb9\xe5\x96\x3f\x3d\x6f\x01\x7e\ +\x42\x8f\xb7\xbd\xed\x6d\xf4\x9e\xf7\xbc\x87\xf3\x00\x2e\xfe\xad\ +\xdf\xfa\x2d\x7a\xed\x8d\xaf\x7d\xcd\xd4\xe4\xd4\x01\x66\x3e\xb0\ +\x65\xcb\x96\xd7\x8c\x8f\x8f\x23\x49\x12\x34\x5b\x4d\x76\xa9\x23\ +\x66\x86\xdb\x44\xe3\x5d\xfe\x6f\x38\x86\x83\x03\x18\x88\x8d\xc1\ +\x30\x49\x94\x55\x80\x23\x24\x36\xe1\xdd\xbb\x77\x2f\x77\xbb\xdd\ +\x6f\xc5\xad\xf8\xfa\x5f\xbf\xe9\xd7\xd7\xcf\x0b\xc0\xdf\xe3\xe3\ +\xd6\x37\xbd\x89\x3e\x78\xc7\x1d\x0c\x00\x7b\xf6\xec\xe9\x1c\x3e\ +\x7c\xb8\x0f\x00\x6f\x7e\xf3\x9b\xdf\x30\x1a\x25\x0f\x4e\x4f\x4f\ +\xdd\x6e\xad\xbd\x66\x6a\x7a\x8a\x0d\x99\xf1\x76\xbb\x8d\x66\xb3\ +\x09\xe7\x5c\xc5\xcc\x67\x9a\xce\x42\xd3\x59\xfc\xbd\x78\x2e\xc0\ +\x60\x18\x66\x24\xce\x01\xec\xe0\x5c\x16\x03\x14\x02\x12\x99\x08\ +\xed\x76\x1b\x8b\x8b\x8b\xff\xd3\xd7\xbe\xf6\xf5\xcf\x7e\xf8\xc3\ +\x1f\x7a\xe2\xbc\x00\xfc\x3d\x3e\xde\xf0\xc6\x37\xfe\x21\x11\x3e\ +\x7f\xe4\xa9\x23\xcf\x3b\xb0\x7f\xff\x2d\xa9\xb5\xf7\x6d\xdf\xbe\ +\xed\x85\xbd\xde\x00\x3b\x17\x77\x80\x9d\x03\x91\x81\x21\x83\xd4\ +\xd9\xc0\x9c\x8b\x7f\x1c\x83\xe1\xf2\x34\x0f\xb9\x4b\x70\x70\xc8\ +\x05\xc0\x49\x6d\x77\x70\x80\x4f\x09\xb3\xf3\xcf\xac\x84\x65\x07\ +\x93\x05\x85\x38\x74\xf8\xf0\x3d\x1f\xf8\xc0\x1f\xfe\xec\x5d\x77\ +\xdd\x45\x37\xdc\x70\x03\x9f\x17\x80\xff\x0f\x8f\x1b\x6f\x7c\x1d\ +\x7d\xf4\xa3\x1f\x61\x00\xb8\xf1\x75\x37\x46\x1f\xfd\xc8\x47\xed\ +\x0d\x37\xdc\xf0\x33\xd6\xda\x67\xcd\xce\xce\x76\x47\xa3\xd1\xfb\ +\xc7\xc7\x26\x1e\xdd\xb2\x30\x7f\xe0\xdc\xfa\x39\xb4\x5b\x1d\x6c\ +\xdb\xb6\x15\x1b\x1b\x1b\x98\x9c\x9c\x64\x6b\x2d\x59\x6b\xcb\xc3\ +\x65\xce\x0e\xd3\xb9\xdc\xc7\x23\xb7\x04\x75\x82\x10\x98\x7e\xce\ +\x7d\x3d\x00\x9b\x24\x00\x08\x4c\x54\xfe\x3e\x70\x19\xce\x5a\x44\ +\xc6\x60\xcb\xc2\x02\xe6\xe6\xe6\xfe\xc3\xcd\x37\xdf\xfc\x6b\x00\ +\xf0\x47\x77\xfe\x11\xdd\x7c\xcb\xcd\x7c\x5e\x00\x82\xc7\xeb\x6e\ +\xbc\x91\x3e\xf2\xd1\x8f\xb2\xb8\x0e\x06\x80\x5f\xfd\xd5\x57\xbd\ +\xec\xdc\xb9\xb5\x07\x77\xec\xd8\xf1\x6f\x7b\x1b\xbd\xab\xf6\x1f\ +\xd8\x4f\xc3\xe1\x70\xd7\x96\xf9\x2d\x58\xd8\xba\x80\xfe\xa0\x8f\ +\xb1\xee\x18\x5b\x6b\x29\x4d\xd3\xcc\x84\x13\xc3\xda\xcd\x22\xf8\ +\xea\x61\xbb\x3c\xf8\x93\xc2\x21\x0f\xd3\xfb\xfe\x5c\x30\x46\x83\ +\x21\x4c\x1c\x7b\xad\x2f\x82\xc7\x22\x58\xe4\x5c\x50\xd8\x39\x8c\ +\x92\x11\xef\x5a\x5c\x1c\x6d\xdf\xb6\xfd\x5b\x44\xe6\x9f\xbe\xfe\ +\xa6\xd7\xdf\x7b\xde\x02\x6c\xf2\x78\xf9\xcb\x5e\xf6\x2f\x01\x7c\ +\xf1\xd8\xf1\xe3\xdd\xbd\x7b\xf7\xdc\x31\x1a\x8d\xee\xb9\xf8\xe2\ +\x4b\x5e\x7d\xf6\xec\x59\x3c\xe7\x39\xcf\xc1\x68\x34\x42\xa7\xdb\ +\x41\xab\xd1\xc4\x28\x49\xc0\xec\xbc\xdf\x2e\xfd\x35\x44\xe0\xe6\ +\x72\xed\xcd\x0e\x0e\x0e\xe5\x6b\x36\x0b\xf6\x8a\xf7\xca\x0f\xdc\ +\xe6\x87\xeb\x85\x81\x1d\xfa\x1b\x7d\x34\xdb\xad\xec\x3d\x39\xb7\ +\x22\x2e\x17\xa0\x22\x8e\x40\x19\x3f\x10\x19\xb4\xdb\x6d\xec\x5a\ +\x5c\xfc\xc8\xaf\xbc\xe8\x85\x6f\xd8\x73\xe0\x12\xf7\x53\x2b\x00\ +\xaf\xbf\xe9\x26\xfa\xbf\xfe\xe4\x4f\x18\x00\x6e\xb8\xe1\x86\xf8\ +\xae\xbb\xee\x4a\x01\xa0\xdb\x6a\xcd\x5c\xf3\xdc\xe7\x4c\x7d\xe9\ +\xcb\x7f\x73\xf8\xe5\xaf\x78\xc5\x0b\x9c\x73\xaf\x1f\x0d\x07\x1f\ +\x9f\x9f\x5f\x98\xed\xf5\x7b\x77\xcd\xcc\x4c\xdf\xb7\xb8\x63\xf1\ +\xd9\xa7\x4f\x2f\xa1\xd1\x6a\xe1\xca\x2b\xaf\xc4\x99\xd3\x4b\xd8\ +\xb3\x67\x2f\x27\x69\x42\x69\x6e\x76\xad\xb3\xd9\x41\x82\xf3\xe0\ +\x8b\x33\x7f\x5c\x93\xab\x67\x87\x86\xfc\x40\x9c\xd7\x76\xff\x1c\ +\xe4\x87\xe5\x90\x65\x00\x90\xef\x53\x06\x88\x10\x56\x22\x49\x12\ +\x0c\x87\x03\xb4\xbb\x63\x60\xeb\xf2\xeb\x70\xb5\x58\x81\x13\x96\ +\xc1\xa5\x16\x3b\x77\xee\xc4\xd6\x6d\xdb\x9e\xf7\xc6\x37\xbe\xf1\ +\x6b\x3f\xd5\x16\xe0\xf5\x37\xdd\xf4\xc6\x33\x4b\x67\xbe\x32\x37\ +\x3f\xfb\xa7\x83\xfe\x60\xfb\x70\x34\xfc\x2b\x6b\xdd\xd4\xe4\xe4\ +\xc4\xcb\xfa\x83\x7e\xf4\xcc\x2b\xaf\x3c\x17\x99\x68\xfa\xe8\x91\ +\x23\xd8\xbd\x7b\x37\xf6\x5e\x78\x21\x7a\x1b\x1b\xd8\x32\xbf\x85\ +\x93\x34\xa5\x51\x32\x02\x31\x00\x30\x52\x9b\xe6\xe6\xb4\x3c\x30\ +\x27\xb4\xb2\x40\xe6\xd4\xc1\xc1\xe5\xa6\x18\xca\xa7\xfb\xe7\xf9\ +\xa0\xce\x95\x56\xc3\xe5\x42\xe3\xcd\xba\xf3\xd6\xa0\x38\x44\x00\ +\xe8\xf7\x36\xe0\x98\xd1\x6a\xb7\xc1\x96\xbd\x00\x54\x83\xca\xc0\ +\x1a\x39\x0b\x66\xe0\xb2\xcb\x2e\x43\xb3\xd9\x3a\xf3\x4f\xfe\xc9\ +\xaf\xcf\xff\x54\x0a\xc0\xeb\x6e\xbc\x31\x22\x63\xd2\x6e\xa7\x8b\ +\x6b\x5f\xf0\xf3\xe8\x6f\x6c\x60\xe9\xcc\x19\x10\x11\xf6\x5d\xb8\ +\x0f\xce\x59\x44\x91\x41\xab\xd5\x06\x11\x61\x34\x1a\x01\x22\x9a\ +\x2e\xb5\xaf\x00\x62\xca\x43\x67\x61\x62\xfd\xa1\x7a\xf3\x5c\x1c\ +\x58\x21\x00\xc2\xaf\x5b\xf8\xe8\xbe\x78\x6e\x61\xba\x21\x84\xca\ +\x6b\x6e\x6e\xc2\xb5\x7b\xc9\x04\x60\x75\x65\x05\xad\x56\x0b\x71\ +\xa3\xe1\x0f\xd9\x03\x45\xe1\x75\xaa\x80\xd2\xc1\x5a\x87\x34\x49\ +\x78\x6e\x6e\x0e\xcf\x78\xc6\x15\xdf\x62\x76\x77\xbe\xf6\xb5\xaf\ +\xbd\xe3\x1f\x92\x00\xfc\xc8\xc5\xa0\xc1\x70\x78\xc5\x96\xf9\x79\ +\x5c\xf7\xa2\x17\x63\x30\xe8\x63\x6a\x6a\x1a\xb3\x73\x73\x00\x01\ +\xce\x3a\xc4\x51\x0c\x10\x21\x49\xcb\xa2\x59\x11\xf9\x19\x02\x1c\ +\x13\x72\xf5\x07\xb3\x94\x47\xd6\x4f\x26\x00\xcc\x1e\x87\xa7\xfc\ +\xbf\x28\x7f\x82\xff\x0b\x17\xcf\x2d\xe2\x4a\x02\x81\xe0\x20\x3e\ +\x83\x58\xbc\x3d\xe5\x11\x28\xfb\xd7\x14\xaf\x64\x06\x92\x24\x41\ +\x77\x6c\xcc\x5f\x0a\x33\x83\xb2\x4a\x01\xfc\xe5\xe6\xd6\x2b\x0c\ +\xf5\x0d\x11\x1a\xcd\x06\xad\xad\xad\xe1\xdb\xdf\xbe\xff\xd9\x3b\ +\xb6\xef\xe0\x4f\xfe\xc7\x4f\xde\xdf\xeb\xf7\x1e\xb0\xd6\x8e\x6e\ +\xba\xe9\xa6\x9f\x78\x76\xf0\x23\x13\x42\x98\xf9\x17\xa7\xa6\xa7\ +\xe1\xd2\x04\x44\x99\x6f\x4d\xd3\x14\x36\xb5\xfe\x30\x88\x08\x44\ +\x26\x3b\x0a\x22\x98\xfc\x77\xd9\x1f\xcb\xf3\x25\x71\xfe\x44\xe4\ +\x9f\x2f\x7e\x99\x1f\x4f\x79\xce\xd9\x0f\x04\x22\xd6\xc2\x43\x79\ +\x64\x9e\x45\x82\x20\x66\x80\x48\x7d\x86\xff\xf8\xe2\x5a\xf2\xcf\ +\x65\x64\xcf\xb3\x2e\x85\x73\x0e\x51\x14\xe5\x4f\x0f\xae\xa7\xc6\ +\x84\x72\x21\xa0\x5c\x5e\x0a\x33\x63\x75\x75\x95\x97\x57\x96\xaf\ +\x3e\x71\xf2\xc4\x3d\x49\x92\x5c\x5f\x1c\xfe\xa7\x3e\xf5\x17\xf4\ +\xb4\x16\x00\x43\xe6\x97\xe6\xe6\xe6\xb2\xe8\xb9\xbc\xa3\xfe\xdd\ +\x29\xbf\x99\x94\x6b\x04\x89\x9b\xcd\xc5\xcf\xb9\x36\xb1\x97\x84\ +\x4d\x1c\x15\x97\x3f\xf8\x83\x23\x02\x53\x8d\x67\xcb\x64\xc0\x3f\ +\x2f\x13\xa8\xa2\xe8\x53\x63\x64\x18\x5e\x88\xb2\xb7\x35\x18\x0d\ +\x87\xd9\xe1\x57\xae\x87\xd4\x7b\x17\x17\x5d\x08\xb1\x30\x30\xfe\ +\xa5\x51\x14\xd1\xf1\xe3\xc7\x71\xef\xbd\xf7\x72\x9a\xda\xbb\xee\ +\xba\xeb\xdf\x9f\xfc\xde\x43\x0f\x37\xae\xbf\xfe\xe5\xfc\xb4\x16\ +\x80\x38\x8e\x7e\x76\x66\x66\x26\xf3\xaf\x24\xee\xa6\x3a\x3c\xf6\ +\xa0\x4a\xa6\x96\x94\x6b\xb0\x3c\x0d\x71\x28\x1c\x38\x02\xce\xad\ +\x81\x3c\x7c\x84\xee\x22\xff\x3b\x89\xcf\x17\xc2\x58\xbe\x2d\x57\ +\x84\xac\x70\x2b\x85\x89\x2f\xfc\xff\xa0\xd7\x47\xb3\xd9\xf4\xc2\ +\x84\x22\xbd\xe4\xc2\xe5\x50\xfe\x5c\x69\x8f\xf4\xbf\x39\x17\x70\ +\xca\x84\x00\xcd\x66\x93\xbe\xf1\xcd\x6f\xe0\x9b\xdf\xfc\xc6\xc2\ +\xf7\xbe\xfb\xdd\xff\xe3\x93\x9f\xfc\xe4\xab\x9e\xb6\x02\xf0\x9a\ +\x1b\x6e\x98\x6f\xb5\xdb\xf3\x9d\x6e\xd7\x47\xcf\xe1\x61\x16\x41\ +\x9e\xf3\xe6\x31\x4b\xbf\x50\x44\xe6\xa5\xc5\x46\xe1\xc2\x33\x6b\ +\x90\xfd\x8f\x98\x83\x23\x2c\x7c\xad\xab\x1a\x08\xe9\x4e\x50\x95\ +\x2b\xaf\xa7\x4c\x20\xae\x31\x32\x81\xdc\xf6\xfb\x7d\x34\x5b\xad\ +\xf2\x3a\x51\x5e\xa3\x0e\x50\xd8\x0b\x16\x83\x0b\x0e\x89\x17\xd8\ +\xe0\xad\x61\x88\xd0\xeb\xf5\xf0\xd0\x43\x0f\xbd\xf9\xf8\xf1\x63\ +\x1f\xfc\xd2\x97\xbe\xdc\x04\x80\x8f\x7d\xec\xe3\xf4\xb4\x12\x80\ +\x74\x94\xfc\xec\xe4\xc4\x24\x62\x63\xa0\xef\x92\x8f\x0f\xbc\x00\ +\xc0\xe7\xd7\x79\xc4\xef\x20\x75\xd2\xff\x48\x90\x92\x50\x1e\xb9\ +\x7c\x7b\xae\xf3\xbe\xac\x4f\x87\x6b\xbd\x08\x57\x42\x35\xaa\x73\ +\xe6\x04\xa4\xd6\x22\x49\x53\x34\x1a\x0d\x2f\x74\xec\x63\x97\xc0\ +\x4c\x15\xef\x5e\xb8\x85\x22\x33\x28\x7e\xc9\x55\x69\xb4\xd6\xe2\ +\xd1\x47\x0f\xf2\x93\x4f\x3e\x35\x73\xec\xd8\xd1\xe1\x27\x3e\xf1\ +\x1f\x7f\xff\x1f\xfd\xa3\x5f\xe3\xa7\x95\x00\x90\xa1\x5f\x9a\x9d\ +\x9d\xf5\xda\x2a\x9d\x2c\xb3\x8a\x82\x04\xb2\xc6\xa5\x25\x28\x84\ +\xc1\x5b\x8f\x42\x58\x6a\x74\x98\x64\x7c\xc7\x28\xbd\x07\xfb\x8a\ +\x5d\x78\xf8\x2c\x7c\x7e\x06\x04\x91\x8c\xf9\x03\x6d\x86\x77\x33\ +\x44\x84\xe1\x70\x80\xc8\x18\x18\x63\xbc\x9b\xa0\xc2\xe4\xe7\xb1\ +\x47\x55\x0e\xd9\x07\x90\xb4\xa9\x2e\x97\x22\xd8\x6a\xb5\xe8\xe4\ +\xc9\x93\xf8\xcc\xa7\x3f\xcd\xc7\x8e\x1e\x7d\xc3\x67\x3f\xf3\xd9\ +\xbb\xef\xfe\x4f\x9f\x3d\xf0\xb4\x11\x00\x63\xa2\x5f\x9c\x9d\x9b\ +\x45\x6a\x1d\x00\xca\xb4\xdb\x6b\x6c\x6e\xfa\x0b\xd4\x2d\x2c\xbe\ +\xf8\x52\x2c\x6a\xcc\x64\xa8\x61\xe2\x90\xa5\x40\x10\x2b\xaf\xc3\ +\xf2\xff\x73\x81\x22\xef\x5f\x0a\xcd\x74\xc1\x5b\x07\x48\x61\x7e\ +\xd0\x1b\xeb\x1b\x68\xb6\x5a\xe2\x24\xa9\x0c\x2d\x58\xb8\x26\x0e\ +\x05\x28\x77\x36\x3e\x0d\x0d\xc3\x9b\x22\x63\xc9\xde\x2f\x8a\x22\ +\xb4\xda\x6d\x7a\xe8\xe1\xef\x4d\x7d\xe5\x2b\x7f\xfb\x92\x95\x95\ +\xb5\x1b\x3f\xf3\x99\xcf\xec\x7f\x5a\x08\x40\xb3\xd9\xbc\x62\x62\ +\x62\x02\xce\xba\x5c\x73\x9d\x30\xf9\x19\xb4\x0a\xce\x51\x3a\x32\ +\x65\xf1\x24\x6e\x82\x1b\x6d\x70\x64\xb2\xe7\x44\x31\xb8\xd5\x01\ +\x47\x0d\x9f\xd9\x17\x01\x99\x03\xf9\xdc\x9d\x64\x10\xe7\xf3\x76\ +\xa1\x86\xec\x43\x4b\x14\x96\x9a\x89\x02\xcb\x50\x06\x8a\x5c\xe3\ +\x2a\x8a\xc7\xfa\xfa\x06\x3a\xdd\xb1\xb2\xd0\x53\x08\x07\x15\x2e\ +\x8b\x4a\x0b\x14\x98\x2a\x29\x48\xa1\x11\x23\xf1\x2c\x79\xed\xfd\ +\xfe\x00\x4f\x3d\xf5\x14\x4e\x2d\x9d\xfa\x17\xcb\xcb\xcb\x8f\x32\ +\xf3\x7f\x93\x9e\x8d\x1f\x1a\x08\x7a\xcd\x6b\x5e\x73\x79\xb7\xdb\ +\x89\x9a\xcd\x26\xd2\xd4\xfa\xf4\x08\xcd\x36\xe0\x2c\x60\x2d\x28\ +\x8e\xc1\x71\x33\xbb\xf9\x87\x1f\x02\xb6\xec\x04\x26\x67\x61\xff\ +\xfc\x43\xc0\xd6\x45\xd0\xe2\x3e\xf0\xf6\xdd\xc0\x27\x3e\x00\x6e\ +\x8f\x81\x77\x5f\x04\xde\xb6\x1b\x3c\x31\x05\x8e\x62\x30\x19\x98\ +\xe3\x4f\x80\xbb\xe3\xe0\x76\x37\xbb\xe9\x69\x0a\xa4\x23\xaf\xb1\ +\x65\xac\x01\xa5\xf9\x3e\x65\x64\xae\x31\xc2\x12\x2f\x40\x69\xda\ +\xf3\x87\x63\x87\x7e\xbf\x87\x1d\x9d\x1d\x70\x36\x07\x7e\x8a\x63\ +\x63\x2e\x8f\x99\xf2\xe0\x25\x40\x03\x51\x2a\x38\x98\x49\x89\x5a\ +\xe6\x8e\xa8\x8c\x47\x88\x41\x9c\xe3\x23\x51\x84\xaf\x7e\xed\xab\ +\x98\x18\x9f\xc4\xec\xec\xec\xfa\x5f\xdd\x7d\xf7\xdd\x2f\xf9\x95\ +\x5f\xf9\xd5\x7f\x90\x02\xc0\xcc\xbf\x30\x3d\x35\x05\x44\x31\x30\ +\x18\x80\xbb\xe3\xa0\x93\x4f\xc2\x3c\x78\x0f\xdc\xfe\x67\x64\xf2\ +\xff\xe7\x77\x82\x76\x5f\x0c\xcc\x6d\x85\xfd\xeb\x4f\x82\xc6\x26\ +\x81\xa9\x79\xf0\xd2\x11\xd8\x24\x85\x89\x22\xd0\xd8\x04\x90\x8e\ +\x60\x7b\x3d\x98\xaf\xfe\x15\xa8\xd9\x02\x4d\xce\x00\xdb\x76\x81\ +\x77\x5f\x8a\xe8\xeb\x77\x03\xc3\x01\x30\xbb\x00\xbb\x6d\x37\xec\ +\x8e\xbd\x48\x17\x76\xc1\x8d\x4f\x83\x1b\x8d\xcc\xa2\xa4\x09\x60\ +\xd3\x4a\x50\x0e\x30\x58\x24\xe5\xe4\x83\x4d\xf6\x01\x5b\x9d\x15\ +\x48\x46\x09\x1c\x33\x1a\xcd\x06\x6c\xea\x32\xc1\x66\xae\x38\x29\ +\x6f\x6a\xb8\x26\xec\xe4\x02\xb9\x2c\xc8\x23\x94\x59\x3b\x95\xc9\ +\x88\x4c\x29\x07\xa1\xda\xad\x36\xfa\x83\x3e\x3e\xf6\xb1\x8f\x75\ +\x2e\xbe\xf8\xe2\x17\xfe\xcd\x97\xbf\xfc\x4f\xfb\x83\xc1\xbd\xa3\ +\xd1\xe8\x9b\xd6\xda\xf4\xe5\x2f\xff\xf1\xe2\x06\x3f\x74\xda\xf1\ +\xaa\xd7\xbe\xf6\x93\x57\x3d\xf7\x79\xd7\xef\x89\x52\x98\xaf\xff\ +\x15\xcc\xf7\x1f\x04\x77\x27\xc1\xa7\x8e\x66\x00\x4f\x2b\x23\x5d\ +\xa6\xfd\x01\xc0\x0e\x8d\xc9\x69\xb8\x24\x41\xd2\xeb\xa1\x3d\x3b\ +\x8d\xb1\xf9\x79\xf4\x96\x4e\x63\xb8\xbe\x8e\xb8\xdd\xc6\xc2\x25\ +\x17\xe1\xdc\x89\x53\xe8\xaf\xac\xc2\xf6\xfb\x70\x36\x81\x61\x86\ +\x19\x9b\x00\x45\x06\x6e\x34\x04\xa5\x16\x26\x02\x4c\xdc\x02\x8f\ +\x8d\xc3\xce\x6d\x47\xb2\xed\x02\x24\x0b\x17\x20\x99\x59\x40\xda\ +\xec\xc0\xc1\x00\x2e\x05\xd2\x04\x6c\xad\x2f\x28\x71\x4d\xd5\xaf\ +\xfa\x37\x06\x11\x61\x69\xe9\x34\x1e\x5e\xf8\x2e\x9e\x6f\xaf\x45\ +\x9a\xa4\x25\xfe\xaf\x62\x19\x07\xf6\xe5\x66\x51\x49\x14\xa5\x69\ +\x76\x28\xeb\x16\x35\x9f\x55\x32\x92\x20\xea\x13\xd9\xfb\x58\xe7\ +\x30\x3d\x35\x89\x03\x07\x0e\x60\x66\x66\x16\x53\x53\x53\xbf\x7b\ +\xfd\xf5\xd7\xff\x0e\x00\x7c\xee\x73\x9f\xa3\x5f\xfe\xe5\x5f\xe6\ +\x9f\xa8\x00\x7c\xf8\x45\x57\x1c\x8f\xf7\x5e\xb6\xad\xfd\xe8\xb7\ +\xc0\xc3\x01\x1c\x80\x74\x30\xc4\xec\xee\xdd\x48\xfa\x03\x6c\x9c\ +\x39\x8d\x6d\x57\x5c\x8e\xb8\xd5\xc4\xb9\x63\x27\x30\xb9\x73\x07\ +\x26\x77\x6e\x47\xff\xec\x32\xc8\x18\x4c\x6c\xdb\x9a\x09\x44\x7f\ +\x80\x74\x38\xc0\xd8\x96\x79\x38\xeb\xe0\x92\x14\xc9\xc6\x3a\x36\ +\xce\x2e\x63\xfd\xd4\x12\x5c\xea\xb0\xeb\x39\xcf\x46\xef\xcc\x59\ +\xf4\x97\x97\xd1\x3b\x7b\x16\x83\xb5\x75\xa4\x83\x21\x60\x53\x10\ +\x3b\x44\x11\x01\xad\x0e\xec\xc4\x2c\x92\xf9\x1d\x18\x6c\x59\xc4\ +\x68\x76\x07\x46\xdd\x49\xd8\x28\xce\x6e\xb4\x4d\x41\x2e\x85\xb3\ +\xb6\x0c\x2a\xd9\x79\x2a\x58\x71\xe3\xa3\x28\xc2\xa3\x8f\x3e\x8a\ +\xe5\x2b\xce\xe2\x59\xeb\xcf\x46\x9a\xa6\xfe\x90\x21\x8b\x41\x79\ +\x84\xcb\x41\x86\x53\xa9\x10\x16\xc5\x21\xc7\xf5\xb4\x34\x51\xc6\ +\x96\x65\x6e\xc7\x9c\x43\xea\x09\x86\xc3\x11\xbf\xec\x65\x2f\xa3\ +\xdd\xbb\x77\x1f\x6d\xb7\xdb\xd7\xbe\xe0\x05\x2f\x38\xfc\x13\xb5\ +\x00\x7f\xf9\xc2\x8b\xa6\x47\x69\xba\xec\x46\x43\xb8\x38\x46\xdc\ +\x68\x62\xd7\x35\xcf\xc2\xf0\xdc\x39\x8c\x6f\xd9\x02\x8a\x22\xb0\ +\xb3\x00\x08\xa6\x11\xc1\x98\x08\x2e\x4d\xb3\x38\x39\x32\xde\x57\ +\x17\x78\xbf\x0a\xa5\xf2\x34\xcb\x18\x03\x98\xac\x15\x8b\xad\xcd\ +\x11\xd7\x2c\x8c\x72\x36\x45\x32\x18\x60\xb8\x7a\x0e\xbd\xe5\x15\ +\x0c\xd6\xd6\x90\xf4\xfa\xe0\x34\x01\x39\x8b\x88\x08\x88\x63\x70\ +\x7b\x0c\xa3\xa9\x2d\x18\xcc\x6d\x47\x6f\x66\x3b\xfa\x13\x73\x48\ +\x9a\x6d\x38\x10\x60\x6d\x66\x29\xac\x15\x56\xc1\xc1\x50\x84\x2f\ +\x8c\x3e\x8f\xed\x3b\x76\xe0\xe2\x13\x17\xc3\xba\x92\x02\xe6\x9c\ +\xb6\x02\x10\xa4\x92\x82\x3d\x5c\x4f\x38\xd9\xbc\xdf\x20\x13\x28\ +\xa7\xb3\xa3\x1a\xeb\xc0\x00\xa6\xa6\x26\xf1\xd2\x97\xbe\xf4\x83\ +\x9d\x4e\xe7\x3f\x4d\x4d\x4d\xfd\xe5\x35\xd7\x5c\xc3\x3f\x91\x18\ +\x60\xc4\xfc\x1c\x07\x42\x34\x3e\x81\xc9\xb9\x59\x6c\xb9\xe4\x00\ +\x38\x49\x31\x36\x3f\x97\x69\x18\xbb\xbc\x00\x44\x70\xa9\x05\x93\ +\xcb\x31\xff\xd2\x5f\xfa\x9f\x73\xff\x4a\x41\xf4\xee\xac\x2d\xfd\ +\x3a\x41\xdd\x20\x30\x23\x6e\x34\xd1\xd8\x32\x8f\xf1\x2d\x5b\x32\ +\x62\xc7\x28\xc1\xa8\xd7\xc7\x60\xed\x1c\x06\x6b\xe7\x30\xea\x6d\ +\x80\x93\x11\x9a\xa7\x9e\x42\xfb\xd4\x13\x98\x35\x06\x68\x34\x91\ +\x76\x27\xd0\x9b\x5a\xc0\xc6\xf4\x36\x6c\x4c\xcc\x63\xd0\x19\x87\ +\x35\x59\xa9\x17\xd6\xc2\xb9\x14\xa3\xe1\x10\xed\x56\x0b\xec\xb2\ +\x9c\xc4\x79\x90\x87\x95\xbb\x67\x1f\x1c\x16\xf0\x70\x18\x0c\x56\ +\x71\xed\x2a\x0c\xc5\x25\x60\x01\x5d\x0c\x63\x89\x8c\x32\x63\x65\ +\x79\x19\x0f\x3c\xf0\xc0\xad\x0b\x0b\x0b\xb7\x6e\xdb\xb6\x6d\x1c\ +\xc0\xc6\x4f\xc4\x02\x7c\xe2\x17\xf6\xbd\xdb\x5a\xfb\x8e\x99\x3d\ +\x17\x60\xfe\xc2\x3d\x48\x93\xc4\x57\xfc\xe0\x0b\x3c\xf9\xbf\x0d\ +\x95\x9a\x6e\x00\x82\xd1\x55\xb9\xe2\xbf\x59\xc6\x52\xec\xcd\x2d\ +\x73\x10\x65\xbb\x02\xd9\x29\x48\x19\x45\xba\x99\x17\x7f\x8a\x34\ +\xcd\x39\xd8\xe1\x08\xa3\x5e\x0f\xc3\xf5\x0d\x24\xbd\x1e\xec\x68\ +\x04\x4e\x2d\x0c\xbb\xac\x22\x19\x47\xb0\x8d\x36\x06\x63\x33\x58\ +\x9f\x98\xc7\xda\xc4\x3c\x36\xba\xd3\x78\x78\xf7\x53\xa0\x28\xc6\ +\xe2\xa1\xdd\x20\x97\x80\x02\x06\x52\x68\xee\xeb\x19\x4a\x05\xef\ +\x20\x0b\x02\x4b\xee\x60\x95\x77\x10\x12\x53\x21\xc8\x25\x3e\xc6\ +\x70\x0e\xce\x39\x0c\x06\x03\xcc\xcf\xcf\xe3\xfa\xeb\xaf\x47\x1c\ +\xc7\xa7\x9b\xcd\xe6\xbf\xbb\xee\xba\xeb\xde\xfe\xdf\x3a\x0b\xf8\ +\xef\xd8\x31\xda\xe3\xe3\x70\xa9\x55\x19\xae\x3a\x7c\x51\xf9\x2b\ +\x2a\x83\xf0\x8a\x4f\x65\xea\x48\x21\x5c\x4b\x00\x9b\xb2\x40\x20\ +\xeb\x3b\x3e\xe5\xcf\xab\x80\xbe\x56\x80\x92\x41\x94\xd3\xb6\x29\ +\x8e\xd0\x9a\x9c\x40\x6b\x72\x22\xbb\x99\xd6\x22\x1d\x0c\x91\xf4\ +\x07\x48\x06\x03\xd8\xd1\x08\x64\x2d\xba\x6b\x4b\x98\x58\x3b\x85\ +\x1d\x04\x70\xdc\x00\x45\x09\x7a\xad\x71\x6c\x3f\x63\xb1\xda\x99\ +\xc1\x46\xb3\x8b\xd4\xc4\x70\x8e\x41\xb0\x20\xb6\x1e\x03\x00\x73\ +\x86\x35\xc8\xd4\xb3\x44\x8c\x40\x5c\xd8\x10\x01\x55\x70\x95\x47\ +\xc0\x14\x20\x9b\x22\x68\x2d\xd2\x50\x02\xd0\x6e\xb7\xb1\xb2\xbc\ +\x8c\x3f\xfe\xe3\x0f\xa3\xdd\xe9\xcc\x5f\x75\xe5\x55\xaf\xfe\xc6\ +\x37\xbe\x71\xef\xc1\x83\x07\xef\xb9\xf1\xc6\x1b\x0f\xbf\xf5\xad\ +\x6f\xa5\xf7\xbe\xf7\xbd\xff\xaf\x5d\x43\xf4\xc3\x9c\xfe\xab\xf7\ +\xce\xbe\x0f\x40\x34\x77\xe1\x9e\x4c\xc3\x61\xb2\x03\x2e\xb4\xb9\ +\xd0\x7a\xf1\x0f\x6a\x7e\x86\x31\xde\x0d\xf8\x32\x31\x0b\x34\xcd\ +\x43\xb0\x39\x0e\xcf\x81\xe9\x44\xa9\xf5\x1e\x89\xf6\xce\x24\x7f\ +\x07\x97\x03\x51\xb9\x2f\xa7\x38\x42\xa3\xdd\x42\x73\xac\x8b\xd6\ +\xc4\x04\x1a\xe3\x63\x88\xdb\x6d\xa0\xd1\x80\x33\x11\x18\xc0\x99\ +\xd9\x0d\x74\x46\x7d\x5c\x7e\x68\x15\x8b\x2b\x4f\x61\xd7\xea\x11\ +\x2c\x6c\x2c\x61\x22\xd9\x80\x61\x87\x94\x22\x24\x51\x8c\x14\x26\ +\x8b\x27\x0a\xbe\x41\x4d\x15\x82\x2b\xc5\x09\x0a\xa0\x23\x2e\xdd\ +\x0b\xd7\x10\x61\x82\xf7\x28\x62\x27\x80\x30\x1a\x8e\xe0\x9c\x9b\ +\x1e\x8d\x46\xaf\x3a\x7d\xfa\xf4\xab\xe7\xe7\xe7\xbf\xfa\xa1\x0f\ +\x7d\xe8\xc8\xdf\xab\x0b\xf8\xd4\x0b\x0f\x5c\x94\x5a\xf7\x88\x69\ +\x36\xb1\xfb\x9a\x67\x65\xda\x66\x0c\x4c\x61\xe2\x89\x40\xc6\x64\ +\x01\x5f\xa1\xe9\xc6\x08\x01\x30\x5e\x48\x00\xe3\xf9\x00\x65\x1d\ +\x40\xf2\xff\x4a\x92\x26\xb8\x6c\xdc\x90\x3e\xb6\xe4\xfa\xe5\x80\ +\x4d\x10\xa0\x21\xe7\x0a\x7a\xd6\xae\x63\x8f\x5a\x16\x68\x25\x17\ +\x80\x91\x73\xf8\xf6\xfe\xd3\xb8\xe2\xa1\x29\x3c\xb0\xef\x34\x2e\ +\xff\xee\x64\xc6\xed\x03\x60\x88\x11\xe7\xb1\x8b\x33\x31\x86\x71\ +\x0b\xab\x8d\x31\x9c\x6e\x4c\xe0\x4c\x3c\x8e\x55\xd3\xc2\x10\x26\ +\xbf\x0e\x07\x62\x9b\x5d\x9f\xfb\x41\x34\x75\x1d\xfc\x49\xd7\x22\ +\x03\xcc\x82\x62\x56\x32\x98\xcb\x8c\x21\x23\xad\x0e\x71\xf5\xd5\ +\x57\xe3\xea\xab\xaf\xee\x4d\x4e\x4e\x3e\x32\x39\x39\xf9\x8b\xcf\ +\x7d\xee\x73\xd7\xfe\x5e\x5c\x80\x63\x7a\x01\x3b\x46\x7b\x62\xcc\ +\xdb\x63\xaf\xa1\x12\x33\xa7\xa2\x30\x92\x6b\x08\x69\x26\x0f\x73\ +\x76\x53\x51\x10\x35\x3c\xc9\x4b\xe2\xfb\x94\x93\x2b\x54\x35\x3f\ +\xa8\x0a\xb2\x06\x74\x2a\x4c\x32\xca\x6b\x06\xa1\x89\x96\x56\x24\ +\x17\x12\x97\xbb\x13\x63\x60\x1a\x31\xe2\x76\xab\x14\x1a\xe7\x90\ +\xb2\xf3\x82\xdd\x72\x09\xb6\x0d\x57\xb0\x73\xb4\x02\x22\x20\x8d\ +\x1a\x38\x67\xda\x38\x1d\x77\x71\xca\x74\x71\x1a\x6d\x9c\xe3\x08\ +\x29\x13\xc0\x0e\xa6\x00\xb9\xb9\xac\x95\x94\x2c\x98\xfa\x02\xb3\ +\xbf\x9d\x0e\x20\x2e\x8b\x58\xc4\x0c\x97\x5f\x7e\x1c\xc7\x88\xa2\ +\x08\x0f\x3c\xf0\x1d\x1c\x3c\x78\xb0\xbb\xb0\x65\xe1\xaa\x57\xfe\ +\xea\x2b\xdf\xf2\x85\x2f\x7c\xe1\x8b\xc3\xe1\xf0\x81\x97\xbe\xf4\ +\xa5\xc3\x1f\xab\x00\x30\xbb\xeb\x98\x19\xed\xa9\xc9\x32\x9a\xaf\ +\xa5\xee\xe4\x6c\x9d\x82\xbf\x57\x94\x7a\x49\x72\xfa\xe0\x99\x7d\ +\x92\xd6\x01\x92\x85\x22\xae\x9a\x7d\x19\x34\x33\xab\x7f\xcb\x82\ +\x2f\x15\xf7\x38\x2b\x49\x94\x34\x30\x0f\x23\x17\x15\xc8\x4c\x10\ +\xd3\x33\x03\x8c\x0e\xaf\x81\xe2\x59\x41\xf4\xf0\x45\x7c\x10\x9b\ +\x5c\xab\x1d\x52\xce\xac\x9b\x35\x06\x14\x45\x20\x30\xa6\x30\xc0\ +\x5c\x3a\xc4\xa5\xb4\x0c\x4b\x40\x9f\x9a\x58\xa6\x16\x4e\x50\x1b\ +\x27\xb8\x85\xb3\xdc\xc0\x00\x80\x65\x82\x01\x60\xe0\x80\x2c\x81\ +\x14\x09\x41\x19\xf0\x96\xd7\x96\x1b\x46\xaa\x89\x23\x0a\x5f\x1e\ +\x1b\x0c\x07\x43\x1c\x3d\x7a\x04\xf7\xdf\x7f\xff\xef\xcd\xcf\xcf\ +\xff\xde\xec\xec\xec\x69\x00\x5b\x7e\xbc\x02\x40\xf4\x7c\x10\xd0\ +\x9a\x9c\x80\x73\x0e\x52\x7f\xcb\x34\x9e\x44\xe9\x14\xb9\x09\x95\ +\x6c\x9d\xec\x6f\x04\xca\xcc\x3b\x05\x65\x94\xf0\x04\x3d\x01\xa4\ +\xb4\x13\xf0\x65\xdd\x22\x00\x08\x71\xff\x52\x14\x88\x18\x30\x00\ +\x5b\x54\xb8\x06\x65\x90\x4a\xb0\x6b\x43\x98\x7d\x0d\xd0\x1a\xe9\ +\x4a\x9f\x64\x89\xba\x52\x47\xd9\x66\xfc\x47\x97\x9f\x88\x31\x06\ +\x51\x14\xc3\x34\x1a\x30\xcd\x06\xda\x86\xb1\x68\x86\xd8\x43\x99\ +\x12\x26\x64\xb0\xca\x0d\x9c\xe4\x06\x8e\xa5\x31\x4e\xd8\x18\xab\ +\x96\x3c\xd9\x55\x5e\x9b\x3e\x68\x16\xc1\xa1\xf8\x3d\x0b\xbe\x41\ +\x6e\x82\x13\x6b\xf1\xb9\xcf\x7d\x0e\xd6\x5a\xbe\xec\xb2\xcb\xe6\ +\xbf\xf4\xa5\x2f\x7d\x7b\x30\x18\xdc\xd3\xef\xf7\xff\xf4\x15\xaf\ +\x78\xc5\x97\x7f\x24\x01\xf8\xd4\x2f\x5d\x34\x91\x3a\x5e\x8c\x1a\ +\x31\x1a\xed\x76\x96\x27\x93\x57\x2b\x15\xc7\xa3\x64\xc9\x09\x8d\ +\xa5\xd2\x00\x4b\xbf\x2f\x78\x03\x2a\x40\x09\xcc\x3f\x0a\x3c\x9d\ +\x35\x2d\x84\x03\xbe\x5e\x51\x15\x54\x37\x54\xb2\x81\x49\xbc\xbf\ +\xf8\xfc\xef\xec\x3b\x83\xab\x8e\xec\x04\x8f\x33\x82\x7b\xaf\x84\ +\x81\x1d\x09\xf6\x47\x11\x6c\x02\x2e\xb5\xb0\xa3\x04\xdc\xdb\x28\ +\xf8\x92\x30\xcd\x06\xa2\x56\x0b\x8d\x76\x0b\x71\xa3\x89\x99\xd8\ +\x61\xc1\x8c\xf0\xcc\xf6\x10\x8e\x09\xcb\x2e\xc2\x07\xcf\x8c\xc3\ +\xe4\x11\xb9\xa9\x7c\x23\x16\xd6\x51\x58\x86\x92\x85\x01\x87\xd2\ +\xa2\x19\x22\xb4\xdb\x6d\x00\xa0\x27\x9f\x7c\x12\x77\xde\x79\xe7\ +\x33\xaf\xbd\xf6\xda\x67\x2e\x2e\x2e\x9e\x03\xf0\xa3\x09\x00\x03\ +\xd7\x80\x81\xe6\xf8\x18\xa2\x66\x33\xfb\xb2\xa2\xf4\x95\x29\x39\ +\xe7\x9c\xbf\x5c\xc3\xb9\xb8\xf7\xc5\x5d\x34\xfe\xee\x8b\x7b\xe8\ +\x39\x83\x2c\x4c\xba\xa4\x99\xf9\xdf\x13\x34\xbf\x30\x50\x52\x0a\ +\x58\x82\x5c\x57\xf6\xad\x63\x0d\xa5\x0c\x97\x3a\x98\xb1\xa6\xf0\ +\x17\x21\x3f\x21\x28\x1f\x15\xa0\x16\x8b\x63\x32\x04\x38\x93\xb3\ +\x7e\x1c\xd2\x8d\x1e\xf8\xdc\x86\xb7\x52\x71\xb3\x81\xb8\xdd\x41\ +\xb3\xdb\x41\x73\xac\x8b\x6e\x44\x78\xe5\x74\x1f\xc7\x13\x83\xa3\ +\x23\xc2\xd2\x88\xd0\xb3\x19\xdc\x6c\x00\xc4\x3e\x06\x60\xaf\x44\ +\x35\xd4\x2b\x50\x0e\x51\x87\x8c\xac\xa3\x47\x8f\x82\x88\x30\x36\ +\x36\xf6\x69\xce\xca\x90\x11\x11\xa5\x3f\x94\x00\x38\xe0\xd9\x64\ +\x08\xc9\x60\xc0\xbd\xd3\x67\xa8\x35\x35\xe9\x19\x30\xfe\x90\xf2\ +\x1f\x4c\xe1\xe3\x99\xb5\x7f\x2f\x6e\x95\x83\xb2\x1a\x10\x84\x0f\ +\x56\x9a\x0b\x1f\xc0\x95\xbe\x31\x50\x4d\xe1\xd3\x4b\x52\x27\x6b\ +\x7a\xae\xa2\x8b\xe8\x3f\x13\x01\x76\x3d\x01\xba\x00\x19\x02\xa7\ +\x14\x10\x5a\xa1\x5c\x4f\x51\x0a\x2e\x0e\x44\x11\xcd\x02\xa2\x63\ +\x96\x05\x95\xdf\x23\xe9\x0f\x30\x5c\xef\xe1\x9c\x4d\x31\xb5\x63\ +\x3b\xa6\x76\x6c\xc7\xc5\x4d\xe0\x52\xca\xd2\xd4\x11\x13\xce\x5a\ +\x83\x93\x43\xc2\xb7\xd7\x18\x47\xfa\x08\x3a\x20\x9c\x12\x82\x22\ +\x2d\xe4\x4d\xb8\x70\xed\x76\x1b\xf3\xf3\xf3\x68\x34\x1a\xf7\x51\ +\xc6\x44\x49\x7f\x28\x42\xc8\x67\x5f\x7c\x09\xbd\xea\xaf\x0f\xde\ +\x4e\xc0\xdf\xa4\xfd\x01\xd9\x24\xcd\xb9\xfe\x0c\x72\x2c\xb9\x57\ +\xb9\x92\x0a\x23\xc5\x25\x11\x83\x21\x9c\x98\xe7\x07\x66\x51\x1a\ +\xe5\x69\x8f\x7f\xbf\x3a\x8a\xb0\x84\x4d\x59\xd4\xff\x5d\x90\x0a\ +\x14\x97\x23\xe3\x6a\x49\x0e\x92\x87\x66\x08\xe9\xca\x00\xa6\x13\ +\x6b\xb6\x30\x0b\xfe\x89\x10\x4e\x45\x32\x29\xe3\x5d\x41\x3b\x65\ +\x6c\x4a\x4f\xcd\xeb\x1c\x51\xa3\x81\x73\x27\x4e\xe1\xf8\xdf\x7d\ +\x0f\x27\x1e\x3b\x84\x33\x27\x96\xb0\xde\x1b\x00\x04\x2c\x74\x22\ +\x5c\x3d\x6d\xf0\x33\x93\x84\xa6\x21\xa4\x0e\xe8\xa5\x45\x16\xc2\ +\xf5\x58\x01\x0b\x56\x6c\xa1\xb0\xce\x61\x66\x66\x06\xdd\x6e\xf7\ +\xa9\x6b\xaf\xbd\x76\xfd\x47\x0a\x02\xff\xfb\xcf\x3f\x5c\x18\xbc\ +\x2b\x29\x8e\xd1\x9c\x18\xcf\x8b\x34\x24\x58\xb0\xc2\x56\xc0\x94\ +\xc0\x0d\xe5\x95\x34\x47\xf9\xf3\xb3\x03\x23\xaa\x92\x3c\xbd\x9f\ +\x53\x81\x90\x0b\x12\x25\xf2\x79\x7c\x79\x08\x65\x97\x6e\x85\xb9\ +\xcb\xa5\x5b\x52\xa0\xbc\xb7\x14\x84\xfb\xf7\x2c\xe1\xaa\x27\xb7\ +\x02\x0b\x10\x3d\x87\xec\xc9\x1b\x1a\x3c\x29\xaf\x47\x81\x80\x92\ +\xb1\xe4\x24\x09\x2c\x63\x10\xc9\x94\xb5\x30\x3d\x36\x49\x90\x2c\ +\x0f\xb0\xb1\x74\x06\x8c\x6c\x1a\x59\xdc\x6a\x62\xc7\x33\x7f\x06\ +\xd7\xcc\x36\xf0\xac\x19\x87\x73\x29\xe1\xec\x08\xf8\xf8\x93\x7d\ +\x9c\x4b\x18\x06\xac\x09\x31\x0e\xb5\xcc\x06\x6b\x2d\xb6\x6f\xdf\ +\x8e\x46\xa3\xf1\x95\x1f\x0b\x25\xec\xd3\x2f\xbe\x64\x91\x08\x13\ +\x71\xb3\x81\xb8\xd9\x50\x66\x4f\x51\xa7\x1c\x94\x69\xe6\xbc\x1e\ +\x0e\x05\xe0\x70\xd9\xdb\xe7\x41\x11\x17\xfc\xdd\x79\xb0\xa7\xc4\ +\xff\x4b\x33\xeb\x0f\x88\x64\xde\x4c\x9b\x04\x95\xd2\x65\x94\x1a\ +\xcb\x00\xd8\x32\x6c\x3f\x45\x34\xd9\xcc\x3e\xb3\xc2\x34\x96\xd7\ +\x29\x5a\xd8\x48\xc4\x2a\x4e\xa6\xa2\x24\x9b\x9e\xf2\xb3\x16\x2e\ +\x28\xec\x4e\x22\x03\x8a\x23\x98\x28\x06\x18\x18\xf5\x06\x58\x39\ +\x72\x0c\xcb\x4b\xcb\x18\x26\x0e\xe3\xad\x08\x7b\xc7\x23\x3c\x73\ +\x26\xc6\xb6\x8e\x11\x91\x48\x01\x23\x73\x4d\x63\x5a\x66\x01\x76\ +\xee\xdc\x09\x22\xfa\xeb\x1f\x4b\x1a\x98\x32\x3d\x9f\xd9\xa1\x35\ +\x36\x96\xc1\xbf\x6c\xf3\x2f\x54\x7e\x55\x2a\x0e\x24\xc7\xc8\x4b\ +\x1c\x3b\xd3\x7c\xe2\x52\x0f\xca\xe0\x90\x34\xcc\xc3\x22\x27\x66\ +\x91\xb7\x0b\x16\x31\x07\x07\x5a\x16\x93\x58\xab\xa4\xcc\x02\xa4\ +\x86\x32\x3c\x5b\x88\x47\x16\x80\x83\x69\xc5\x79\x6a\xcb\xfa\xb9\ +\xb2\x16\x11\xb0\x79\xfc\x67\x17\xe6\xce\x15\xd6\x2e\xe0\x09\xb2\ +\x14\x10\x78\x8e\xa3\x8a\x6d\x3d\x97\x10\x38\x73\xe8\x70\x3e\xea\ +\x86\xd0\x9d\x99\xc2\xde\xe7\xff\x1c\x5e\xb6\x27\x02\x5b\xc6\xf2\ +\x88\xf1\x3b\xf7\x9d\x81\x81\x43\x44\x40\xec\xf9\x89\xa8\x54\x14\ +\x17\x16\x16\xc0\xcc\x5f\xfe\x31\xe1\x00\x7c\x1d\xd8\xa1\x35\x31\ +\x5e\x6a\x6b\x7e\xc8\xc5\x97\x67\xd2\xa6\xd2\x3b\x48\xc7\x28\x68\ +\x8e\x0a\x02\xf2\xa9\xbe\x08\x6a\x64\xc7\x8d\x3c\x4b\x66\x5d\x35\ +\x64\x0d\x1f\x93\x64\xfd\x38\x99\x5d\xb0\xd0\xd6\xfc\x3a\x8b\xe8\ +\xd9\x00\xa3\xb5\x21\x68\x3e\xce\xdc\x98\x0b\x30\x79\xfd\x81\x92\ +\x58\xa6\xd5\x98\x59\xa1\x8f\x4c\x4e\xfc\x4e\xe8\xab\xa4\xb4\xb3\ +\x06\x7c\xe4\x21\x46\x51\x04\x8e\x0c\xe0\x18\x83\xb5\x0d\x1c\xbd\ +\xff\x3b\x68\x4f\x4d\x61\x6c\x61\x1e\xed\x76\x0b\x6f\x7d\xc6\x0c\ +\x9e\xda\x48\xf0\xe0\xd9\x01\x9e\x58\x1d\xd5\xe5\x06\xe8\x76\xbb\ +\x98\x9c\x9c\x1c\x5d\x77\xdd\x75\x07\x37\x15\x80\x03\xbb\xfe\xf5\ +\x6d\x4a\x6b\x0c\x95\xb8\xae\xaf\xd8\x65\x27\xf7\xd9\xd3\xdf\xb9\ +\x3e\xc6\x08\x63\xf1\x3c\xcc\xe9\x86\x87\x4d\x75\x55\x4f\xe2\xfb\ +\xc5\xfb\x98\xb2\x52\x88\xf0\x6f\xa4\x92\xb8\x32\x5b\x10\xbc\x4e\ +\x40\x75\xf2\x14\xed\x62\x4c\x3e\xc7\x04\x33\x21\xf0\xf2\xaa\x6e\ +\xef\x83\x50\x2e\xbb\x80\x39\x2f\x5e\x0d\xcf\xf4\x71\x62\xe7\x53\ +\x38\xf1\xd4\x45\x9e\x7c\x71\xec\xdc\x61\x1c\x5a\xd9\x53\x7e\x86\ +\xcc\x4e\x0a\x1b\xc1\xac\xe0\x05\xe6\xba\xda\x7f\x51\xdd\x2c\x6e\ +\x6b\xf6\xb9\x8c\x2a\x25\x9e\x6b\xb8\x85\x3e\xc6\x5d\x61\xf0\x69\ +\x8b\xb1\x73\xf3\x98\xd8\xb6\x00\x43\x84\xb8\x09\x0c\x27\x12\x1c\ +\xef\x0f\x60\x73\xc5\x89\x4c\x76\x4f\x9d\x63\x4c\x4d\x4d\xe1\x53\ +\x0f\xee\x5d\xda\xf9\xfa\x13\xb7\x15\x33\x8e\xc2\xb4\x39\x56\xb8\ +\xa2\xc2\x58\xa9\xac\x3c\x31\x23\x22\x1b\x35\x28\x9d\x03\x32\x9c\ +\xbc\xac\xd0\xb1\x2f\x06\x90\x44\x57\x88\x3c\x53\xbe\x28\x99\x72\ +\xd1\x80\x29\x5b\xb8\x25\x18\x40\x5c\xad\x96\xb1\x04\x8d\xa1\x40\ +\x91\x50\x43\xb9\x4a\xfb\xcd\xa9\xdc\xa4\xe1\xd3\xf2\xc4\xc0\x44\ +\x38\x7a\xc9\x21\x5c\x70\xf0\x22\xa0\x5d\xc3\x1e\x96\xf8\x6b\x2e\ +\xb0\x92\xf9\x4b\x32\xeb\x53\xd7\x5e\x22\x95\x5e\x4e\x5d\x50\xbf\ +\xa0\x7a\x2c\xa3\x8e\xcd\x6c\x88\xc0\xcd\x18\xbd\x33\x67\x31\x58\ +\x5d\x83\x69\x34\x30\xbd\x6b\x27\xb6\x8e\x35\xf1\xe2\xdd\x0d\xa4\ +\x0e\xb8\xef\x54\x0f\x67\x06\x29\xe2\x88\xe0\x9c\xc3\xc4\xe4\x04\ +\xd6\x06\xf1\xe1\x1f\x54\xf9\x33\xaa\x9b\x37\xe8\xe6\x21\x91\xd6\ +\xce\x36\xd7\xe7\x73\x5a\x16\x27\x1b\x3d\x15\xa9\x97\xc5\x9f\xb0\ +\x28\x23\xaa\x57\xcc\x2a\xf9\x52\x58\x3b\xb3\x90\x76\xae\x32\x7b\ +\x83\x0e\x22\x42\x09\xc0\x84\xb9\x3d\xd7\x74\xfb\x54\x12\x4a\x56\ +\xd5\x2d\xb0\x75\x30\x4d\xa3\x30\x84\xb0\x49\x45\xba\x9d\xe0\xb2\ +\xc5\x77\xab\x9a\x1f\x42\x11\x6b\xf0\x0f\xac\xc7\x06\x2d\xa5\x1a\ +\x0b\x24\x01\xf8\x18\x03\x67\x1d\x92\x5e\x1f\xfd\x95\x55\xf4\x37\ +\xfa\x70\xcc\x88\x63\x83\x3d\x53\x2d\x5c\x30\xd9\xf2\x91\xfd\xc4\ +\xc4\x04\x96\xce\x35\x1f\x0f\x15\x44\xbe\x77\xfc\xc2\xb7\xbd\xbe\ +\xac\xe4\x69\x5c\x46\xc4\x4b\x8e\x88\xcc\xc9\xb9\x13\x7f\xfb\x85\ +\x89\xd5\xc7\x5e\x14\xb7\x5b\xe8\x4c\x4f\xfb\xf4\xac\x30\xed\x65\ +\x7a\x4c\x02\x22\x86\x4a\xf2\xaa\x5f\x9e\x6a\xeb\xe8\xf2\xa2\x29\ +\x34\x8f\x2a\xe0\x83\x07\x9c\x18\x01\xb5\x8a\xab\xfe\x9c\x83\x9e\ +\x30\x3b\x4a\x31\x9c\x99\xc5\xfe\x2d\x5b\xcb\x18\x83\x19\xd8\xb5\ +\x82\x7d\xe9\x9c\x12\xc2\xea\xeb\x59\x05\xab\x32\xf3\x28\x99\x4c\ +\xd5\xdf\xeb\xa0\xb6\xc6\x8a\x31\xd7\xd4\x00\xb8\x22\xe9\xce\x9e\ +\x01\xf7\x4f\x23\x4a\x62\x6c\xbb\xe2\x72\x5c\x16\x35\x01\xeb\xf0\ +\x9f\x9f\x5c\x45\x3f\x01\x9e\xb9\xaf\x8b\x99\x8d\xd6\xd1\x4b\xf6\ +\x14\x5d\x4c\x56\x0f\xb5\x20\x91\x06\x4a\x56\x0a\x87\x36\x83\x0c\ +\x03\x40\x7b\x78\xf6\x02\x00\x88\x5a\x2d\x71\x73\x49\x74\x02\x69\ +\xad\x55\xd5\x0b\x51\xe9\x0a\xc2\xf6\x4a\xaa\x85\x1a\xb0\x0f\xa8\ +\xd3\xba\x90\x32\x51\xf3\x44\x12\x00\x8e\x4a\x21\xb3\xef\xe7\xfa\ +\x29\x28\x8e\x4a\x2e\x59\xd8\xd8\x4f\xf5\x98\x78\x2d\xfd\xa3\x9e\ +\x13\x92\x03\x4a\xc1\xfb\x33\xe9\x21\x17\xc1\xe1\xfb\xa7\x73\x10\ +\x7f\x8a\x3b\x48\x26\x4b\x1d\x9d\x63\x9c\x7a\xf8\x20\x96\x8f\x9d\ +\x84\x33\x84\xe7\x6c\x1f\x87\x69\x34\x61\x9a\x9d\x73\x89\x8b\x06\ +\xb2\x01\x96\xa4\xde\x31\x60\x2a\x71\x07\x05\x3e\x49\x00\x1d\x8d\ +\x64\x7d\x11\x44\x88\xe2\x38\x07\x5d\xf2\x3e\x39\x75\x52\xba\x8c\ +\xcb\x02\x79\x2b\x2b\x57\x32\x8a\x2f\xe1\x5d\xaa\x85\x7c\xa5\xf9\ +\xaf\x60\x78\xa5\xc0\x28\x80\x4c\xfc\xc2\xa1\x1a\x70\x09\x57\xf3\ +\xe8\x05\x8f\xe0\xc0\x53\x17\x65\xae\x40\x47\x8e\x41\x70\xb6\x79\ +\x1b\x19\x07\x98\x9f\x8c\x51\x28\xcc\xfd\x29\x48\x03\xc5\xbb\xaa\ +\x36\x77\xe6\x00\x2b\xa8\x73\x8f\xe5\x77\x4d\xfa\x7d\xf4\xce\x9c\ +\x45\x32\x18\xa1\x13\x47\xf8\xc5\xc5\x71\x34\x56\x4e\x1f\x41\xfd\ +\xcb\x7c\xdc\x6e\x40\xd5\x94\x37\x84\xd1\x89\x80\xe6\x68\xad\x4b\ +\x9c\x8e\x11\x65\xf5\x6f\xdd\x31\x17\x62\x2f\xe5\x41\x86\xc8\x9e\ +\xaa\x64\xe5\x45\x0c\x52\xe7\xcb\xea\xcb\x31\x4b\xbb\xc1\x08\xcb\ +\x74\x95\x0e\x7c\x41\xfc\x60\xae\xaf\x9d\x78\x9a\x19\x33\x5c\xe2\ +\x60\xda\x51\xbd\x8f\xe6\x32\xf8\xe3\x40\xb0\x09\x55\x46\x70\x18\ +\xbd\x17\xad\xe2\x24\x6a\x22\x14\x92\x3f\xa8\x7a\x38\xc4\x08\x5c\ +\x16\x94\xf4\x90\xec\x8f\xf4\x46\xda\x60\xd4\xeb\x63\x7d\xe9\x34\ +\x18\x84\x06\x18\x83\x24\x7a\x9c\x6a\xe2\x0c\x4d\xca\x11\x19\x1c\ +\x4b\x8e\x5d\x00\xef\x76\x7b\x47\x77\x80\x08\x64\x88\xad\x9f\xf4\ +\x15\xb6\x37\xc9\x8e\x59\x56\x60\x9c\xf2\x79\x81\x04\x2b\xd7\x40\ +\x50\x3d\x76\x5e\x93\x54\xf0\x55\xe3\x62\x74\x88\xe9\x2d\x08\x07\ +\xaa\xaf\x32\xf3\x34\xa7\x92\xc5\x11\x54\xfe\x21\x04\x39\x04\x6b\ +\xd4\xc1\x30\x87\x35\xa3\x20\xa2\x2f\xf9\x10\x15\xcf\x55\x3d\xc3\ +\x5a\x01\xdc\xc4\x03\x21\xc4\xaa\x98\x01\x13\x47\x58\x3d\x7a\x0c\ +\xe9\x68\x08\x10\xe1\x2c\xcd\x1f\x66\x4d\x81\x50\x4a\x0e\x02\x0c\ +\x87\x7f\x0c\xda\xe0\xb2\xef\xe9\x68\x65\xea\xd2\xc7\xfa\x9d\xad\ +\xf7\xb1\xb5\x64\x47\xa3\x72\x60\x4b\xc0\xd1\x62\x55\xaa\x65\x15\ +\x9a\x7b\x8b\x10\x04\x53\x3e\x30\x92\x19\x29\x73\xf0\x5e\xe5\x01\ +\x92\x90\x60\x09\xb4\x50\xc5\x9f\xb1\xbe\xf3\x01\x48\x68\x87\x16\ +\x14\x91\xa2\x0e\x84\xee\x8b\x03\xe8\x19\x1c\xd8\x1d\x61\x25\x20\ +\x84\x56\x1f\x38\x57\x4f\x5f\xa4\x83\xde\x4a\xa0\x26\x4d\x21\xdd\ +\x7f\xa0\xeb\x3d\xa4\x0b\x52\x0c\xc4\xad\x36\xe2\x56\x2b\x83\x0e\ +\x30\xbb\xb4\xa9\xf0\x14\x31\x40\xe8\x9b\x8a\x14\x9e\x65\x2a\x4a\ +\x86\x89\x80\x66\xba\xbe\x15\x44\x88\x1a\x0d\xa5\xb7\xe5\x21\xb3\ +\x22\x78\x56\x7a\x23\xc4\xcf\x24\xcd\xba\xd0\x28\x9d\x86\x95\x3f\ +\x3b\x5f\x64\x09\xf8\x01\xd2\x10\xa8\x32\xb2\x9e\x4c\xa2\x86\x56\ +\x14\xfe\x7f\xf1\x61\xec\x7f\xe2\x22\x51\xa3\xa8\x0a\x41\x45\x80\ +\xf2\xd4\xb1\x52\x94\x73\x55\xf0\x86\xb9\xaa\x71\xf5\x0d\x22\x81\ +\xf2\xd4\x59\x86\xca\x8c\x9a\x00\xbf\x01\xe0\x1c\xa3\xd9\x6d\xc3\ +\x44\x06\x09\x9a\x27\xeb\x5f\x2f\xeb\x13\x19\xdf\xa0\x12\xf8\x72\ +\x5d\x44\x4b\x40\x94\xf6\xb7\x81\x08\x26\x0f\x02\x89\x04\xf9\x53\ +\x04\x8c\x24\x2f\x34\xc0\x51\x74\x9a\x49\x55\xd1\xa4\xaa\xc2\x94\ +\x3e\x2b\xa4\x83\xd6\x0f\x98\x62\xed\x7b\xf4\x79\xba\xd2\x6c\xdb\ +\x91\x85\x69\xc5\xa2\x94\xcc\x02\x2d\x44\x65\xec\x4c\xe5\xc6\x7b\ +\xd8\x7a\x93\x14\x51\xc6\x2d\xa4\x63\x21\x4f\x03\x0f\xb8\xaa\x8a\ +\x5c\x22\x83\x5c\x84\x37\x43\xb4\x9d\xfb\xeb\x73\x68\x8d\x8f\x83\ +\x19\xe8\xd1\xf8\x61\xa9\xdc\x84\x60\x84\x62\x81\x03\x54\x78\x2e\ +\x35\x2f\x02\x03\x9d\xde\x89\x39\x22\x8e\x41\x86\x9d\xb5\x64\xa2\ +\xa8\x52\x60\x21\x47\x79\x65\x0a\x62\x62\x97\x28\xd7\xfa\x20\x06\ +\x12\x24\xd5\x52\xc9\x21\x75\x43\xf0\xfc\x29\x30\xcb\x01\x09\x43\ +\x64\x4a\x25\x92\xc9\x75\x52\x00\xfc\xc6\xbf\xfa\x1f\xfc\xcb\xdf\ +\xfb\x8e\x3f\x28\xc3\x33\xc7\xa8\x86\xff\x41\x89\x99\xb5\x79\x67\ +\x39\xc8\x8a\xeb\x53\xc2\xca\x19\xd6\xa0\x92\x00\x54\x3b\x3b\x18\ +\xb5\x88\x61\x5d\xba\x59\x04\xdb\xcd\xf1\x71\xb0\x73\x58\xa3\xa9\ +\x43\x84\x0a\x56\xa7\x06\x69\x15\xc8\x7f\x2d\xf7\x42\x07\x21\x8e\ +\x7a\xdd\x6d\x67\xd6\xc7\x76\x7d\x19\xec\x28\x1d\x0c\xf2\xc3\x08\ +\x06\x1f\x50\xd8\xf0\xc0\x41\x0e\x22\x4a\xbd\x92\x60\xe1\xab\x60\ +\x5c\xc5\xc3\x8b\x51\x33\x45\x57\x2e\xaa\xf3\x87\xa4\xd6\x7b\x53\ +\xee\x58\x8d\x75\x03\x38\x20\x59\x02\xb7\xfe\xde\x2d\xe2\xd2\xaa\ +\x44\x0b\x86\xe6\x06\x78\xac\x42\x99\xf9\x9a\xe0\x56\x80\x52\xfa\ +\xb6\x52\x2d\x04\x52\xc1\x0c\x44\x3a\xc8\xa8\x77\x05\x2c\x34\x89\ +\xcb\x0a\x12\x1a\xdd\x36\xc0\x8c\xb3\x34\x7f\x44\x59\x76\x0e\xac\ +\x4c\xfe\xf2\x98\x35\x60\x07\x39\xef\xb1\x9c\xb6\x9a\xc1\x05\x8d\ +\xb4\x37\x9b\x31\x5a\x22\x61\xd6\xb2\x99\x37\xd9\x8f\xd2\x07\x68\ +\xaa\x17\x85\xb8\x67\x5d\xe1\xa3\xe2\x20\x79\x13\x89\xe7\x60\x74\ +\x1b\x57\xfd\x74\x98\x96\xca\xd7\x9b\xec\x3a\x3e\xf8\x3f\xdf\xa9\ +\xc9\xa1\xa1\x9f\x54\xaa\x17\x1f\x00\x00\x1e\xb5\x49\x44\x41\x54\ +\x95\x83\x24\x78\x33\x0d\xa7\xca\x35\xeb\x48\x3f\x20\xbe\xd6\x61\ +\x12\xe0\x8a\x55\xd9\x0c\x78\x02\xe9\x0c\x42\x92\x45\xe3\x56\x13\ +\x51\xa3\x81\xd4\xd2\xc6\x10\x9d\x9e\xe2\x4a\x52\x80\xed\xc8\x34\ +\x10\x35\x29\x0a\xd7\x58\x82\x33\x53\x97\x7d\x95\x4d\xdc\x4f\x86\ +\x43\xd8\xbc\xdd\x5b\x69\x56\xa1\xf1\x4e\xd6\xed\x43\xaf\x2d\x2d\ +\x00\x87\x7f\x51\xa9\x1d\x73\x4d\x74\x1e\x68\x3c\x04\x7c\xcb\x21\ +\x9c\x1a\xd6\xed\x51\x6e\x04\x79\xd3\xbb\xde\x94\x99\xff\xb7\xbf\ +\x0f\x92\x69\xa5\x4a\xc9\x4e\xd2\xce\x50\x8d\x05\x6a\x60\x5c\x7d\ +\x0f\x49\x8d\xae\xf1\x64\x92\x42\xb8\x42\x86\x57\x40\xf8\x27\x66\ +\xed\x2a\x59\x5b\x33\x25\xeb\x8e\xd1\x1a\xeb\x02\x44\x18\x52\xfb\ +\x08\x07\x61\x18\x97\xc4\x28\x2f\x3c\xe4\xa1\x60\xae\xfa\xff\x70\ +\xd8\x26\x03\xd8\x18\xdf\x7d\xcc\xb0\xeb\x90\x31\x20\x63\x2a\x35\ +\x6c\x0e\x80\x59\x85\xe2\x09\xb2\x43\x98\x38\x88\x49\x92\x9a\xf6\ +\xe7\x39\x83\xac\x70\xfa\x92\xff\x56\x6a\xaa\xef\x9c\xf1\xe6\xbf\ +\xdc\xf9\x83\x00\x85\x64\x06\x6c\x62\x75\x21\x27\xac\x25\x48\x21\ +\x2d\x9b\x91\x95\x65\x60\xae\xf1\xcd\x1c\x7e\xb9\x00\xe7\x63\x0e\ +\x28\xaa\x61\x8a\x48\xe0\x00\x18\x0b\x81\x41\x55\x34\xca\x9f\xe7\ +\x6c\x8a\xe6\xf8\x38\xe0\x18\xeb\x98\x38\xa4\x62\xad\x00\xaa\x94\ +\xf2\x1c\x87\xe8\x13\x07\xfc\x6a\x19\x80\x8c\x6f\x1c\xde\x99\x51\ +\x00\x8c\xe8\xeb\x0f\x81\x2a\xd1\xe3\xeb\xd9\x41\x12\xe6\x0c\x25\ +\x26\xaf\xeb\x53\x35\xc0\x51\x94\xf3\x5a\xe6\x6d\x40\x32\x45\xd5\ +\x0c\x13\xd7\x40\xd2\x96\x7d\xda\xc6\x0e\xb5\x8c\x5e\x0e\x6a\xfa\ +\x15\x13\x4f\x35\xc5\x1f\xc5\xd1\xd3\xe6\x80\x24\xeb\xb9\x06\xaa\ +\xa0\xfa\x51\xa4\xf5\xf0\x81\xea\xbd\xc8\xba\xa1\x27\xb6\x6d\xcd\ +\x89\x3a\x8c\x15\x9a\x3d\xac\x94\x98\x74\x80\x2c\x63\x77\xa3\xf1\ +\xe9\x9a\xa9\xdd\x02\x29\x4c\xa3\x6e\x2f\x8d\x3b\xa7\x1c\x3b\xd8\ +\xc1\x30\xa0\x72\x55\xcb\xb9\xc5\xa8\x57\x5d\x06\x16\x79\x34\x02\ +\xc4\x90\x11\x00\x30\x14\x34\x8b\x6a\xd4\x51\x05\x5a\xc5\xeb\x5d\ +\xe9\x82\xb8\xa6\xee\x40\x0c\xa4\xc3\x14\x14\xa1\x86\x82\x5e\x4f\ +\x4b\x47\x80\x66\x86\x58\x40\x08\x6a\x69\x1c\x42\xe3\x21\x1c\x40\ +\x73\xfe\x3b\xe4\xdf\xd5\xb7\xd0\x31\xd7\x07\xe6\x41\x1c\xc2\x00\ +\x4c\x1c\x63\x6e\xef\x1e\xc4\xcd\x26\x33\xb3\x5d\xc1\xdc\xc9\xba\ +\x2a\x3f\x07\x2e\x9d\x08\x88\xc1\xba\x8d\x1f\xc2\x3f\xb0\x94\x18\ +\x02\x06\xed\x85\xe5\x34\xee\x9e\x8a\xd3\xfe\x42\x36\xea\x25\x94\ +\x7e\x52\x85\x8c\x32\xe0\xa0\x80\xf7\x2f\x4c\x5b\x4d\x50\x23\xa9\ +\x61\x9a\x16\xc6\x01\xd7\x40\x47\xcf\x1c\x04\x60\x0a\x12\xf6\x53\ +\xc3\x08\x8f\xee\x7a\x04\xfb\x1e\xb9\x48\x65\x27\x3a\xa0\xa4\x4a\ +\xcf\x61\xa5\x41\x45\xfc\x37\x2b\x33\x2d\x88\xa7\xea\x39\xd5\xc0\ +\x56\xe7\xf1\xae\xa6\xe8\x54\xcd\x8a\x2a\x89\x9a\x63\xb4\xc6\x3a\ +\x00\x33\x86\x68\x1d\xbb\x3f\x7a\xee\x9d\x8a\xdb\x43\x35\x00\x94\ +\xb0\xf2\xb1\xfc\xae\x14\xa4\x15\x95\xbc\x91\x80\x4e\xb2\x7a\x20\ +\x9b\x80\x6d\xca\xfc\x57\x91\x42\xc5\x70\xc6\x4d\xa2\xfd\x92\x9e\ +\x05\x35\xdc\x31\xbc\xb1\xe0\x7a\x92\x85\x8e\xee\x29\xdf\x14\x12\ +\x80\xde\x90\x9d\x83\x7a\x7e\xbb\x1d\x59\x44\xad\x38\x88\x51\x48\ +\x58\x2d\x0d\x1a\x85\xc2\x56\x6a\xa9\xf8\x0c\x55\x44\x20\x3d\x91\ +\x94\x59\x09\xaa\x2b\xf8\x92\x4c\x55\x33\x8f\xaa\x1b\xd2\xf3\xcc\ +\x83\x42\x95\x73\x68\x8e\x8f\x81\x01\xf4\xa8\xfb\xa4\xaa\x59\xd4\ +\x00\x40\xe1\x60\x6d\x23\xfa\x19\x6a\xc1\x20\x45\x1f\x72\xa3\x38\ +\x89\xba\xc7\x89\x00\x3b\x1a\x6a\x13\xa6\x46\xc2\x6b\x22\x03\x73\ +\xc8\x16\xd2\x11\xbc\x82\x6b\x1d\x97\xa3\xd9\x83\x82\xcf\x66\xcd\ +\x91\xaa\xd4\x1c\xd8\xc7\x72\x30\x75\xfe\x5e\xd6\xc1\x59\x87\xa8\ +\x69\x02\xce\x81\x53\xcc\xe3\xf7\xbd\xf5\xfd\xda\x1d\x81\x6b\xcd\ +\x3a\x15\x93\xae\x05\x58\xa4\x39\x0d\x1a\x07\x71\xbe\xce\xb1\xc9\ +\x7c\x20\x85\x33\xc8\x9a\x01\x57\x1a\x42\x8b\xff\x6c\x8d\x8f\x03\ +\xce\xe1\x1c\x66\x1e\xaf\x65\xc4\xff\x00\xc6\x94\x09\x53\xd4\x9a\ +\x44\xa0\xfc\xb3\x69\xa6\xa7\x67\x7e\xe6\xf3\x84\x6c\x08\x04\xc9\ +\x3e\x3d\x57\x03\x51\x8b\x2f\x4f\xe2\xb0\x25\xf0\x52\xd9\xe8\x25\ +\xa7\x6d\x06\x91\x7b\x45\x02\xb8\x86\x0f\x50\xc1\xff\xa1\x62\x08\ +\x9b\x38\xcf\xc5\x57\x28\x5f\x2d\xf9\x24\xcc\x1e\x38\x10\x5e\x0e\ +\xfc\x3b\xfb\xb8\x85\x5d\x10\x9f\x54\xfc\x3e\xd4\xda\x1a\x65\xf1\ +\x6a\x58\x4d\x1c\x80\x4c\xc5\x7b\x18\x63\xd0\xe8\x64\x33\x19\x97\ +\xcd\xfc\x11\xaa\x41\xd8\xa9\x8e\xb4\x50\x69\x0c\xa1\x1a\x9c\x46\ +\x06\x0c\xf9\x8f\xad\xe1\x99\xad\xf9\xd4\x2a\xb6\xa9\x55\x52\xae\ +\x02\x3e\x89\xda\x51\x50\xeb\x0f\x6e\x3a\x33\x54\x6b\x17\xb3\x2e\ +\xf9\x32\xd7\x68\x5f\x90\x1a\xfa\xb4\xcf\x95\x9a\xc6\x41\x30\x46\ +\x94\x05\x80\x26\x32\xd5\x98\x4a\xd4\x11\xde\xf6\xbe\x7f\x06\x00\ +\xf8\xcd\xf7\xbf\x4d\x53\xcb\x38\x08\x09\x38\xe8\x43\xe0\x32\x05\ +\xa0\xe0\x39\xec\xb4\x40\xb1\xd8\x66\x26\x85\xb5\x96\x3d\x14\x62\ +\x59\x42\x51\xa2\x56\x13\x51\x23\x86\x45\xb4\xd1\xe7\x56\x5f\x7e\ +\x57\x84\x55\xd3\x70\xd6\x36\x00\x13\x6a\x7e\x50\xd4\x0b\xd2\x5b\ +\x47\x4b\x33\x57\xdd\x3f\x6a\x4c\x3e\x2e\xe7\x3c\x41\xc1\x9e\xac\ +\x08\x1e\xa4\xc3\xfa\x20\xaa\x67\xd5\xe8\x51\x19\xfd\x52\xe7\x06\ +\x9c\x76\x35\x45\x64\xcf\xcc\x8a\x43\x27\xcd\xb2\xd4\xd6\x47\x77\ +\x1f\xc4\xfe\xc7\x0f\x64\xfd\x88\x08\xca\xbd\xcc\xf8\xcd\xfc\xf0\ +\x8b\xc7\x6f\xfe\x9f\x6f\xd3\x8d\x21\x5c\xf5\xd7\x12\xda\x96\x02\ +\x5c\x03\xfc\x69\x60\x49\x76\x13\x29\xd0\x49\xcf\x03\x08\xbf\x87\ +\xb7\x32\xd6\x21\x6e\x77\x00\x18\x0c\xb8\x7d\x44\xb7\x48\x05\xa4\ +\x13\xaa\x69\x9a\x62\x20\x96\xfb\x0f\x88\xaa\x2c\x68\x5d\x7f\xce\ +\x3c\x46\xd3\xf6\x76\x4a\x9e\xbd\x62\x9a\xb0\xee\x54\xe5\x5a\x20\ +\x84\x82\xf2\xa8\xf8\x5d\x08\x1c\x6f\x52\xa2\xa5\x9a\xcc\xa0\x1e\ +\x01\x2c\x9a\x39\x33\x3f\x6a\x93\x2c\x00\x94\xdc\x42\x16\x83\x83\ +\xff\xcd\xff\xf8\x1e\x80\x81\xdf\xfc\xc3\xb7\xe1\xf6\x37\xff\x9b\ +\x20\x18\x0c\x2a\x92\x1c\x0c\x70\x0a\x6b\x09\x1c\x36\xbc\x84\xcc\ +\x25\xd9\x64\x12\x04\xa2\x61\x4d\x25\x38\x56\x9b\x5a\xcc\x5d\xb8\ +\x07\xed\xa9\x49\x66\x6b\x69\x03\xe3\x87\x25\xa6\xa0\xc6\x18\x87\ +\xf9\x3f\x49\x20\x88\xeb\xc9\xba\x6a\x7c\x8d\x00\x85\xda\xc9\xea\ +\xb8\x61\xdb\x62\x43\xcc\x8e\xb3\xb6\x81\x62\x56\x10\x4b\x80\x02\ +\xc1\xc0\xf4\x60\x1e\x00\x58\xd7\xd0\x2b\x8d\x9b\xa8\x64\x00\x61\ +\x01\xad\x8a\xd1\xe8\xcf\x50\x9d\xc3\x80\x9f\x16\x66\xa2\x9a\x34\ +\xcf\xd5\x11\x37\x50\x03\xf4\x70\xa5\xb8\x58\x4d\xb6\x59\x1d\x28\ +\xea\x14\x42\x94\xe7\xe4\xca\xba\xac\x17\x03\x9b\x4f\x0c\xf3\x19\ +\x1b\xa1\x35\x36\x06\x13\x47\xb4\xca\x93\xf7\x2f\xd1\xd6\x87\x15\ +\x5d\x8c\x49\xd7\x0f\x02\xe6\x77\xf1\x3e\xa6\xb8\xa1\x9b\x2d\xea\ +\xd2\x53\x30\x1c\x0d\x1a\x53\xeb\x4b\x53\xcf\xf8\x38\x31\x88\xb3\ +\x87\xc6\xee\xd5\xf7\xd3\x00\x4e\x19\x58\x89\x85\xcb\x72\x10\x84\ +\x63\x05\xda\x94\x91\xb7\x53\x81\xa1\x1e\x1a\x09\xfd\xda\x60\x6c\ +\x3b\x71\xd9\x66\x96\x8e\xac\x9f\x60\x56\xa0\x75\x1c\x10\x3e\x98\ +\xab\x88\xa3\x76\x43\x08\xfc\xb6\xa8\x7d\x48\x01\x09\x5c\x4f\xe1\ +\xa6\x24\x8b\xaa\x8c\x0b\xe4\xb5\x90\xa6\xd4\x39\x1d\x74\x50\x9e\ +\x14\x46\x71\x8c\xb8\xd5\x04\x3b\xb6\xdf\xe3\x67\xfe\xc5\x1a\xa6\ +\x97\x51\x01\xbf\x6a\xd0\x55\x52\x7d\x3b\x39\x23\x88\x6a\x8a\x55\ +\x75\x19\x81\x31\x4c\xec\x68\x69\xf2\xf2\xef\xf5\x9b\x33\xdf\x45\ +\xdd\xe2\x1e\xe6\xda\x1b\xc7\x95\xdf\xeb\x9b\x2e\x09\x1b\xb2\xc4\ +\xca\x95\x72\x32\x7c\xa0\x07\x35\x01\x3c\x4c\x93\xc4\xe4\xcd\xfc\ +\xf1\xe8\xee\x83\xb8\xf0\xfb\xfb\xab\x9c\x41\xc7\x55\x86\x71\x25\ +\xb7\xaf\x1f\xce\xa4\x4c\xbf\x0b\xaf\x39\x98\x63\x20\xaf\x3d\x08\ +\x8a\x95\x22\x85\xe5\xbf\xa0\xe3\xc6\x59\x87\xb8\xd3\x01\x99\x08\ +\x09\x5a\x27\xe5\x67\xd7\xf5\x50\x78\xa8\xbf\xba\xfc\x24\x6b\x0e\ +\xe5\x1a\xe0\x80\xa9\xca\x22\xcd\xdc\x40\x1e\x07\xb8\xde\x36\xbf\ +\x81\xa7\x40\xc2\x84\xef\x2e\x4c\x59\xc5\x7c\x07\xcb\x19\x34\xbd\ +\x19\xa8\xe7\x62\xd7\xf4\xe9\x7b\x5f\x49\x22\xe8\xe4\x7a\xdc\x33\ +\xff\xe4\x74\x64\x11\x37\x23\xaf\xbd\x50\x0d\x25\xa8\x2d\x43\x73\ +\xa5\x36\xc0\xf5\x81\x9d\xbf\xc9\x5c\xc6\x0d\x54\xf3\x3d\x02\x57\ +\x59\xe9\x60\x27\x39\xa1\x26\x28\xaf\xe5\x16\x21\x6a\x34\xd0\x9e\ +\x98\x00\x98\xd1\xe3\xb1\xc3\xaa\xfd\xbc\x52\xc6\x25\x11\x07\xe9\ +\xba\x40\x39\xb0\x87\xeb\xa9\x67\x35\xdd\xd1\xfe\x87\x53\x13\x97\ +\x7f\x16\x44\x4e\x29\x49\x25\x5d\x0b\xb5\xb3\x86\x24\x82\x00\xd4\ +\x71\x22\xaa\x76\xac\xca\xbc\xfe\x79\xf9\x73\xc8\x41\x8f\x84\x71\ +\x55\x9a\x89\xaf\x32\xba\x6c\x06\x50\xdc\x88\x7c\x03\x68\x59\x9b\ +\x40\xd5\x7d\x20\xc0\x2c\x14\xdd\xbd\xae\xf4\x2d\x6b\x08\xb9\x70\ +\xb9\x10\x9f\xa0\x00\xbb\x60\x4d\xfd\x82\x00\x97\x02\x4e\x6d\xe9\ +\x36\x2c\xe6\x0f\xec\xc7\xc4\xb6\x05\x38\x6b\xb1\xca\x53\x4f\xf8\ +\x7b\xa2\x52\x69\x12\xa5\x67\x6c\xba\x4d\x2d\xae\x4c\xcd\xa2\x6a\ +\xdf\xa6\xda\xc5\x98\x67\x0a\xc3\xe6\xdc\x69\xf2\x8d\x25\x45\x97\ +\xac\xe8\xc0\x0d\x80\x20\x39\xe4\x90\x05\x6c\x5c\x76\xc9\x54\x03\ +\x30\x56\xe0\x08\xea\x03\x22\x05\xe3\x42\xc5\x22\x52\xbb\x39\xcd\ +\xae\xd1\x90\x98\xf4\x56\xc7\xd1\xe0\x2a\x85\x96\xc3\xd2\xaa\x10\ +\x04\x0a\x37\x89\x88\x37\x72\x08\xd3\x69\xae\x5a\x3c\xd6\xec\x60\ +\x3f\x13\x50\x05\x83\x05\x84\xcc\x20\x13\x23\x6e\x36\x00\xc7\x78\ +\xc4\x5d\x7a\xc7\x0a\x66\x4f\x91\x29\xad\x21\xfb\x35\xba\xec\x4b\ +\xcb\x44\x41\xf3\x81\x68\x00\xd7\x84\x10\xaa\xb2\x4f\x94\xf0\x0a\ +\xdf\x61\xc9\xb8\x51\xa3\xfb\x14\xa1\x1c\x03\xcf\xb5\x50\xae\x6e\ +\xcb\x52\xb0\xaa\x63\xbf\x75\xa3\x8e\xda\xc5\xa2\x9f\xbf\x42\xc4\ +\x50\x78\x81\x13\x81\x64\xb8\xaf\x30\x0b\x9a\x0e\xee\x3d\x88\xbd\ +\x8f\xec\xd3\x4d\x9e\x28\xd7\xd4\x87\x64\x0b\xdd\xcd\x44\x15\x74\ +\x92\x15\x73\x84\x6a\x51\x4a\x0a\xe6\x00\xa8\xcd\xe4\x22\x90\xd4\ +\xd6\x31\x10\x08\xd9\xf3\xe0\x1c\xe2\x46\x0c\x8a\x62\xa4\x1c\xaf\ +\x9d\xe5\x2d\xc7\x19\xe4\x58\x81\x47\xae\x16\xa4\xe2\x60\x8c\x4d\ +\x21\x98\xb1\xf4\xf5\x21\x51\x57\x69\x3d\xeb\x8c\x60\x18\x4f\xad\ +\xa7\x66\x6c\xa9\x49\xbd\x5d\x3e\x0a\x2f\xc6\xc1\x8a\x1b\xc3\x75\ +\x9c\x78\xae\x65\x81\x06\x1d\x45\xc1\xcb\x9c\x98\x43\x58\x59\x0c\ +\x15\x44\x11\xac\xf1\x05\x26\x20\x1d\xa5\x88\x9b\x91\x36\xf1\x2a\ +\xda\xa7\x4a\xf5\x8d\x9d\x9e\x37\x28\x35\xb8\xb8\x6c\xa7\x86\x60\ +\x71\xd5\x74\x53\xcd\x10\x68\x11\x68\x31\x71\xa5\x7f\x81\xc5\xfe\ +\x04\x1f\x5f\x5a\x8b\xf6\xe4\x24\xba\xf3\xb3\x4c\x00\xf5\xd1\x7e\ +\x32\x8f\x8d\xfc\xd4\x6c\x96\xfb\x4a\x6b\xd6\xe9\x91\xe0\xfa\x71\ +\x1e\x00\xc4\xc1\x48\x00\x1d\xf5\x53\x7d\x3a\xe8\xad\x80\x69\xf6\ +\xb2\x4e\x60\x03\x86\x15\xdd\x3c\xa8\x04\x2f\x72\x61\x63\x08\x16\ +\x61\xb3\x7e\x0e\xae\x07\x5f\xc2\xc3\xab\x7b\x2f\x96\x8d\x22\x2e\ +\xab\x01\x34\x9a\x51\x36\x9c\x2a\xc4\x0e\x02\x01\x65\x46\x05\xd7\ +\x00\xd7\x81\x41\x75\x55\xca\x82\xdc\x4a\x25\x06\xe1\x0f\x39\xbf\ +\x07\x4e\xd4\x3f\xb9\x9a\x9b\x4b\xeb\x53\xe8\x88\x4b\x2d\xc6\xb6\ +\xcc\x63\x6c\x6e\x86\x6c\x6a\xdd\x3a\x4f\x1e\x2e\xf9\x9b\x65\x37\ +\x29\x51\x20\x8f\x9c\xe1\x77\x24\x69\xef\x86\xf2\xe9\x6e\x94\x75\ +\x06\x85\x24\x10\x84\x14\xfd\xc0\x07\x16\x82\xfe\xe4\xf4\xcf\x7d\ +\xd1\x51\xe3\x1c\x40\x19\xbe\x2e\x9a\x3a\x58\x0e\x4f\x82\x58\xff\ +\x1a\x22\x66\x35\xff\x68\x78\xb8\x5e\x30\xd4\x06\x11\x57\xc2\xaa\ +\xa5\x49\x87\x9f\xc0\xed\x6c\x36\xf0\xd9\x44\x24\xa6\x85\x07\x24\ +\x16\x85\x45\xb0\x2a\x06\xf1\xa6\xd0\x75\x50\xb0\xf2\xd8\x82\x56\ +\x01\x66\x39\x38\x4b\x13\x68\x48\xb9\x83\x30\x87\xcf\x5d\xab\x75\ +\xd8\x7a\xe9\x25\x68\x4d\x8c\xb3\x4b\x2d\x1e\x48\x9f\xfd\x9e\x43\ +\x6e\xff\xbd\x54\xe0\x1c\x4e\xb8\xda\x1f\x40\x8e\xe5\x82\xb1\x25\ +\x16\x78\xc7\x95\x6e\xe0\xb0\x87\x2c\x14\x82\x40\x52\x0f\xcd\xbc\ +\xe0\xce\x7d\x67\xff\xf3\x3f\x03\x45\x4c\xc4\x94\x4d\xd9\x12\x5a\ +\x24\x24\x5f\x0b\x15\xd5\xb7\xab\x70\xc8\x10\xe6\xea\x88\x98\xda\ +\x80\x50\xbc\xd8\xe9\xef\x94\x24\x16\x94\xef\x30\x60\x66\xbc\xe3\ +\x43\xe5\x82\x8d\x7f\xfe\xe1\x77\x00\x00\xde\xfd\x86\x77\xd7\x8e\ +\xa2\x21\x09\x3b\x93\x8e\x6d\x2a\xcd\x20\xb2\x73\x29\xac\xcb\x72\ +\x6d\xef\x4b\xcd\x6a\x61\xae\x70\x22\x4c\xb3\x89\xf6\xd4\x04\x9c\ +\x75\x76\xc3\x8d\x1d\xec\x73\x77\xa3\x24\xcc\x95\xf3\x93\x09\x01\ +\x05\x18\x5c\x31\xdd\xbe\xb7\x22\x5f\x66\x61\x36\x8d\x80\x83\xd9\ +\x3c\x25\x7b\x47\xf4\x01\x38\x4b\x83\x78\x6a\x6d\xa5\xb5\xeb\x0b\ +\x59\x80\x1a\xb1\x04\x42\x48\x56\xf6\x1c\x2a\x29\xa1\xfa\xb7\x0c\ +\x88\x64\x29\x17\x54\x02\x2c\x01\x97\x40\x4d\xd6\x0e\x4a\xc7\x2c\ +\x40\x97\xc7\x2e\x7c\x0c\x7b\x1f\xd9\xe7\xff\xf0\xee\x5f\xff\xd7\ +\xea\x96\xbf\xfb\xa6\x77\x97\x3b\x06\x6a\x00\x1c\x6f\x8e\x5d\xb5\ +\x1f\x40\x69\x88\x0b\x4a\xb7\xae\xa6\x3c\xce\x55\x9e\x44\x05\x10\ +\x73\xf9\xcd\x76\xd9\xb1\x36\x3a\xed\x6c\x9b\x39\x77\x9e\x78\x20\ +\xb9\xea\xe3\x80\x23\xdd\x76\xc9\x1a\x0b\xf1\x42\x44\xfa\x6c\x1d\ +\x89\x95\x3b\x99\xd0\x18\xc5\x02\xaa\x01\x7f\xb8\x82\xf5\x91\x70\ +\x03\x86\xc1\x8e\x8e\x4c\x5e\xf3\x95\x34\xea\x9c\x20\x22\x32\x51\ +\xa4\xf6\xfc\xd4\x45\xc7\x15\x42\x88\xbc\x71\xd0\x1c\xbf\xc2\xa2\ +\x14\x37\xb8\x5a\x6d\x63\x55\x23\x97\x33\x0a\x8b\xcf\x4b\x47\x16\ +\x8d\xa6\x01\xdb\x1c\x3e\x76\x99\xc6\x03\xc0\xbb\x6e\x7a\x97\xe0\ +\x26\xe8\x34\x52\x2e\xaa\x50\xe6\x3e\x68\x6a\x55\x66\xbf\x06\xef\ +\xf0\x2e\xd1\xa1\xda\xa3\xe8\xaa\x10\xb2\xef\x87\xb4\x16\xb3\x17\ +\x2c\x62\x7e\xff\x3e\x76\xa9\xc3\xc0\x75\x8f\xe6\xa9\x1e\xd7\x76\ +\x0a\x81\xb2\x54\x9c\x49\x0b\x9f\xab\x61\x66\xe5\x55\x54\xa3\xfc\ +\x7d\x85\x63\x07\x39\xa8\x5b\x34\x3c\x96\x41\x0d\xc3\x30\xc0\x38\ +\xd5\x39\xf0\x79\x07\x33\x8c\x1a\x71\x86\x2f\x3b\xf1\xe5\xa4\x84\ +\x03\xc1\xd0\x45\xcd\xf1\x77\x1c\xf8\xde\x4a\xc9\xb6\x8e\x57\xc0\ +\xc1\xe7\x95\x9f\xe1\x1c\xc3\x5a\x87\x28\x8e\x02\x6a\xb9\xc6\xd8\ +\xfd\x04\x70\x57\xd7\xcd\xa4\xad\x8f\x86\xa2\x35\x03\xaa\x6e\xca\ +\x57\x65\xf4\x5c\xcd\xb0\x4b\x76\x3a\x75\x2b\x62\x9c\x46\xa7\x03\ +\x76\x8e\x4e\xd8\xad\x77\x3f\x65\x77\xdd\x5b\x80\x5b\x5c\x89\x3b\ +\x8a\xcf\x09\xe9\xed\x80\x92\x97\x60\x1e\x98\x91\x3e\x89\x82\x72\ +\x32\xd5\xcc\xcb\x27\x96\x28\x61\x69\xb2\xce\xb4\xf7\x3d\x6e\xc0\ +\xad\xac\x4f\x3d\x2e\x0f\xcf\xe9\xce\x5d\xae\x09\xb2\xb4\x43\x74\ +\xe5\xdf\x9c\x66\xf6\xc8\x66\x93\x70\xb1\x92\x22\xa2\x14\x3b\x7c\ +\xf2\x00\x30\x2b\x63\x50\x65\x08\xc5\xbb\x5e\xf7\xae\x1c\x31\x0b\ +\x2d\x89\xd8\x49\xac\x82\x41\x9d\x9b\x23\x0c\x44\x65\x20\xe9\x58\ +\x37\xc7\x70\x48\x2f\x93\x33\xa5\x35\xdc\x57\xf4\x56\x76\x67\x67\ +\xb2\x7d\x46\xcc\x78\x3c\x39\x70\xcf\x86\x1b\x5f\xd3\x0d\xc1\x5c\ +\x4b\x6c\xf5\xc3\x38\xc5\x2e\x01\xc5\x63\x10\x74\x45\xc3\xa4\xeb\ +\xc3\x92\x3b\x2e\xf7\xf8\xe9\xf4\x84\xca\x5c\x32\x7f\x71\x2b\x5d\ +\xef\x8e\xcc\xf8\x61\x10\xa5\x26\x8e\x10\xb5\xf2\xb1\xab\x8a\x4f\ +\xc7\x4a\x93\x88\xeb\x1a\x3e\x74\x33\x49\xc8\x10\xe2\x3a\x3a\x56\ +\x71\x23\x43\x1f\x0d\xc2\x63\xfb\x1e\xc3\xee\x87\x2e\x0c\xc9\x76\ +\x82\xc4\xe1\x2a\x34\xee\x32\x73\x11\xe6\xd3\xb1\x06\x89\x98\x2b\ +\x69\xa7\x6a\x31\x0f\x4d\x3a\x73\xa5\xa9\x84\x02\xcb\xe8\x21\xdc\ +\xd4\xf9\x75\xba\x60\x86\xe5\x78\x15\x41\x0f\x27\x0b\x2a\xb9\xcc\ +\x18\x28\x84\xe4\x29\xa8\x61\xb0\xfe\x5e\xa6\x52\xec\xa9\x21\x83\ +\xca\x8b\x93\x75\x6b\x19\xc6\x0e\xa3\xf1\xde\xf7\x27\x9e\xff\xef\ +\x07\xd1\xcc\xc3\xc8\xb8\xea\x9c\xc5\x03\xce\x5b\x01\xe2\x72\x13\ +\xb7\x2c\x85\x72\x2d\xef\xae\xc0\xb3\x03\xc2\xa7\xf0\x9b\xa4\xb4\ +\x4d\x68\xaa\x58\x22\x95\x24\x99\xff\x57\x68\x9c\x34\xb7\x8e\x2a\ +\x6c\x25\x35\xa4\x22\x2c\x30\x09\x0a\x9b\x4a\xb9\x1c\x36\x75\x51\ +\x75\x43\xaf\xa8\x12\x54\xe6\x97\x93\xa6\x18\x9b\x9f\xc5\xd4\xce\ +\xed\xec\x52\x8b\x65\x37\xf3\xb5\x7b\xfa\xd7\xbc\x97\x25\xb2\x18\ +\xb0\x78\x6b\x7b\x2a\x0a\x4b\xe0\xa0\x47\xe5\xfa\x2e\x64\x12\x7c\ +\x80\xb0\x8b\x14\x1a\xe1\x94\x60\x09\x71\xb5\x31\x21\xf3\x4b\x8e\ +\x12\x6a\x0f\x0e\x8e\xff\xfc\x27\x7a\xd1\xcc\x83\x06\x44\x51\xa3\ +\xa9\xaf\x4a\xfa\xeb\xf0\x8a\x45\xfe\x5e\x29\xb8\x54\xa0\xdf\xd0\ +\x12\xeb\x12\xb2\x8c\xe0\x6d\xea\x70\xf4\x8a\x27\xf0\xf8\x45\x8f\ +\xd7\xfb\x76\xbf\x0c\x32\xc0\x21\x8a\x80\xd2\xc9\xcf\xd4\x1b\x41\ +\xb5\x00\x73\x5d\x45\x3c\xfc\x21\x88\x17\x84\x1b\x15\x50\xf6\xf8\ +\xfc\x3c\xda\x93\x13\x94\x5a\xde\x58\x4b\xa7\x0f\x81\x62\x47\xec\ +\x88\xc5\x6c\x23\x15\xab\x84\x13\x9b\x2a\x38\x40\x80\xef\xbb\xd2\ +\xfa\xc4\x95\x7a\x2f\xd5\x0c\x8a\xa8\x4c\xeb\x94\x51\x70\x61\x35\ +\xc8\x77\x2c\xb7\x78\x7d\x0f\x83\x10\x35\x62\xb8\x24\x46\x3a\x4a\ +\xfc\x84\x5d\x85\x02\xaa\xad\x60\xa2\x5a\x06\xdd\x55\xab\x3a\x6c\ +\x0b\x5c\xc0\xd5\x30\x86\x58\xb3\x20\x9d\x03\x76\x7c\x67\x37\x66\ +\x67\x3a\x00\x31\x0e\x5f\xfc\xb8\x42\x27\xf7\x3c\xbc\x57\xf5\x49\ +\xd5\x36\x66\x84\x68\x1f\x34\x2e\xc1\x41\xa5\x88\x6b\x72\xea\x4a\ +\x70\xe8\x2a\x1d\x94\x8a\xb5\x1b\xb5\x5b\x60\xeb\x70\x4f\xef\xe7\ +\x6f\x2f\xd4\x94\x43\xda\x8e\x2f\xd6\x89\x31\xf4\xb9\xcf\x2e\xca\ +\xc3\x5c\xe9\xba\x21\xf1\xda\x6c\x82\x6a\xac\x96\x32\x92\xf6\xf5\ +\xc5\x61\x29\x8c\x39\xec\x3a\xa5\xdc\x8c\xfa\xc3\x21\x1c\xea\xfc\ +\xec\x1f\x4d\xa6\x27\x2f\x58\x18\x3e\xf6\xca\x46\xa7\x83\x34\x49\ +\x3c\xae\x1e\xf2\x05\xfd\x2e\x0c\x26\xcf\x2b\xa0\x0a\x9f\x4e\x9f\ +\x01\x55\x3a\x80\x04\x66\x21\xae\x2d\x4d\x9d\x5c\x4f\x8c\xdd\x0f\ +\xed\x55\x02\x73\xe8\x92\x43\x1e\xa0\xde\xf3\xd0\x5e\x7f\xfd\xd5\ +\x56\xb7\xea\x28\x8b\x3a\x5e\xbf\xae\xf6\xd5\xb5\x86\xd7\xa5\x6e\ +\xf0\xc3\x36\xe3\x76\x0b\x5b\x2e\xda\x97\x2d\xdb\x66\x8c\x58\x2c\ +\xc7\x54\xf3\x80\x8c\x18\xe5\xc3\x72\x20\x55\x01\x07\x97\x65\x5d\ +\x0a\x2d\x81\x81\xaf\x1a\xc2\x37\x87\x72\x0d\x97\xbc\x00\x11\xf2\ +\x19\xc0\xec\xea\xc6\xb8\x49\xdf\x52\x46\x9e\x1b\x66\x76\xa5\xd7\ +\x98\x5a\x9b\x1e\x1d\x7b\x76\x93\x37\x76\xb7\x27\x26\x60\x93\x14\ +\xa3\xf5\x0d\xb1\x21\xb4\x5c\x82\xc2\xc5\x9c\x61\xe6\xea\xe0\xc5\ +\x70\x4c\xfb\x26\x75\x82\xca\xa4\x2e\x02\x46\x23\x8b\x38\x36\x65\ +\xea\x26\x8c\x25\x31\xf9\x43\x07\x80\xc3\x97\x1e\xf2\x37\xe9\xce\ +\x77\x7e\x18\x00\xf0\xbf\x7c\xfc\x77\xf0\xbb\xaf\xfe\x97\xc1\x20\ +\x6a\x0e\x16\x49\x73\x30\x0c\xb0\xa6\xab\x09\xd5\x06\xd2\x82\xa4\ +\x41\x60\xb8\x51\x8a\xc9\x1d\xdb\x30\xb3\x67\x11\x6c\x2d\x12\x17\ +\x9f\x5e\xb2\xf3\x5f\x97\x35\x02\x22\x19\xd1\x91\x9e\xcd\xc0\x62\ +\x8e\x60\xd8\xdc\x5b\xa8\x6e\x7e\xf8\x61\x27\xb8\x91\x66\x9f\x18\ +\x95\x46\x0c\x35\x3d\x23\x68\x71\x52\x7d\xf7\x81\xef\x61\x44\xee\ +\x44\xeb\xe2\x2f\x00\x26\x05\x08\x51\xa3\xc1\x51\xa3\xa9\x52\x37\ +\x09\x7a\x84\xfe\x94\x1d\x2a\x34\x71\x19\x91\x73\x25\x7a\x86\x62\ +\xcd\x80\x33\x01\x68\xc4\x91\xd8\xfe\x51\x13\x6c\xe6\x87\xb1\xfb\ +\x7b\x7b\xfc\x3f\x00\x70\xf3\x6d\x6f\x54\x10\xb3\x14\x7e\x0a\xda\ +\xde\xe1\x04\x5d\xdd\x89\xf6\xf4\x0a\x65\x4d\x5f\x2f\x71\x06\xf6\ +\x74\x66\xa6\xd0\x9e\x9a\x04\x3b\xc6\xa9\x64\xcb\x17\xbf\xb3\x71\ +\xf9\xbf\x3b\x34\xd8\x77\x2f\x38\x9f\xb8\xaf\xf6\x65\x87\x4b\x04\ +\xa5\xb2\x50\xd9\xc8\x19\x66\x0c\x92\x73\x28\xdc\x95\x0a\x02\xcb\ +\xd2\x30\xab\x1e\xb8\x82\x76\x05\x55\x62\x0e\xaa\x67\x79\xae\x59\ +\x0a\xb8\xa3\xb3\xd1\xe2\x91\x6f\x77\x5f\xfa\xbb\x7d\x33\xfd\x20\ +\x91\xa1\xb8\xdd\x62\x3f\x5d\x44\x06\x86\x02\x2b\xd8\x7c\x2e\x30\ +\x54\x2a\x29\x5b\xa5\x58\xf4\x0c\xb0\xa8\xf3\xa7\xa9\x43\x23\x22\ +\xb0\x75\x02\x6a\xae\x92\x3b\x2b\xd0\x2d\x80\x3f\x7a\xe7\x1f\x0b\ +\x08\x15\x9a\xb0\xea\x36\xe9\x1e\xde\x74\x59\x85\x64\x33\xe9\xbd\ +\x4a\x2e\xb5\x98\xdb\xb7\x17\xad\xf1\x31\xb0\xb5\x38\x91\x6c\xff\ +\xbb\xbe\x1b\x5f\x2f\xf5\x8f\x02\x00\x87\x05\x76\x81\xea\x2c\x65\ +\x0e\xe7\x16\x6b\x2a\x7d\xa9\x20\x39\x7d\xef\xd6\xf7\x1e\xbf\xad\ +\xd2\x0d\xe4\x82\x06\x48\xd1\xaa\xed\xad\x8c\x13\x5d\xbc\xa1\x70\ +\xc8\x1b\xe3\x2c\x01\xc0\x95\x83\xcf\xff\x73\x03\xd7\x06\x11\xfa\ +\x2b\xab\xb0\xc3\x91\x6e\x4b\x0e\x47\xa5\x40\x7e\x0e\xd7\xf4\x15\ +\x70\xa5\xf4\x4f\xc2\x42\x39\x07\x2c\xaf\xf4\x31\x37\xd3\x2e\xb5\ +\x46\x8f\x83\x54\xd3\x3c\xa5\xc0\xeb\x0e\x65\x54\x78\x7c\xb5\x26\ +\xbe\xe2\xe2\x39\x68\xb0\x60\x4d\x05\x70\x8c\xb8\x11\x63\xea\x82\ +\x45\x74\x67\x26\x61\x1d\x0d\xbf\xba\xfe\xbc\x7f\x55\x34\xdb\x92\ +\xec\xdb\x22\xdd\xc7\x45\x79\x55\x8f\x88\xcb\xde\x7d\x19\xc4\xe7\ +\x55\x3b\x32\x41\x1b\x90\x58\xd5\x50\xbc\xce\xa8\x36\x26\xcd\xa1\ +\x54\x65\x4d\x3d\xb9\x5b\xb7\x0e\xc9\x51\x28\x85\xa4\xf9\x5a\x3c\ +\x19\x06\x22\x3e\x11\xed\xfb\xcb\x73\x34\x7b\x2f\x3b\x87\xf6\xc4\ +\x04\x3a\xb3\x33\xf5\x75\x01\x51\x72\x66\x27\x97\x2c\x69\x04\x51\ +\x22\x74\x70\x5c\xe9\xc3\x4b\x53\x8b\xc8\x90\x16\x96\x4a\xc1\x45\ +\xee\x2d\x0a\xc0\xa0\xb0\xed\x4c\x06\xa4\x2e\x60\x20\xbb\xb0\xa5\ +\x2d\x00\xab\x9c\x1e\x86\xc9\xce\x01\xce\xa2\xd1\xed\x60\x6c\x7e\ +\x16\x69\x4a\xbd\x0d\x3b\xf6\x88\xcc\xef\x25\x17\xb1\x6e\x89\xa5\ +\xe7\x1c\x6c\x4a\x03\x0f\x67\x2a\x84\xee\x22\xfb\x65\x1c\x8e\x89\ +\xf7\x3e\xde\x03\x64\x54\x9d\xb2\x59\x6c\xd0\x60\x0a\x72\xf5\xb0\ +\x5c\x5b\x6a\xed\xf1\xf8\xc0\xf7\x4e\xf2\xde\x47\xae\x18\xfe\xf5\ +\xa5\x11\xd2\x31\x13\x45\xdc\xe8\x76\xa8\x08\x0c\x6b\xb7\xb4\x78\ +\xc0\x89\x36\xef\xfc\xa9\x61\x2f\x6d\xf4\x52\xf4\x07\x29\xda\xcd\ +\x38\xa8\x2c\xe2\x07\xb7\x9d\x57\xc8\x1e\x5c\x61\x38\xa9\x72\x2d\ +\xe9\x09\xe9\x14\x72\xfd\xd4\x9c\xd9\x3c\x35\xb5\x29\x4c\x1c\x63\ +\x7a\xcf\x05\xe8\xce\x4e\xb3\x4b\x52\x3a\x95\x6e\xfd\xbf\xbf\x3f\ +\xd8\xff\x4d\x92\x93\x1b\x04\x9b\x89\x5c\x98\xa1\xe5\xab\x38\x88\ +\xc3\x1d\x3d\xc5\xc2\x36\x0f\xd8\x91\x1c\xdb\xa7\x37\xf8\x81\xb3\ +\xcd\x4f\x7a\x70\x50\x2d\x72\x85\xfa\x92\x31\xb1\xda\xbe\x5b\xb3\ +\xf6\x44\xd0\xaf\x9d\x23\xe6\xd8\x7e\xbb\xf9\xe2\xdb\x8f\x47\xfb\ +\x3f\x41\x20\x6a\x74\x3a\x6c\x1a\x8d\xec\x8b\xda\xd0\x0a\x70\x09\ +\x37\x33\x57\x27\x79\xa8\x52\xb3\xf6\xef\xfd\x81\x45\xab\x11\xa1\ +\xdd\x34\x39\x5f\x50\xd3\xad\x54\x61\xa7\xd2\x77\x28\xe1\x60\xaa\ +\xa2\x68\x21\x01\xa4\x66\xb4\x6c\x09\xb7\x0a\xc1\x72\x40\x3a\x4a\ +\xd0\x99\x9e\xc6\xf6\x2b\x2e\x43\x77\x6e\x06\x20\xa2\x95\x64\xf2\ +\x9b\x4b\xc3\x2d\x8f\x55\xc8\x2e\x61\xcf\x65\x05\xdb\x51\x83\x77\ +\x2b\xb8\x83\x5f\xab\xe3\x99\xc8\xba\xed\x27\xdb\x64\xc2\x79\x6b\ +\x58\x85\x0e\xbe\x09\x51\x43\x91\xd4\xa8\x82\x7c\x95\x1d\xb1\x72\ +\x5d\x4a\xa1\xcb\x59\xd5\x90\x1c\xd3\x31\x73\xd1\x83\x33\x7c\xea\ +\xca\x0e\xad\xef\x1f\x9b\x9d\xcd\xa6\x8f\xac\x9e\xc3\x70\x6d\x3d\ +\xf3\x7f\x44\x8a\xdc\x4d\x5c\xc7\xd0\x65\x41\xc1\x2a\x13\x45\xc7\ +\xd9\xba\xb4\xf1\x4e\xb3\xe4\x21\xd4\xb4\x9d\x55\x58\xc7\xaa\x81\ +\xae\xa0\x94\xeb\x4d\xa7\x14\x12\x3d\xea\x76\x06\x86\xad\x6c\x39\ +\xc2\x49\x64\x30\x7f\x60\x3f\xc6\xe6\x67\xe1\xd2\x14\x60\xf0\x23\ +\x1b\x07\x3e\x74\x3a\x5d\x38\xa2\x96\x6a\x43\xaf\xd3\xf5\xf1\x00\ +\xe5\x15\x4b\xd5\xad\x23\x06\x74\x04\x85\xbb\x52\xf3\x83\x4e\x10\ +\xd2\x70\x70\xac\x48\x9f\xde\x72\x93\xea\x5c\x2d\xdf\x57\xf6\x16\ +\xe9\x36\x24\x52\x8c\x1f\x52\x93\xbe\xfd\xcd\xcb\x21\x2a\x62\xe0\ +\x38\xf6\xfd\x97\x39\x3a\xba\xd4\xe6\x8d\xc5\x26\xf7\x17\x9b\x63\ +\x63\x30\x51\x44\x36\x49\x90\xf4\x06\x41\x50\x48\x55\x98\x58\x15\ +\x66\xca\x9b\x9f\xa6\x2e\x23\x39\x30\x57\xda\xbe\x00\x6c\x6e\xea\ +\x39\x98\xd3\x2f\x04\x41\x01\x69\x01\x95\x8c\xe4\xcd\x0b\xdc\x89\ +\x73\x59\x2b\x5a\x67\x7a\x1a\x33\x17\x2c\x72\xd4\x6c\x90\x4d\xd2\ +\x74\xc3\x8e\x3f\xf2\xed\xf5\x2b\xff\x43\x16\x84\x39\x62\x09\xd7\ +\x88\x31\xb0\x44\x50\x3c\x4a\x3f\x96\x57\x8e\x8b\x25\x31\x55\x3d\ +\xe8\xfa\xa0\x70\x44\x88\x10\xaa\xe2\x5a\xe3\xb0\x83\x54\xf1\xe9\ +\x2b\xae\x8c\x34\x14\xca\x21\xf6\x41\x08\x77\xec\x90\xef\x76\x11\ +\xa0\x0f\x03\xcb\xb4\xfd\xc8\x59\x6c\x3f\x02\x00\xcf\xe2\x2f\xbc\ +\xc3\x18\xd7\x6d\x8e\x75\x41\x64\xb0\x9e\x9c\x46\x3a\x18\x96\x51\ +\x79\x58\xa7\x56\xf1\x80\xa0\x9b\x11\x30\x4a\x2c\xe2\x98\xaa\x08\ +\x9d\xef\x4a\x42\x85\xe5\xab\x03\xcd\x12\x3e\x63\xb9\x08\x52\x6e\ +\x2a\x55\xf1\x01\x07\xe8\x69\x76\x49\x69\x92\xa0\x3d\x31\x8e\xc9\ +\x9d\xdb\xd1\x9e\x9c\x04\xc0\xb4\x3e\x68\x7e\xff\xf8\x68\xfb\x57\ +\x8f\x0d\xb7\x7f\x3f\xe7\xee\x13\x93\x61\xb5\x4c\xab\x78\x9f\x00\ +\xea\xf5\x9e\x9c\xf4\x39\xca\xb6\xaf\xb2\x1b\x8b\xfc\x7c\x4f\xd9\ +\x17\xe0\x81\x3d\x39\x2b\x38\x18\x00\x50\x56\xfd\xc0\x41\x3f\x7c\ +\xa9\x8d\x24\xfe\x56\x36\x3f\xe4\xd2\xe6\x48\xe5\xf3\x72\xce\x4d\ +\x65\x20\x53\xfe\xe5\xbe\x85\x5f\xba\x7d\x92\x97\x16\x66\xf9\xd4\ +\xbe\x79\x3a\xf6\xe2\xb1\xf9\x39\xb0\xb5\x48\x93\x14\x76\x30\xc4\ +\xe0\xdc\x3a\xf4\x96\x6e\x79\xcd\xae\x6c\x49\x63\x60\x94\x38\x74\ +\xf2\x05\x50\x92\x1d\xcc\x08\xc0\x20\xd4\x04\x9c\xa2\xa1\x55\xfb\ +\x45\x57\xb5\x10\x35\x1a\x5f\xfc\x64\x47\x09\x66\x2e\x58\xc4\xf8\ +\xd6\x2d\x99\x38\xb9\x6c\x71\xec\xf7\xfb\x17\xde\xbd\x92\x4c\x9f\ +\x2e\x4b\xec\xc4\xe5\xf2\xe7\x80\x97\x21\x0e\x15\x01\xcd\xaf\x5c\ +\x55\xc7\xea\x35\x24\xd6\xd0\xa8\x32\x7e\x29\x21\x7e\x83\x1a\x15\ +\xe3\xe5\x6b\xf7\xf1\x6c\xd2\x29\x2d\x73\x7d\xe2\x2a\xfe\x2e\xd7\ +\xa9\x43\x60\xd4\xcc\x35\x54\x70\x35\xbf\xd7\xf0\x2a\xb6\x9e\xec\ +\xf3\xe4\xea\x38\x96\x2f\x6d\x60\x38\x1f\x19\xd3\x69\xb4\xdb\x88\ +\x9b\x4d\x4e\xfa\x7d\x72\x49\x0a\xe7\x44\x05\x88\x8c\xf6\xe9\x94\ +\xf1\xf9\x52\xeb\x10\x9b\x48\xa7\x40\xd0\x96\x42\xb3\x72\x83\xec\ +\x5d\x4e\x3c\x2b\x7c\x69\xd8\xae\x15\x72\x27\xc0\x60\x6b\x81\x28\ +\x42\x14\xc7\xd8\x7a\xe9\x45\x68\x74\xda\x70\xd6\x71\xca\xd1\xea\ +\x37\x56\x9e\xf5\xfe\xf9\xd6\xd9\x1d\xab\xc3\xa9\x33\xb2\xd5\x9e\ +\x7c\xf1\x46\x44\xfc\x90\x1d\x47\xc5\x32\x2e\x56\xa3\x79\x2b\x2c\ +\xde\x22\x65\xa7\x1a\xb9\x94\x6d\x5e\xa6\x3a\x2f\x20\xae\xe6\x54\ +\x84\xda\x19\xbd\x2c\x97\x1f\x93\x30\x8f\xf0\x2b\x51\x54\xc4\x29\ +\x52\x41\x92\x4d\x91\xd2\x95\x04\xac\xde\x21\xda\x83\xef\xb8\x9f\ +\xff\x10\x31\x60\x78\xd4\xb8\xc8\x7c\xe7\x25\x13\xd1\xca\xb3\x27\ +\xb7\x6f\x87\x73\x0e\x2e\x4d\x91\x0e\x86\xf9\x3f\x03\x38\x2b\x26\ +\x75\x33\xc3\xe6\xfd\x71\x91\x21\xc1\x0d\xa4\xea\xf8\xf5\x0a\x0d\ +\x2e\x94\x72\x01\x16\x39\x11\x1f\x38\xb1\x2b\x31\xc7\xf2\x5d\x9a\ +\xa2\x35\x31\x8e\xb8\xdd\x42\x14\xc7\x98\x5a\xdc\x99\xf1\xf9\x52\ +\x8b\x81\x6b\x1f\xb9\x77\xf9\xea\x0f\x33\x31\x4e\x0c\xb6\x3d\x61\ +\xe0\x48\x4d\x06\xa3\xea\x80\x48\xf6\x41\x1f\xa9\xc2\x17\xe5\xd6\ +\x55\x6d\x7b\xf6\x19\x72\x39\x29\x95\x6a\x88\x9d\x7e\xff\x23\x82\ +\xc0\x51\x16\x83\x4a\x33\xcd\x35\xfd\x7a\xba\xb9\x5c\x30\xc4\x3c\ +\x21\x99\xea\x10\x31\x2e\xd9\x43\x54\x33\x01\x9c\xe4\x60\x25\x41\ +\x61\x62\x00\x96\x9b\xc9\x49\xb7\x78\x1f\xc0\x71\x1b\xbd\x9d\x0d\ +\x4a\xe6\xa3\x46\x03\x71\xa3\x01\x9a\x9a\x44\x7f\x65\x0d\x1b\x27\ +\x97\xb2\x2d\x99\xf9\x17\x32\x20\xcc\x8e\x37\xbc\xf6\x13\x82\x8e\ +\xe1\xa0\x8c\xab\x50\xc4\x10\xe8\xaa\xed\xe9\x23\xb8\xd4\x02\xce\ +\xa1\xd1\xed\x20\xed\x0f\x30\xbd\x6b\x11\x9d\x99\x69\x6e\xb4\x5b\ +\xe4\xac\x05\x3b\x8b\xd5\xd1\xd4\xbd\x03\x6e\x2d\x27\xae\xb1\x5e\ +\x1e\x4e\x96\x09\x71\xd0\x8a\xaf\xca\xb0\xa4\xe3\x2f\xd9\x71\x5d\ +\xb2\xb3\xb8\x52\xb7\x27\xf1\x3e\x5c\x53\x0d\x64\x2a\x15\xce\x04\ +\x09\x41\x5c\x5d\x16\xa8\x61\xe0\xd2\xd9\x97\xf9\x87\xda\xe7\xe3\ +\x21\x62\xaa\x69\xf5\xd2\x6b\xb2\x39\x64\xd6\x88\x53\x21\x47\x72\ +\x66\x22\x00\xe0\xac\xdb\x76\xec\xac\xdd\xfa\x29\x66\x20\xe2\x34\ +\x9a\x32\x67\xb7\x4e\x9a\xb3\x3b\xb7\x44\xc7\x5e\xd4\x9a\x18\x6f\ +\x36\xba\x5d\xd8\xe1\x10\xa3\xde\x00\xe9\x60\x98\x8f\xae\x73\x70\ +\x29\x4b\x4c\x54\xf5\xe7\x95\xd3\xc1\x04\x3b\x56\xee\x21\x65\xa1\ +\x31\x9c\x47\xf2\xf9\x7b\x39\x6b\x31\x7b\xe1\x2e\x0c\xcf\x6d\x60\ +\x7a\xd7\x4e\xd9\x31\x41\xe7\xfa\xcd\x47\x3b\x71\x7f\xf7\xc1\x73\ +\x17\xfd\xc9\xd2\x70\xee\x58\x31\x61\x9d\x02\xd3\xee\x3f\xdb\xe8\ +\x41\x1a\x65\x54\x4f\x7a\x21\xa6\x9a\xec\xc1\x4a\xeb\x33\x8b\xc0\ +\x2a\x0d\x54\x9b\x59\x03\x0b\xa7\x77\x0f\x64\x67\x17\x43\xd1\xbc\ +\x79\xd3\x36\x71\x9f\x83\x57\x06\x26\x86\x08\x59\x4d\xdf\xbf\x1c\ +\x4e\x13\x60\xe2\xc8\x19\xc4\xf5\xf3\x70\xcb\xa0\xd3\x52\xc3\x9e\ +\x75\x0b\xc7\xce\xa6\x0b\xc7\x26\xda\xab\x07\xda\xe8\xed\x31\x06\ +\xcd\xa8\x3b\x86\xe6\xd8\x58\x26\x60\xce\xc1\x8e\x12\x24\xfd\x3e\ +\x92\xde\x00\xe9\x60\x00\x9b\xa4\xb0\x49\x8a\xce\xd4\x24\x98\x39\ +\x73\x1d\xa9\xf5\x6b\xe2\xa3\x46\x03\xce\x3a\x38\x9b\x69\x76\xd4\ +\x6e\x83\x60\x60\x87\x23\x34\xda\x2d\x8c\xcd\xcc\xe7\xf8\x04\x30\ +\xb7\x77\x37\x4c\x23\x46\x67\x66\x06\xb0\xce\x83\xee\x47\xfb\xdb\ +\x3e\xfd\xf8\xfa\xbe\xfb\x8a\x54\x44\xd3\xeb\x38\x40\xe0\xb4\xa3\ +\xf6\x01\xa0\x38\xe0\x92\xb7\x41\xd5\x7e\x42\x88\xec\x80\x44\x29\ +\x1d\x65\x1f\xa2\xcf\x06\xc3\x35\x2d\xd0\x4a\xca\x7e\x54\x6c\xe1\ +\x3d\x02\x36\x8e\x84\x36\x6b\x07\x7f\x12\x95\xe8\x19\xb4\xcf\x2a\ +\x53\x4a\xaa\x21\x4a\xe8\x21\x19\x55\x86\xab\x0e\x26\x39\x00\x81\ +\xfe\xae\xff\xdc\x3f\x63\x00\x63\xb4\x3a\x35\x13\x9d\xde\x35\x69\ +\x56\x2e\xec\x46\xbd\xdd\x0d\xe2\xb9\xb8\xd5\x44\xdc\x6a\xa1\x3b\ +\x93\x09\x96\xb5\x16\xc9\x60\x80\x66\xa7\xc3\x26\x8e\x89\xad\x85\ +\x4d\x52\x24\xfd\x01\x86\xe7\xd6\x31\x36\x37\x83\xb8\xd3\x46\xda\ +\x1f\x62\xb8\xbe\x81\xe6\xd8\x18\xb7\x26\xc6\xc9\x8e\x86\x60\xc7\ +\xdc\xe8\x74\x88\xb7\xb2\x87\x83\x07\xa3\xf8\xc4\xc0\xb6\x4f\x3a\ +\x98\xc1\x83\xcb\x97\xdf\x3d\xd5\x5c\x99\x5b\x4d\xa7\xcf\x64\xea\ +\xa8\xd0\x97\x20\x07\x27\x31\x46\x2f\xff\x99\xf2\x58\x45\xc4\xb3\ +\x44\x3a\x0e\x51\x3e\x3d\x6c\x59\x92\x08\x0d\x91\x08\xf6\xe5\xa5\ +\x90\x8a\x75\x4a\x61\xc9\x14\x2b\x96\x34\x64\x19\x55\x97\xfb\x9c\ +\x45\x94\x0a\x9d\x5b\x53\xb8\xda\x1d\x2a\x38\xd0\x33\xca\xc2\x3e\ +\x3c\x89\x4e\xc9\x46\x4a\x15\x13\x51\x05\x99\x94\xb5\x81\x0d\x37\ +\xb5\xba\x91\x4e\xad\x32\xf8\xc1\xec\x9a\x6d\x34\x17\x9d\xde\x36\ +\x13\x9f\xd9\x3b\x16\xaf\xef\x6d\xd3\x60\x27\x19\xd3\x6e\x8f\x8f\ +\x81\x1d\xd3\x20\x89\x8f\x37\x89\xb7\x46\xcd\x86\xc9\x84\x64\x3a\ +\xd3\x7c\x26\x34\x3a\x1d\x34\xba\x5d\x30\x33\xd9\xd4\x8d\x4c\x14\ +\x37\x11\x83\xd6\xfa\xad\x87\x1b\x51\x3a\xdd\x8a\x46\xdb\x96\x06\ +\x5b\xbe\xf8\xc4\xfa\xae\x6f\xf5\x6d\xb6\x8c\x01\x04\xac\x8c\xa6\ +\xcf\x64\x8a\x6d\x3c\xa8\x20\xad\x9e\xe8\x69\x56\x7b\x18\x7d\xb5\ +\x31\x07\xdd\x98\x74\x70\x4c\x26\x10\x02\x7f\x3b\xab\xd2\x50\x58\ +\x01\x55\xce\xe7\x60\x07\x19\x85\x35\xdf\xec\xca\x62\xff\xe2\xda\ +\x16\xd5\x62\xcf\x4f\x2e\xbd\x9c\xf9\x33\x76\x81\xc6\x87\x15\x45\ +\xe1\x56\xb8\xa6\x26\x2e\x23\x21\x62\xaa\x61\x01\x71\x65\xbd\x19\ +\xd7\x0d\x2d\x08\x9b\x73\x39\xb2\xa7\x93\xad\x47\x97\x46\x5b\x8f\ +\x12\xf3\xdf\x32\x80\x6e\xb4\x31\x31\xd7\x58\xba\xa0\x45\xc3\xa9\ +\xc7\xd6\x2f\xfe\x2a\x00\x4c\x37\xce\x2c\xcc\x36\x97\x77\x4f\x36\ +\xd6\x2e\x6c\x46\xa3\xb9\x6f\x2c\x3d\xe7\x03\x5b\xdb\x27\x2f\x98\ +\x6e\xad\xec\x1d\x8f\x37\xf6\xdc\x7b\xfa\xea\x3f\x1e\x6f\xac\x4f\ +\xce\xb5\xce\x5c\xf0\xc4\xfa\xee\x07\xf3\x2f\x47\x0a\xad\x21\x15\ +\xee\x84\x68\x82\x32\xcb\x41\x05\xa6\xe4\xec\x93\xe4\xe2\x09\xa0\ +\xcc\xb0\xda\xb2\xa5\xa2\x78\x39\x58\xa3\x98\xf4\x60\x82\xf4\x10\ +\x92\x41\x24\x0d\x91\x04\x11\xb2\x7f\xd3\xad\xff\xf6\xf8\x6d\xde\ +\x3c\x14\x34\xec\x60\xe0\x90\x2f\xcb\x8a\xca\x20\xd7\xd0\x9e\xd5\ +\x00\xa4\x1c\x10\x92\xc3\x1d\xf4\x28\x75\xd2\x40\x93\xe3\xea\xf3\ +\x7c\xf3\x05\x69\xd7\xa2\xc6\xb1\x50\x4d\x66\xa1\x05\x98\xbc\x20\ +\x33\x11\xd7\x0e\xee\xae\xb4\x8c\xfb\x9b\x47\x59\x1b\x65\xdd\x7c\ +\x1d\xaa\x9b\xa9\x9c\xd7\xd9\x89\x74\x47\x2d\x91\xae\xcb\xeb\xda\ +\xbd\x7e\x1d\xcb\x9a\xbe\x78\x4d\x31\xe1\xc4\xff\x5d\x10\x40\xd5\ +\xe7\x0a\x24\x88\x8c\xa4\x7c\x09\x5e\x80\xc9\x9e\x13\x7b\x71\x92\ +\x3b\x76\x49\xb3\x57\x15\xfc\xc9\xd5\x7e\xb4\xd2\x0c\x65\x2f\x76\ +\x72\xe3\xa7\x1a\x7a\x24\x7a\xd8\x64\x5d\x21\xa8\x63\x93\xc0\xfe\ +\x15\xb9\x92\x39\x70\x0d\x65\xff\xbf\x4e\xe1\x48\xb0\x99\x75\x99\ +\x92\xc3\x4c\xa7\xf8\x34\x26\x0d\x79\x97\xc1\x1b\x57\x58\xc7\xa0\ +\xea\x30\x65\x0a\xb9\x8b\x54\x1a\x6f\x12\x23\x1a\x38\x44\x5b\x08\ +\xe1\x90\x0e\x0a\xb6\x78\xb0\x44\xf1\xa0\xe7\x50\x10\xe9\x19\x70\ +\x2a\x5d\xa4\x00\xb1\x2a\xb6\xbc\x8b\x98\x2c\x96\x15\xaf\x90\x30\ +\x10\x6e\x9d\xe2\xc0\xa7\x10\x07\x5b\x2d\x6b\xaa\x62\x9e\xaa\xec\ +\x58\xc3\xca\xb5\x44\x1a\x69\xca\x6a\x26\x7f\x08\x72\x3a\xb3\x1e\ +\xb0\x4c\xb2\x9b\xb8\x86\x13\xaf\xd3\xb0\x52\x90\x28\x68\xd9\xd6\ +\x41\x2c\x89\xdd\x07\xa4\x97\x6b\x16\xa4\x4e\xd2\x3b\x11\x59\x4d\ +\xfe\x20\x75\xdd\xaa\x2b\x9e\x82\x03\x27\xe1\x72\xa9\x52\xb8\x53\ +\x09\x3c\x57\xb6\x51\x96\x8a\x4b\xf2\xfd\x83\x58\x83\x1c\xca\xf1\ +\xe0\xe5\xa0\x48\x19\x90\x51\x75\x49\x05\x53\xb5\x63\xc8\x9b\x5a\ +\xd2\x45\x1f\x48\xda\x95\xb8\x02\xc9\xec\xa9\x43\xdb\x42\x61\xd8\ +\x74\x69\x63\x58\x9b\xe0\x60\xe2\x36\x05\xad\x53\x95\x8e\x30\xd5\ +\x4a\x45\xc2\x4d\x70\x58\xe3\x0f\xe6\xfd\x39\x94\x3d\x80\xbe\xda\ +\x21\xc9\x9e\xae\xca\x0f\xa8\x8e\x86\x85\x9f\x50\xa2\xc9\xac\x2c\ +\xd6\xcc\x48\x2a\xbf\x1e\xee\xcb\x75\x43\x35\x50\x37\x62\x47\x77\ +\x73\x91\x1f\x15\x17\x7a\x38\x86\x51\x01\x49\xd1\x7e\x20\x57\x4d\ +\x70\x1d\x45\x5b\x92\xc1\x64\xfd\x9a\xea\x2f\x8e\x50\x3f\xe6\x43\ +\x09\x0f\xc2\x93\xaa\x5a\x1f\x75\x13\x48\x0f\xaf\x08\x16\x3d\x52\ +\xed\xda\x96\xa0\xc1\xa4\xb2\x08\x4a\xa7\xa2\x24\xa6\x62\xf9\xbe\ +\x43\xd9\x49\x1c\x96\xab\xa1\x67\x03\xa8\xe1\x58\x08\xb3\x19\x68\ +\x9a\xb7\x56\xed\xb2\x75\x0e\xba\x90\x86\xc0\xeb\xa8\xe0\x8f\xf5\ +\x8c\x65\xa8\xb8\x95\xf4\x3a\x5b\x6f\x01\x82\x2a\x87\x1f\x23\x82\ +\x72\x93\x25\x73\x38\x31\x84\xf5\xb6\xd1\x0a\x74\xa3\x0f\x9f\xb9\ +\xba\x98\x91\x6b\x37\x6c\x92\xba\xf8\x60\xd1\x47\x40\x35\x0b\xc7\ +\xc1\xb1\x02\x9a\x58\x1c\x9e\x9c\xf4\x51\xb2\x8c\x48\xad\x7c\x91\ +\xac\x59\x04\x1c\x41\x0e\x7a\xed\x8b\x96\x6e\xd9\x83\x4f\xaa\xd3\ +\xb7\x5a\x50\x23\x96\xe9\x70\xd0\x3b\x58\xd7\x06\x17\x2a\x15\x28\ +\xe8\xd6\x0a\x48\xac\x21\x4d\x5c\xb8\x54\x46\x75\x3d\xb0\x2f\x07\ +\x53\x40\xb6\x50\x03\x0f\x3c\xe3\x97\x2a\xac\x1a\xdd\x39\x84\xc0\ +\xd7\x55\xb0\xc8\xb2\x16\xaf\xc6\xa0\x89\xb9\x03\x54\x6a\x19\x57\ +\x4c\x27\x95\x04\x87\x10\x2b\x77\x21\x4f\x11\x35\xcb\x9f\x39\x48\ +\x17\xa9\xb4\x72\x8e\xf5\xf4\x52\x75\xef\xb9\x62\x69\x64\x5e\x2f\ +\x27\x68\x30\xd7\x03\x6e\x52\x25\x65\xac\xa0\xe7\x2f\x15\x1b\x1c\ +\xeb\x8e\xc9\x4f\x00\xd4\x33\xfe\xe4\x7e\x07\x59\x0b\xd0\xc9\x07\ +\xd4\xfc\x56\x66\x05\x35\x67\x84\x94\xa0\x1d\x98\xbd\xff\xae\xb9\ +\x18\x2e\x8d\x7e\xf1\xa1\x04\x6d\xc2\x29\x38\x80\x4d\x86\x80\xa9\ +\xf5\x31\x65\x8f\x61\x29\x2c\xd2\xad\x70\xb0\x6d\x24\x74\x49\xb2\ +\xe7\x8e\xea\xba\x8a\x98\x2a\xbc\x3e\xbd\xb2\x7e\xb3\x6e\x5e\x12\ +\x7d\x01\x5a\xf3\xf4\x4a\x5a\x69\x7d\xa8\xc2\x72\xae\x5e\x2b\xd5\ +\x6c\xba\x63\xa0\x2e\xb1\xa8\x58\x15\xae\x58\x2a\x0e\x17\x41\x04\ +\x0b\xa1\x19\xda\x8a\x94\xde\x9d\x60\x7c\x6f\x5e\x25\x5e\x2d\x35\ +\x9f\x6b\xb7\x59\x52\xd0\x91\x53\x12\x05\x28\x18\x28\x41\x0a\xee\ +\x0d\x76\x0d\x72\xe8\x4c\x28\x58\x48\x59\x6e\x17\x63\x22\x15\xa8\ +\xb2\x12\x92\x2a\x75\x5a\xed\x33\x52\xbe\x5d\x73\x1d\xd4\xc4\x51\ +\x40\xb7\x91\x07\x23\x5c\x4a\x41\xa1\xca\x7c\x02\xe9\xd3\x29\x40\ +\x37\x59\x36\xce\x04\x56\x10\x95\x14\x90\x95\xf1\x93\xa7\x46\x7a\ +\x83\xa2\x62\x09\x95\x2d\x67\x41\x6a\x1a\x2c\xc1\x94\x7d\x14\xff\ +\x0f\x36\x86\x77\xb7\x57\xe9\x33\x5f\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x35\x8c\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\x18\x00\xec\x00\xe0\xa9\x21\xac\x80\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x08\x06\ +\x10\x1f\x13\xe9\xf1\x8e\xd9\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x79\x94\x5c\xd5\x7d\xef\xfb\xd9\ +\xe7\xd4\x3c\x75\x55\xab\x5b\x52\x77\x4b\x02\x8d\x08\x09\x4b\x60\ +\x06\x81\x04\x66\x92\x19\xc4\xe0\x64\xe1\x9b\xfb\x5e\xec\xb5\xbc\ +\x3c\xdc\xf5\xd6\xbb\x4e\x96\x7d\x1d\x03\xef\x05\x3b\xce\xf0\x9c\ +\xf7\xb2\xae\x7d\xf3\x92\x38\xc9\x8b\x6f\xe2\xbb\x6c\x5f\x3b\x76\ +\x62\x48\x1c\x04\x66\x36\x10\x83\x24\x30\x60\x90\x00\xcd\x53\x4b\ +\x3d\x77\x57\x55\xd7\x5c\x75\xce\xde\xef\x8f\x33\xd4\x3e\xd5\x2d\ +\x06\xa3\x96\x91\xdc\x9b\xa5\xd5\xd5\x45\xf5\xa9\xaa\xb3\xbf\xfb\ +\x37\x7c\x7f\x13\xcc\xaf\xf9\x35\xbf\xe6\xd7\xfc\x9a\x5f\xf3\x6b\ +\x7e\xcd\xaf\xf9\x35\xbf\xe6\xd7\xfc\x9a\x5f\xf3\x6b\x7e\xcd\xaf\ +\x5f\x8b\x25\xce\xd4\x1b\xdd\x77\xdf\x7d\xca\x7b\xfc\xd5\xaf\x7e\ +\x55\xcc\xdf\xfa\x5f\x13\x00\x8c\x8d\x8d\xf9\x1b\xff\x17\x7f\xf1\ +\x17\xa7\x7c\xdd\x3c\x28\xce\x41\x00\xe8\x9b\xef\x2d\x85\x02\xd5\ +\xfe\xed\x2f\xff\xf2\xaf\xe6\x01\x71\xae\x03\x20\x9f\xcf\x93\xcb\ +\xe5\x9c\xed\x57\x0e\x08\x84\x8f\x03\xe7\x39\xdc\xe7\xff\xfa\xaf\ +\xff\x7a\x1e\x0c\xe7\x1a\x00\xee\xbe\xfb\x6e\x84\x10\xac\x59\xb3\ +\x86\xb5\x6b\xd7\xd2\xdb\xd3\x43\xa6\xab\x8b\x05\xdd\xdd\x98\xa1\ +\x10\x4a\xa9\x80\x84\x10\x0a\x94\x82\xbf\xf9\xdb\xbf\x79\xcb\xeb\ +\xcf\x03\xe3\x2c\x02\x40\xe7\x4a\xa5\x52\x64\xbb\xba\x48\x67\xba\ +\x58\xb9\x72\x05\xeb\xd6\xad\x23\x9b\xcb\x39\x3b\xdf\xa1\x2a\x94\ +\x2b\x22\x3c\x9c\xfc\xdd\xdf\xfd\xdd\x3c\x18\xce\x16\x00\x28\xa5\ +\xb8\xe7\x9e\x7b\x66\xfc\x3f\xa5\x94\xf6\xcf\xd9\x70\xd3\x30\x58\ +\x73\xc1\x05\x6c\xba\xe2\x0a\x56\xad\x5a\x45\x28\x14\x72\x3e\xa4\ +\x70\xb1\xa0\xf4\x9f\x12\x81\xe0\x9b\xdf\xfc\xe6\xbc\x74\x78\xdf\ +\x02\x60\x74\x54\x29\x08\x00\x40\x01\x48\x85\xff\x9f\x52\xee\xef\ +\xee\x49\x57\xde\xf3\x90\xcb\xe5\x58\xbb\x76\x2d\xcb\x96\x2d\x23\ +\x9b\xcd\xd2\xdb\xd3\x4b\xa6\x2b\xa3\x49\x05\x7c\x44\x48\xf7\xe7\ +\x3f\xfc\xc3\x3f\xcc\xab\x8c\xf7\x0b\x00\x46\x47\x47\x15\x3a\x00\ +\xbc\x13\x1f\xd8\x6c\x50\x4a\xba\xc0\x68\x3f\xd6\xa5\x03\x28\x42\ +\x21\x93\xae\x4c\x17\x89\x54\x8a\xfe\xbe\xc5\x5c\x74\xd1\x06\x2e\ +\xbc\x70\xad\x0f\x84\x80\x1d\xe1\xab\x11\x10\x4a\xf1\xad\xff\xf1\ +\x3f\xe6\x01\xf1\xab\x00\xc0\xc8\xe8\xa8\x12\x28\xee\xb9\xe7\x5e\ +\x9c\x83\xaf\x10\xde\xe6\xca\xb6\x04\x70\xf4\xbd\xb3\xd9\x52\xb6\ +\x37\x54\x21\x11\x8e\x80\x40\x29\xe9\xd8\x01\x52\x21\x69\x7b\x0d\ +\xdd\xb9\x1c\x97\x5f\x7e\x39\x97\x5f\x76\x19\x5d\xd9\x1c\xc2\x00\ +\x43\x18\x8e\xda\x50\x9d\xb6\x84\xf3\x87\xdf\xfe\xf6\xb7\xe7\xc1\ +\x70\x46\x00\x30\x32\xaa\x40\x71\xef\xbd\xf7\xfa\x27\x1a\x40\x4a\ +\xe9\xbc\xb3\x04\xa9\xa4\x26\x09\x54\xe0\x44\xfb\xf6\x81\xbb\xf9\ +\x52\xb5\xa5\x08\xd0\x06\x91\x26\x5d\x56\xaf\x5e\xcd\xea\xd5\x6b\ +\xe8\xed\xed\xa1\xb7\xa7\x97\xc5\x7d\x8b\x08\x85\xc2\xee\xdf\x38\ +\x6f\xaa\x10\xfe\x7b\x7e\xf7\x3b\xdf\xf9\xb5\xf6\x34\xe6\x18\x00\ +\x23\x0a\x4f\x02\x28\x67\xb3\xfd\xcd\x42\xb5\x6d\x01\xdf\x10\x04\ +\x25\x65\x00\x00\xde\x49\xf7\x40\xe3\x49\x8f\xe0\x6b\x9c\xcd\x74\ +\xc0\xe4\x9e\x76\x29\x49\x24\x93\xa4\xd3\x69\xd2\xe9\x34\x17\x5e\ +\x78\x21\x1f\xfc\xe0\x07\x59\xd0\xdd\xed\x4b\x82\xb6\xbf\x21\x82\ +\xc0\x52\xf0\xfd\xef\x7f\xef\xd7\x02\x0c\x73\x0c\x80\x61\xa5\x14\ +\xdc\x7b\xef\x3d\xee\x49\x6e\x6f\x98\xd4\x6d\x82\xc0\x26\x3a\x6a\ +\x42\x4a\xd9\x96\x18\x6d\xa6\x08\x25\xa5\x2b\xd6\x05\x12\x77\xc3\ +\x75\x70\xb9\xff\x5f\xb9\xd2\x42\x2a\x35\x03\x50\xeb\xd6\xaf\x63\ +\xf3\x96\xcd\x5c\xb8\xf6\x42\x84\x10\x98\xa6\x89\x61\x18\x6d\x3b\ +\xc5\x51\x54\xfe\xdf\xfd\xe3\x3f\xfe\xe3\x39\x2b\x1d\xe6\xf4\x0b\ +\x0c\x8f\x8c\x28\x5c\x37\x50\x37\xe8\x1c\x3d\xaf\xfc\x93\x2a\x5d\ +\x63\x4d\x6a\x46\xa2\x27\x1d\x02\xea\xc0\xb5\x01\x74\x5e\x40\x79\ +\x9b\xec\x6f\xb4\xc4\xff\x55\xc9\x00\xd0\x3c\x69\xa2\xbb\x9e\xb9\ +\x5c\x96\xb5\x17\x38\x9e\x46\x2e\x97\x63\xc9\x92\x01\xba\x73\x0b\ +\x34\xe9\xe0\x1b\x0f\xbe\x61\xf9\xc3\x1f\xfc\xe0\x9c\x51\x19\x73\ +\x0b\x80\xe1\x61\xa5\x50\xdc\x73\xf7\x3d\xae\x78\x57\x2e\xd3\xa7\ +\xdc\x13\x2b\x40\x2a\x47\x2b\xfb\x00\x70\x37\x4c\x28\x94\xdd\xde\ +\x06\xe9\xab\x06\x77\x63\x03\xd6\xbf\x6b\x40\xea\x9e\x85\xf7\x7a\ +\x3c\x95\xa1\x40\x82\x8d\xaf\x6b\x02\x1e\x89\x52\x8a\x50\x28\x44\ +\x32\x99\x24\x91\x48\x30\x30\xb0\x84\xcb\x2e\xbf\x8c\x8b\x37\x6c\ +\xd0\xd4\x16\x01\x42\xca\xf9\x9c\xce\xdf\xff\xe8\x9f\x7f\x74\x56\ +\x02\x62\x6e\x01\x30\xe4\x00\xe0\xee\x7b\xee\x99\x45\xdc\xab\xa0\ +\x5a\x40\x3b\xcd\xee\x66\x49\x25\xfd\x1b\xed\x6f\xb8\x94\x33\xdc\ +\x48\x4f\xaa\x04\x0d\x48\xe9\xaa\x06\xdd\x48\xc4\x7f\xbe\x2d\x09\ +\x94\xef\x29\xb4\x3f\x8b\x0a\x78\x23\xd9\x5c\x96\x2b\x37\x5d\xc9\ +\xa6\x4d\x9b\xe8\x5e\xd0\x8d\x69\x98\x84\xc2\x61\xf7\xe6\x39\xea\ +\x48\x97\x56\x28\xb8\xff\x81\xfb\xcf\x0a\x29\x31\xa7\x1f\x64\x68\ +\x68\xc8\xa1\x82\xbf\x78\x77\x5b\x2f\xa3\xfc\x4d\xf4\x3d\x82\x80\ +\xe8\xee\xb0\x11\x74\xe2\x48\x67\x0f\x67\x79\xde\xc1\x8d\xb6\xc1\ +\x72\x16\x60\xf9\x1b\xed\x0a\x78\x29\xdb\xaa\xc9\x7b\x6f\xef\x73\ +\xea\xaf\xd3\xde\x7b\xf5\xea\xd5\xac\x5c\xb9\x8a\x85\x0b\x7b\x18\ +\x18\x18\x60\xe9\xd2\x65\x84\x23\x61\x9f\x94\x52\x5a\xb4\xd3\xbb\ +\xf6\xa3\x8f\x3e\x46\xb5\x5a\x7d\xdf\x01\x62\x6e\x01\x70\x72\xc8\ +\x91\x00\x77\xdf\x1d\xb0\x01\xbc\x0d\x11\x9e\x6b\xa7\xb9\x73\x3e\ +\x38\x3a\x4e\xa7\x54\x9a\xe8\xee\x94\x1e\x9d\x27\x5a\x3b\xed\x42\ +\xb4\xb9\x05\x5f\x45\x9c\xe2\xef\xd0\x36\x7c\x76\x63\xd5\xa1\xa0\ +\x7d\x10\x01\xb1\x58\x8c\x64\x3c\x41\x3a\x93\x62\xc3\xc6\x8d\x5c\ +\x79\xe5\x95\x2c\x5a\xb8\x28\x00\x04\xef\x7b\x07\xd5\x07\xfc\xf8\ +\xdf\x7e\xfc\x2b\x07\xc3\x9c\xbe\xd9\xc9\x93\x27\xfd\x60\x50\xd0\ +\x90\xd3\x74\xb7\xa6\xaf\x1d\x69\xe0\x6d\xb8\xb7\xd9\xed\x8d\xf3\ +\x81\x40\xdb\x7e\x50\x1e\x20\xa4\xc0\xb1\x26\x34\xf5\x10\x60\x1b\ +\x75\x60\xa8\xf6\x09\xd7\x49\x28\xff\x7d\x74\x09\xd4\xb6\x21\x94\ +\x44\x03\xae\x6e\x8c\x0a\x07\xb8\x02\xff\x73\xae\x5b\xbf\x8e\x6b\ +\xae\xb9\x86\x35\x17\xac\x21\x1a\x89\x12\x8d\x44\x31\x43\xa6\xc7\ +\x4f\x06\xfe\x16\x14\x0f\x3e\xf8\xe0\xaf\x44\x3a\xcc\x39\x00\x14\ +\x8a\xbb\xbf\xf8\x45\xa4\xc2\x65\xf5\xa4\xc6\xe3\x3b\x37\x5a\x49\ +\x97\xf1\x43\x17\xe5\xda\x26\xd2\x3e\x7d\x01\xf0\xc8\xb6\x78\x96\ +\x04\xf5\x3b\xb6\x42\x8a\xa0\xc8\xc7\x65\x17\x95\x14\x28\xe1\xda\ +\x08\x1d\xbc\x43\xdb\x95\xd4\x6c\x0f\x8f\x8b\xd0\x81\x05\xb3\xa8\ +\x24\x9d\xc6\x6e\x4b\xbb\x6c\x2e\xcb\xea\xd5\xab\x59\x3a\xb0\x94\ +\x45\x8b\x17\xb1\x62\xf9\x0a\x7a\x17\xf5\xfa\x2e\x2c\xa8\x36\xc7\ +\xa1\x1c\xb2\xea\xa1\x87\x1e\x66\xc5\x8a\x15\x00\x7c\xfa\xd3\x9f\ +\x9e\xb3\x7d\x0a\xcd\x25\x00\x02\x22\x50\xe9\xba\xb1\x2d\x42\xd1\ +\x36\x5c\x05\x82\x3c\x41\x62\x46\x2a\xe9\xa0\xb5\xad\x09\x34\x3d\ +\xad\xff\x8d\x7b\x4f\x45\xd0\xb0\x6b\x73\x0a\x6e\xd0\x41\x12\xdc\ +\x48\xda\xa0\x62\x16\x23\x53\xf9\x2a\x88\x0e\xa9\x42\x1b\x2c\xee\ +\x89\x72\x7e\x97\xbe\x87\x30\x35\x39\xc5\xae\xc9\x5d\xec\x50\x3b\ +\x30\x0d\x93\x78\x3c\x4e\x24\x12\x65\xc5\x8a\xf3\xb9\xea\xaa\xcd\ +\x5c\x71\xc5\x15\xe8\xba\x41\x29\xd8\xb6\xed\x36\xf6\xee\x7d\x73\ +\xce\x55\x40\x68\x6e\x2f\xaf\x3a\x92\x3d\xa4\x0f\x06\x66\xd1\xf3\ +\x9e\x08\xd7\x8d\xb5\xb6\xee\xa6\xcd\xf6\x05\x36\x65\xa6\xff\x3f\ +\xdb\x09\xd5\x0d\x32\xe8\x0c\x3a\xb5\x81\xd5\x09\x08\xe1\xab\x1d\ +\x07\x38\x41\x10\x7b\x48\x14\x41\xc0\xf8\x3f\xdb\x6a\x44\xb8\xef\ +\x61\xd9\x16\xd3\xd3\x25\x60\x9a\xf1\xf1\x31\x76\xed\x7a\x01\x29\ +\x15\xb9\x5c\x17\x9b\xaf\xda\xc2\x15\x9b\x2e\x67\xf5\x9a\x35\x01\ +\xee\x61\x2e\x97\x31\xb7\xdb\xdf\xb6\xf4\x75\x9f\x5b\xba\x6e\x5a\ +\xc0\xed\xf2\x68\x5c\xa5\x66\x90\x40\xc2\x17\xf9\x3a\x33\xe8\x6d\ +\x89\x07\x24\x11\x24\x6d\x54\xfb\x1a\xde\xc9\x77\xcd\x07\xcd\x95\ +\xd4\x0c\x34\x1d\x28\xae\x1b\x8a\x12\x78\x14\x82\xf2\xdf\x43\xf9\ +\x6e\xa6\xff\x9d\x08\xda\x1a\x04\x62\x15\xb4\x55\x9a\x6f\xdc\x10\ +\x30\x64\x41\x31\x35\x55\x60\xfb\xf6\x07\xf9\xf2\x97\xfe\x20\x00\ +\xe2\xb3\x5a\x02\x08\xf4\x53\xa5\xe5\x82\x82\x7f\x33\xbd\x7b\x22\ +\xfc\x4d\x0a\x5a\xe7\xfe\x5e\x48\x85\x70\x4f\x9a\xd0\x8c\x34\x47\ +\xf4\x2a\x7f\x97\xfd\x6b\x7a\x5c\x02\x3e\x2d\xd8\x36\x3a\x35\x02\ +\x29\x70\xe2\x75\xe9\x21\x5c\xc0\xcd\xd8\x58\x45\x50\x88\x29\x8f\ +\x0a\x00\xdb\x21\xb0\xda\x7c\x85\xf0\xbd\x06\x1d\xb8\xca\xb7\x83\ +\x3a\x40\x45\xdb\x5b\x38\x53\x6b\x8e\x6d\x00\xfd\x34\x7a\xec\x5b\ +\xfb\xc4\xf9\x06\x1b\x12\xe9\x1a\x3f\xfe\xcd\x0c\x9c\x14\xed\x71\ +\xe7\xf5\x15\x33\x36\xd1\xe7\x02\x84\x42\x48\x57\x4a\xc8\xf6\xc6\ +\x77\x9e\xd8\x40\x58\x9a\xa0\xbd\xa2\x3a\x54\x82\x54\x0a\xe1\x5a\ +\xee\xbe\xa1\x27\xda\x2c\xa7\xee\x22\xd2\xa9\x5e\x74\x33\xc2\x17\ +\x91\xd2\x4f\x88\x11\x1e\x07\xa1\x38\x63\x20\x08\xcd\xb1\x09\x10\ +\x24\x80\x94\x76\xc3\x09\x92\x2d\x9e\xcb\xa7\x07\x72\xfc\x0c\x62\ +\xd4\x8c\x00\x8f\x08\x5c\x5f\xcd\x3c\x65\x1d\xc0\x71\xf4\xb7\xd0\ +\x72\x0e\x3b\x52\xd4\x85\xa7\x4f\x3c\xa9\xa1\x5f\x43\xf9\x00\x42\ +\xb7\x09\x3a\x40\x34\xd3\xee\x20\xf0\x59\x94\xea\xa0\x91\xb5\xa8\ +\x64\x40\x75\x9c\xb9\xfd\x9f\x63\x09\xd0\xb6\xad\x3b\xbe\x3c\x9a\ +\x58\xd6\x6e\x64\x40\x14\x6a\x01\x5b\x2d\x51\x04\x1f\x04\x8e\xa5\ +\xaf\xa4\x13\x27\xb0\x6d\x1b\x21\x04\x42\x08\x9f\x25\xf4\xfd\x6c\ +\x37\xc2\xa7\xbb\x67\xa8\x4e\xf1\xee\xb1\x81\x6d\x60\xb5\xff\xbf\ +\xce\xea\x79\xf9\x04\xa0\x44\xd0\x28\x44\x0f\x47\x7b\xc9\x2f\x68\ +\xa1\x6e\x3a\xb3\x96\x34\xb5\xe3\x45\x43\xa5\x3a\x93\x1a\x60\xae\ +\x25\x80\x9b\x84\xe1\x7f\xa7\x20\xcb\xa7\xab\x09\xe5\x9f\x32\x57\ +\x07\x74\xf8\xd2\x6d\xde\x40\xbb\x89\x52\x61\x59\x16\x27\x4f\x9e\ +\xa4\xd9\x6c\x92\x4a\xa7\x48\xa7\xd3\xc4\x22\x31\x4d\x93\x4a\xed\ +\xa4\x6b\xec\x23\xc1\xcd\xf7\x6c\x86\xd9\x5c\x4b\x1d\xb9\x52\xb5\ +\x33\x54\x95\x14\x9e\x3f\x1a\x00\xb8\x4f\x41\xfb\xd6\xa7\x26\x11\ +\x3b\xdc\xdb\xce\xf4\x35\xe1\xc4\xbc\xcf\x11\x00\xf8\x99\x37\x32\ +\xe0\xbf\x2b\x8f\xf8\x90\xba\x5a\x20\x60\x94\xcd\x3c\x85\x4a\xbb\ +\x89\x6d\xf1\x6d\x59\x36\xb5\x5a\x8d\x64\x32\x49\x2a\x99\xa2\x56\ +\xa9\x32\x39\x31\x49\x57\x36\x4b\x2c\x1a\x45\x08\xa1\x01\xcb\x23\ +\x8c\x3a\x72\x04\x74\xaf\x41\x0f\x5b\x2b\xdd\x25\xd5\xc2\xd6\x3e\ +\x5f\xa0\x66\xa5\xad\x75\x23\x53\x77\x5d\x75\xe9\x86\x16\x14\x73\ +\x5f\xe4\x10\x57\x81\x3b\x71\x96\x03\x40\xa2\x10\x22\x58\xf9\xe3\ +\x6f\xa2\xee\xea\xcd\x76\x3a\x02\xae\x83\x66\xec\x05\x18\x3f\x30\ +\x0c\x81\xd5\x6a\x91\x4a\xa5\x58\xb6\x6c\x19\x57\x5e\x79\x25\x2f\ +\xbf\xfc\x32\x7b\xf6\xec\xa1\x90\xcf\x93\x49\xa7\x89\x44\xa3\x18\ +\xa6\xd1\xa1\x1a\x34\x05\xa5\x59\x66\xfa\x67\x14\x5a\x25\x93\x4b\ +\xe0\x6a\xba\xdd\x73\x05\x83\xee\x67\x40\x12\x74\x1a\xf4\x9a\x72\ +\x97\x1a\x57\xa0\x94\x4b\x93\xea\x99\x51\xe7\x82\x0d\x20\x66\x89\ +\xa1\xab\x59\x18\x41\xcf\xe2\xd7\xef\x91\x4f\xf8\xb8\x79\x01\xaa\ +\x93\x29\x04\x2c\xab\x45\xb3\xd5\xa4\x65\x59\xc4\x62\x31\xea\xf5\ +\x3a\xc5\x62\x91\x4f\x7d\xea\x53\x1c\x38\x70\x90\x5d\xbb\x9e\x63\ +\xcf\x9e\xdd\xe4\xf3\x79\x12\x89\x38\xb1\x58\x3c\xe8\x4b\x68\xd2\ +\x44\x4a\x27\x37\x11\x61\x68\x6e\x1a\x7e\x8c\x40\xa3\xf9\xb5\xdc\ +\x44\x82\xd2\x4d\xb7\x5e\x3a\x49\x2c\xa1\x02\x86\x69\x50\xbd\xa8\ +\x19\x24\xd6\xb9\xe1\x06\x06\x6c\xa3\xb6\x88\x6d\xeb\x5f\xa9\xf1\ +\x03\x5e\x0c\xdf\x31\xdc\x04\xed\x1c\xbf\x20\xbb\xd6\xd6\xd1\x85\ +\x42\x91\xc9\xb1\x51\xb2\xa1\x10\xe5\xe9\x69\x6e\xba\xe9\x26\x9e\ +\x7c\xf2\x49\x96\x2e\x5d\xca\xd2\xa5\xcb\xa8\x54\x06\xc8\x66\x3f\ +\xc0\x81\x03\xcf\xb3\x7f\xff\x1e\xc6\xc6\xc6\xc9\x76\x65\x89\xc5\ +\x63\x80\xa0\xd9\x6c\xd0\x68\x34\x90\x52\x62\x08\x03\x33\x64\x62\ +\x1a\x06\xc2\x30\xfc\x14\xb1\x40\xe0\x48\x53\x25\x3e\x7a\x3a\x0c\ +\x3d\x3a\xd8\x47\x8f\x01\x45\x8a\x80\xeb\xdb\xc9\x50\x2a\xe9\xb8\ +\x93\x74\x18\xc2\x67\xb9\x0d\x40\xc0\xb5\xd3\xa5\x81\xce\x92\x29\ +\x3a\x09\x96\x60\xb8\x56\x27\xf8\xfc\x1b\x2c\x15\xd5\x4a\x99\xb5\ +\x89\x04\x0b\x52\x29\x8e\x85\xc3\x2c\x5f\xbe\x9c\x45\x8b\x16\xf1\ +\xe2\x8b\x2f\x72\xf3\xcd\xbd\x8c\x8d\xf5\x31\x39\xb9\x92\x0d\x1b\ +\x2e\xe3\x92\x4b\x5e\xe5\xd0\xa1\x1d\xec\xdd\xbb\x8f\xb1\xb1\x31\ +\x7f\x73\x97\x2e\x5d\x4a\x22\x91\xa0\x56\xab\x51\x28\x14\xa8\x54\ +\xab\x58\x96\x85\x21\x04\xd1\x58\x8c\x68\x34\xda\x56\x41\x22\x98\ +\x62\xee\x78\x03\x92\xa0\x38\x09\xf2\x0c\x48\xa5\x05\x96\x34\xd6\ +\x91\x0e\x15\xa0\x07\x93\xce\x19\x37\xb0\xd3\xc0\x72\xa3\x25\xfe\ +\xe6\xeb\x62\x53\x57\x05\x1d\x3e\xb3\xce\x1d\xe8\x04\x8d\xd5\x6c\ +\xd2\x1d\x8b\x51\x6b\xd4\x59\xb1\xee\x42\x62\xb1\x18\x2b\x57\xae\ +\xe2\xa5\x97\x7e\xce\xf4\x74\x81\xde\x5e\xc5\xc9\x93\x36\x4f\x3f\ +\xdd\x8f\x65\x2d\xa1\xa7\x67\x23\x2b\x57\x3e\xc4\xd0\xd0\xff\xe4\ +\xe2\x8b\x2f\xe6\xfa\x1b\x6e\x60\xe9\x92\x25\x98\x86\x41\x3c\x91\ +\x40\x08\x41\xa1\x50\xe0\xc8\x91\x23\xec\xde\xbd\x9b\xd7\x5f\x7f\ +\x9d\xb1\xb1\x31\xe2\xb1\x38\xf1\x44\x1c\x43\x18\xae\xee\x3e\xc5\ +\x26\xea\x7a\xdd\xa7\x80\x5d\xec\x88\x60\x26\x54\x80\x15\x42\x21\ +\x35\xad\x20\xce\x25\x09\xd0\x0e\xf9\x6a\xa7\x1f\x8d\xb4\x51\x41\ +\xe3\x47\x2a\x27\x34\xac\x07\x5f\x82\xc4\x4a\xdb\xf7\x6f\xb5\x5a\ +\x44\x43\x21\x4e\x36\x1b\xac\xea\xeb\xc7\xb2\x6c\x72\xd9\x2c\x85\ +\x42\x81\x62\xb1\x40\x2e\xd7\xe4\xda\x6b\x87\xd9\xb0\x21\xc4\x89\ +\xc1\x2c\x83\x27\x7a\xb1\xed\x3e\x56\xac\x58\xc1\x6f\xff\xf6\x6f\ +\xb3\x6a\xf5\x2a\x22\xe1\x08\x21\xd3\x74\x7d\x70\xc9\xe2\xc5\x8b\ +\x58\xb5\x6a\x35\x9b\x37\x6f\x66\x70\x70\x90\x97\x5e\x7a\x89\x17\ +\x5f\x78\x81\xc1\x13\x27\x30\x4d\x93\x68\x34\x4a\x38\x14\xf6\xf3\ +\x17\xbd\x1c\xc7\xc0\xa9\x57\x33\x03\x55\xa8\x99\x11\x4e\xfd\x71\ +\x30\x16\x01\xea\x9c\x60\x02\xb5\x9c\xfb\x00\xeb\xe7\x05\x76\x84\ +\xf2\x03\x3a\x42\x3b\x11\xca\xf3\xb7\xa5\x4b\x0b\xeb\x92\xc0\x7d\ +\xce\xb6\x5b\x88\x56\x8b\x08\x50\xb3\x6d\xe2\xae\x11\x28\x0c\x41\ +\xb3\xd9\x64\x7a\x7a\x1a\xc3\x30\x1c\xfd\x6e\x54\xe8\x1f\x28\x90\ +\xcd\x0d\xb3\x6b\xd7\xab\x74\x77\x77\xb3\x78\xf1\x62\x50\xd0\x6c\ +\x36\x69\x81\x53\x81\xea\xfe\x30\x0c\x83\xae\xae\x2e\x27\x63\x78\ +\xed\x5a\xae\xbb\xf6\x5a\xfe\xf1\x07\x3f\x60\xe7\xce\x9d\x54\xab\ +\x55\x0c\xd3\x20\x99\x48\x22\x84\x93\x9f\x20\x3b\xdc\xbe\x40\x4c\ +\x41\xe3\x04\x24\x1d\xf4\xb2\x6a\xe7\x01\xf8\xea\xce\x8b\x5a\x89\ +\x73\x45\x02\x68\x37\x45\x27\x70\x66\xb0\x60\x4a\x0b\x17\x7b\x71\ +\x03\x82\xc9\x21\x1e\xfb\x86\x02\xdb\x96\x60\xdb\x54\x5b\x2d\x6a\ +\x40\xad\x56\xa3\xd1\xa8\xd3\x6a\xb5\x10\x42\x50\x29\x97\x89\x46\ +\xa3\x94\xcb\x65\x6c\xdb\xe1\x0a\x26\x27\xc7\x29\x14\xf6\x71\xf1\ +\xc5\x1f\x24\x14\x0a\xd1\x6a\xb5\xdc\x4d\x6f\xdf\x6d\xfd\x31\x02\ +\x04\x82\xbe\xbe\x3e\xd6\xaf\x5f\x4f\xa9\x54\x62\xf5\xea\xd5\x6c\ +\xdf\xfe\x10\x95\x4a\x85\x44\x3c\xd1\x36\x0a\x75\x62\xd3\xff\x45\ +\x38\xc1\xa1\x8e\xef\x19\x60\x0c\x65\xdb\x50\xf4\xd8\x68\x1d\xf4\ +\x67\xb9\x0d\x40\x30\x97\xdf\xd3\x81\x33\x6e\x8a\xf2\xe3\x22\xbe\ +\x3c\x98\x61\x04\xb6\x95\xbf\x94\x4e\x62\x69\x15\x78\x51\x4a\x64\ +\x36\xcb\xee\x3d\x7b\x48\x67\xd2\x54\x2a\x55\x4c\xd3\xe4\x95\x57\ +\x5f\x25\x1e\x8b\xa1\x94\x62\x7a\x7a\x9a\x72\xb9\x4c\x36\x9b\x65\ +\xe9\xd2\xf3\x58\xb5\x6a\x15\x52\x4a\x3f\x1b\xc8\xd9\x73\xe1\xff\ +\xec\x04\x83\x65\x5b\x8c\x4f\x4c\xd0\xd7\xd7\xc7\x47\x3f\xfa\x51\ +\x72\xb9\x1c\xdf\xfa\xd6\xb7\x68\xb6\x9a\x84\xcc\xd0\x29\xca\xda\ +\xda\x11\xa8\x40\xd6\x11\x3a\x45\xdc\xa9\x12\xda\x86\x83\x12\xe7\ +\x04\x00\x02\xe4\x7f\x90\x0f\xf0\xdc\x1e\xed\x8b\x07\xbc\x00\x34\ +\x16\x0e\x19\x60\xcd\x94\x52\xd4\xea\x35\xa2\x89\x04\x1b\x36\x6d\ +\xe2\x92\x4b\x2e\xe1\xb1\xc7\x1e\xe3\xb9\xe7\x76\xa0\x94\xa4\x58\ +\x2c\x12\x8f\xc7\x49\xc4\x13\xc4\x62\x11\xfa\x16\xf7\xb1\x72\xe5\ +\x0a\x92\xa9\x14\xb1\x58\x8c\xee\xee\x6e\x9a\xcd\xa6\xbb\xc1\xca\ +\xfd\x29\x34\x10\x38\xa8\xf0\x1e\x56\x2a\x15\x8e\x1f\x3f\xce\x07\ +\x2e\xba\x08\xdb\xb6\xd9\xb2\x65\x0b\x6f\xbe\xf9\x26\xcf\x3c\xf3\ +\x2c\x5d\x99\x8c\x1f\xf7\x76\xec\x01\xd1\xf1\x3d\x65\x50\x16\x2a\ +\xe7\xac\xb7\x6d\x04\x81\x52\x76\x90\x7d\x14\x67\x8e\x09\x3a\x43\ +\x6e\x20\x33\x22\x80\x5e\x02\x80\x16\x06\xd2\x4e\x84\x5e\xab\x27\ +\x02\xe4\x88\x54\x8e\xfe\x9f\x9a\xca\x73\xf1\xc6\x8d\x6c\xdb\xb6\ +\x8d\x74\x3a\x8d\x94\x92\xd7\x5e\xdb\x4d\x36\x9b\xe5\xba\xeb\xae\ +\x23\x9b\xcd\x62\x9a\x21\xba\xbb\x73\xc4\xe3\x71\x6c\x29\x31\x0d\ +\x03\xd3\x34\x7d\x03\xd2\xa9\x20\x16\x18\xc6\xec\x2a\xc0\x7b\x7c\ +\xe2\xc4\x20\xd3\xc5\x22\x03\x03\x03\xb4\x9a\x4d\x10\x82\x6b\xaf\ +\xbd\x96\x17\x5f\x7c\x91\x66\xab\x49\x24\x1c\xf6\x63\x18\x0a\xa9\ +\x05\x74\x14\xca\x2f\x53\x56\x6d\xb0\x7b\xd4\x30\x5e\x16\x54\x3b\ +\x37\xa2\xd3\x80\x3c\xeb\x55\x80\x10\x2a\xe0\x0b\xeb\x99\xc1\xde\ +\x49\x31\x0c\x03\xdb\xb6\xdb\x46\xa0\x90\x01\xab\x38\xe0\x2b\xa3\ +\x68\x59\x36\xad\x56\x8b\x35\x6b\xd6\x90\x4c\x26\x91\x52\xb2\x66\ +\xcd\x1a\x56\xac\x58\x41\x2c\x16\x43\xda\x36\x08\x41\x28\x64\xa2\ +\x94\xa2\xd1\x68\x38\xe0\x31\x0c\x9a\xcd\xa6\x93\x06\x25\x0c\x57\ +\xda\x6b\xa7\x7e\x16\x00\x48\x29\x79\xfd\x8d\x37\x48\xa5\x52\x2c\ +\x58\xb0\x80\xa6\x6b\x63\x0c\x0c\xf4\x73\xc1\xda\x0b\x78\xf5\x95\ +\x57\xdd\x4e\x26\x6a\x46\x5b\x1b\x1f\xf2\xb2\x5d\x41\x34\x23\x4b\ +\x79\x06\x3d\xad\x91\x5e\x67\xbd\x04\x08\xd4\xe8\x07\x03\x26\xde\ +\x0d\x5b\xb0\x6c\x29\xe1\x54\x37\x56\xbd\x84\x55\x2a\xd2\xac\x54\ +\xa9\x37\x1a\x34\x9b\x2d\xb0\xed\x0e\x22\xc8\xf9\x9b\xb0\x69\x12\ +\x0e\x85\x19\x1c\x1c\x64\xe3\xc6\x8d\x84\xc3\x11\x40\x61\x18\x06\ +\x8d\x46\xd3\xb7\xa0\x2c\xcb\xc2\x30\xdc\xec\x23\xa5\x30\x4d\x13\ +\x84\xc0\x56\x0a\x25\x2d\x84\x21\x02\x45\xa1\x3a\x12\x84\x63\x01\ +\x52\x2a\x95\x38\x78\xf0\x20\x6b\x56\xaf\x21\x1c\x0e\xfb\x46\xa6\ +\x10\x06\x17\x5e\x78\x21\x2f\xfd\xfc\x25\x97\xb1\x14\x01\x1a\xb8\ +\x9d\x19\xa4\x3a\x4e\x37\x3e\x18\xbc\x18\x40\x20\x31\x45\x0f\x7b\ +\x9f\x0b\xe1\xe0\x40\xa0\x27\x40\x9a\x38\xdb\x79\xc1\x75\xb7\xd3\ +\x34\x3e\xc4\xd0\x01\x45\xbe\x3e\x8a\x8a\x1f\x25\xd1\x73\x98\x5c\ +\xf8\x38\x76\x7d\x9c\xd1\xc3\x47\x7c\xaf\x41\x08\x90\xb6\x42\x98\ +\x26\x0b\x7a\x7b\xd9\xb9\x73\x17\xb6\x6d\x73\xe3\x8d\x37\xd2\xdd\ +\xdd\x1d\xa8\x28\x36\x0c\x83\x56\xab\x45\xa3\xd9\xf0\x0d\xb5\x7a\ +\xa3\x4e\xb3\xd1\x24\x1c\x0a\x11\x89\x44\x10\x86\xe1\xf3\xfc\xa1\ +\x50\x88\x68\x38\x82\x61\x1a\x01\x1b\xe6\xcd\x37\xde\xa0\x52\xae\ +\xb0\x72\xe5\x4a\x6c\xcb\xf6\x81\x2d\xa5\xa2\x52\xae\x38\x92\xc5\ +\x96\x08\x07\x69\x9a\xed\xa2\x3a\x1a\x54\xa8\x76\xb6\xb2\x4e\x84\ +\x49\x66\x0d\x78\x9d\x13\x6e\xa0\x9e\xed\x1b\x48\x98\xd0\x98\xc1\ +\x56\x13\x8e\x1e\x8a\xd3\x6c\x84\x58\xf6\x81\x1c\xb5\xf2\x5a\x2a\ +\x45\x85\x1d\x6e\xb2\xec\x83\x45\xce\xbb\xfc\xa7\x4c\x1c\xdd\x4d\ +\x39\x5f\x22\x14\x82\xfa\xf4\x14\xf5\xe2\x34\x91\x70\x98\x70\xc4\ +\x64\xe7\xce\x9d\x4c\x8c\x8f\x73\xc7\x9d\x77\x92\x48\x26\x09\x19\ +\x06\xd3\xd3\xd3\x94\x4a\x25\x0c\x29\x09\x21\xa8\xd5\x6b\x34\xaa\ +\x55\x92\xd1\x08\xf1\x70\x84\x42\xb3\x49\xbd\xd1\x40\x49\x49\x34\ +\x1a\x25\x12\x8d\x42\x24\x02\x91\x08\xd1\x54\x8a\x74\x26\x43\x22\ +\x1e\xa7\x5e\xab\xb1\xe7\xf5\xd7\x19\x18\x18\x20\x97\xcb\x61\x59\ +\x96\xef\xb7\xef\xd9\xb3\x87\x17\x5e\x78\x41\x53\x1b\x33\x2d\xfa\ +\x40\x4d\xa2\xa0\x5d\x14\xd3\x41\x16\xb5\x03\x4c\xc1\x80\xd2\x39\ +\x20\x01\xe8\x60\xba\xda\x40\xf7\x8c\xe3\x63\x2f\x3c\xc2\xf9\x97\ +\x57\xb0\x5b\x4d\x1a\x55\x83\x4b\xee\xfc\x0d\x8e\xec\x49\xf1\xc6\ +\x8e\x28\x3f\xf8\xfa\x22\xfa\x57\x7c\x84\x55\x17\x7f\x88\xde\x0b\ +\x05\x99\xde\x0c\xc5\x89\x3c\xe5\xb1\x41\x5a\xb5\xc3\x2c\x6c\xee\ +\x67\x60\xed\x20\x43\xc7\xf7\xf3\xf0\xf6\x7f\xe5\x83\x17\x6d\x24\ +\x2e\x0c\xc2\x52\xd2\x9f\xcd\x12\x33\x4d\x84\x6d\x93\xe9\xea\xa2\ +\xab\xaf\x0f\x69\xdb\x34\x1a\x0d\x42\x40\x2c\x1c\x06\x29\x29\x55\ +\xab\x14\x4a\x25\x2a\xc5\x22\x95\x66\x93\x92\x6d\x33\x15\x8d\x92\ +\xec\xeb\xa3\x50\xab\x31\x3e\x3e\xce\x15\x57\x5c\x41\x28\x14\x42\ +\xa1\x68\x35\x5b\x1c\x3a\x74\x88\xc7\x1f\x7f\x9c\x93\x27\x4f\x12\ +\x8f\xc7\x1d\x63\x52\x76\x90\x3c\xde\x26\x4b\x02\x31\x7f\xed\x45\ +\x81\x10\x32\x1d\x25\xef\xe7\x88\x0a\x20\x58\xdb\xa7\xf9\xbf\x9e\ +\xab\x33\x7c\xe0\x20\x43\xfb\x0e\x20\xc2\x21\xd2\xdd\x39\x2e\xba\ +\xf1\x0a\x6a\xe5\x0b\xa8\x95\x61\xe5\x06\x45\xcf\x40\x0c\xa5\x7a\ +\x39\xf2\x7a\x93\x56\x2b\x42\x22\xb3\x88\x54\x76\x80\x50\x66\x13\ +\x66\x08\xba\x57\x95\x59\x75\xf5\x09\x7e\xf6\xc0\x57\x99\x38\x74\ +\x90\x8f\x5d\x73\x0d\xd9\x44\x0a\xdb\xb2\x08\x09\x41\x34\x14\xc2\ +\x6a\x36\xb1\x1a\x0d\x27\xe3\x46\x08\x6c\xcb\x42\x36\x1a\xd8\x96\ +\x45\x4e\x49\x72\x91\x08\x52\x08\xac\x48\x84\x6a\xbd\xce\x64\xa5\ +\xcc\x1b\x2f\xbe\xc8\xd3\x43\x43\x2c\x59\xb9\x92\x25\x4b\x96\x20\ +\x84\xc3\x30\x1e\x3e\x7c\x98\xc7\x1e\x7b\x8c\x63\xc7\x8e\x11\x8b\ +\xc5\x30\xcd\x90\x5f\x78\xaa\x82\x47\x3f\x00\x04\x39\x43\x2a\x12\ +\x4c\x47\xeb\x28\x94\x51\x42\x9d\x43\x2a\x40\x6b\x0d\xa3\x5b\xcb\ +\x81\xd6\x30\xcd\x26\xc5\xd1\x51\xf6\x3e\xfb\x2c\xc9\x6c\x17\x9b\ +\x6e\x95\xa4\x92\x83\x9c\x78\x63\x1f\x60\xb1\x78\x51\x8b\x54\x36\ +\xc9\xe0\xde\x11\xea\xc5\x0c\xc4\x56\x60\x71\x3e\x93\x43\x7d\xb4\ +\x9a\xeb\xc0\xbc\x8f\x3d\x87\xbe\xc9\xf4\x7a\x83\x64\x75\x02\x61\ +\xb7\x68\x4a\x87\x26\x96\xb6\x0d\xb6\x8d\x94\x36\xca\xb2\x51\xb6\ +\xf3\x4f\x4a\x89\xb4\x2c\x94\xf4\x9e\x93\x28\xdb\x26\x27\x6d\x8c\ +\xc9\x49\x1a\x63\x63\xa4\x37\x6e\x24\x1a\x8d\xd2\x68\x34\xd8\xb3\ +\x67\x0f\x4f\x3f\xfd\x34\x47\x8e\x1c\x21\x99\x4a\x11\x76\xbd\x8c\ +\x19\xc1\x2b\x37\xe0\x15\x54\x7f\xed\xda\x86\xd9\xc2\xc6\x81\x22\ +\xd4\x73\xc6\x08\x44\x0f\x78\x69\x91\x30\x9f\xf1\x6b\xfb\xc2\x9e\ +\xc5\xfc\xc6\x53\x8f\x70\xfe\xc6\x61\x6a\xa5\x69\x86\xf6\x1f\x40\ +\xb5\x6c\x9a\xf5\x1a\xcd\x66\xd3\xb1\xe4\xc3\x61\x42\xa6\x41\x24\ +\x16\x27\x96\x4c\xb2\x78\xdd\x45\x2c\x5e\x73\x3d\x93\xe3\x17\xf2\ +\xb2\xf9\x3b\x3c\x70\x64\x92\xab\x7a\xdf\x60\x79\xe2\x00\xd1\xc9\ +\xc3\x48\x5b\x62\x5b\xca\xd9\x5c\x69\x23\x3b\x00\xe0\x3f\xb6\xdb\ +\xcf\x8f\x37\x1a\xbc\x32\x36\xc6\xfa\x68\x94\xf4\xe0\x20\x27\x06\ +\x07\x39\x78\xe8\x10\x3b\x76\xec\x60\x78\x78\x98\x74\x3a\x8d\x61\ +\x18\x6d\xf6\x52\x10\xb0\x6d\x02\x29\x6e\x5a\xf1\x87\x94\xc1\x90\ +\xb6\x9e\x00\x23\x3a\xd3\xd2\xc5\xb9\x62\x03\x88\x60\x10\x48\x20\ +\xdc\x22\xd0\x99\x6d\xdc\x40\x51\x9e\x98\x64\xf7\x93\x4f\x75\x74\ +\x15\x6b\x27\x60\x58\x8d\x06\x2d\xa0\x5a\xa9\xc2\xc4\x04\x43\x47\ +\x8f\x92\xdc\xf5\x3c\x4b\x2e\xdc\xc8\xe6\x5b\xb6\x31\x36\x76\x29\ +\xff\xba\xe7\x12\x92\x43\x43\xac\x2a\x3f\xc5\xca\xcc\x5e\xb2\x85\ +\xd7\x88\x58\x05\x94\xd5\x44\x5a\x36\xd2\x76\x82\x4d\xed\x93\xef\ +\x02\x40\xda\xb4\x5a\x16\xbb\x6a\x35\xaa\x8d\x06\x57\x2d\x58\xc0\ +\xe8\xd1\xa3\xfc\xf3\xf7\xbf\xcf\x78\xa1\x40\xad\x5e\x27\x9d\x4a\ +\x23\x4c\xc3\x37\x64\x02\x29\xe4\x9d\x01\xaf\xf6\xc1\x6f\xc3\xbd\ +\x23\xcc\x3d\x5b\x84\x50\x09\x75\x0e\xa5\x85\x07\x74\xa2\xae\x0e\ +\xe8\x88\x12\xb6\x23\x83\x74\xdc\x18\x2f\xa4\xaa\xbc\x9e\x1c\x6e\ +\x08\xce\xbb\xe9\xa5\x89\x49\xde\x7c\xf6\x49\xc6\xf7\xbf\xce\x9a\ +\xcd\x57\xb1\xf4\x8e\x4b\x51\xe6\x66\x4e\xfe\xe2\x2e\x86\xc7\x0a\ +\xa4\xf3\xcf\xd2\x33\xbd\x8b\x5c\x64\x84\xa4\x3d\x8e\x59\x99\x44\ +\x55\x0a\x88\xda\x34\x42\x5a\x6e\x4a\x98\xc0\x92\xb0\x4f\xda\x1c\ +\xb2\x2d\x16\x0b\xc1\x58\x71\x9a\xd7\xc2\x61\xaa\x0b\x32\x24\xba\ +\x53\x24\x55\x9a\x66\xa5\xe1\x04\xa2\x54\xbb\xbc\x4c\xcc\x56\xd8\ +\xaa\xf9\xfe\x81\xa6\x15\x01\x69\xa0\x02\xad\x6f\x95\x9e\x6c\x74\ +\xce\xe4\x03\xf8\x34\xa7\x96\x7c\x19\xa8\x18\x68\x2b\x3c\xd9\x69\ +\x19\xd3\xae\xb4\xf5\x53\xc5\x85\x96\xb5\xeb\x22\xc6\x93\xc0\x63\ +\x43\xc3\x8c\xfd\xe8\x7e\x8c\xd0\x8f\x39\xff\x83\x57\x12\x4d\xaf\ +\x85\xc5\x17\x93\xef\xf9\x28\x27\x46\xee\x22\x54\x1a\xa1\xab\x7e\ +\x88\xee\xd6\x9b\x64\xaa\xfb\x88\x4c\x9f\x40\x4d\x8d\x42\x7e\x9c\ +\x90\xd1\x62\x4a\x4e\xf3\xef\x76\x95\x09\x0c\xc2\xc9\x2c\x23\xfd\ +\xfd\x24\x2e\xfe\x5f\x39\x3f\x76\x03\x21\x63\x14\xec\x7d\xb4\xea\ +\x07\xa8\x97\x4f\x72\xf2\xcd\xbd\x2e\xe9\x24\xdb\x35\x07\xfe\xb7\ +\xd5\x45\xbc\x0c\x96\x02\xe9\x99\x51\x1d\xaa\xd1\x3f\x02\x5e\xf6\ +\xd1\xb9\x12\x0c\xea\xd4\x8b\xc1\xee\x1b\x32\x98\x2a\xa5\x55\x02\ +\xeb\xfc\xb9\xea\xa4\x5a\x3b\x8c\x4a\xbd\x78\xc3\x6a\xb5\x38\xf4\ +\xe2\x73\x84\x8c\xe7\xe9\xe9\x1f\x60\xf5\xd5\x5b\x10\xe7\xf5\x53\ +\x29\xf7\x93\x9f\xea\x67\xdf\xf4\xc5\x34\xa7\xb3\x98\x8d\x0a\x89\ +\xda\x71\x22\x13\x07\x50\x76\x83\xc3\x45\x38\x3c\xda\x44\x98\x05\ +\x86\x96\xb4\xb8\xec\x23\x17\x71\xc1\x65\xd7\x71\xe8\x95\x28\xe1\ +\x88\x81\xe2\x36\xe2\x49\x8b\xae\xde\x22\xf9\x13\x3f\x65\xe4\xf0\ +\xbf\x33\x35\xb8\x8f\xc1\x03\x07\x91\xf5\xba\x56\xb7\x30\x4b\x86\ +\x30\x1d\xaa\x21\x60\x08\xea\xf6\x42\xa7\x5a\x3c\x17\x8c\x40\xa5\ +\x71\x01\x1d\xe1\x5d\xd5\x51\x25\xa4\x17\x6e\xcd\x5a\xe6\xa5\xda\ +\xe9\xd8\x7e\x5f\x01\x15\xb4\xaa\x05\x20\x2d\x8b\x86\x52\x9c\x38\ +\x7c\x84\x13\x87\x0e\x21\x42\x21\x92\xdd\x0b\xc8\xf4\x2c\x26\xd3\ +\x3b\x40\x62\x45\x3f\xa1\xd8\x22\x6c\xfa\xb1\xd4\x45\x48\x7b\x01\ +\xd9\x03\xbf\xe0\x3f\xac\xef\xa7\x56\x12\x4c\x0e\x85\x98\x3a\xd9\ +\xc7\x33\x87\xa3\x28\x29\x48\x66\x14\x5d\x3d\x82\x7a\x39\xcc\xd1\ +\xd7\x7b\x68\x35\xef\x24\xd7\xbb\x85\x4b\xee\x18\xe1\xbc\xc1\x87\ +\x79\xe3\xd9\x87\x19\x3e\x72\x84\x36\xb5\xaf\x3a\x24\x5b\xb0\x1a\ +\xa8\xdd\x84\xa2\xa3\x28\x26\x98\x45\x71\xf6\x53\xc1\x81\x76\x28\ +\x1a\x0d\x1a\x30\x8a\xbc\x30\x78\x67\x23\x27\x5d\x0a\x68\x1b\x3d\ +\x9b\x9f\xad\x07\xcf\x64\xc0\x95\x72\x4f\x5c\xcb\xa2\x38\x32\x42\ +\x71\x64\x18\xa5\x5e\x76\x3c\x8a\x48\x94\x4c\x4f\x2f\xbd\x4b\xfa\ +\xc9\xf6\x74\x23\x8b\xfb\x39\xfe\xf3\x34\x91\x64\x9a\x68\x28\x42\ +\x66\xe1\x32\xa2\xa9\x01\x6c\xab\x9f\x70\xe2\x52\xaa\xa5\x0c\x99\ +\x9c\x60\xc3\x75\x8a\x50\x38\xc2\x2b\x4f\xf6\xf1\xe2\xa3\xfd\xf4\ +\xaf\xda\xc0\x8d\xff\xe9\x2e\x8a\x23\x8f\x33\x7a\x6c\x2f\xc3\x07\ +\xf7\x71\x72\xdf\x7e\x5a\x8d\x46\x30\xb2\x17\xa8\x25\xf4\xc2\xbf\ +\x02\xcd\x84\xf4\xa9\x61\x71\x6e\x50\xc1\x4e\x8e\x8b\x50\xc1\x26\ +\x0f\x81\xaa\x5e\x57\x0d\xe8\x25\x7b\x78\x35\x77\x0a\x2d\x1f\x80\ +\x8e\x72\x31\x97\x2c\xe9\xa0\x56\x95\xd0\xd3\xb5\xe5\x0c\xc9\xa3\ +\xdb\x19\x56\xa3\xce\xe4\x89\xe3\x4c\x0e\x1e\xf3\xdb\xd3\x18\xc2\ +\xc4\xb6\xac\xc0\x09\x8c\x67\xba\xb9\x60\xf3\x4d\x64\x16\x6e\xa6\ +\x56\xde\xc2\x4f\xbf\x9f\xc3\x30\xa1\x5c\x00\x69\xc3\x4b\x8f\x86\ +\xd9\xfd\xcc\x3a\xd6\x5c\xbe\x8a\x9e\xfe\x69\x56\x5f\x36\xce\xd8\ +\xb1\x9f\x70\xe4\x17\x4f\x32\x71\xec\x38\xe3\x43\x43\x1d\x7d\x0d\ +\xdb\xcc\xb8\xc0\x6e\xd7\x19\xa0\xd9\x47\xf2\x9c\x00\x80\x93\x20\ +\xe1\xb7\x71\x25\xd8\xa8\x49\x37\x0e\xd5\x8c\x53\xe2\x35\x89\xf6\ +\xa2\x79\xda\x35\xa4\x0a\xc6\xd3\xa5\x76\x8a\xe4\xcc\xae\x22\x7a\ +\xa3\x69\x66\xed\xef\xd3\xa6\xe6\x6c\x69\x05\x3b\x85\x28\x45\x39\ +\x3f\xce\xab\x8f\xfe\x13\xe9\xec\x23\xac\xbf\xf6\x5a\xd6\x6d\xba\ +\x8a\x66\xf3\x06\x5e\x7a\xbc\x97\x74\x4e\xf1\x9b\x7f\x2e\x99\x1e\ +\x3f\xca\xa1\x57\x4e\x32\x35\xdc\xc7\xe8\xb1\x95\x08\xe3\x73\xac\ +\xba\xe2\xe3\x5c\x76\xdb\x2f\x78\xe5\xd1\xbf\x61\xff\x0b\x2f\x50\ +\xab\x54\x3b\x0a\x5c\xdc\x1c\x82\xd9\x02\x65\xe7\x82\x11\x18\x48\ +\x6f\xf6\x3a\x84\xfb\x5b\xe7\x35\x86\x22\xb8\x29\xfe\xae\xe9\xe4\ +\xba\xec\x78\x4d\x67\xe9\x98\x9c\x59\x6d\xa4\xa5\x65\x05\xb2\x6e\ +\x67\xb4\x8b\x25\x18\xaa\xa5\xb3\x51\x94\x9b\x83\xd0\x6a\x32\x35\ +\x36\xc1\x33\xff\xf4\xcf\x18\xa1\x7f\x61\xe3\x8d\xb7\x73\xd5\x1d\ +\x9f\x61\xf4\xf8\xc5\x14\xc7\x40\xa8\x9d\xbc\xfe\xcc\x37\xc8\xf4\ +\xf6\xb3\xfa\xb2\x9b\xc8\xf5\xdd\xc8\xe4\xd0\x72\x8e\xbe\xf1\x61\ +\xd6\x5c\xb1\x98\x5c\xff\xdf\xf3\xf4\xf7\xbf\xeb\xb7\x94\xe9\x78\ +\xf3\x19\x4d\x2c\xce\x54\x4e\xd8\xdc\x57\x06\x29\xb8\xeb\xae\xbb\ +\x98\x98\x98\xe0\xd8\xb1\xe3\x1c\x3b\x76\x94\x56\xab\x15\x90\x02\ +\x82\xa0\x44\x90\x7a\x08\xb9\x43\x75\x04\xeb\x07\x55\x20\x97\xae\ +\xb3\xff\x5f\xa0\x2f\xd0\x0c\xb5\xe0\xc9\xe0\x99\x65\x59\x7e\x07\ +\x12\x82\x21\x5d\x4f\x7d\xd8\xad\x16\xbb\x9f\x7a\x88\xca\xe4\x71\ +\xae\xfa\xad\xff\x93\x64\xd7\x85\x8c\x1c\x9e\x64\xec\xd8\x01\x46\ +\x8f\xee\xe7\xe8\x2f\x9e\xa3\x77\xe9\x7f\x67\xdd\xb5\xb7\x73\xfe\ +\xfa\x4f\x51\xaf\x5c\xc4\xf5\x1f\xff\x5d\x0e\xbc\xb4\x83\xe3\x6f\ +\xec\x0f\xe4\x02\x75\x1a\xc4\x3a\xaf\x70\x0e\x78\x01\xce\x17\xb9\ +\xe1\x86\x1b\x80\x76\xe6\xee\xf4\x74\x89\x97\x5e\x7a\x89\x5d\x3b\ +\x77\x31\x31\x39\xa1\x35\x5c\x68\x1b\x87\x8a\x60\xc3\x84\x4e\xea\ +\x54\x69\x04\x91\xc7\x04\xe8\x00\x08\xb6\x91\xd5\x6c\x52\x08\x82\ +\x4a\x76\x34\x67\xd0\xd3\xb7\x20\xd0\xc6\x46\xff\x2c\x8d\x46\x83\ +\x37\x77\xbd\x48\x6d\xfa\xf7\xe9\x5f\x7b\x01\xc7\xdf\xdc\xe7\x7f\ +\xc6\x56\xb3\xc9\x89\x83\x87\x18\x3d\xfe\xb7\xac\xbf\xe6\x4d\x7a\ +\xce\xbb\x8a\xfd\xbb\xc2\x54\x0a\x25\xbc\x52\x11\xa5\x82\x64\x98\ +\xf4\xfa\x17\x05\xdc\xda\x33\xc1\xd2\xcc\xf1\x7a\xfd\xf5\xd7\xd5\ +\x8c\x8a\x5f\xed\x74\x01\xec\xd9\xb3\x87\x1d\x3b\x76\x70\xf0\xe0\ +\x21\x1a\x8d\x3a\xb5\x9a\xc3\xfd\x7b\x5e\x84\xdf\x1c\x52\xcd\x96\ +\x7d\xdb\x66\xe4\x1c\x0f\x23\xd8\x2d\x3c\x98\xb1\xdb\x6e\x08\x29\ +\x34\x1e\xa2\xb3\x95\x7d\x30\x65\x2b\x98\xa5\x13\x28\xf5\x96\x2e\ +\x31\x25\x9d\xd4\x37\xdb\x9e\xc9\x6c\x02\x4e\x26\x92\x21\x68\xd6\ +\xea\xc1\xfe\x83\x1d\x7d\x8c\xbc\x8d\xff\xb7\x07\xff\x0d\x14\x0c\ +\x0f\x0f\x03\x67\x71\x9f\x40\x80\xf5\xeb\xd7\xfb\x1f\x7e\xcf\xee\ +\xdd\x2a\x58\x43\xef\xdc\xd5\xf5\xeb\xd7\xb3\x6e\xfd\x3a\x50\x30\ +\x35\x35\xc5\x91\x23\x47\x18\x19\x1e\x66\x68\x78\x98\x03\x07\x0e\ +\x30\x3e\x3e\x1e\xd8\xa4\x19\x24\x8a\xc6\x2e\xaa\x0e\xf1\xaf\x98\ +\xe9\x82\x75\x76\x06\x51\xb3\xb4\x6b\x51\x2a\x78\x12\x67\x14\x73\ +\x76\xf4\x2d\xf0\xe2\x15\x81\x72\x31\x57\xd0\xdb\x4d\x5b\xb3\x7c\ +\xdc\x96\x71\xee\xa9\xf7\x5a\xc8\xe9\x6a\x4f\xcf\x18\x3a\x07\xa8\ +\xe0\xf6\xba\xe8\x03\x1f\x10\x77\xdc\x79\xa7\xe8\xed\xe9\x31\x26\ +\x27\x26\xfe\x17\x33\x14\xfa\xab\xaf\x7c\xe5\x2b\x39\x1d\x14\xb9\ +\x5c\x8e\x5c\x36\x07\x97\x28\x5a\x96\x45\xa3\xd9\x74\xe2\xf0\x87\ +\x0e\xf1\xdc\x73\xcf\xf1\xf2\xcb\x2f\x77\x6c\xbe\xea\x98\x09\xd0\ +\xd1\x4a\xce\x6b\x1a\xd5\x99\x78\xa1\x77\x03\x61\xb6\x64\x8c\xa0\ +\x47\x21\x74\x3d\xdd\xd1\x57\x60\x46\xe9\xb7\xd4\x8d\xc9\x8e\x3e\ +\x08\x6e\x7b\x7c\x3d\x41\xc4\x1f\x9b\x23\xce\x7c\x79\xf8\x19\x6b\ +\x4c\x7c\xdb\xb6\x6d\x51\xc3\x34\xd3\x86\x69\xfe\x47\xd3\x10\x5f\ +\x37\x0c\x33\x2a\x84\x08\x10\x41\xf7\x7d\xe9\xbe\x0e\xbe\x7c\x96\ +\x4e\x63\xc0\xe4\xe4\x24\xbb\x76\xed\xe2\xa5\x97\x5f\xa2\x90\x2f\ +\x50\x2e\x57\xa8\x54\xcb\xb3\x74\x06\x0d\xce\x19\x0a\x76\x05\xd7\ +\xdd\x4c\x0d\x08\xae\x4d\x20\xe9\x9c\x52\xd2\x61\x94\x7a\x9c\x83\ +\xdb\x1a\xce\x6b\x57\xef\x35\xa7\x9e\x61\x98\x6a\xb9\x00\x81\x9e\ +\xc9\x5a\x55\xb1\x27\x11\xb6\x3f\xf8\x20\x4a\xc1\xe8\xe8\xc8\x9c\ +\xab\x80\x39\xbb\xf0\x6d\xb7\xdd\x66\x3c\xf4\xd0\x43\xf2\xe6\x9b\ +\x6e\x8e\x45\xe3\xd1\x95\x86\x30\xee\x12\x42\xfc\x7e\x28\x64\x46\ +\x67\x18\x64\x1d\xf5\xf5\xba\x15\xff\xe5\x2f\xff\x41\xb0\xdb\xb6\ +\x0e\x06\x05\xad\x96\xc5\xe0\xe0\x71\x06\x07\x07\x19\x1b\x1b\xe3\ +\xc0\x81\x83\xec\xdb\xbf\x0f\xab\xd5\x0a\x76\x07\xf7\x73\x11\x54\ +\x20\xae\xe0\xc7\x25\xd4\xec\x89\x1a\xc1\x49\x27\xce\xf1\xd6\x41\ +\xe5\x48\x07\xcf\x23\x91\xae\x5f\x1f\xec\x68\x1e\x88\x04\xba\x12\ +\x20\xd8\x40\x22\x68\xd7\x6c\x7f\x70\x3b\x4a\x28\x46\x47\x46\xcf\ +\x3e\x00\x6c\xbb\xed\x36\xe3\xe1\x87\x1e\x92\x00\x77\xdc\x71\xc7\ +\xf5\x86\x69\xdc\x21\x84\xf8\x94\x61\x98\x5d\x86\x98\x59\xef\x10\ +\x20\x3e\x3a\x8c\x3c\xbf\x33\xb7\xd6\xf7\xff\x0f\xff\xf0\x0f\x67\ +\xb4\x91\xf1\x82\x67\x52\x39\x05\x1f\x96\x65\x51\x28\x14\xd8\xf5\ +\xc2\x2e\x9e\x7d\xe6\x59\x46\x47\x47\x03\xf3\x08\x3a\x09\xa8\x53\ +\x6f\x46\x70\x86\x81\x3f\xf5\x44\xc8\x60\xdf\xc1\xc0\x74\xb3\x8e\ +\x99\x87\x4a\x06\x6a\x1b\x65\xc7\xc4\x33\x7f\xd8\x85\x1b\x49\x94\ +\x52\xb1\xfd\xa1\xed\xa0\x60\x74\xf4\x2c\x02\xc0\xb6\x6d\xdb\x32\ +\x0f\x3f\xfc\xf0\xb4\x7b\xfa\x7f\x27\x14\x36\x2f\x07\xe3\x16\x43\ +\x88\x85\xc2\xd0\xbb\x63\x78\xc1\x5b\xc1\x8c\x72\xb1\x00\x29\xa4\ +\x5b\xe7\x9d\x2c\xa2\xf4\x7f\xff\xe3\x3f\xfe\x93\x80\x7a\x38\x95\ +\xb4\xd8\xb3\x7b\x0f\x3b\x76\x3c\xcf\xc1\x83\x87\xa9\x54\xca\x14\ +\xa7\x8b\x34\xdd\x1a\x02\x5d\x34\x77\x02\xc1\xdb\x74\xb4\xcd\x6a\ +\xb7\x74\x73\xc6\xd7\xfa\xd5\x40\xb3\x71\x15\x32\xd8\x64\x52\x69\ +\x8c\xa4\xd2\x73\x24\x34\x3e\xe3\xc1\xed\xdb\x41\x29\xbf\x91\xc5\ +\xfb\x1a\x00\xb7\xde\x72\x6b\xf4\x27\x8f\xfc\xa4\x01\x70\xeb\x6d\ +\xdb\xfe\x8f\x90\x61\xde\x64\x18\xc6\x26\x84\x48\xb8\xd9\xd2\x04\ +\x8b\x5d\xdb\x1b\x3f\xc3\xaf\x57\xc1\x18\xf9\x4c\x0b\x3d\xd8\xbe\ +\x55\x2a\x85\x21\x0c\x56\xac\x58\xce\x25\x97\x5c\xe2\xbb\x5c\xeb\ +\xd6\xad\x6b\x77\xef\x56\xcc\xe8\xcd\x33\x95\xcf\x73\xfc\xd8\x31\ +\xc6\xc6\xc6\x38\x76\xec\x18\xbb\x77\xef\x66\x64\x78\xb8\xdd\xaa\ +\xb6\x23\x86\xd0\xe6\x11\x3a\x12\x3b\x94\x0a\xb4\xb8\x0f\xd8\x10\ +\x9d\xf3\x10\x7c\x42\xc9\xb9\xf6\xcc\x28\x66\x3b\x16\xfa\xe0\x83\ +\xdb\x01\x18\x1b\x9b\x7b\x09\xf0\x9e\xbd\x80\x9f\x3c\xf2\x93\xc6\ +\xad\xb7\x6e\xfb\xaa\x69\x1a\xbf\x65\x08\x31\xa0\x84\x88\xfb\xd6\ +\xb6\x10\x5a\x88\x37\x18\xec\x15\x7a\xff\xc0\xce\x40\x88\x0a\x56\ +\x14\xe9\x19\x33\x81\x4d\x51\x8a\xf3\x56\x2c\xe3\xb2\xcb\x2e\x0b\ +\x7c\xa6\x37\xde\x78\x03\xc3\xad\x03\x34\x4d\x93\xf3\xcf\x3f\xaf\ +\xdd\xe4\x49\x40\x2e\x9b\x25\x97\xcd\xba\x0d\x28\x2d\xac\x96\x85\ +\x65\xdb\xec\xdd\xb7\x8f\x9f\x3e\xf5\x14\x2f\xec\xda\x45\x4b\xca\ +\x36\x95\x2d\xb4\xa1\x11\x9a\x6a\x52\x1d\x2d\x4b\x54\xc0\xb8\x0c\ +\xb6\x88\x11\x04\x13\x3f\x94\xec\xc8\x81\x98\x41\xa1\x9d\x99\x68\ +\xd0\x2f\x0d\x80\x9b\x6e\xda\x9a\x30\x8c\xd0\x7d\x86\x61\xfc\xae\ +\x10\x22\x05\x4a\xb4\x45\xb5\x68\x8f\x6e\x15\x6e\xc5\xac\xd0\x12\ +\x5d\x84\x96\x2f\xe7\x65\xf8\x08\x15\x60\xc2\xf4\x9b\xaa\xc7\xcd\ +\x3b\xa3\x7b\x17\x5d\x74\xd1\xec\xa2\x4d\xe0\x77\x0e\x3d\x71\xe2\ +\x24\x86\x61\x62\x9a\x06\xbd\xbd\xbd\x81\xd4\x6c\x43\x98\x84\x23\ +\x06\x61\xa5\xb8\x78\xe3\x46\x2e\xde\xb8\x11\x50\xe4\xf3\x05\x9e\ +\x7f\xfe\x79\x5e\x7e\xe5\x65\x26\x27\x26\x9d\xae\x23\xd3\xc5\x20\ +\x6d\xcb\xcc\x79\x03\x5e\x14\x74\x86\x9d\xa2\x02\xae\x8d\xd7\x46\ +\x7a\x76\xd2\xd7\x61\x96\xde\x7f\x00\xb8\xe1\x86\x1b\x22\xe1\x70\ +\xb8\x47\x29\xf5\xbf\x0b\x21\xbe\xe4\x7f\x48\xd5\xee\xe8\x0b\xed\ +\x5e\x4a\x7e\x8f\x40\xed\x35\x7a\x03\x48\xb4\x11\xae\xc8\x59\x3a\ +\x87\x76\x1a\x60\x5e\xbd\xbd\xe6\x27\xc6\xe3\xf1\xb7\xd4\x6e\x02\ +\xaf\xeb\x87\x40\x18\x82\x7c\x3e\xef\x77\x0e\x91\x52\x62\xbb\xa9\ +\xe1\xbd\xde\x9c\x1f\xf7\xda\xd9\x6c\x17\xb7\xde\xba\x8d\x5b\x6f\ +\xbd\x15\xdb\xb2\x18\x3c\x79\x82\xa1\xa1\x61\x46\x47\x46\xd9\xb3\ +\x7b\x37\xaf\xed\x7e\xcd\xcf\x54\x56\x01\x46\x4f\xcc\x3e\x55\xc4\ +\xa7\xa5\xb5\xfe\x00\x52\x71\xca\x5e\x10\xef\xb7\xea\xe0\xad\x5b\ +\xb7\x6e\x52\x4a\xdd\x26\xa5\xfc\xb2\x77\xb2\x3c\xdf\xd5\xc3\x81\ +\x00\x27\xfc\xeb\x22\x40\xb8\xff\xcf\xbf\x31\x78\xc1\x1f\xd1\x6e\ +\xa0\x00\xc1\xe4\x8d\xce\x29\xe0\xbe\x9e\x15\x81\xe6\x4b\xde\x1a\ +\x1f\x1f\x67\xd1\xa2\x45\xb3\x07\xa2\xe8\xe8\xce\x8d\x40\x20\x30\ +\x84\x40\x98\x66\xdb\xd8\x14\x82\x91\x91\x61\x2c\xcb\xc2\xb6\x6d\ +\x96\x2e\x5b\xaa\xc5\x32\x14\x86\x69\x72\xde\xb2\xf3\x58\xb6\xec\ +\x3c\x94\x94\xdc\x76\xfb\x36\x94\xad\xc8\x17\x0a\xfc\xec\x67\xff\ +\xce\x93\x4f\x3e\xc9\x89\x13\x27\x74\x3a\xef\x14\x49\x2b\xca\x97\ +\x78\x6f\x55\x03\xda\xd9\x0f\xf1\xfd\x22\x01\x76\xc6\xe3\x71\x4a\ +\xe5\x32\x42\x40\xc8\x34\x11\xc2\xeb\xa7\xd7\x16\x57\x8e\x3b\x27\ +\x5c\x79\x20\x02\x23\xd4\x84\x40\xb3\xaa\x83\x6e\x20\xa2\x23\x4d\ +\x4c\x77\x0b\xdf\x42\x57\xbe\xf2\xca\x2b\x6c\xdd\xba\xd5\x2d\xd1\ +\xd6\x43\xd1\x9a\xa4\x91\x0a\x0c\xef\x1a\x4e\x6b\x7a\xd5\x51\x98\ +\xe2\xa8\x0d\x07\x20\xc7\x8e\x1c\xd3\x26\x93\xc0\xf9\xe7\x9d\x17\ +\x78\x8d\x69\x98\x60\x40\x4f\xcf\x02\x7e\xe3\x23\xbf\xc1\x6f\x7c\ +\xe4\x23\xbe\xa7\xb1\x73\xe7\x4e\x0e\x1d\x3e\x44\x3e\x5f\x60\x62\ +\x62\x9c\xba\x9b\x2b\x18\xe8\xfe\x79\x06\xeb\xff\x4f\x27\x00\xd4\ +\x6d\xb7\xdd\x26\xc6\x27\xc6\x29\x16\x8a\x8c\x8e\x8c\x30\x3a\x36\ +\x46\xad\x56\xc3\x70\x8d\x2d\xa7\xc9\xa2\xc0\x40\x68\xd5\xd2\x4e\ +\x93\x84\xc0\xbc\x1f\xda\x6d\x58\x75\xd8\x77\x66\xcb\xe8\xd3\x3d\ +\x4f\xe9\xc6\x08\xc1\x8e\x1d\x3b\xb8\xe6\x9a\x6b\x02\xcf\x3b\xdd\ +\xc6\x84\x3b\xac\x4a\x22\xa4\x74\x37\xd8\x6b\xcd\xea\xd4\xfe\x4b\ +\x3d\x4d\xdd\x15\x63\x9d\xef\x78\xf4\xd8\x31\xff\x71\x3e\x9f\xe7\ +\x91\x47\x1e\xe1\x58\x10\x58\x17\x00\x00\x14\xdb\x49\x44\x41\x54\ +\xde\x7b\xee\x71\xd5\x5c\x3b\x94\x7f\xd1\x45\xeb\x59\x7f\xd1\x7a\ +\x50\x90\x2f\xe6\x19\x3a\x39\xc4\xd8\xd8\x38\x07\x0f\x1e\xe0\xe7\ +\x3f\xff\x39\x83\x83\x83\x01\xf0\x9f\xf2\x46\x9f\x41\x70\x88\x77\ +\xa1\x02\xe4\x97\xbe\xfc\x65\xd1\x6a\xb6\xa8\xd7\x6b\x94\xdc\x0a\ +\xdc\x52\xb9\xcc\xf0\xf0\x30\x83\x83\x83\x2e\xe1\xa2\x5c\xeb\x3b\ +\xe4\xe8\x5d\xad\x85\xfb\x29\xfb\xdf\x69\x44\x50\xd0\xa7\x7f\xe7\ +\x37\x22\x9d\x4e\xb3\x65\xcb\x16\x72\xb9\x5c\x20\x0a\x67\x1a\x26\ +\x86\x69\xf8\x03\xa2\x0d\xc3\xf0\x3f\x93\x74\xc7\xce\x49\x29\x91\ +\xb6\x8d\x2d\x6d\x6c\xcb\xc6\xb6\xed\x53\x82\x4e\x4a\xc9\x0f\x7f\ +\xf8\xc3\x19\xcf\xdf\xfd\xc5\x2f\xfa\x5e\x06\x1d\x76\x8c\x74\xdf\ +\xc3\xb6\x25\xaf\xbf\xfe\x3a\x8f\x3f\xf6\x18\x3b\x76\xec\x70\x22\ +\x9e\xb3\xac\x1f\xff\xf8\xc7\x28\xa5\x98\x9c\x9c\x7c\x7f\xb9\x81\ +\xad\x66\x93\x56\xab\x85\x69\x9a\x64\x73\x39\x72\xdd\x39\xa4\x54\ +\xac\x58\xb1\x92\x46\xa3\x46\xa3\xd1\x20\x9f\x77\x1a\x2d\x1e\x3d\ +\x7a\xd4\x37\xb8\xbc\x9b\xef\xdb\x0e\x33\x32\x06\x40\xef\x94\xf8\ +\xcb\xe0\xbf\x54\x2a\xf1\xec\xb3\xcf\xb2\x6c\xd9\x32\x56\xae\x5c\ +\x49\x26\x93\x71\x88\x1a\xb7\x5b\xb8\xd0\x5b\xb5\x78\xa0\xf4\xe6\ +\x05\x4a\x67\x16\xb1\x92\x6a\xc6\x54\x92\xd9\xde\x67\xb6\xf5\x5f\ +\xbf\xf6\x35\xff\xf1\x7f\xfe\xec\x67\x89\xc7\xa2\x5a\x8b\x7a\x47\ +\x6d\x18\xc2\xe4\xe2\x8d\x1b\xd9\xb8\x61\x03\x08\xc8\x4f\xe5\x79\ +\xe1\x85\x17\x78\xe5\x95\x57\x98\x98\x98\x60\x62\x62\x82\xc9\xc9\ +\xc9\x19\xc0\xdf\xba\x75\xeb\x57\x80\x41\xe0\xd5\x27\x9e\x78\xe2\ +\x25\xf7\x39\xe3\x89\x27\x9e\x90\x67\x54\x02\xdc\x73\xcf\xdd\xa2\ +\xd5\x74\x12\x26\xf3\xf9\xbc\x5b\x23\x67\xb6\x13\x31\xa5\x43\x80\ +\x48\xdb\xc2\xb6\x15\xf5\x66\x9d\xa1\xa1\x21\x0e\x1d\x3c\xc4\xf1\ +\xe3\xc7\x69\x34\x1a\xb3\x00\xe1\xf4\xf7\x44\x1b\x18\x18\xe0\xfc\ +\xf3\xcf\xa7\xb7\xb7\x97\x44\x3c\x81\x61\x9a\x84\x4c\xa7\x07\xb0\ +\x70\xfc\xc3\x00\x20\xa4\x52\xbe\x57\xa0\x77\x0f\xeb\x5c\xb6\x6d\ +\xf3\xfc\xf3\xcf\x3b\x06\xdf\x2f\xb1\x3e\xff\xf9\xcf\x69\x2e\x64\ +\x5b\x22\x2a\xc0\x6a\x59\x8c\x8e\x38\x21\x70\x8f\xd7\xf0\x24\x80\ +\x3b\xbe\xbe\x04\x9c\x00\x5e\x07\xca\xc0\x7e\xe0\xd1\x27\x9e\x78\ +\xe2\x65\x77\x7f\x12\x4f\x3c\xf1\x44\x75\x4e\x01\x70\xf7\x17\xbf\ +\x28\x9a\x56\x0b\x14\xec\xdc\xb9\x0b\xa5\x9c\xc6\x4b\xa9\x74\x9a\ +\xae\xae\x2e\x32\x5d\x5d\x7e\x6b\x36\x3a\x92\x3f\x85\x10\x14\x8a\ +\x45\x06\x8f\x1f\xe3\xd0\xa1\xc3\x8c\x8d\x8d\x9d\xf2\x46\xbf\x67\ +\xb1\x16\x0a\x91\x4e\x67\x10\x06\x2c\x19\x58\xc2\xc2\x85\x8b\xc8\ +\xe6\xba\x9c\x72\x6e\xc3\x74\xdb\xbf\xb4\x5b\x94\x49\xd7\x25\xb3\ +\xa5\x0c\x74\xf5\xf2\x56\xb3\xd9\xa4\xd1\x68\xf0\xea\xab\xaf\x72\ +\xe2\xc4\x89\xd3\xa2\xa3\x3f\xf7\xb9\xcf\x69\x6d\x62\xbc\x61\x58\ +\x41\xfb\x63\x72\x72\xd2\xdb\xfc\xd9\x56\x0d\x18\x03\x46\x80\x3c\ +\xb0\x47\x08\x71\xff\xe3\x8f\x3f\xbe\xd3\xdd\xaf\xe4\x13\x4f\x3c\ +\x51\x39\xad\x00\xf8\xc2\xef\xfd\x9e\xb0\x5a\x2d\x94\x52\xec\xda\ +\xb5\xcb\xcf\xc8\xf1\x82\x19\xca\x6d\xd1\x92\x48\x24\xe8\xca\x76\ +\x91\xeb\xca\x91\x4c\x25\x31\x84\x08\x8c\x7a\x73\xc4\xaf\x64\x7c\ +\x7c\x82\xe3\xc7\x9d\x48\x5e\xa9\x54\xf2\x47\xbf\xbc\x27\x60\x08\ +\x08\x87\xc2\x84\xc3\x11\x22\xe1\x10\xe1\x48\x84\xe5\xcb\x97\x23\ +\x84\x20\x1a\x8d\x92\x4c\x26\x49\x26\x12\x44\x63\x51\x84\xe1\xb8\ +\x82\xb6\x65\xf9\x27\x5c\x08\xe1\x37\xad\x9a\x9e\x2e\x92\xcf\x17\ +\xa8\x94\x2b\xec\xdb\xb7\x97\x96\xfb\xba\xb9\x58\xbf\xfb\xbb\xbf\ +\x13\x30\x8a\xbf\xf1\x8d\x6f\xbc\xdb\x4b\x34\x81\x2a\x50\x01\xc6\ +\x85\x10\x2f\xb7\x5a\xad\x7f\x79\xfa\xe9\xa7\xb7\x9f\x36\x00\x7c\ +\xfe\xbf\xfc\x17\x61\xb9\xdd\x35\x7d\x00\x48\xe5\xbb\x4c\x52\x4a\ +\xff\x77\xe5\x89\x55\xa5\x88\x46\x22\x64\x32\x69\x72\xd9\x1c\xe9\ +\x4c\x17\x91\x48\xc4\x8f\x9c\x79\x8d\x9a\x1a\xf5\x06\x63\xa3\xa3\ +\x9c\x1c\x3a\xc9\xf8\xf8\x04\x8d\x46\x83\xa6\x9b\x0c\x62\x59\x96\ +\xaf\x32\xc4\xdb\x30\x64\xc2\x30\x88\x84\xc3\x84\x42\x21\x22\xe1\ +\x08\xe1\x88\x07\x86\xb0\xfb\xd8\xfd\x17\x89\x10\x0e\x87\x41\x29\ +\x5f\x2d\x49\x29\xa9\xd7\xeb\xe4\xf3\x79\x5a\xcd\x26\x52\x29\x0a\ +\xf9\x02\x4d\xab\xe5\xb4\x87\xf3\xc1\xfb\xfe\x70\xe1\xde\x6a\xd9\ +\xb6\x2d\x97\x2c\x59\x22\xc3\xe1\x88\x71\xf2\xe4\x89\xff\xf4\xe8\ +\xa3\x8f\x7e\xeb\x3d\x1b\x81\xde\x69\xf7\x2c\xf4\x76\xae\xde\xcc\ +\xaa\x58\xcd\xbd\xa7\x5e\xab\x51\xad\x56\x19\x1e\x1e\x41\x2a\x89\ +\x21\x04\xc9\x54\xda\xe1\xe4\x73\x39\x92\xc9\x04\x4a\xc2\xc2\x45\ +\x0b\x59\xb4\x68\x31\xc2\x10\x94\xcb\x65\xc6\xc7\xc7\x19\x1f\x1f\ +\xa7\x54\x2a\x51\xaf\xd7\xa9\x56\xab\xd4\x6a\x35\xdf\xb8\x9b\xd5\ +\xa8\x94\x92\x46\xc3\x99\x03\x10\xed\x8e\xba\x9e\x88\x03\x34\xa7\ +\x25\x9c\x70\xe6\x01\xe0\x0c\x7c\x6e\xba\x86\x6d\xab\xd5\xa2\xd9\ +\x6a\xf9\x86\xae\xf3\xaf\xe9\xab\x87\x50\x28\x84\x65\x59\xef\xeb\ +\xcd\xf7\xc0\xd9\xd3\xd3\x43\x77\x77\xb7\xc3\x7d\x0a\xb8\x7a\xcb\ +\xe6\xef\x3d\xfa\xe8\xa3\xef\xdd\x0b\x90\xb6\x6a\x87\x2e\x03\xd3\ +\x37\xb5\xf1\x4c\x7e\x72\x85\xf4\x89\x97\x00\x13\x26\xc1\x56\x36\ +\xf9\xa9\x3c\x53\x93\x93\xae\xf5\x6d\x93\x88\x27\xc8\xe6\xb2\x64\ +\xb3\xdd\x74\x65\x32\x84\x4c\x93\xfe\xc5\x8b\xe9\xef\xef\x43\x49\ +\xc5\x74\xa9\x44\xa1\x50\x60\x7a\x7a\x9a\x5a\xad\x4a\xa9\x54\xa6\ +\x54\x2a\x51\xad\x56\x03\x60\xd0\x01\x31\x35\x35\x15\xf8\xfc\x6b\ +\xd7\xae\x75\x44\xbc\x00\x0c\xd1\x96\x54\x1e\xdf\x20\xa5\x16\xce\ +\x75\x1e\xd7\xaa\x55\xce\x86\x65\x9a\xa6\xdf\xcb\xd0\x34\x4d\x6c\ +\xdb\x76\xc0\x8f\xc1\x64\xbe\x60\x9e\x16\x37\xd0\xbb\x59\x28\xc8\ +\x74\x75\x51\x9a\x9e\xa6\x65\xdb\xb3\x0c\x7c\x96\x1d\x53\xbb\x3b\ +\x06\x40\xa1\x53\xa6\xce\x6b\xca\x95\x0a\xa5\x72\x89\xa3\x47\x8f\ +\xa3\x94\x24\x1c\x0a\x93\xc9\x64\xe8\x5e\xd0\xed\x4f\xf9\xe8\x5b\ +\xbc\x98\xbe\xc5\x8b\x69\x59\x16\xd5\x4a\x85\x72\xa5\x42\xbd\x5e\ +\xa7\x5c\x2e\xbb\x2d\xe2\x8b\xbe\xa7\xe1\x89\x75\x7d\xed\xdd\xbb\ +\x97\x73\x65\x29\xb7\xdf\x51\x38\x1c\x26\x16\x8b\xd1\xd5\xe5\xa8\ +\x56\xaf\x55\x9e\xd3\x88\x03\xb7\xa3\xb9\xe4\x34\x01\x40\xfa\x93\ +\xbe\x56\xaf\x5e\xe5\x72\x03\x2d\x8a\xa5\x12\xc5\x42\x81\x62\xa1\ +\x48\xb5\x56\x9d\x39\xc0\x59\x0f\x83\xea\x89\x16\x7e\xec\x0c\x2d\ +\xcc\xea\x3c\x6e\x34\x1b\x8c\x8d\x8f\x31\x32\x3a\xe2\x8a\x7c\x48\ +\xa5\x32\xe4\x72\x39\xba\xbb\x73\xa4\x52\x29\x7a\xe2\x71\x94\x52\ +\x34\x5b\x2d\x1a\x6e\x0f\xc0\x66\xb3\x49\xa1\x50\x60\x72\x72\x92\ +\x52\xa9\xe4\x9e\x84\xd9\x39\x88\xb3\x79\xf3\x23\x91\x08\xb1\x58\ +\x9c\x44\x22\x4e\x34\x1a\x75\xb2\xa1\xac\x96\x13\xed\x10\x06\x86\ +\xdb\xb9\x4c\x18\xbc\xa5\x51\xfd\xee\x54\x80\xb4\xfd\x81\x0e\x85\ +\xe2\x34\xc9\x44\x02\x33\x14\x22\x97\xcb\xd2\x9d\xcd\x3a\xc6\x87\ +\x94\x54\xca\x65\xf2\x85\x02\x53\x53\x53\x94\x4a\xd3\xc1\xa1\x8f\ +\x74\xcc\xdb\xd1\x12\x2c\x04\xda\x90\x65\x3d\x30\x24\x04\xb6\x6d\ +\x53\x28\xe4\xc9\xe7\xa7\x38\x78\xd0\xb1\x45\x62\xb1\x28\xd9\x5c\ +\x96\x05\xb9\x05\x74\x75\x75\x91\x4e\xa7\x50\x52\x91\xc9\x64\xe8\ +\xef\xef\xc7\xb6\x2c\xaa\xd5\x2a\x53\xf9\x3c\x53\x53\x53\x54\x2a\ +\x8e\x57\x34\x9b\x74\x38\x5b\x36\x3e\x14\x0a\x91\x4a\x25\x31\x43\ +\x61\x62\xd1\x88\xd3\x0f\xc1\x33\x92\xdd\x9e\xd7\x42\x38\xf1\x0e\ +\x81\x40\x48\x71\x1a\x25\x80\x6c\xa7\x4f\x1d\x3b\xe6\x88\x6a\x43\ +\x08\xe2\x89\x04\x99\x74\x9a\x64\x2a\xe5\xb8\x5a\xa9\x14\x89\x54\ +\x8a\x81\xfe\x7e\xa4\x52\xd4\xeb\x75\x0a\xc5\x02\x53\x93\x53\xe4\ +\xf3\x05\x9a\xcd\x86\xef\x41\xc0\x2c\xd3\xb2\x14\xed\xe8\xa1\xf2\ +\xe2\xe7\x74\x0c\x57\x56\x54\xab\x55\x2a\x95\x0a\x27\x4f\x9c\xf4\ +\xfd\xff\xab\xaf\xbe\x06\xc3\x30\x08\x85\x43\x98\xa6\x49\x38\x1c\ +\x26\x9d\x49\xb3\x74\xe9\x12\x6c\xdb\xa6\x54\x2a\x33\x39\x39\xe9\ +\xab\x8b\x77\xea\x5d\xfc\xaa\x37\xde\x30\x0c\x32\xe9\x8c\xe3\xe5\ +\x44\x23\x4e\xbf\x24\xcb\x42\x08\xc3\x3d\xf1\xca\x8b\x7b\xfb\xed\ +\x67\x84\x30\x40\xa8\x40\x60\xeb\xbd\x49\x00\x5d\x7c\xbb\x46\x92\ +\x25\x6d\x8a\xc5\x22\x85\x62\x11\xe5\xb2\x68\xf1\x78\x9c\x74\x3a\ +\x4d\x3a\x9d\x26\x91\x48\x10\x8d\x46\x59\xb8\x70\x21\xbd\x3d\x0b\ +\x41\x29\x5a\x56\x8b\xe2\x74\x91\xa9\xc9\x29\xa6\xa6\xf2\x94\xca\ +\x25\x3f\x00\xa4\xbc\x11\x33\x9d\xb1\x02\x17\x29\x52\xcd\x32\x8f\ +\xcf\x5d\x8e\x95\x2e\x67\xb4\x6e\x53\xca\xf5\x00\x0c\xd3\xf9\x5c\ +\x99\x34\x4a\x2a\x5a\x2d\xe7\x73\x38\xa9\xe5\xce\x60\x89\xf7\xa3\ +\x9e\x4f\xa5\xd2\x18\xa6\xc0\x34\x0c\x47\x1a\xba\x43\xad\x10\x06\ +\x18\xae\xc1\x8d\x77\xe2\xa5\xa6\xee\x6c\xa4\x12\xa7\x53\x05\xc8\ +\xe0\xf0\x03\xaf\x13\xa6\x0a\x4e\xfc\xac\x54\x2a\x94\xcb\x65\x4e\ +\x9e\x3c\x89\x54\x8a\x70\x28\x44\x2a\x9d\xa2\xab\xab\x8b\x54\x32\ +\x45\x24\x12\x21\x97\xcd\x91\xcd\x74\xb1\x7c\xf9\x72\x94\x52\x94\ +\x4a\xd3\x4c\x4d\xe5\x99\x98\x98\xa4\x58\x2c\x60\xd9\x96\x36\x86\ +\x65\xe6\x14\x9d\x19\x33\xf8\x02\x37\x4e\x2b\x18\x15\xed\x14\x6f\ +\x9f\x7a\x95\x8e\x27\x63\x1a\x26\xd9\xae\x2c\xb9\x6c\x0e\x21\x04\ +\xf5\x7a\x9d\x52\xa9\x44\xb1\x58\xa4\x5e\xaf\xfb\xdf\x77\xae\x5d\ +\xbf\xbe\xbe\x3e\xaa\xd5\x2a\xc5\x62\x31\xf0\x7c\x3c\x1e\x57\x6e\ +\x98\x5b\xd4\xaa\x35\xa2\xd1\x18\xe1\x70\xc8\x0f\x9d\x08\x24\x86\ +\x74\x12\x5d\x14\x06\x60\xbb\x8e\xb7\x37\xf2\x4e\x80\x50\xd8\x6f\ +\x11\x81\x7c\x97\x12\x20\x08\x80\x77\xca\x03\x34\x1b\x0d\x26\xea\ +\x75\xc6\xc7\xc6\x7d\x1e\x20\x9e\x48\x92\xcd\x38\xf4\x71\x22\x11\ +\x27\x99\x4c\x91\x4c\x24\x19\x18\x58\x02\x48\x6a\xb5\x3a\x85\x42\ +\x81\x89\x89\x49\xa6\xa6\x26\xdb\xee\x98\x37\x4a\xe6\x14\x61\x84\ +\xc0\xe0\x25\xb7\xf6\xde\x9b\x46\xaf\x66\x78\x34\xc1\x0c\xde\x48\ +\x24\x42\x4f\x4f\x0f\xbd\xbd\xbd\x00\x54\xab\x55\x4a\xa5\x12\xe5\ +\x72\x99\x66\xb3\x89\x6d\xdb\x3e\x53\xe9\x9d\xce\xd3\xb1\xea\xf5\ +\x3a\x89\x44\xc2\x07\x40\x28\x14\x56\x91\x48\x18\xa9\x94\xb0\xa4\ +\xc4\xf0\xa5\x41\xdb\xa8\x36\xdc\x4d\x96\x80\x90\x2e\x18\x84\xe1\ +\xa4\xe0\x19\xd2\xcf\x6d\x10\x06\x6f\x39\x8b\xf8\x5d\x4a\x00\x3d\ +\xdd\xf9\xbd\xf1\x00\xc5\x42\x91\x42\x3e\xef\xf3\x00\xf1\x58\x9c\ +\x4c\x57\x86\xae\xae\x1c\xe9\x54\x8a\x70\x38\x42\x4f\x6f\x2f\xbd\ +\xbd\x3d\x48\x77\x48\xf4\x74\x71\x9a\x89\x49\x27\x6a\x56\x9c\x2e\ +\xce\xda\x45\xa3\x73\x30\xb9\x80\x00\x0d\xed\x0d\xa6\x0c\x0c\xf9\ +\xd1\x40\xa1\x9f\xf6\x58\x2c\x46\x3c\x1e\x67\xd1\xa2\x45\xfe\xdc\ +\xa1\x72\xb9\x4c\xad\x56\xd3\xc8\xa2\x56\x40\xc4\xfe\x32\xa0\xa8\ +\xd5\x6a\xe4\x72\x39\x0c\xc3\x50\xa1\x70\x08\x25\x11\x56\xcb\x69\ +\x67\x2f\xbc\x86\x94\x1a\xd1\x85\x70\xb2\xae\x9c\xb8\x96\x93\x19\ +\x6d\x49\x9b\x52\x69\x9a\xee\xee\x6e\x84\x74\xfc\x7f\x61\x38\x08\ +\xb1\x4e\x97\x04\x50\x2e\xd5\xab\x50\x24\x93\x49\x2a\x95\x0a\x96\ +\x94\xa7\x85\x07\xa8\x54\xab\x94\x2b\x65\x06\x07\x4f\xa2\x94\x24\ +\x64\x86\x48\xa7\xd3\xe4\x72\x59\xd2\x99\x8c\xe3\xeb\x66\xbb\xc8\ +\x74\x65\x58\xbe\x7c\x39\x52\x4a\xaa\xd5\x2a\x93\x93\x93\xbe\x51\ +\xe7\x0c\x81\x52\xd0\xe1\x49\xe8\xe3\xdb\x03\x9d\xca\xde\x81\x0e\ +\xd6\x5f\x97\x48\x24\x48\x26\x93\x08\x21\x68\xb5\x5a\xd4\x6a\x35\ +\xbf\x92\xb9\xd9\x6c\x52\xaf\xd7\x69\x36\x9b\xed\x30\xf4\x2c\x80\ +\x88\xc7\xe3\xae\x14\xb1\xb1\x6d\x89\x6d\xd9\x4c\x97\xa6\xb1\x8e\ +\x5b\x94\x4a\x25\x21\x6d\x1b\x4b\xda\x48\x5b\x62\xb9\x0d\x2c\x85\ +\x10\x64\x32\x19\xa2\xb1\x98\x63\xe5\xeb\x2d\x4a\x85\x43\x68\xed\ +\xdf\xbf\x8f\x5c\x2e\x17\x68\x4f\x27\xdc\x30\xb8\x7a\x0b\xdb\xe6\ +\x5d\x7b\x01\xd2\x4d\x79\x5e\xb2\x74\xa9\x6b\x78\xb5\xa8\x54\xaa\ +\x94\x4b\x25\x4a\xa5\x32\xf5\x46\xfd\xb4\xf0\x00\xcd\x56\x93\x89\ +\xc9\x09\xc6\xc6\xdb\x51\xc3\x64\x32\x45\x2e\x97\x25\xdb\xd5\xe5\ +\xcc\xff\x89\xc7\x19\xe8\xef\xa7\xaf\xaf\xcf\xe1\x03\xdc\x92\xf2\ +\x40\x25\xb1\x5e\x28\x22\x3b\x27\x86\xbf\x7b\xa3\x4c\x9f\x47\x90\ +\x4a\x39\xe3\xea\x01\x5a\xad\x96\x0f\x00\x0f\x0c\xd5\x6a\x95\x46\ +\xa3\x41\x6f\x6f\xaf\xaf\x3e\x10\x82\xde\x85\x0b\x59\xb6\x74\x19\ +\xab\x56\xad\x60\xc5\x8a\x95\x2c\x5d\xba\x94\xee\xee\x6e\x7f\xfe\ +\xf1\xc4\xc4\x04\x47\x8f\x1e\x65\xef\xde\xbd\xbc\xbe\x67\x0f\x6f\ +\xbc\xb9\x97\xe1\xe1\x21\x46\xc7\x46\x9d\xd6\xb7\xb6\xcd\x07\x2f\ +\xbd\x14\x43\x29\xc0\xa0\x5c\x29\x93\x9f\x9a\x72\x86\x61\xb9\x99\ +\x50\x1e\xf0\x94\x12\x6f\x99\x85\xf4\x6e\x82\x41\x6a\xcb\xe6\x2d\ +\xf4\xf6\xf6\x10\x0a\x87\x1c\xb6\xcd\x34\x11\x2a\xd8\xcf\x42\x49\ +\x49\xb5\x56\x63\x7a\x7a\x9a\xe9\xe9\x69\x2a\x95\x32\xb6\x2d\x03\ +\x81\x23\x3f\x82\xe8\x06\x8c\xda\xbf\xcb\x60\x96\x8e\x6c\xab\x14\ +\xe9\x32\x8e\x7e\x90\x49\x2a\x62\xb1\x08\x99\x2e\x27\xc7\x3f\x93\ +\xc9\x10\x8e\x44\x02\x74\xae\x77\xad\xf6\xfb\xa8\xc0\x35\x4e\xf7\ +\x68\x16\xfd\xb4\xb7\x5a\x2d\x0a\x85\x22\xd2\xb6\x30\x43\x61\xd6\ +\xae\xbd\x80\x1b\xb7\x6e\xe5\xf2\x8e\x1a\x86\x77\xb3\x9e\x7a\xea\ +\x29\xbe\xf7\xbd\xef\xf1\xfc\xf3\x3b\xa8\x54\x4a\xd8\xb6\x64\xd3\ +\xa6\x4d\xec\xdd\xbb\x97\xae\xae\x2e\xbf\xab\xb9\xf7\x59\x9c\x59\ +\x58\x06\xe1\x70\x24\xf9\x3f\xbf\xfb\x9d\xea\x7b\x05\xc0\xf3\xcd\ +\x66\x33\x2a\x84\xf8\x60\x26\x93\xa1\xaf\xaf\x8f\xbe\xbe\x3e\xd2\ +\xe9\x34\xe1\x70\x98\x48\x24\x42\x28\x14\xf2\x4b\xa5\x74\x29\xa0\ +\x5b\xd7\xd3\xd3\x25\x9a\xcd\x86\x1f\x39\xf4\x26\x77\x3b\xa7\x5c\ +\xf9\x23\xe1\xa4\x0b\x16\x7f\x13\xbd\xac\x1d\x0d\x1c\x9d\x16\x7a\ +\x28\x14\x62\xd3\xa6\x4d\xfe\x75\xfc\x4d\x77\xed\x15\x39\x83\xef\ +\x9f\x1b\xeb\xbe\x5c\x2e\x61\xd9\x36\xb9\x6c\x37\xb7\xdc\x72\x33\ +\x5b\xb7\x6e\x3d\xed\xef\xf1\x9d\xef\x7c\x87\xbf\xfd\xff\xfe\x96\ +\x23\x87\x8f\xa0\x94\xe2\xaa\xab\xae\x74\x13\x63\x85\x3f\x05\xcd\ +\xab\x8d\x08\x87\xc3\xc9\xef\x7d\xef\x7b\xef\x0d\x00\x1a\x10\x1e\ +\x90\x52\x56\x2d\xcb\xb2\x95\x52\xd7\x84\xc3\xe1\xe5\xd9\x5c\x96\ +\x85\xbd\x0b\xe9\xe9\xe9\x21\x1a\x8b\x92\x88\xc7\x89\xc7\x13\xce\ +\x90\x05\xad\x8a\xd6\x4b\x8b\xb6\x5b\x36\xa5\x52\x89\x42\x21\x4f\ +\xa1\x38\x4d\xa5\x52\xf1\xed\x0b\xa9\xb4\xf4\x2c\x0f\x00\x5e\xf2\ +\xa6\x94\xee\xbc\x9f\x60\xd8\x59\x5f\x5b\xb6\x6c\x09\xfc\xbd\x1e\ +\xe4\xd1\xad\x7e\x2f\xa8\x75\x3a\x57\xb3\xd9\xc2\xb6\x2d\xba\xba\ +\xba\xb8\xeb\xae\xbb\x66\x54\x2c\xcd\xc5\xda\xbe\x7d\x3b\x5f\xf9\ +\x83\xaf\x70\x7c\xf0\x38\xb6\x6d\x73\xdd\x75\xd7\xb7\x8b\x62\x5c\ +\x16\xf5\x81\x07\x1e\xf8\xae\x94\xf2\xcf\x81\x57\xde\x33\x00\x3a\ +\xc0\xf0\x21\xa5\xd4\xcd\xb6\x6d\xdb\x96\x65\xb5\x4c\xd3\xfc\xe3\ +\x68\x34\x4a\x36\x9b\x25\x9b\xcd\x92\x49\x67\x54\x22\x91\x10\xe9\ +\x4c\xda\x31\x9e\x0c\xc3\xa9\x96\x95\x0a\x29\xed\x00\x0b\x58\xa9\ +\x54\x28\xe4\x0b\x4c\xe5\xf3\x94\x4a\xd3\x58\x2d\x2b\x90\x57\xe0\ +\x81\xc1\x3b\xc5\xa7\x4a\xdd\xba\xea\xaa\xcd\x81\x52\x6c\xa5\x1c\ +\xd0\xa0\xe7\x2e\xa8\xd3\x3f\xa2\xdd\xd3\xb3\xd7\xdf\x70\x3d\x77\ +\xdc\x71\xc7\x19\x27\x8d\xfe\xf4\xff\xfe\x53\xfe\xea\x2f\xff\x92\ +\x5a\xbd\xc1\xf5\xd7\x5d\xe7\x67\x3d\x0d\x0f\x0f\xb1\x73\xe7\xce\ +\x31\x60\x35\x30\x7d\xda\x00\x70\xf3\xcd\x37\x8b\x47\x1f\x7d\x54\ +\x75\x00\xe2\xb7\xa5\x94\xa6\x6d\xdb\x42\x29\xb5\x21\x14\x0a\xfd\ +\x5e\x2c\x1a\x23\x99\x4a\x92\x4a\xa5\x48\x24\x93\xce\x4c\xde\x6c\ +\x96\x64\x32\x89\x52\x5e\x1a\x96\x1d\x70\x31\xa5\x52\x34\x1b\x0d\ +\x8a\x85\x02\xf9\x7c\x81\x7c\x21\x4f\xbd\x56\x73\x73\xf7\x6c\xff\ +\x84\x4b\x6d\x04\x6b\x1b\x00\x57\xf9\xa7\xdb\xab\xf2\x9d\xa1\xff\ +\x4f\x73\x5e\xbe\x69\x9a\x2c\x58\xb0\x80\xcf\x7f\xfe\xf3\xee\xb8\ +\xf9\x5f\xcd\x2a\x97\xcb\xdc\x78\xe3\x8d\xec\xdd\xbb\x97\xeb\xaf\ +\xbf\x9e\xa3\x47\x8f\xb2\x7f\xff\x7e\x0c\xc3\xb8\xa6\x52\xa9\xfc\ +\xec\xb4\xa8\x80\x77\xba\x3e\xfc\xe1\x0f\xc7\x95\x52\x9b\x6c\xdb\ +\x96\xad\x56\xab\x14\x0e\x87\x7f\x64\x9a\xe6\x8a\x68\x34\x4a\x2c\ +\x16\x23\x16\x8b\xa9\x54\x2a\x25\x16\xf4\x2c\xa0\x3b\x97\x23\x12\ +\x89\x39\xa7\xd5\x75\x91\x64\xc7\x64\x0d\xcb\xb6\x29\x97\x4a\x4c\ +\x4d\x4d\x32\x39\xe5\x48\x09\x69\xcf\x94\x00\x57\x5e\x79\x65\xb0\ +\x09\x64\xc7\xbf\xd3\xcd\xec\x45\xa3\x51\xd6\xad\x5b\xc7\xc7\x3f\ +\xfe\xf1\xf7\x0d\x85\xfc\x89\x4f\x7c\x82\x1f\xfe\xd3\x0f\x09\x99\ +\x21\x36\x6f\xde\x4c\x57\x57\x57\xf2\x47\x3f\xfa\x51\xf5\x3d\xbb\ +\x81\xef\x66\x3d\xfe\xf8\xe3\x35\xe0\x69\x0d\x10\x57\x49\x29\x93\ +\xd5\x6a\x55\x94\x4a\xa5\x50\x38\x1c\xde\x67\x18\x06\x83\x83\x83\ +\x84\x42\x26\xd1\x68\x4c\x75\x77\x77\x8b\xde\xde\x5e\x77\xea\xa7\ +\xd1\x2e\xdc\x50\x0a\x43\x08\xd2\xe9\x34\xa9\x54\x8a\xa5\x4b\x97\ +\xa1\x94\xa2\x5a\xad\x51\x28\x38\x91\xbe\xe9\xe9\x69\x67\xaa\x17\ +\xc1\x6a\x64\xbd\xfd\x8b\x2e\x65\x4e\xc7\x4a\x26\x93\x6c\xde\xbc\ +\x99\x5b\x6e\xb9\xe5\x7d\x15\x43\xf8\xf6\xb7\xbf\xcd\xb2\x65\xcb\ +\xf8\xfa\xd7\xbf\x4e\x2c\x16\x6f\x47\x63\xcf\xa4\x04\x78\x07\xf6\ +\x43\x42\x29\x25\xc6\xc7\xc7\x1b\x0b\x17\x2e\xfc\x1c\xf0\x35\x2f\ +\x21\x53\x08\x41\x32\x99\xa4\xd7\x65\x02\x53\xa9\x8c\x1f\x8a\x56\ +\xb6\x67\x28\xb6\xc9\x26\x4f\x25\x58\x76\x0b\xd3\x30\x67\x39\xf1\ +\x04\xb2\x7c\x4e\xc7\xca\x76\x75\xf1\xa1\x0f\x5d\xcb\xb5\xd7\x5d\ +\x3b\x27\xf7\x67\xd8\x6a\xf1\x0f\xe5\x29\x9e\xaa\x95\x79\xb3\x56\ +\x21\x66\x4b\x96\x0b\x93\x1b\x12\x19\x3e\xdd\xb3\x98\xbe\xc8\xdb\ +\xab\x9a\x3f\xfb\x7f\xfe\x8c\x3f\xfa\xe3\x3f\xe2\xe6\x9b\x6f\x4a\ +\xfe\xeb\xbf\xfe\xb8\xfa\xbe\x02\xc0\xdb\x80\xe3\x20\xb0\xc2\xfb\ +\x7c\x86\x61\xd0\xd5\xd5\xc5\xc2\x85\x0b\xe9\xee\xce\xb5\x33\x5f\ +\x70\x86\x36\xaa\x8e\xe6\x50\x4a\x33\xf4\xa4\x1f\x41\xb4\x4f\x5b\ +\xfb\xb5\x9e\x9e\x1e\x2e\xbf\xfc\xf2\x39\x71\xef\x00\xbe\x57\xca\ +\xf3\xa5\xd2\x04\x0d\xc3\x8d\xe5\xb7\x5a\xd0\xb2\xa0\xd5\x42\xb4\ +\x5a\xc4\x2c\x9b\x3f\x19\x58\xce\xc7\x16\x0d\xbc\xed\xb5\xee\xbb\ +\xef\x3e\xfe\xdb\x9f\xff\x37\xea\xb5\xba\xb7\xd7\x26\xb0\x07\xf8\ +\x34\xf0\xfc\xfb\x0e\x00\x37\xdd\x74\x93\x78\xec\xb1\xc7\xfc\x7d\ +\xba\xfd\xf6\xdb\xa3\xf5\x7a\xbd\xa2\x94\x2a\x2a\xa5\x84\x52\x2a\ +\x11\x89\x44\xa2\xdd\xdd\x39\x16\xf4\xf4\x90\x4e\x65\x9c\x01\x4e\ +\x4a\xfa\xe9\xe6\x5e\xd6\x92\xc4\x7d\x2c\x65\xa0\x27\xf1\x7b\x59\ +\x8b\x17\x2f\x66\xd5\xaa\x55\xfc\xe6\x6f\xfe\xe6\xdc\x6c\xfe\xf4\ +\x24\x5f\x2c\x8c\x41\x24\x04\xe1\xb0\xb3\xf9\x4d\x0b\xac\x16\x34\ +\x5b\xee\xef\x2d\x68\x35\xf9\xda\x79\x17\xf0\xb1\xbe\x25\x6f\x7b\ +\xcd\x8f\x7d\xec\x63\xdc\xff\xa3\xfb\x69\x34\x1b\x02\xf8\x02\x70\ +\x1b\x70\xe3\xfb\x56\x02\xbc\x8d\x71\xf9\x19\xa5\xd4\xef\x4b\x29\ +\xeb\xee\x89\xbf\x30\x91\x48\xfa\x14\x71\x3c\x91\xf0\x0b\x51\x04\ +\xae\xdb\x79\x9a\x48\x9f\xfe\xfe\x7e\xba\xbb\xbb\xf9\xe4\x27\x3f\ +\x39\x37\x62\xbf\xd5\x64\xf3\xf1\xbd\xd4\x43\x26\x84\xc2\x60\x18\ +\x4e\x93\x6d\xab\x05\x96\x2b\x01\x9a\x8e\x34\x50\xae\x24\x78\xfe\ +\xb2\xab\xe9\x8b\xc5\xdf\xf6\xda\x1b\x36\x6c\x60\xcf\x9e\x3d\x28\ +\xa5\x0e\x01\x37\x01\x87\xe7\xd4\x08\x9c\x8b\x75\xeb\xad\xb7\x8a\ +\x9f\xfc\xe4\x27\x7f\x0f\xfc\xbd\xa6\x2e\x7e\xd8\x68\xd4\xb3\x43\ +\x43\x43\xe6\xc9\x93\x27\x53\x86\x61\x6c\x4a\x26\x93\x64\x32\x19\ +\x52\xa9\x14\xa1\x90\x43\x5b\x7b\x3f\xdb\x21\xe3\x5f\x6e\x79\x69\ +\x65\x73\xb1\xbe\x35\x35\x4a\xc3\xb6\x9d\x18\x8f\x5b\x61\xad\x6c\ +\x8b\xe6\x4f\x7f\x06\xb6\x24\x72\xe5\xa5\x2e\x71\xe2\xa8\xb8\x86\ +\x6d\xf1\xad\xc1\x23\xdc\xb7\x7a\xdd\xdb\x5e\x7b\x6c\x6c\x14\xd3\ +\x34\xb0\x2c\xfb\x12\x9c\x32\x33\xce\x4a\x09\xd0\x21\x0d\xc4\xe3\ +\x8f\x3f\xee\xef\xe6\x9d\x77\xde\x19\xae\x56\xab\xdf\x96\x52\x56\ +\xa5\xc3\x34\x7d\x38\x14\x0a\x2d\xf7\xa2\x78\x89\x84\xc3\x4e\x7a\ +\xc5\x21\xa6\x69\xbe\x6b\x4a\xb8\xbf\xbf\x9f\x9e\x9e\x1e\x3e\xf1\ +\x89\x4f\x9c\xf6\xef\x73\xc3\x81\x57\xd9\xdb\x6a\xa2\x42\x26\x18\ +\x26\x4a\x4a\xc6\xae\xb8\x0e\x55\x74\xf8\x1b\x91\x49\xb3\xe8\xc9\ +\x7f\x73\x92\x1b\x5a\x16\xa2\xd5\x62\x6d\x34\xce\x53\x57\x5d\xff\ +\x96\xd7\xdd\x72\xf5\xd5\xbc\xfa\x8b\x5f\x50\xa9\x54\xc4\x59\x61\ +\x04\x9e\x46\x80\x5c\x2b\xa5\xbc\x41\x29\x65\xdb\xb6\xdd\x32\x0c\ +\xe3\x4f\x9d\x6c\x5a\x27\xce\x1f\x8d\x46\x55\x34\x1a\x15\xd1\x68\ +\xd4\x99\x26\xee\x57\x0c\xab\xb7\x05\xc1\x8a\x15\x2b\x4e\xbb\x1d\ +\x70\xfe\x2f\x9e\xa3\x61\x18\x10\x72\x9a\x6f\xd4\xff\xfd\x39\xf2\ +\xff\xdb\xe7\x03\xaf\xc9\xfd\xbf\x7f\x46\xf4\x8a\x4b\x7d\xc3\x30\ +\x2a\x6d\x8e\x7e\xf8\x23\xa7\xd6\xff\x1f\xff\x38\x0f\x6d\xdf\x4e\ +\xb1\x58\x14\x67\x94\x07\xf8\x55\xaf\x5b\x6e\xb9\x45\x3c\xf2\xc8\ +\x23\xcf\x00\xcf\x68\xea\xe2\xb0\x65\x59\xd1\xe9\xe9\x69\xa3\x58\ +\x2c\x2e\x33\x4d\xf3\x8f\xc2\xe1\x30\xd1\x68\xd4\xfb\xa7\x62\xb1\ +\x98\x48\x24\x12\x6e\xf9\xda\xec\x41\xa3\xa1\xa1\x21\xa7\xa3\xe7\ +\xf6\x87\xb8\xfd\xf6\xdb\x4e\xdb\x67\x16\x96\x8d\x30\xdc\x38\x86\ +\x21\xc0\x9a\x25\xe3\xc5\xb6\x11\xb6\xed\x0c\xb4\x50\x12\x61\x9f\ +\x3a\xdb\xe7\x77\x3e\xfb\x59\x1e\x7b\xe4\x91\x53\x6e\xfe\x39\x2f\ +\x01\xde\x06\x20\xa6\x65\x59\x37\x48\x29\x6d\xdb\xb6\x6b\xa6\x69\ +\xfe\x89\x61\x18\x37\x7a\xea\x21\x14\x0a\x11\x8f\xc7\x1d\x0a\x3b\ +\x91\x20\x1c\x0e\x07\x28\x65\x80\xc5\x8b\x16\xb3\x62\xe5\x72\xee\ +\xba\xeb\xa3\xa7\x47\x05\xbc\xba\x8b\xbd\xf5\xaa\x63\xfc\xb9\x2e\ +\xe0\xe8\xd6\x3b\x51\xd3\x8e\xca\x16\xe9\x34\x0b\x1f\xfc\x21\x86\ +\x52\x28\xdb\x46\x58\x2d\x2e\x8c\xa5\x78\xf2\xda\x9b\x66\x5c\xeb\ +\x53\x9f\xfc\x24\x0f\xff\xe4\x11\x46\x47\x47\xde\x72\x8f\x7f\x6d\ +\x01\x30\x0b\xf7\xd0\xa3\x94\xea\x55\x4a\x89\x56\xab\x55\x8d\x44\ +\x22\x47\x3c\xe3\xd1\x4d\x2f\x57\xc9\x64\x52\x78\x99\xce\x8e\xeb\ +\xe9\xd4\xe1\x2d\x58\xb0\x80\xcf\x7c\xe6\x33\xef\xf9\x33\xfc\x5f\ +\x87\xf7\xf3\x37\xc3\xc7\x50\xc2\x00\xc3\x31\x04\xa5\x65\xd1\xdc\ +\xf5\x73\x50\x8a\xe8\x65\x97\x38\xd9\x40\xb6\x05\xb6\x0d\x2d\x9b\ +\xff\xbc\x72\x0d\x5f\xba\x70\x43\xd0\x58\xde\xb6\x8d\x3d\xaf\xbd\ +\xc6\x89\x93\x27\xdf\x76\x7f\xe7\x01\x70\x6a\x40\x64\x95\x52\xa6\ +\x65\x59\x46\x28\x14\x5a\x21\x84\xd8\xe9\x31\x95\x86\x61\x10\x8b\ +\xc5\x54\x3a\x9d\x16\x99\x4c\x86\x81\x81\x7e\x42\xa1\x30\x9f\xfd\ +\xec\x67\xdf\xa2\x6d\xdd\x3b\x70\x03\x1b\x35\xb6\xec\x7a\x86\x1a\ +\xe0\x77\xd4\x72\xe7\x09\x28\x25\xc1\x56\xce\x98\x32\x77\x1a\x7a\ +\x5c\x18\x3c\x77\xfd\xad\xf4\xb9\xef\x59\x28\x14\xb8\xfe\xfa\xeb\ +\x29\x14\x8a\x1c\x3d\x7a\xe4\x1d\xed\xed\x3c\x00\xde\x39\x20\x0c\ +\xc0\x78\xe2\x89\x27\xac\xad\x5b\xb7\x7e\x0d\xf8\x3d\x2f\xfb\xc6\ +\x30\x0c\x3e\xf4\xa1\x0f\x21\x6d\xc9\x05\x17\xac\xe1\x3f\xfc\xd6\ +\x6f\xfd\xf2\x44\xd0\x89\x63\xdc\xbd\xf7\x35\xb7\xd3\x25\xda\x40\ +\x2b\xe9\x58\xff\xb6\x8d\x90\x4e\xfa\xf7\x7f\xdd\x70\x29\x1f\x5b\ +\xb6\x02\x80\x2f\x7c\xe1\x0b\x3c\xfc\xf0\xc3\xd8\xb6\xcd\xc1\x83\ +\x07\xdf\xf1\xbe\xce\x03\xe0\xf4\x80\xe3\x28\x30\x70\xed\x75\xd7\ +\x85\xa4\x5b\x8b\x78\xdd\x75\xd7\x71\xf5\xd5\x57\xff\x72\x20\x18\ +\x3c\xc2\x97\xdf\x7c\x8d\x9a\x5b\x86\xa7\x94\x42\xb8\xb9\x0d\x02\ +\x88\x19\x26\x7f\x72\xd1\xc5\x7c\x6c\xd9\x0a\xbe\xfb\xdd\xef\xf2\ +\x8d\x6f\x7c\x83\x4a\xb5\x8a\xb4\x2c\xde\xdc\xbb\xf7\x5d\xed\xe9\ +\x3c\x00\x4e\x33\x17\xb1\x6d\xdb\xb6\xd0\xe5\x97\x5f\xd1\x72\x72\ +\x01\x43\x5c\x7a\xe9\xa5\xdc\x7e\xfb\xed\xef\x5e\x1d\xd4\x6a\x7c\ +\xeb\xe8\x01\x9e\x1c\x1b\xe1\xcd\x52\x91\x98\x61\xb0\x3c\x99\xe6\ +\xc6\x85\x8b\xf9\xd4\xf9\xab\xf9\xa7\x6f\x7e\x93\x07\xfe\xe5\x01\ +\x2a\xa5\x32\x96\xb4\x79\xf5\x17\xaf\xfe\x52\x7b\x39\x0f\x80\x39\ +\x5c\xf7\xdd\x77\x9f\xf2\x5a\xd0\xe5\xba\xbb\xd9\xb2\x65\xcb\x2f\ +\x2d\x15\xc0\x69\x1f\x77\xff\xfd\xf7\x73\xec\xe8\x51\x2c\xdb\xc2\ +\xb6\x25\xbb\x76\xed\x7a\x4f\x7b\x38\x0f\x80\x33\xb0\xee\xbd\xf7\ +\x5e\xe5\xa5\x85\xdb\xd2\x69\xac\x95\xcb\xe5\x18\x18\x18\x60\xf9\ +\xf2\xf3\x39\xef\xbc\xf3\x59\xb8\x70\x21\x89\x44\x82\x6a\xb5\xca\ +\xc8\xc8\x08\x07\x0e\x1e\x64\xdf\xde\xbd\x1c\x38\x70\x80\x91\xe1\ +\x11\x3f\xbb\xda\xa9\x19\xb0\x79\xf6\xd9\x67\x4f\xcb\xde\xcd\x03\ +\xe0\x0c\xaf\xcf\x7d\xfe\x73\x4a\xda\x4e\x51\x88\xb4\x6d\xbf\xf8\ +\xc3\x2b\x06\xb1\xdd\x93\xdd\x2e\x43\x73\x81\x63\x4b\x1e\x79\xe4\ +\x91\xf9\xfd\x9a\x5f\xf3\xeb\xd7\xc1\xab\x08\xcd\xdf\x85\xf9\x35\ +\xbf\xe6\xd7\xdc\xaf\xff\x1f\x80\x04\x7a\xb0\xf1\xda\x3e\x93\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x17\x83\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x09\x02\ +\x0c\x06\x0c\x45\xc2\xfe\x7f\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x16\xde\ +\x49\x44\x41\x54\x78\xda\xed\x5d\x5d\x6c\x5d\xd5\x95\xfe\xd6\xb9\ +\xf7\xfa\x2f\x71\x70\x1d\xff\x74\x4a\xe2\x49\x9c\x26\x40\x02\xc4\ +\x49\x4d\x1c\xe3\xc4\x49\x48\xd2\x24\xa8\xc4\x76\x30\x8a\x31\x8e\ +\x9d\x21\x29\x43\x1d\xc2\x9f\xd4\x32\x40\xa1\x9d\x91\x8a\x2a\x0d\ +\x30\x52\x2b\xf0\x54\xa4\x14\x1e\xa0\x45\x43\x63\x5b\x33\x0f\xe4\ +\x61\x2a\x21\xe5\x69\x2a\x8d\x34\xaf\x23\x34\x0f\x23\xa1\x99\x4a\ +\x10\x53\x75\x04\x52\x8b\xf6\x9a\x87\xb3\x7f\xd6\xda\xe7\x86\xda\ +\xc4\x76\x6c\xdf\xb3\x23\xcb\xb9\xbe\xe7\x9c\x7b\xee\xd9\x6b\xaf\ +\x9f\x6f\x7d\x6b\x6d\x20\x1f\xf9\xc8\x47\x3e\xf2\x91\x8f\x7c\xe4\ +\x23\x1f\xf9\xc8\x47\x3e\xf2\x91\x8f\x7c\xe4\x23\x1f\xf9\xc8\x47\ +\x3e\xfc\x98\x9e\x9e\xe6\xe9\xe9\x69\xce\x9f\xc4\xca\x1a\x49\xfe\ +\x08\x2a\x7b\xd0\x6c\x57\xbf\x7c\xdd\xd7\xd7\x47\xf9\xa3\xab\x30\ +\x0d\xd0\xd7\xd7\x8f\xbe\xbe\xbe\xfc\x89\x55\x9a\x00\xb8\xd5\x4f\ +\x04\x10\x51\x59\x8d\x90\x8f\x15\xae\x01\x06\x06\x06\x40\x44\x20\ +\x22\x0c\x0c\x0c\xe4\x4f\xad\x52\x04\x60\x6a\x6a\x8a\x99\xd9\x4f\ +\xbe\xfb\x01\x18\xd3\xd3\x53\xb9\x16\x58\xe9\x02\xc0\xcc\x60\x66\ +\xbc\xfb\xee\xbb\x7e\xf2\xdf\xfd\xf5\xaf\xc1\x86\xc1\x26\x7f\x78\ +\x15\x33\x2e\x4e\x5e\xe4\x52\xa9\xc4\xa5\x52\x89\x27\x2f\x5e\xcc\ +\x57\xfe\x0a\x1a\xc5\x59\x1d\xc5\xc1\x01\xcc\x67\xbf\x02\x05\x80\ +\x8d\xf1\xb6\x9f\x39\x17\x81\x8a\x8b\x02\x18\x00\x81\x00\x50\xae\ +\x01\x2a\xd3\x04\x30\x28\xa1\x54\x08\x72\x0d\x50\x79\x02\x60\xac\ +\x0e\x00\x01\x26\x17\x80\x4a\xf4\x01\x2c\x12\x98\x6b\x80\x0a\x35\ +\x01\x60\x24\x09\x01\x9c\xcf\x7f\x65\x6a\x00\x66\x80\x12\x10\x31\ +\x38\x47\x80\x2a\x31\x0a\x60\x24\x94\x1e\x9e\x2b\x80\x0a\xf5\x01\ +\x52\x0d\x00\xb0\xc9\x45\xa0\xe2\x34\x00\x60\x90\xc0\xb1\x47\x72\ +\x01\xa8\x40\x1f\x00\x36\x19\x84\xdc\x0b\xac\x5c\x27\x90\x04\x26\ +\x90\x8f\x8a\x13\x80\xc4\x25\x83\x72\x1f\xa0\x02\x05\x00\xa9\x13\ +\x98\x02\x01\xf9\x43\xab\x38\x01\x00\xb3\xb5\x00\x04\xce\x25\xa0\ +\x32\x4d\x80\xe7\x03\xe4\xf3\x5f\xd9\x02\x90\x73\xc1\x2a\xd5\x09\ +\x04\x81\x29\x77\x01\x2a\xd3\x07\x00\x80\x24\xa5\x84\xe4\x8c\xa0\ +\x8a\xd4\x00\x96\x12\xc6\xb9\x00\x54\xa8\x00\x58\x2e\x40\x92\x0b\ +\x40\xe5\x86\x81\x89\x0d\x03\x73\x01\xa8\x3c\x01\x30\x60\x50\x2a\ +\x01\xb9\x00\xac\xb0\x31\x3b\x3e\x80\x49\x73\x01\x94\xb3\x82\x2b\ +\x53\x00\x52\xe5\x6f\x8b\x43\x72\x0d\x50\x81\x26\x80\x0d\x12\x4a\ +\xd9\x40\x4b\xdc\x04\x14\x01\xb4\x03\x58\x6f\x85\xfb\x73\x00\xff\ +\x05\xe0\xbf\x91\x43\x18\xd7\xe2\x04\xba\xfe\x00\x58\x8a\x1a\x60\ +\x13\x80\x07\x00\x1c\x6b\x68\x68\xd8\xb9\x6d\xdb\xb6\xaa\x52\xa9\ +\x94\x86\xac\xc4\xf8\xdd\xff\xfe\x0e\x1f\x7c\xf0\xc1\xa7\x9f\x7f\ +\xfe\xf9\xbf\x01\xf8\x17\x00\x6f\x03\xf8\x9f\x7c\xea\xe7\x1c\x05\ +\x24\x00\xf3\x52\xaa\x0b\xd8\x00\xe0\xc7\xcd\xcd\xcd\x83\x83\x83\ +\x83\x85\xfb\x87\x86\x70\xdb\xf6\xdb\x03\x75\xdd\xfe\x62\x00\xff\ +\xf7\x87\x3f\xd4\xfd\xe6\x5f\x7f\xb3\xff\xbd\x4b\xef\xed\xbf\x74\ +\xe9\xd2\x8f\x67\x66\x66\xde\x01\xf0\x77\x00\xfe\x33\x17\x81\x59\ +\x8c\x57\x5f\x7d\x95\x37\x6e\x6c\xe7\x8d\xed\x1b\xf9\xd5\x89\x89\ +\xa5\x20\x01\x8f\x34\x36\x36\x7e\xfa\xd3\x9f\xfc\x84\x3f\xfa\xe8\ +\x23\xfe\xfd\x27\xbf\xe7\x4f\x3e\xf9\xc4\xff\xcc\xcc\xcc\xf0\xcc\ +\xcc\x0c\x5f\x99\x99\xe1\x2b\x57\xae\xa4\x3f\x1f\x5f\xe1\x2b\x1f\ +\x7f\xcc\x1f\x7e\xf8\x21\xbf\xf4\xd2\x4b\xdc\xd4\xd4\xf4\x27\x00\ +\x7f\x0b\xa0\x94\x3b\x81\x7f\xd6\x02\xd8\xd2\xb0\xeb\xef\x04\xd6\ +\x00\xf8\xe5\xf6\xed\xdb\x7f\x7a\xf9\xf2\xe5\xda\xd1\xb1\x51\x94\ +\x8a\xc5\x34\x45\xcd\x69\xa2\xda\xa5\xab\x99\xd9\xab\x00\xb6\xff\ +\x0c\x80\xea\x9a\x6a\x8c\x8d\x8d\xe1\xf2\xe5\xcb\xc5\x7b\xee\xb9\ +\xe7\x79\x00\xbf\xb5\x7e\x43\x2e\x00\x5f\xe4\x03\x24\x00\x12\x24\ +\xd7\x93\x0f\x50\x02\x70\x71\x68\xe8\xfe\xa1\x4b\x97\x2e\xf1\x8d\ +\x37\x7e\x0d\x2c\xc2\x52\xb6\xa6\x8a\x8d\xf6\xf6\x98\xfc\x9b\xc1\ +\x26\x00\x58\xbb\xb6\x09\xaf\xbf\xfe\x3a\x5e\x7b\xed\xb5\xed\x6b\ +\xd7\xae\xfd\x2d\x80\x03\xb9\x00\x5c\xd5\x05\x60\x4f\x0a\xbd\x4e\ +\x94\xb0\x04\xc0\xdb\xa7\x4f\x9f\x3e\xf6\xb3\x9f\xfd\x23\x6a\x6b\ +\x6b\x89\x99\x00\x36\xbe\x8b\x89\x9d\xff\x94\xb2\xc2\x76\xcd\x33\ +\x82\x16\x60\x52\x1a\xc1\x49\x42\x5f\x7f\x1f\xde\x7f\xff\xfd\xc6\ +\x9d\x3b\x77\xbe\x07\xe0\x58\x2e\x00\x57\x73\x02\x43\x18\x70\x3d\ +\xee\xf3\xfb\x7b\xf7\xee\x1d\x7c\xf9\xa5\x97\xd3\x55\xce\x4e\xd9\ +\x93\x6f\x74\xe8\x84\xc0\x38\x49\xf0\x4b\xdf\x1b\x05\xa5\x29\x7c\ +\xaf\x03\x06\x5a\x5a\x9a\xf1\xd6\x5b\x6f\x55\xdd\x72\xcb\x2d\x93\ +\x00\xbe\x99\x0b\x40\x39\x1f\xc0\xf6\x08\xba\x0e\x2e\x40\x6f\x73\ +\x73\xf3\xf3\x17\x2e\x5c\x40\x52\x28\xf8\x29\x75\x36\x9e\x55\x64\ +\x6a\xc2\x0b\x36\x56\x58\xa0\xb4\x04\x84\xb6\x70\x82\xc3\x0c\x34\ +\x36\x36\xe2\x9d\x77\x7e\x55\xdd\xde\xde\x3e\x09\xa0\x2b\x17\x00\ +\xad\x00\x00\x22\x24\xb4\xe8\xc9\xa0\xda\x24\x49\x7e\x71\xe1\xc2\ +\x6b\x85\xd6\xaf\xb6\xba\xa9\x57\x37\xc6\xd6\xbe\x73\x54\xb8\xea\ +\x94\xbc\x7b\xdf\x2b\x06\xc8\x73\xd8\x1f\xcc\x60\xb4\xb4\xb4\xe2\ +\x8d\x5f\xbc\x51\x57\x5b\x5b\x3b\x6d\xc1\xa4\x5c\x00\xa4\x0f\x00\ +\x5a\x74\x52\xe8\xf7\x47\x47\xc7\xda\xf7\xed\x3b\x10\x2c\x0f\x93\ +\xd3\xf3\x5e\xa9\x3b\x93\x00\xe1\xeb\x85\x23\x58\x88\x4d\x78\x2d\ +\x0e\x0f\xaf\x99\xb1\xf9\xa6\x2d\x78\xe1\x85\x17\x5a\x01\xfc\x12\ +\x73\x21\xcc\x54\x82\x00\x24\x44\xc0\xe2\x39\x81\x6d\xab\x57\xaf\ +\x7e\xe2\xd9\x67\x9f\x41\x9a\x8f\x74\x2b\xd7\xf8\x15\xef\x66\x9b\ +\x84\xa6\xf2\x21\x21\x4b\x0a\x3b\x09\x73\x41\x81\xdd\x1e\xa9\x8d\ +\xf4\xf2\x06\x43\x27\x4f\xe2\xc8\x91\x23\x3d\x16\x2c\xca\x05\xc0\ +\x15\x86\x10\x2d\x6a\x36\xf0\xe9\x87\x1f\xfe\x4e\x6d\x73\x53\xb3\ +\x8f\xe2\x1c\x21\x35\xf8\x01\xf0\xf9\x09\xa5\xea\x49\x6a\x03\xa9\ +\x12\x38\x9c\x2d\xe5\x23\x12\x18\x06\xf0\xe2\x8b\x2f\xa2\xb5\xb5\ +\xf5\x29\x00\x77\xe5\x51\x00\x87\x64\xc0\x22\xf9\x00\xed\x4d\x4d\ +\x4d\x67\x1e\x7f\xfc\x31\xa5\x9e\x63\x9b\x1e\x56\x3d\xc5\xba\x5f\ +\x4c\xb6\x10\x12\xe1\x1b\x04\xbf\x81\x03\x4c\x80\xf0\x19\x8d\x8d\ +\x8d\x98\x98\x98\x48\x0a\x85\xc2\x9b\x00\xea\x2b\x5a\x00\x0c\x10\ +\x34\xc0\xe2\x08\xc0\x53\xe7\x1e\x39\x57\x5a\xb5\x6a\x95\x56\xcf\ +\x7a\x11\xa7\x49\x2a\xf7\x1f\x66\xe1\xd5\x8b\xc9\xf6\x88\xa0\xfc\ +\x91\xf1\x8d\xfd\x4d\x2c\x22\x9e\xf4\xff\xbb\xba\x76\x61\x7c\x7c\ +\x7c\x1d\x52\xc8\xb8\x82\x35\x80\xb1\x8d\xe2\x16\x47\x00\xd6\xae\ +\x5d\xbb\x76\xf4\xcc\x83\x67\xc4\xa4\x87\x55\x0a\xe5\xd2\x85\x15\ +\xcb\xd0\x00\x4f\x10\x1a\x5b\xd0\xe2\xcd\x57\x10\x18\x96\xe8\xa0\ +\x61\x2f\x5c\x12\x40\x7a\xfc\x89\x27\x70\xd3\x4d\x37\x3d\x06\xa0\ +\xa3\xa2\x71\x80\x64\xf1\xda\xc4\x8d\x3c\xf8\xe0\x83\x35\xab\x57\ +\xd7\x0b\x1b\x8e\x30\x61\xb6\x63\x99\x5a\xd9\xc8\x4e\x5e\x98\x44\ +\xa3\xf3\x02\x52\x09\x30\x09\x41\x92\x20\x57\xf8\xa4\xaa\x52\x15\ +\x9e\x7b\xee\xb9\x04\xc0\x3f\x54\xbc\x0f\x40\x09\x2d\x78\x3a\x98\ +\x88\x4e\x8f\x8c\x8c\x58\x35\xcc\x5a\x51\xfb\x09\xe4\xc8\xdc\x73\ +\xa4\xce\x29\xc2\xff\xe0\xe1\x61\x28\xe4\xd0\x41\xc6\xa4\x42\xc4\ +\x14\x43\x0a\xc2\xb0\xaf\x77\x1f\x0e\x1d\x3a\xb4\x1f\xc0\x89\xca\ +\xd5\x00\x20\xd7\x22\x60\x21\xc7\x8e\x5d\xbb\x76\x75\xac\x6f\x6b\ +\x83\x61\x69\xc3\xdd\xc2\x67\x88\x90\x20\x84\x72\x14\x3c\x79\x66\ +\x8d\x02\x3a\xc9\x21\xe5\x43\xb0\xbc\x8c\xd2\x22\x0e\x45\x26\x11\ +\x1d\x30\x18\xcf\x3e\xfb\x0c\x4a\xa5\xd2\xdf\x23\xcd\x48\x56\x20\ +\x12\x98\x60\x31\x7c\x80\xd3\x83\x83\x83\x80\x31\xa9\x73\xc7\x52\ +\x25\x73\x6a\xa7\x49\x4c\x2c\x84\x07\x4f\x52\x60\x9d\x6a\x37\xde\ +\x7f\x30\x1c\xfb\x10\x01\x10\x92\xc0\x10\xc5\x02\xe2\xc2\x92\xf6\ +\x4d\xe8\xef\xef\x6f\x07\x30\x5e\xa1\x40\x50\x02\xa2\x05\x4d\x07\ +\x27\x85\x42\xe1\xbe\xe3\x7d\xc7\x6d\xb8\x19\x50\x3e\xa9\xe0\xc1\ +\x31\x0e\xc0\x32\xe2\x13\x12\xab\xc0\x41\x80\x42\x86\x30\x02\x0e\ +\xbd\x9f\xcb\x52\x38\x58\x1e\x9f\x1e\x75\xfe\xd1\xf3\x28\x14\x0a\ +\x4f\x01\x58\x5d\x79\x02\x00\x2c\x74\x3a\x78\xcf\xce\x1d\x3b\xff\ +\xa2\xa9\xa9\xc9\xab\x72\xe9\x01\x90\x8c\xe1\x95\x7a\xa7\xe0\xb4\ +\x79\x33\xa0\x53\xc4\x6a\xa6\x15\x83\x40\xc6\x93\xc2\xd9\x54\x79\ +\xa3\xf0\xa2\x6d\x7d\x1b\x06\x06\x06\x5a\x00\x9c\xab\x38\x13\x40\ +\x49\x02\x42\xb2\x90\x41\xc0\xf1\x23\x47\x8f\x04\x4f\x9e\x38\xf2\ +\xea\x35\x20\x14\xea\x14\xd9\xce\x1f\x5f\xe5\xc6\xc3\xb9\x41\xb0\ +\xd8\x05\x08\x41\x23\x18\x11\x0d\xb0\x13\x7a\x0e\x1a\xc7\x9a\x98\ +\xf3\xe7\x1f\x41\xa1\x50\x78\x02\x40\x6d\x05\x39\x81\x69\x71\x28\ +\x25\x0b\x1a\x06\x1e\x3f\x7c\xf8\xb0\xc0\xf8\x21\x56\x71\x98\x38\ +\x78\x1e\x50\x44\xf7\x52\x19\x3e\x61\x3a\x0c\x94\xbd\x27\x81\x27\ +\x80\x38\x72\x28\x53\xd8\x2b\x05\x85\xd2\x48\x82\x89\x45\x5a\x19\ +\x68\x6b\xfb\x4b\x1c\x39\x72\xa4\x15\xc0\x43\x95\xe5\x04\x92\x53\ +\xc3\x0b\x22\x00\x37\xaf\x5b\xb7\x6e\xf3\xb6\x5b\x6f\x0d\x1e\xb9\ +\x0a\xe3\x42\x02\x27\xb6\xe1\x6e\xe5\x92\xca\x0d\x90\x56\xf3\x2c\ +\xb4\x01\x22\x8f\x5f\x40\xc7\x2a\x59\xc4\x06\x60\x8a\x4c\x48\x7a\ +\xc2\xf8\xf8\x38\x00\x7c\x6f\x25\x44\x04\xb3\xc6\x01\x12\x10\x90\ +\x2c\x18\x21\xe4\x9e\xa3\x47\x8f\x0a\xe7\x2d\xcd\x3a\x72\x99\xd5\ +\x2a\x0f\x61\xe9\xc9\xb3\x9f\x63\xb8\xec\x61\x00\xfd\x58\xe3\x05\ +\x32\x5d\xec\x9c\x3d\x0a\x9a\xc2\xc1\x42\x86\xb5\x43\xe8\xde\xdf\ +\xba\x75\x2b\x0e\x1f\x3e\xfc\x35\x00\x23\x15\xe3\x04\xa6\x84\x90\ +\x64\xa1\x4c\xc0\x91\x54\x00\x54\xc6\x1e\x12\xde\xf3\x8b\xd8\xaa\ +\x64\x2f\x20\x52\x48\xc0\x2a\x2a\x48\x6d\xb7\xbc\x5f\x12\x5a\x42\ +\xfa\x11\x94\xfa\x10\x26\x58\x05\x16\x21\x87\x37\x08\x4c\xde\x14\ +\x9d\x3f\x7f\x1e\x44\xf4\x5d\x2c\xf3\xfd\x97\xe7\x46\x0b\x5f\x98\ +\xf2\xf0\x55\xab\x56\xad\xda\xb3\x7b\xf7\xee\x0c\x96\xaf\xc8\x1c\ +\xd6\xd1\xb3\x73\x2f\xf2\xfe\x32\xb2\x17\x7e\x43\xe4\xf4\xeb\xe8\ +\x40\xd8\x7d\x8b\x6d\xc8\x50\x11\x1c\xed\x8d\xc4\x82\x8b\x60\x9d\ +\xd3\xad\x5b\xb7\xa2\xab\xab\x6b\x0b\x96\x39\x91\x74\xd6\xd5\xc1\ +\x09\x6c\xb3\xe8\xf9\x17\x80\x9e\x9e\x9e\x9e\xea\xea\xea\x6a\x61\ +\xae\x35\x8a\xa7\xf3\xf7\x3a\x88\x57\xc4\xf0\xcc\xa4\xb1\x40\xf3\ +\xdc\xdb\xa4\x79\x02\x2c\x12\x4b\x0a\x1b\xd0\x18\x00\x20\x98\xc5\ +\xf6\x88\xb1\xb1\x31\x00\x78\x6c\xe5\xfb\x00\xb0\x7d\x22\x93\x05\ +\x01\x82\x0e\xf5\xf4\xf4\x08\x4f\x3d\xac\x50\x63\xe3\x2f\x16\xde\ +\x9f\xca\x01\x20\x4a\xfe\x40\x46\x02\xf0\x31\x83\x9d\x76\xfb\x19\ +\x26\xab\xdf\x7c\x48\x28\xf1\x03\x51\x0c\x2f\x73\xd0\x1c\x44\xee\ +\xe0\xc1\x43\xd8\xb0\x61\xc3\x21\x00\xb7\xad\x7c\x1f\x00\x94\x1e\ +\x3c\xff\x1a\xe0\x60\x4f\x4f\x8f\x02\x5f\x98\x11\x65\x00\x23\x08\ +\x47\x0a\x04\x62\x66\x0f\x22\x26\x10\x2b\x8e\x00\x31\x45\xef\xc1\ +\xe6\x0a\x34\x6b\x50\xc6\x3b\xbe\xa4\x40\xc0\xc6\x6c\x17\xc5\xf0\ +\xf0\x30\x2d\x67\x2d\x30\x47\x52\x68\x32\xdf\xcd\xa2\x1b\x57\xaf\ +\x5e\xdd\xb1\x75\xeb\x56\x81\xba\xe9\x30\x50\x26\x64\x04\x32\x94\ +\x41\x05\x25\x09\x04\xc4\x91\xed\xb6\x5a\x8c\x39\xf2\x17\xa4\xa7\ +\x91\x05\x08\x19\x31\xb7\x90\x95\x00\x32\x03\x27\x4e\x9c\x40\x6d\ +\x6d\xed\x03\x00\x5a\x56\xb0\x13\x08\x4b\x0a\x05\x30\xbf\x7d\x22\ +\x7b\x77\xed\xba\x23\x29\x14\x8b\x61\xf5\x97\x01\x6b\x83\x13\x47\ +\x02\xd0\xb1\x82\x40\x9a\xfa\xa5\x1c\x43\xd2\x24\x51\x16\xa1\x9f\ +\xd6\x6e\x10\xf6\x9e\xa3\x48\x41\xa0\x88\x2a\xff\x90\x1e\xbb\x66\ +\xcd\x1a\x1c\x3f\x7e\xbc\x06\xc0\xd9\x15\xec\x04\x9a\x94\x11\x4c\ +\xf3\x0e\x04\xf5\xde\x79\x67\x8f\x52\xe7\x92\xb8\xa1\x58\x3b\x7e\ +\x72\x49\x70\xfc\x04\x1a\x28\x96\xb4\x87\x7e\x8d\x80\x8e\x11\x25\ +\x81\x54\x85\x91\x46\x16\x35\x6b\x08\xd6\x6f\x08\xa8\x11\x21\xa4\ +\xa0\x01\x60\x74\x74\x14\x00\xfe\x1a\x40\x61\x85\x02\x41\x69\xb8\ +\x44\x94\xcc\x77\x14\xb0\xb7\xbb\xbb\xdb\xe9\x67\x3d\x81\x91\xed\ +\x0f\x31\xbd\x75\xe4\x62\x55\x81\x4c\xd6\x47\x75\x34\x52\x24\x32\ +\x8e\xbe\x1b\xc7\x70\x02\x67\xb2\x48\x2a\x3b\xe9\x9d\xc6\xd4\x9f\ +\xd8\xb4\xe9\xeb\xe8\xec\xec\x6c\x03\xf0\xad\x15\x8b\x03\x24\xf3\ +\x5f\x1a\x56\x5f\x57\x57\xd7\x71\xfb\xf6\xed\xe9\x43\x35\xb8\x2a\ +\xb1\x37\xb6\xcf\x14\xb2\x01\xaa\xc4\x4b\x26\x8d\x2c\xae\x13\xbd\ +\x87\x8c\xc6\x90\x21\x5f\xb4\xfe\xe1\x41\x66\xd6\x61\x62\xe0\x21\ +\x87\xba\x84\xe1\xe1\x61\x60\x19\x66\x09\xe7\xa6\x01\x80\xf9\xdc\ +\x36\xee\xce\xce\x6f\x74\x16\x4b\xc5\x12\x02\xdc\x1f\x00\x7a\x12\ +\x5a\x80\xe2\x5a\x7f\xc5\xe3\xb7\xab\xda\xd2\xc0\x42\xd2\xc8\x04\ +\x55\x0f\x4d\x01\x03\x6b\x2f\x1f\x62\xf2\x33\xb8\x80\xe7\x14\x0a\ +\x3b\xc2\x82\x80\x66\xb1\x91\x43\x87\x0e\xa1\xa5\xa5\xe5\x10\x80\ +\x2d\x2b\x4e\x00\x0c\x0c\x08\x04\x4a\xe6\x75\xdb\xb8\xde\xdd\xdd\ +\xbb\x21\x73\xf9\x31\x14\x2c\x6d\x7d\x1c\x82\x21\x56\xe9\x36\x79\ +\x13\x30\x21\x2a\x43\x06\xd0\xe7\xb3\x54\xe9\xd0\xfe\x42\x10\x0a\ +\x8a\x74\x61\xc4\x40\xb6\x6c\xa4\x52\xa9\x84\x13\xf7\x9e\x20\x00\ +\xdf\x59\x81\x61\x60\x5a\x17\x90\xcc\x2f\x12\xb8\x77\x77\x57\x57\ +\x84\xc6\x89\x87\xcc\x3a\xae\xf7\xf6\x97\x64\x6e\x40\x0a\x8d\x5c\ +\x95\xd2\x9b\x17\x9a\x42\x86\x7d\x32\x5f\x20\x01\x28\x85\x20\x52\ +\xe4\x80\x42\x39\x99\x82\xb8\x08\x06\xe3\xfe\x93\x43\x28\x16\x8b\ +\xa7\x01\xd4\xad\x30\x13\x10\x70\x80\x79\x72\x02\x6a\xaa\xab\xab\ +\x77\xed\xfc\x46\x67\x86\x88\xcd\xb2\xd8\xc3\xe3\xf3\xc1\x0c\x79\ +\xb2\x86\x10\x1a\x92\xf1\xa3\x50\xd1\xa4\x58\x3e\x62\xd3\x3b\xc1\ +\x02\xd6\x45\x22\xa4\xc2\xd1\x90\x5c\xe2\xa8\x2c\x3d\xce\x56\xa4\ +\x97\x6a\x6e\x69\xc1\xfe\xfd\xfb\x1b\x00\x0c\xaf\x3c\x20\x28\x99\ +\xd7\x6d\xe3\xba\x6e\xbf\xfd\xf6\xea\xea\xea\xaa\xe8\xa1\xea\xee\ +\x5e\x1c\x4c\xb9\x5d\xa5\xc6\x7f\xbc\x11\xf8\x3f\x97\xd3\x1e\x19\ +\x27\x32\x0b\x35\x3a\x3a\x78\xf8\x3c\xa3\x15\x3c\x0b\xb6\x29\x73\ +\x8a\x22\x4a\xfa\x59\x04\x51\x32\x03\x83\x83\x83\xc0\x32\x22\x8e\ +\xce\x81\x13\x98\x86\x81\xf3\x44\x09\xdc\xd7\xd5\xd5\x15\x3d\x3c\ +\xce\x16\x75\xc0\xb1\x80\x65\xfd\xbf\x3e\x4e\x96\x7f\x69\x58\x58\ +\xd7\x02\xc4\x71\x3f\x4b\xde\x80\xa7\x95\xc5\xbc\x02\x2d\x64\x06\ +\xd6\xcf\x20\x8e\xf2\x0e\xe1\x77\x4f\x4f\x0f\xd6\xad\x5b\xb7\x03\ +\xc0\x1d\x2b\x0a\x09\x74\x1b\x46\xcc\x53\x8b\x98\x03\xdd\xdd\xdd\ +\x19\xe2\xa6\x22\x80\xc8\xaa\x20\x01\xef\xc6\xb9\x01\x8a\x71\x43\ +\x36\x9e\x0e\x5e\x36\xd8\x8f\xbf\x98\xa4\x9d\xa9\xb7\x4c\xe4\x20\ +\x0a\xd3\x61\x74\x45\xb2\xbc\x4f\x22\xc2\xc9\x93\x27\x81\x65\x42\ +\x19\x9b\xbd\x0f\x80\x94\x10\x32\x0f\x4e\x60\x4d\x92\x24\xbb\x3b\ +\x3b\x3b\x15\xcf\xcf\x39\x62\x7e\x4d\x52\x54\x0d\x6c\xa4\x40\x18\ +\xaf\x05\x4c\xdc\x21\x44\xed\x6b\xa3\xbd\xfc\xb8\x3b\x48\x0a\x14\ +\x46\x1c\x07\xe5\x30\x92\xd2\x00\xd9\x4a\x25\x8e\x5b\x10\x00\x00\ +\x06\x06\x06\x50\x55\x55\x35\x04\x60\xcd\x0a\xf2\x01\xdc\x97\xbc\ +\x66\x01\xe8\xbe\xf9\xe6\x9b\x6b\x56\xd7\x5b\x6a\xbd\x2d\xca\x8c\ +\x55\xae\xc4\x02\x98\x03\xf8\x82\xa8\x8e\x8f\x14\x29\x84\x45\x38\ +\xc7\xfa\x0c\xe1\xad\xc7\x3c\x3f\xe9\xe0\x99\x08\x62\x0c\x21\xa9\ +\x51\x28\x65\x86\xaf\x20\x52\x4a\x37\x34\xdc\x80\x83\x07\x0f\xae\ +\x06\x30\xba\xe2\x7c\x80\x79\x70\x02\x0f\x74\xef\xee\x0e\x2b\x59\ +\xda\x52\xd9\xa4\x81\x35\x45\x3b\x44\x5d\x94\x61\x02\xa9\x58\x50\ +\x32\x7c\x39\x4e\x14\x21\xe2\xfe\x47\x15\xc2\x88\x38\x83\xac\x2b\ +\x86\x82\x9f\x42\xc2\x4c\xa1\x6c\x1e\x62\x68\xe8\x7e\x00\x78\x14\ +\x4b\x9c\x32\x36\x87\x6c\x60\x02\x4a\xe6\xa5\x43\xc8\xc1\xbb\x0e\ +\xde\x95\x01\x5d\x3c\xd9\x5b\xb2\x70\x22\xbb\x4c\xf0\x7c\x30\xcf\ +\xd9\xd7\xc8\x4e\xd4\x16\x2e\xaa\x2b\x88\xf9\xc6\x8c\x58\xf3\x20\ +\x53\x31\xa4\xd0\x44\xa4\x9c\x44\x8e\x92\xe2\x2a\x73\x68\xef\x63\ +\xc7\x8e\x0e\xdc\x76\xdb\x6d\x9b\x01\x1c\x5d\x01\x3e\x80\x49\x1b\ +\x84\x80\xae\xb5\x32\xe8\x86\xba\xba\xba\x3b\xba\x77\x77\xab\x15\ +\x29\xf1\x35\x12\x7e\x87\x84\x74\xe1\x6c\x36\xb1\xee\x0b\x10\xa1\ +\x78\xca\x27\x28\xd7\x35\x40\x39\x9c\x9c\xed\x1e\x12\x53\xc9\xca\ +\x70\x03\xc3\xb9\x46\xb5\xa0\x61\xd6\x25\x65\x36\x3f\xf0\xe8\xf2\ +\x87\x82\x8d\xd5\x00\xd7\x9e\x0e\x3e\xd8\xdd\xdd\x5d\xaa\xaa\xae\ +\x56\x16\x56\x96\x7c\xeb\xb2\x30\xa1\xf2\xa1\x57\xbb\xea\x00\x16\ +\x39\x69\x28\xd7\x29\x46\x69\x16\x41\x0e\x61\x64\x91\x3e\x68\x22\ +\x89\x8e\x48\x58\x77\x2c\x53\xc2\x0a\x91\xd0\x62\x1c\x3e\x7c\x18\ +\xad\xad\x2d\xdf\x04\x70\xcb\x32\x37\x01\x6c\x5b\x04\x5d\x33\x2b\ +\xf8\x68\x6f\x6f\xaf\x0e\x9d\xc2\xce\xf4\xa2\x04\x4b\x28\xe9\x08\ +\xf6\x85\x82\x80\xcb\x30\x77\x39\x6a\x16\x8d\x88\xe2\xe5\x22\x0d\ +\x56\x71\xa7\xaa\x48\x02\x43\x22\x50\x51\x5f\x01\x09\x38\xc6\xd1\ +\x03\x14\x46\x50\x2c\x95\xd0\xdf\x3f\x40\x00\x1e\x5f\x21\x50\xf0\ +\x35\x6f\x1d\x7a\x24\x2d\xff\x62\x35\xe1\xce\xb3\x26\xc7\xf9\xce\ +\x4c\x78\x94\x98\x70\xba\xc1\x59\x08\x57\x3d\x8a\x32\x5d\xc1\x22\ +\x98\xd8\xf8\x39\xe2\xb2\x66\x81\xa5\x4f\xc2\x9a\x9a\x66\x94\xdf\ +\x91\xd5\x58\xe5\xc0\xaa\xa1\xa1\x93\xa8\xae\xae\x3e\x05\xa0\x69\ +\x59\x27\x83\xc8\x16\x86\x98\x2f\x9f\x0e\xee\xd8\xb0\x61\x43\xdb\ +\xfa\xf5\xeb\x95\x0d\x76\xf0\x6e\x9a\xbf\xe7\x08\x5d\x43\xe6\xff\ +\xd9\xb9\x0d\xb5\x81\x9a\x0d\x1c\xf1\x06\x65\xd8\x18\x82\x3a\x61\ +\xb3\x45\x95\x90\x74\x40\x15\xa1\x54\x14\x96\x92\xcc\x57\x88\xf4\ +\xb5\xb6\x5f\x68\x68\xf8\x0a\x8e\xdd\x7d\x77\x2d\x80\x87\x97\xb9\ +\x13\x68\xbb\x85\x7f\x79\x0d\xd0\x7f\xe0\xc0\x01\x3d\xf9\x90\x4d\ +\x9d\x2d\x63\x57\x2d\xf4\x18\xe5\x0b\xd0\xb0\xf2\xd4\x39\xa2\x07\ +\x45\xf9\x7b\x56\xd0\xb0\xc3\x05\x38\x8a\x0d\x1d\xde\xaf\xc5\x47\ +\xaa\x7b\x4d\x17\x8b\x20\x67\xd9\x6f\x2a\x32\x1d\x0f\x04\xb2\x48\ +\xdd\xf2\xd4\x00\x98\x97\x6e\xe1\xfd\xfb\xf7\xef\xcb\x24\x63\x34\ +\x41\x23\xd2\xf9\x1c\x69\x01\x67\x82\x22\xda\xb7\x2b\xf6\x70\x13\ +\x63\x90\xc5\x04\xe4\xb5\x1d\xb7\x95\xbd\xaa\x0f\x3e\x1d\x0b\xa8\ +\x29\x2e\x13\x17\x36\x0b\xb2\xd3\x58\xdc\x7b\x90\x22\x71\xd9\xb4\ +\x69\x13\xba\xba\xba\xbe\x8a\x25\x48\x1c\x5d\xac\x66\xd1\xdb\x1a\ +\x1a\x1a\xb6\xef\xdd\xd3\xeb\x1d\x30\xc5\xb8\x75\xb4\x2b\x96\x10\ +\x6d\x96\x96\xe5\xfa\xbc\x68\x36\x0e\x54\xe7\x8f\xe0\x0e\x48\xba\ +\x38\x6b\xbc\x81\x75\xb8\xe9\x4d\x84\x09\xfc\x01\x13\x87\x77\x0a\ +\xed\x23\x4f\x39\x53\x82\xe8\x84\xce\x70\x74\x6d\xe0\xec\xd9\xb3\ +\x00\xf0\x5d\x00\x55\xcb\x13\x09\xbc\xb6\x66\xd1\xc3\xc7\x8e\x1e\ +\x45\xa1\x54\xb4\x1d\xfe\xc5\x04\x46\x6b\xc8\x87\x69\x14\xc5\x72\ +\xd6\x08\xb3\x02\x00\xa2\x9d\x00\xca\x56\x03\x93\xb0\x0a\x01\x22\ +\x56\x99\x41\x77\x3a\xe9\x10\xcf\x07\x15\xb2\x11\x69\x99\xd6\xf3\ +\x2a\x14\x14\x42\x26\x85\x60\xe7\x8e\x1d\xd8\xb1\xa3\x63\xdd\x52\ +\x83\x87\xe7\xde\x2b\x78\xee\x3e\x20\x01\xb8\xff\xe8\xb1\xbb\x33\ +\xde\xbd\xe6\xe7\xeb\x96\x6f\xc6\x48\xea\x37\x67\x48\xa2\x2a\x14\ +\xe3\xc0\x04\xe2\x72\x85\x25\xc2\x87\x20\x89\x18\xaa\xf6\x01\x8c\ +\x72\xfc\x71\x92\x21\x23\xc5\xdd\x49\xf4\xbd\x87\x66\x55\x1c\xfd\ +\x3d\x3d\xef\xd4\xa9\x51\x00\x78\x66\x29\x69\x81\x39\xe5\x02\x92\ +\x2f\xa7\x01\x0e\xdc\x78\xe3\x8d\x1b\xf7\xee\xe9\x51\xcd\x9e\x0d\ +\xc7\x21\x15\xeb\xcd\x1c\x48\x3e\x44\x42\xb9\x9e\x81\xa0\x28\x54\ +\x54\x78\xbd\x8e\xf1\x1c\xb7\x83\x23\x02\x89\xfe\x3a\x11\x08\x15\ +\x31\x89\x51\xa6\x40\x95\x2d\x6b\xc5\x47\x06\x3e\xaa\x71\xdc\xf1\ +\x80\x6f\xee\xdd\xbb\x17\x1d\x1d\x1d\x1b\x01\x7c\x7b\xd9\xe1\x00\ +\x70\xbb\x86\x99\x39\xab\x80\x73\xe3\xe3\xe3\x28\x14\x8b\x4a\x8d\ +\xfa\x46\x6e\xc2\x6e\xab\x20\xce\x65\x00\x29\x5b\xdf\xa7\xb2\x79\ +\x5e\x25\x9b\x0c\x30\x23\x57\x20\x59\x6c\x47\xef\x26\xa6\xab\x7c\ +\xca\xb5\xa7\x89\xb3\x07\x24\x3a\x89\x84\xbf\x93\xa7\x9f\x65\xb6\ +\xa7\x81\xb8\x37\x02\x9e\xfe\x9b\xa7\x51\x2c\x16\x9f\x07\xd0\xb0\ +\xcc\x70\x00\xe1\x6c\xcf\x7e\xdc\xdc\xda\xda\xda\x3f\x78\xdf\x7d\ +\x9a\x83\x4f\x1a\x32\x75\x93\xe8\x9b\x30\xf8\x78\x3d\xf0\x2e\xbd\ +\x3d\xe1\x40\xfc\x88\xa2\x31\x8d\x14\xaa\x92\xb1\x00\xea\x50\x26\ +\x83\x13\x52\xca\x40\xd4\x2a\x2e\xde\x94\x22\xd6\x00\x46\x38\x7a\ +\x06\xc8\xde\x90\x7b\x3b\x64\x35\xdb\xdb\x37\xe2\xc4\x89\x13\x2d\ +\x00\x7e\xb0\xcc\xc2\x40\xd7\x25\x6c\x4e\x22\xf0\xbd\xb1\xd1\xb1\ +\xa4\xba\xaa\x5a\x93\x3f\x39\x2e\xc7\x12\xd1\x95\xeb\xf7\x03\x44\ +\x0e\x1f\x22\xcc\x9f\xa2\x3d\x02\xc5\xe4\x23\xed\x69\xc0\xac\xe9\ +\x62\x10\xd9\xc6\x72\x3e\x82\x42\x83\xa3\xf6\x42\x88\xcd\x82\xaf\ +\x3d\x84\x6f\x26\xa5\xab\x87\xb2\x1a\xc1\x59\xac\x33\x67\xcf\xa2\ +\xbe\xbe\xfe\x1c\x80\xad\xcb\x2a\x0a\x98\x23\x1d\x60\x73\x7d\x7d\ +\xfd\xc8\xc8\xa9\x11\x64\x29\x5e\x65\x1a\x3e\xc8\xb4\xad\x51\x59\ +\x95\x8c\x5d\x56\xf8\x7e\xa6\x2f\x40\xb4\x86\x85\x36\x88\x8a\xbe\ +\x05\x0a\x48\xaa\x2e\x51\xae\x5e\x8a\x49\xa2\xca\x4f\x14\x60\x56\ +\xfc\xbd\x48\x14\xa8\x70\x20\x9b\x30\x18\x0d\x37\x34\xe0\xa1\x87\ +\xbe\x5d\x02\xf0\x4a\x00\xb1\x97\x7c\x14\x00\xdb\x23\x68\xd6\x3e\ +\xc0\xcb\xe7\xce\x9d\x2b\xad\x59\x53\xaf\x13\x27\x9c\xdd\xc8\x49\ +\x41\xb0\xfe\x33\xa9\x4c\xb1\xa6\xcd\x4e\x46\x9b\x3f\xa9\x07\xaf\ +\x4b\x8a\x1d\x90\x19\xed\x32\x16\x39\x8f\x14\x55\x00\x87\xa2\x32\ +\xef\x84\x52\xa6\x8a\x18\xd9\x4d\xab\x54\x62\x2a\xdb\x50\x82\x44\ +\xb2\xe1\xde\x13\xf7\x62\xf3\xe6\xcd\xfb\xaf\xb7\x43\x38\x7b\x52\ +\xa8\xc7\x01\x66\x35\xee\x69\x6b\x6b\xfb\xd6\xe9\xb1\xb1\x0c\x07\ +\xbf\x1c\x4b\xd7\x3b\x17\x51\xdf\x7f\x19\x97\xcb\xbf\x13\xeb\xaa\ +\x60\xe5\x4b\x28\xa8\x59\xc4\xf7\x40\xa6\x25\x8c\x1f\x46\x6b\x06\ +\xa9\xad\x54\x8e\x40\x32\x8c\x38\xda\x70\x2a\xb6\x17\x1c\xef\x61\ +\xa4\xe5\x32\x29\x14\xf0\xe4\x93\x4f\x82\x88\x5e\x06\xb0\x6d\x69\ +\x0b\x80\x71\x3e\xc0\xac\xc2\xc0\xe6\x62\xb1\x78\xe1\xd5\x57\x5e\ +\x41\x75\x4d\x8d\xc2\xcf\xb8\x5c\x7a\x8f\x49\x37\x6e\x8a\x57\x69\ +\xd4\x1c\x50\x2e\x70\x9d\xd5\x23\xe1\x28\xc6\xdd\xc6\x24\xa2\x23\ +\xe4\xd1\x68\x9a\xb8\xda\x87\x28\xf6\xff\xa3\x62\x90\x2c\xb7\x08\ +\x7a\x33\x2a\xa9\xbb\x88\xd4\xf7\x73\xe7\xee\xe8\xe8\xc0\x99\x33\ +\x67\x56\x01\xf8\x27\x00\x37\x2c\xdd\x30\xd0\xee\xd1\x99\xfa\x00\ +\x5f\x28\x00\x55\x00\xde\x7a\xe4\xfc\xf9\x96\x6d\xb7\xde\xaa\xbd\ +\xf3\xa8\xb0\x53\x51\x29\x35\xa5\x2f\xb2\xfd\xac\x9b\x43\xab\xf6\ +\x31\x51\x03\x08\x8e\x89\x9d\x64\x63\xf4\x68\x63\x69\x08\x76\x91\ +\xd5\x50\xc4\xd9\x8e\xe1\xda\x64\xa9\x9c\x54\x28\x1a\x31\xf2\x7b\ +\xb0\x68\x4c\x21\xd5\x80\xee\x36\x2a\xb5\xdd\xe9\xd3\x7f\x85\xce\ +\xce\xce\x5b\x00\xbc\x8d\xeb\xb0\x4d\xdd\x1c\x9c\xc0\x94\x12\xf6\ +\x05\x95\x21\x09\x80\x9f\xf7\xf6\xf6\x1e\x3e\x37\x7e\x4e\x3b\x76\ +\x31\xe8\x42\xa4\x3d\x3b\xe2\x2c\xba\x86\x2c\xa1\x53\x34\x70\xcd\ +\xb6\x04\x10\xe7\x92\xdc\x37\x40\x45\x1f\x21\x92\x08\xbd\x44\x4d\ +\x68\x3a\x11\xaf\xde\xcc\x2e\x63\x1e\x48\x16\x98\x75\xac\xee\x55\ +\xa6\x49\x2b\x3c\x8f\x26\x06\x61\x4d\x12\xc2\x0f\x7f\xf8\x03\xb3\ +\x65\xcb\x96\xbb\x01\xbc\xb1\xd8\x42\x30\x07\x42\x48\x02\x22\xba\ +\xda\xfc\xd7\x03\xb8\xd8\xbb\x6f\xdf\xc8\xc4\xc4\x04\x17\x8b\x05\ +\xcd\xb0\x41\x9c\xb4\x91\xab\x42\xdb\xce\xb8\x54\x4c\xee\xef\x47\ +\x31\x1f\xe0\x6a\xa5\x61\x19\xb9\x60\xb5\x2b\x98\x0a\x1d\x45\x3a\ +\x5a\xce\x1f\xa9\x44\x10\x29\xc5\x6f\xe2\x32\xf5\xa8\xb1\x81\xca\ +\x2f\xb0\xec\x31\xc2\x59\x20\x85\x81\xaf\x34\x36\x26\x13\x13\x13\ +\xdc\xb3\x67\xcf\x03\x00\xfe\x19\xb3\x68\x47\x3f\x39\x39\xc9\x53\ +\x53\x53\xbc\x38\x1a\x00\xf0\x7b\x07\x97\x81\x82\x0e\x01\xf8\xf7\ +\xe1\xe1\xe1\xbe\x9f\x5f\xb8\x80\xba\xba\x5a\xaf\x00\x4d\x1c\xf7\ +\x33\xc9\xbf\x06\x52\x46\x6c\xab\xcb\xd1\xad\x11\xc8\x3f\x1c\x77\ +\x05\xf5\xe7\x93\xc2\x0c\x42\x68\x46\xda\x09\xe4\xd8\x1e\x47\xa2\ +\x93\x41\x1c\x85\x20\x1b\x57\x8c\xaa\xa9\xe1\xfe\xf6\x49\x9b\x2f\ +\x44\x4e\x29\x47\x55\xc6\x4e\x28\x6a\x6a\x6a\xe8\x85\x1f\xfd\x08\ +\xc7\x8f\x1f\x3f\x0a\xe0\x3f\xec\x73\xfd\xb3\x63\x7a\x7a\x9a\xa7\ +\xa7\xa7\xbf\xb4\x20\x5c\x35\x06\x3d\x35\x72\x8a\x41\xf0\x44\x10\ +\xa2\xc4\x6a\xef\xf0\x9a\xac\x3a\x27\x0b\x13\x92\x2d\x1f\x73\xc2\ +\x42\x6e\x9b\x19\xf7\xda\xff\x58\x73\x62\x89\xa6\xb0\xc7\x26\x09\ +\xd2\xbf\x49\x81\x23\xca\xbe\x26\x20\x41\x62\x1b\x58\xa7\xbd\x8b\ +\xd2\x76\xf6\x52\x50\xe1\xbb\x9b\xca\xf3\xc8\x36\xbc\xcc\xde\x8b\ +\xdd\x14\x2b\xb1\xed\xf0\xae\x7a\xcf\xee\x7a\xf0\xf9\x11\xfb\x66\ +\x1a\x26\xdb\xcf\x4d\x20\x3e\x53\x3d\xbb\xf2\xdf\x2b\xbd\xe5\x04\ +\x94\x20\xdc\xb3\xf5\xbb\xfc\xb5\x90\x7e\x4f\xf7\xd9\x83\x83\x83\ +\x60\x66\x4c\x4e\x4e\xfa\x79\xeb\xeb\xeb\xa3\x79\x11\x80\x91\x53\ +\x23\x5c\x57\x5b\xa7\x8b\x30\x8c\x11\xce\x96\x93\x66\x23\xd4\xbb\ +\xf1\xe5\x5a\xf2\xbd\xb4\xaf\x2f\xc3\x94\xa1\x5c\xeb\xeb\x99\xf0\ +\xdb\x6d\xde\xe4\xb6\x8a\xb1\x79\x76\x66\x7b\x1d\x57\x4a\xc6\xe1\ +\xb7\x2a\x00\x35\x69\x31\x27\x1b\x56\x7c\xbe\x14\x68\x32\xa1\x1a\ +\xd8\x58\x2a\x1a\x33\x8c\x71\x0d\x2a\xcb\x5c\x33\xe3\x68\x8a\x28\ +\xc2\x18\xdb\xc2\xd6\x08\x1a\x99\xf1\xf7\xcf\x96\xeb\x68\xa0\xbf\ +\x2f\xd8\xf8\xcf\x72\xd7\x4c\xff\x66\x7f\x1b\xa1\xe1\x8c\xf6\x1d\ +\xca\x3d\xbf\xe9\xe9\xa9\x39\x0b\xc2\xec\xab\x56\x54\xc3\xbd\x08\ +\x71\x21\x01\x7f\x81\x94\xed\x27\xe8\x1c\x82\x36\x22\x94\x29\xf5\ +\x94\x27\xf8\x8d\x9b\x28\xb4\x7d\x03\x89\x4d\xa2\x24\x54\x6d\xaf\ +\x67\x7d\x7a\xeb\xd9\xdb\x14\xb6\x2e\xe8\x55\x62\x2f\x55\x76\x9c\ +\xeb\xa0\xe8\x9e\x59\xbd\x23\xca\x89\xc9\x5d\x96\x44\xa1\x09\xa9\ +\x2f\xcb\x54\x16\x5d\xf1\x87\xb2\x00\xc0\xc8\xb7\xc2\x23\x11\xb9\ +\x5e\xa5\xc0\xb5\xdc\xf5\xe6\x30\x8a\x5f\xa4\x1c\x3e\xfb\xec\xb3\ +\x32\xaa\x37\x2d\x11\x4b\x8a\xe9\x64\x27\x04\x9f\x29\xb4\x4a\xd4\ +\xab\x76\xb2\x6a\x0b\x49\xe2\xc3\x48\xa5\xde\x9c\xda\xf4\xc7\x06\ +\x33\x22\x55\xb0\xff\x1c\x0a\x2a\x38\x7d\x29\x3f\x87\x00\xa5\x2e\ +\x29\x73\xef\x24\xd5\xb2\x34\x0f\x80\x57\xe5\x4a\xed\xc3\x7e\x37\ +\x48\x35\x4d\xfe\x5c\xa7\x96\xe5\xb9\x59\xd5\x1e\x5d\xcf\xdd\xb3\ +\x37\x5d\xc1\x5c\x68\x33\x1a\xcc\x63\x12\x5f\xd7\x3e\xd3\xc1\x7b\ +\xef\x05\x00\x4c\x4d\x4d\xcd\xbf\x09\x90\x63\x6c\x6c\x94\xab\x4a\ +\x69\x31\xc7\x1f\xff\xf4\x47\xbc\xf9\xe6\x9b\xd7\x15\xbf\xce\x07\ +\x30\x35\x39\xc9\x94\x90\x9f\xc2\xb9\x4e\xfc\x2c\x34\x40\x99\x74\ +\x30\xb0\x58\x7b\x07\xe7\x63\x96\x6b\xf7\xcb\x4e\xfc\x1c\x05\x20\ +\x48\x40\x2e\x00\x4b\x63\xf4\x0f\xf4\xcf\x8b\x16\x9e\x1d\xea\xc4\ +\xc0\xa7\x9f\x7d\x3a\x17\xab\x91\x8f\x7c\xe4\x23\x1f\xf9\xc8\x47\ +\x3e\xf2\x91\x8f\x7c\xe4\x23\x1f\xf9\x58\x92\xe3\xff\x01\x20\x06\ +\x00\xbe\x06\x90\xe5\xa3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x1c\x9f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xb3\x00\xb3\x00\xb3\x3b\x54\x6b\xc4\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x05\x0e\ +\x09\x18\x35\x5a\x6e\xe9\x42\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x1b\xfa\ +\x49\x44\x41\x54\x78\xda\xed\x5d\x6b\xac\x5e\x65\x95\x7e\xd6\x6e\ +\xff\x58\x0a\x66\x28\x15\x64\xcc\x28\x33\x5a\x46\xc6\x4e\xa2\x11\ +\x33\x74\xc8\xd0\x30\x31\x26\x18\xb9\xd8\x1a\x70\xe2\xa4\x54\x09\ +\x28\x97\x52\xe8\x05\x39\x9c\x96\x53\x38\x52\xda\x53\xa8\xf4\x46\ +\xa5\x0e\x75\x10\x32\xc6\xc1\x70\xfb\x8f\xe0\x8c\xcd\x24\x38\xfc\ +\x40\xe6\x87\xd6\x18\x64\x74\x10\xa4\x17\x4a\x7b\x90\xc0\x59\x6b\ +\x7e\xbc\xb7\xb5\xd6\xde\xdf\xa5\xf4\x9c\xd3\x9e\xe3\x5e\xa1\x29\ +\x3d\x67\xef\x6f\xef\xfd\xbd\xeb\x5d\xeb\x59\xcf\xba\x6c\xa0\x95\ +\x56\x5a\x69\xa5\x95\x56\x5a\x69\xa5\x95\x56\x5a\x69\xa5\x95\x56\ +\x5a\x69\xa5\x95\x56\x5a\x69\xa5\x95\x56\x5a\x99\xce\x42\x7f\x4a\ +\x0f\xbb\x64\xc9\x92\x0b\x01\x5c\x06\x60\x01\x11\x7d\x14\x90\xd9\ +\x00\x1d\x16\xe0\x57\x04\xec\x01\xe1\xb1\xef\xed\xfe\xde\xd3\xad\ +\x02\x4c\x33\xb9\xf2\xca\x2b\x17\x02\x18\x02\x70\x01\x11\x20\x02\ +\x80\xc8\x3c\x3c\x51\xfa\x97\x3c\x0b\xd0\xd0\x83\x0f\x3e\xf8\x4c\ +\xab\x00\xd3\x40\x96\x2e\x5d\xba\x1a\xa0\x0d\xe1\x69\x05\x73\xe7\ +\xcc\xc5\x99\x7f\xfe\x41\xfc\xd9\xa9\x73\x70\xd2\xac\x59\x38\x72\ +\xe4\x08\xf6\xef\xdb\x8f\xdf\xbf\xfa\x0a\x5e\x7f\x7d\x5f\xf9\x5a\ +\x08\xb7\xfc\xcb\x77\xbf\xbb\xb1\x55\x80\x29\x2c\x5f\xfd\xda\x57\ +\x6f\x23\xa1\x61\x90\x60\xce\x9c\xd3\x70\xf6\xd9\x67\x63\xce\x9c\ +\xd3\x40\x24\x10\x21\x00\x12\xf6\xbc\x84\xbf\xf7\xed\xdb\x87\x5f\ +\xee\xdd\x8b\x03\xfb\xf7\xa7\x8f\x18\xdc\xb5\x6b\xd7\xb7\x5a\x05\ +\x98\x82\x72\xd5\x55\x5f\xbb\x18\xc0\x13\x00\xf0\x97\x7f\xf5\x51\ +\x9c\xf3\xf1\x8f\x07\xd3\x1f\x16\xfd\x69\x00\x8f\x41\xb0\x07\x24\ +\x0b\x44\x70\x19\x80\x0b\xd3\xaf\x7f\xf1\x8b\x5f\xe0\xa5\x97\x5e\ +\x8a\x8a\x82\x4b\x1e\x78\xe0\x81\x27\xa7\xeb\xf7\x34\x73\xda\x6a\ +\x36\x55\xc3\x20\xe0\x03\x73\x4f\xc7\xc7\xcf\x3e\x1b\xcc\x0c\x00\ +\xcf\x08\x30\xb4\xe8\x8b\x5f\x7c\x56\x1d\xfa\x3c\x80\x6d\x3f\x7a\ +\xf4\x47\x17\x08\xc9\x10\x04\x0b\xe7\xcd\xfb\x28\x46\x47\x8f\xe0\ +\xf5\xd7\xff\x00\x22\x1a\x06\xf0\x64\x6b\x01\xa6\x90\x5c\x7d\xcd\ +\xd5\x57\x00\xf4\x6f\x00\xb0\xe0\xbc\xf3\x70\xf2\xc9\x27\x03\x90\ +\x27\x17\x2d\x5a\x7c\x49\xaf\x73\xff\xfd\x87\x3f\x7c\x02\x84\x8b\ +\xdf\x7c\xf3\x30\x7e\xf6\xdc\x73\x90\xf0\x25\x7d\x79\xc7\xfd\xf7\ +\xff\x60\x3a\x7e\x57\xd5\xf4\xd4\xea\xea\x52\x22\xc2\x07\xcf\x38\ +\x03\xb3\x67\xcf\x06\xb3\x80\x45\x06\xfb\x39\x97\x45\x06\x99\x05\ +\xb3\x66\x9d\x84\x0f\x9c\xfe\x01\x54\x55\x05\x9a\x51\x5d\x3a\x5d\ +\x2d\xc0\xb4\x54\x80\x6a\x06\x9d\x5b\x11\xe1\xb4\xd3\xe6\x42\x98\ +\x21\xc2\x3f\xf8\xd2\xe2\x2f\xfd\xbc\x9f\x73\x2f\xbf\xfc\xf2\x9f\ +\xb3\xc8\x0f\x20\x82\x53\x4f\x9d\x83\x8a\x2a\x54\x54\x9d\xdb\x2a\ +\xc0\x94\xb2\x00\xf4\xa1\xaa\xaa\x70\xf2\xc9\xb3\xc1\x22\x10\x91\ +\xc7\x8f\xe6\x7c\x61\x7e\x9c\x85\x71\xd2\xec\xd9\x40\x45\x20\xc2\ +\x87\x5a\x10\x38\x95\xb4\xba\x4a\x7a\x2d\xc1\x02\x1c\xe5\xf9\x01\ +\x30\x12\x84\x19\x33\x88\xa6\xeb\x3e\x99\xc6\x16\xa0\xa2\xdf\x52\ +\x45\x38\x74\xe8\xcd\x60\x01\x58\x8e\xca\x87\x8b\xc8\xa5\x22\x8c\ +\x23\x47\x8e\x04\x86\xb0\xa2\xdf\xb6\x0a\x30\x95\x1e\x8a\xaa\xe7\ +\x2a\x22\x1c\x38\x78\x00\xcc\x0c\x16\xb9\xe2\xe1\x87\x1f\x9e\xdf\ +\xcf\xb9\x0f\x3d\xf4\xaf\xf3\x45\xe4\x0a\x11\xc6\xc1\x37\x0e\x82\ +\xaa\x0a\x15\xd1\x73\xad\x02\x4c\x29\x0e\x80\x1e\x27\x9a\x81\x83\ +\xfb\x0f\x62\x74\x74\x14\xcc\x0c\x11\x19\xee\x33\x0a\x18\x66\x66\ +\x8c\x8e\x8e\xe2\xd0\xa1\x43\xa0\xaa\x02\x55\xd5\xe3\xd3\x55\x01\ +\xa6\x2d\x13\x78\xf3\x4d\x37\xbf\x00\xc2\xfc\x53\x4e\x39\x05\x67\ +\x9d\x75\x56\xfa\xf1\x33\x00\x86\x96\x2c\x59\xf2\xac\x3f\x7e\xf7\ +\xee\xdd\x17\x20\x24\x8c\x16\x0a\x80\x97\x5f\x7e\x19\x87\x0f\xbf\ +\x09\x02\xfd\x7c\x64\x64\xe4\x6f\x5b\x10\x38\xf5\x70\xc0\x20\x80\ +\x27\xde\x7c\xf3\x30\x5e\x79\xe5\x15\x9c\x71\xfa\x19\x10\x60\x21\ +\x41\x9e\xd9\xbd\x7b\xf7\xd3\x02\x3c\x06\x60\x0f\x09\x16\x08\xe4\ +\x32\x11\xb9\x30\xc0\x46\xe0\xb5\xd7\x5e\xc3\xe8\x91\xc3\xa8\xa8\ +\x02\x80\x41\x4c\x63\x99\xd6\xc9\xa0\x55\x2b\x57\xde\x86\x40\xe5\ +\x62\xd6\xac\x59\x98\x3b\x77\x2e\x66\xcd\x9a\x85\x92\x12\x90\x84\ +\xfa\x20\x20\x8c\x8e\x1e\xc1\xfe\xfd\xfb\xf1\xc7\xb7\xfe\x98\xd2\ +\x44\x83\x1b\x36\x6c\x98\xd6\xc9\xa0\x19\xd3\xf9\xe1\xf6\xec\xd9\ +\xf3\x1f\xe7\x9f\x7f\xfe\x5b\x54\x55\x9f\x1d\x7b\xf7\x1d\x1c\x3a\ +\x74\x28\x60\x82\xb1\x31\x00\x02\xaa\x08\x6f\xbf\xfd\x36\x0e\x1f\ +\x3e\x8c\x7d\xfb\xf6\xe1\xe0\x81\x03\x18\x7b\xf7\x5d\x10\x11\xa8\ +\xa2\x5b\xee\xbe\xfb\xee\xbb\x31\xcd\xe5\xb8\x59\x80\x25\x4b\x96\ +\xc8\xe4\x3c\x20\x21\xec\xef\xf8\xb4\xb1\xf0\x83\x84\xf2\xd3\xe7\ +\x63\x08\x10\x90\x41\xc6\xa2\x0b\x47\xf2\x29\xf1\x7f\x84\x40\x24\ +\xe5\x6b\x4c\xc7\x8a\x94\xeb\x14\x64\x9a\x00\x6a\xb1\x3e\xf9\x18\ +\xc2\xfd\x3b\xef\xa7\x3f\x09\x05\x98\xc8\x85\xa7\xb8\x28\xb1\xe0\ +\x27\x3f\x9c\xa8\x85\x23\xf3\xe4\x65\x91\x04\x84\x5c\x14\x94\x17\ +\x5d\xcc\x31\xf6\x64\xd2\xeb\x8a\x54\x5d\x50\x2a\x8b\xe2\x2f\x05\ +\x46\x49\x28\x1d\x49\xe5\x7c\x91\x72\xed\x1d\x3b\x76\xd0\xb4\x55\ +\x00\xbf\xf8\x8b\x17\x2f\x9e\xbc\x8b\x8b\x38\x46\x50\xd2\x7f\x71\ +\x43\xd6\xf5\x52\xd2\x01\xee\x18\x7b\x3c\xc5\x23\xe3\x22\xab\xcf\ +\x11\x91\x8e\x9f\x57\x0e\x17\xfc\xe4\x27\xcf\x46\xab\x42\x20\x01\ +\xb6\x6d\xdf\x46\xd3\x4e\x01\xf4\xe2\x4f\xe4\xc2\x8b\x5a\x5c\x08\ +\x20\x24\x20\x41\x74\x02\x52\xcc\x73\x52\x08\x89\x0b\xe3\x94\x05\ +\xd1\x2d\x14\x05\xb0\x80\x11\xea\x1c\x01\x40\x22\x65\xfd\xb3\xb2\ +\x11\x44\x04\xb9\x0e\x11\xcd\xca\x11\xce\x07\x7e\xfa\xd3\xff\xcc\ +\x2e\x67\xeb\xd6\xad\x93\xb2\x36\x93\x4e\x04\x8d\xdb\xe2\x4b\x29\ +\xe7\xf2\x7f\xc0\x02\x11\x8e\x7f\x04\x2c\x02\x4e\xff\x0f\x24\x76\ +\x30\xfc\x0c\x1c\xf6\x2f\xc7\xf3\xe3\xdf\x9c\xce\x47\xf9\x1c\x61\ +\x01\x0b\xca\xbf\x25\xe6\x1a\xd2\xe7\x71\x3c\x26\xdf\x17\x07\xd5\ +\xc9\xf7\x13\x3f\x9b\x39\x28\x49\xfe\x13\xee\xe1\xbc\x05\x0b\x50\ +\x91\x73\x23\xd3\x41\x01\xc6\xc5\xef\x4b\x30\xb3\xf9\x4b\x14\x94\ +\x45\x4b\x0b\x17\x17\x63\x4c\x04\x51\x0f\xf2\x31\x50\x8b\xa5\xcf\ +\x61\xff\x37\x92\x72\x84\x6b\x30\x23\x2b\x0b\x8b\x00\x7a\xf1\x45\ +\x2f\xb6\xa4\xd4\x73\xbe\x46\x3a\xc7\x28\x10\x2b\xa5\x8c\x8a\x81\ +\xf8\x73\x66\x06\x51\x05\xa2\x0a\xcb\x6f\xbc\x71\x52\x40\xf2\xcc\ +\xc9\x72\x34\x04\x60\xd1\xa2\xc5\x7d\x99\x70\x8a\xa6\xbb\x58\x4c\ +\x89\xa6\x55\x19\xe3\xba\x3b\xcd\x66\x56\xd2\xf1\xc6\xdd\x17\xc3\ +\x9d\xcc\x2f\x45\x13\x1d\x7d\x05\xb8\x83\xcf\x2f\xc6\x9b\xf3\x8f\ +\x6a\x26\xdd\x59\xa6\x62\xe6\xc5\x52\x0e\xfa\x79\x28\x28\xa8\x76\ +\x23\x9f\xfe\xf4\xb9\x78\xfe\xbf\x7f\x06\x99\x24\xe3\x3c\x29\x0a\ +\x10\x18\x35\xe9\x0b\xa0\xa5\xff\x13\x6e\x02\x4e\xda\x5b\x93\xfe\ +\x3a\x6d\x95\xaf\x3f\x56\x83\x37\xc5\x01\x05\xf3\x9f\x7e\xc8\x76\ +\x31\xa5\xac\x58\x50\x46\x32\x5a\x67\x7e\xd6\xa0\x38\x92\xe3\x08\ +\xc9\xa1\xa1\x51\x04\x12\x80\x8b\xfa\x4a\xbe\x5f\x89\x56\x60\x9a\ +\xb8\x80\xa5\x4b\x97\x0a\x11\x81\xa8\x42\xb0\xc4\xc1\xec\x25\x13\ +\x98\xfc\xb1\x36\xcd\xcc\xc5\xa4\x82\x95\x89\x35\x3e\x9f\xf3\xf9\ +\xc9\xfc\x87\x7f\x17\x93\x0b\xe5\xd3\xd3\xe7\x71\x32\xd3\x32\x66\ +\xcc\x75\xfe\xbd\xb0\xc2\x01\xc5\x35\x48\xfc\xb9\xfe\x59\x32\xf1\ +\x2c\x41\x95\x38\xbb\x05\xc9\xd7\x80\xfa\xac\xf0\x0c\xe9\x79\x91\ +\x5d\x19\x1b\xb7\xc2\x81\x88\x22\xc2\xca\x15\x2b\x65\xca\x5b\x80\ +\xaa\xaa\x00\x01\x2e\xbe\xf4\xe2\x62\x6e\x11\x80\x14\xd4\x06\x0a\ +\xba\xcf\xce\xec\x53\x30\xbb\xc9\x7c\x8b\x07\xea\x16\x99\x93\xdb\ +\x65\xd6\x0a\x84\xe3\x05\x14\xc0\x41\xda\x9d\x49\x29\xa1\xef\x85\ +\xb3\x49\xd6\x46\x3e\x02\x7d\x6b\xcb\x1a\xae\x91\x83\x10\x01\x40\ +\x51\x89\xb3\x6b\x2b\xd6\x26\x85\x8e\xd9\xdb\xc5\x9f\xcf\x9f\x3f\ +\x1f\x2f\xfe\xcf\x8b\x93\x02\x06\x27\xd4\x02\x5c\x75\xd5\xd7\x24\ +\xd2\xaa\x51\xbb\xc7\xf2\x2e\xca\xbb\x33\xed\x24\xb0\xda\x69\x6c\ +\xd1\x36\x07\x30\x56\xac\x07\xe7\x1d\x99\x41\x1e\xdb\xdd\x9a\x2d\ +\x8b\x46\xda\x6c\x51\xbb\x28\x80\x87\x1c\x35\xb0\xfd\x3c\x28\x90\ +\x28\x3a\x0a\xd0\xd7\x50\xd6\x2b\x47\x03\x6c\x2c\x50\xfe\x3c\x75\ +\x0d\x6d\x75\x42\x44\x82\x68\x49\x38\xa4\xa1\x89\xb0\x7a\xf5\x6a\ +\x99\xb2\x16\x80\x42\x36\x0d\x9f\xbf\xe8\x22\x05\x76\x38\x6d\x0a\ +\x07\x98\x5c\x7c\x2c\xcd\x71\xb7\xe8\x9d\xc6\x3a\xce\x57\x5b\x9f\ +\xa5\x06\xcc\xc4\xfb\x77\x87\x12\x45\xec\x67\x67\x9c\x20\x81\x11\ +\x00\x13\x84\xc2\xa2\x51\xba\x4f\x1d\xdf\xa7\xbf\x59\xf3\x0a\xe2\ +\x70\xa1\xb2\x22\xc2\x0a\x94\x86\x6b\xb0\x3a\xeb\xaf\xcf\x9e\x87\ +\x5f\xfe\x72\xef\x84\x33\x35\x13\xac\x00\x14\xd7\x23\x7e\x71\x91\ +\x11\x61\x0d\x8f\x44\x9c\x39\x94\x82\xb7\x32\xbc\x67\x83\x94\x0d\ +\x98\xe2\x74\x7c\x41\xf3\x92\x6d\x39\xd5\x18\x3c\xd2\x0a\xa5\xd8\ +\x38\xad\x28\x64\xc8\x1f\x0a\x16\x2b\x86\xa0\x99\xf9\x13\x45\x22\ +\x45\x57\xa5\x63\x0d\x52\xf7\x6f\x49\x9f\x02\x58\x35\xf0\xf5\x91\ +\x82\xc4\x0d\x44\x53\xd5\x05\x5c\x73\xcd\x35\x52\x19\xf3\x8f\x54\ +\x9f\x1f\xe3\x61\x18\x00\x16\xec\x9f\x8b\x97\xc1\xf9\x67\x1c\x82\ +\xfa\x62\xd6\x99\x6b\xe4\x8d\x70\x0a\x01\xad\x3b\x29\x04\x51\x71\ +\x2d\xd9\xbc\x67\x73\xcc\x06\xc4\x65\x70\x67\xee\x31\xdd\x5b\x31\ +\xf7\x61\xb5\x38\x3f\xa3\x26\x9f\x02\xe0\x63\xe7\x86\x60\xaf\xc9\ +\xd6\x95\x15\xb7\xc7\xa0\x0a\x40\x45\x18\xb8\x75\x40\xa6\x9c\x05\ +\x20\x0a\xdc\xf6\x67\xff\xf1\xc2\xd4\x96\x65\xe2\xe3\x44\x8f\x26\ +\x20\x96\xa9\x57\x4d\xc5\x8a\xda\xcb\x8a\xdc\x21\x2a\xc4\x90\x01\ +\x84\xe2\xc2\x37\x1f\x42\x92\x05\x76\xdc\x89\xb7\xcf\x8c\xb1\x34\ +\xc4\xfd\xd6\x9a\x70\x27\x1e\xc0\xb9\xa5\x4c\x2e\x77\xc8\x0f\x98\ +\xd0\x33\x3e\xcb\x47\xfe\xe2\x23\xf8\xcd\xff\xbe\x3c\xa1\x21\xe1\ +\x84\x58\x80\x6f\x7c\xe3\x5a\x21\x0a\x69\x55\x61\x18\x06\x2f\xec\ +\x48\x14\x16\x2c\x2e\x2a\x6b\xb6\x0c\xe5\xdf\x9c\x81\x92\x14\x53\ +\xcc\xd6\x12\x00\x6c\x28\xdc\x0c\xaa\x58\x4c\xe8\x66\x80\x98\x0b\ +\xff\x72\x88\xa9\xc2\xc8\x0c\x3c\xd9\x52\xcd\xec\x2c\x46\xb2\x2e\ +\xa2\x2c\x58\x23\xd8\x63\x07\x48\x55\xc8\x09\x2e\x4c\x67\x02\x91\ +\x2c\x8c\x2a\x86\x84\x83\x83\x6b\x64\xca\x58\x80\x8a\x82\x6e\x5d\ +\x70\xc1\x3f\x64\xc4\x0f\x43\xd6\xb8\x30\x4c\x79\xc3\x2f\x7f\xf9\ +\x9f\x1a\x3f\xf3\xe1\x47\x1e\x89\x84\x8a\x4d\xde\x88\x08\x48\xc8\ +\x7a\x54\xf1\xf9\x82\xe2\x73\x8b\xb1\x28\x67\x50\x34\xdd\x96\x75\ +\xd4\xd6\xc5\xb0\x47\x8a\xff\x91\x9c\xda\x15\xb1\xad\xe6\xd4\x01\ +\x84\x96\xdb\x62\x13\x4f\x86\xe7\x08\x51\x00\x65\xdc\x01\x9c\x79\ +\xe6\x99\x78\xe5\xf7\xaf\x80\x26\x08\x0d\x4c\x88\x02\x50\x55\xe5\ +\x90\x46\xc3\x6b\x4d\xef\xa6\xa4\x1c\x67\xca\x4f\xfa\x4a\xe7\x8a\ +\x32\xb1\x09\x60\x71\x66\xdb\xd0\xb8\xd0\x7a\x0e\x00\x15\x1a\xa0\ +\x7c\x26\x59\xf6\x2e\xa3\x75\x71\x0a\x95\x14\x40\xa1\xd4\x0c\x40\ +\x45\xdd\x93\x3a\xa7\x28\x79\x83\x02\xe5\xe7\xa1\x0c\x32\xc3\x3d\ +\xb0\x3a\x9e\x50\x51\x05\x99\x2a\x2e\xe0\x86\x1b\x6e\x88\xcc\x9f\ +\x4a\xd6\x40\xc5\xd3\xc6\xc4\xea\xc4\x8b\x18\x9f\xec\x85\x33\x8b\ +\xa7\xd8\x36\x56\x8c\x9f\x66\xee\x32\x97\x60\xc1\x16\x0c\xcb\x98\ +\x62\x7a\x0b\x4a\xa1\xc1\xa5\x33\xf3\x52\x8b\xe5\xe3\xf9\x63\x3a\ +\x91\xa4\xdc\x11\x7b\xf7\x01\xc5\x55\x48\x0c\x8d\x35\x10\x45\x66\ +\x0a\x0b\x20\x0d\xcc\x60\x05\xc2\xd0\xd0\x90\x9c\xf0\x16\x80\x62\ +\xe9\xcc\x79\x7f\x77\x5e\x5e\x7c\xaf\xbe\x01\x13\xb2\x0e\xd4\xfa\ +\x30\x00\xe2\xb3\x3e\xe0\x9a\x59\x15\x05\xb6\x2c\x39\x07\x15\x67\ +\x67\x37\x42\xcd\x49\x1a\xf1\xc0\xd0\x85\x73\xa5\xa4\x80\xeb\x00\ +\xce\xe2\xd8\x92\xc5\xcc\x8c\x9f\x35\x81\xc2\x1e\x7c\x96\xcf\xe1\ +\xc8\x71\x9c\x7a\xea\xa9\x38\x70\xe0\x00\x26\x02\x0d\xce\x9c\x00\ +\xfb\x1f\xc1\x9f\x38\x92\xc6\x66\xd0\x32\x97\xa3\x90\xb9\x74\x31\ +\x74\x39\xb3\x26\x96\x8b\x6d\xca\xc2\x15\x4b\x52\x0a\x3b\xa4\xe6\ +\xc3\xa9\x60\x93\x5a\xb6\xce\xfa\x6d\xcd\x3d\x34\x65\x03\x0b\x39\ +\xa4\x5d\x06\xb9\x84\x12\xa7\x88\x31\x2a\x8f\x18\x02\xc9\x73\x22\ +\x04\x8a\x61\x6d\x49\x10\x65\x82\xe2\x44\x75\x01\xcb\x97\x2f\x97\ +\x2a\x86\x7f\x81\xda\x85\x4b\xf4\x14\xb3\x59\xa8\xdb\x62\x66\xbb\ +\x39\xba\x9c\xe8\xe1\x3a\xe5\x2a\x2a\x96\x66\x6f\x72\x53\x92\x48\ +\xf4\xfd\xa0\x44\x02\xac\xeb\x01\xea\xf5\x02\x16\xd9\xa7\xfb\xb4\ +\x45\x22\xc9\xb4\x27\xf3\x0e\xf1\xc9\xa3\x42\x43\x43\x94\x6b\x32\ +\x91\x43\xf9\x8e\x02\xfd\xc1\xc6\x3d\x55\x04\x10\x2a\x0c\x0f\x0f\ +\xcb\x09\x6b\x01\x12\xf3\xf7\xc9\x4f\x7e\x2a\x82\x5c\xce\xe6\xb1\ +\x30\x70\x63\x51\xf1\x49\x47\xfe\x2a\x4a\xe8\x64\x02\xb8\xec\xc2\ +\x54\x94\xdb\x58\xa3\x57\x4f\xe9\x26\x3b\x50\x2c\x03\xd7\x5c\x8e\ +\x28\x7a\x17\x63\x92\x4d\x3e\x29\x57\x23\x1e\x64\x9a\x88\x23\x7e\ +\x06\x19\x4e\x19\xc2\x8a\xc8\xf6\x2c\xa6\x66\x0c\x15\xe8\x53\xce\ +\x2a\xdf\xd3\xac\x93\x4e\xc2\x5b\xa3\xa3\xe3\xee\x06\xc6\x5f\x01\ +\xa2\x6f\x34\xa6\x59\x91\x3e\x52\x5b\x50\x81\x10\x59\xfb\xda\x64\ +\x01\xdc\x37\xcd\xca\x67\x06\x8b\x1e\xeb\xfc\x52\x15\xae\x06\xe6\ +\xca\x9f\x8a\xcb\x29\xe4\x7a\x3e\x45\x1b\x17\xe4\x4e\xd9\x32\x09\ +\x54\x3c\x18\xef\x59\x94\x5f\x90\xc2\x6c\x29\x93\xce\xb6\x0e\x41\ +\xbc\xef\x2a\xb4\x78\x58\x7b\x02\x29\x45\x0f\x91\x53\xd8\x33\xa0\ +\x10\x5d\x9d\xb0\x18\x60\xc5\x8a\x15\x92\x40\xa0\x78\x86\x2d\x73\ +\xe5\x54\x16\x4c\xb1\x73\x69\x35\xa5\x17\x08\x84\xe6\xde\xcb\x42\ +\x5e\x7d\xf5\xd5\x8d\xe7\xec\xdc\xb9\xb3\x00\xbb\xac\x10\xa2\x2a\ +\x81\x80\x6b\xaf\xbd\xb6\xf1\xdc\x6d\xdb\xb6\xe5\x6b\x5c\x7f\xfd\ +\xf5\x8d\xc7\x6c\xd9\xb2\x25\x2a\x0b\xb9\x54\x36\x5c\xea\x1b\x3e\ +\x89\x6c\x43\x52\x29\x9b\x82\x4d\xda\x58\x4c\xb8\x98\x36\xd8\xfa\ +\xf5\xeb\xe5\xd6\x5b\x6f\xa5\x13\x4a\x01\x02\x48\x01\xfe\xe6\x9c\ +\x73\xc0\xec\xf3\x77\x8c\x9c\xef\x92\x3a\xd0\x0a\x24\x4c\xf7\xe7\ +\x11\xd6\x49\xa3\xa2\x2c\x5f\xbf\xe6\x9a\xc6\xe3\xef\xbf\x7f\x47\ +\xf4\xd3\x9a\x7c\xa2\x7c\xbd\xeb\xae\xbb\xae\xeb\xf5\xae\xbf\xfe\ +\x7a\x6c\xdd\xb2\x05\x5d\xbd\x52\x0a\x41\xe1\x29\x63\x74\x59\x7c\ +\x45\x73\xab\x84\x12\x29\xcc\x98\x33\xa5\xea\xbb\x22\x11\xcc\x98\ +\x31\x23\xa4\x8a\xc7\xd1\x0d\x8c\x8b\x4d\x59\xb5\x7a\xb5\x50\xac\ +\x66\x4d\x9a\xcf\x0e\x08\xa5\xe2\x47\x0d\xe0\x38\xc6\xd0\x50\x54\ +\x6a\xc7\x2f\xdb\x25\x6e\x10\x2b\x7b\x9a\x64\xc7\x8e\x1d\xaa\x86\ +\xc0\x27\x63\x7a\x2f\x7e\xe6\x34\x96\x2d\xab\x71\xf7\xde\x2d\x09\ +\x2c\xff\x50\x03\x88\xb0\xb5\x02\xba\x30\x34\xd5\x42\x88\x2a\x10\ +\x65\x0d\x6a\x55\x31\x6b\x02\xca\x15\x85\x3a\x81\x91\x8d\x1b\xe5\ +\x84\xb1\x00\xa9\x84\x69\xde\xbc\x8f\x65\xa4\xaf\xc2\x67\xe5\x47\ +\xeb\x09\x90\x92\x6b\xef\x4e\x06\x98\x84\x52\xac\xd3\xbb\xf6\xeb\ +\x75\xf3\xbd\x7d\xfb\x76\x15\x51\x88\x4d\xdf\xbc\x87\xaf\xec\xc6\ +\x65\x37\x76\x0b\x4d\x14\x40\xf4\x69\x66\x1f\xb2\xea\xd4\x32\x6c\ +\x6d\x43\x2e\x12\x75\x61\xb3\xeb\x4b\x20\x21\x30\x31\x66\xce\x9c\ +\x39\x6e\x11\xe1\xf8\x28\x40\x2c\xfb\x65\x31\x4f\x85\xe4\xfe\x49\ +\x24\xd3\x3e\x30\x40\x4c\x54\x81\x46\x1f\x44\x90\xfa\xfb\xba\x6b\ +\xaf\xeb\xae\x28\x04\xd7\x01\x1c\x62\x8e\x65\xcb\x96\x75\xbc\xc6\ +\xb7\xbf\xfd\x6d\x73\x1f\xcb\x6f\x5a\xde\xf5\x9e\x58\x34\x0f\x40\ +\x30\x95\x0e\xb6\xba\x2d\x12\x4f\x16\x99\xd6\x80\xa8\xae\x13\x85\ +\x52\x22\x94\x84\x5a\xe0\xaf\x68\xdc\x0a\x45\x8e\xd9\x05\xdc\x7a\ +\xeb\x37\xa5\x22\x42\x45\x94\xcd\xb2\x31\xb9\x99\x4e\x45\xa6\x4b\ +\x0d\xf5\xc9\x36\xcb\xd6\x59\x01\xb8\x2c\x7e\x07\x13\xbe\x75\xeb\ +\x96\x02\xfa\x52\xa9\x19\x4b\xe1\x01\xba\x7c\xfe\xe6\xcd\x9b\xe3\ +\xfd\x15\x4a\xf7\xde\x7b\xee\xed\xa1\x94\x9c\x15\x4e\xd3\xce\x22\ +\xd6\x05\xa6\xc6\x8f\x6c\xf2\xe1\x68\x62\x2e\xae\xc4\x64\x35\x59\ +\x1a\x6b\x1e\xa8\xaa\x50\x55\x15\xee\xdd\x7c\xaf\x1c\x77\x0b\x40\ +\xa8\x80\x0a\xf8\xc8\x87\x3f\x5c\xcf\xdf\x67\xd4\x1f\x63\xfc\x54\ +\xc6\x95\xeb\x01\xc4\x24\x6d\xba\x65\xbc\x12\x81\x74\xc3\x0d\x9d\ +\x11\x39\x9b\xba\x2e\x57\xac\x09\xc1\xf2\xe5\x37\xf5\xdc\xcd\xa4\ +\xc0\x59\xaf\x5d\x96\x2c\x5e\x2d\x93\x98\xe0\xbd\x67\xfc\xa4\x64\ +\x0e\x33\x98\x75\x49\xa1\xa6\xfe\x41\xb0\x8d\x90\x46\x47\x8f\x60\ +\xf6\x49\xb3\xc7\xc5\x0a\x1c\xb3\x05\xa0\x8a\x40\x55\x95\xab\x67\ +\x52\x85\x8b\x01\x81\x99\x79\x93\x4c\x6f\xea\xc4\x4e\xda\x21\x2c\ +\xdc\xe5\xcb\xe6\x8e\x8b\x7f\xdf\x7d\xf7\xd5\x76\x4b\xfe\x37\xf7\ +\x4e\x34\xdd\xb3\x69\x53\xad\xda\x27\x01\xc6\x91\x4d\x23\x3d\xac\ +\x12\xab\x32\xf7\x68\xaa\xb9\x3c\x8f\xae\xf0\xc9\xcc\x64\x4a\x56\ +\xb1\x06\xcc\xb6\x3e\x40\x54\x45\x12\xab\x96\x32\x0e\xc5\x13\xa0\ +\x8a\xd2\x04\x93\xe3\xa7\x00\x83\x83\x83\xa5\xf0\x43\xdc\x83\xf8\ +\x12\x2d\x51\x99\x41\x9d\x0d\xcb\x15\xba\xd2\x35\x0a\x58\x76\xc3\ +\xb2\x8e\x7e\xdb\x7f\x69\xd9\xe4\xea\x7b\xe2\xee\x79\x06\x93\xfd\ +\x53\x59\x4a\x19\xe3\xae\xa1\x29\x67\x8b\xc1\xb9\x57\xc1\x57\x2c\ +\x73\x72\x2d\x4a\x19\x58\xf5\x40\xa0\xa1\xd5\x2d\x28\x07\x9b\x22\ +\x91\x44\x31\x8f\x09\xe7\x68\xe0\xbe\xfb\xb6\xc8\x71\x53\x80\xa0\ +\x85\x84\x33\xce\x3c\x53\x71\xe0\x62\x43\x9c\x46\x6e\x5d\xf5\xc7\ +\xc1\x35\x76\x1e\x7d\xfe\x41\x5d\x47\xed\xa0\x31\xd7\xd4\xd1\x2d\ +\xc2\x00\x54\x83\x8a\x6f\x36\xed\xcd\x03\xe8\x86\x14\xe4\x9c\x83\ +\x0a\x59\xc5\xe5\x30\x04\x0d\xfd\x89\x6c\x2a\x8d\xa0\x1b\x5f\x0c\ +\x96\x0a\xe7\xec\xdb\xbf\x0f\x44\x84\x19\x15\x1d\x1f\x0b\xb0\x76\ +\xed\xed\xb9\xe3\x07\xb9\x0c\x4b\xe5\xe2\xe1\x9a\x28\xe3\xcf\x4a\ +\x7d\xbd\x5d\xb0\xc4\x0b\xbc\x17\x29\xbb\xa9\x14\x7c\x32\x24\x11\ +\x01\xa5\x17\xa1\xe3\x4e\xd6\x8d\x9f\xec\x2c\x19\x77\x07\x81\x62\ +\xf3\xf9\x2c\x70\xa5\x5d\x50\x4a\x9e\x3e\xcf\x73\x03\xba\xfc\x0d\ +\x99\x2f\x31\x1b\x47\x5f\x27\x6a\x6d\xaa\xbb\xdc\xbe\x7d\xbb\x4c\ +\xba\x02\xa4\xd8\x7f\xee\xdc\xd3\x9c\x46\xc3\xd5\xdf\xa5\x0a\x59\ +\xe4\x5d\x59\xdf\x69\x9c\x09\x93\xf7\x22\x2b\x57\xac\x30\xbb\xc6\ +\xb4\x6c\x2b\xb3\xdb\xcd\x94\x27\x1f\x5d\x23\x6d\x7a\x11\x41\xda\ +\xa2\xa5\xeb\x72\x71\x05\x6c\xba\x85\xeb\x38\x43\x2b\x03\xa4\x44\ +\x20\x63\x62\x31\x8c\xb7\xa2\xcc\x63\x78\xf5\xd5\x57\x91\x8a\x6f\ +\x26\x5d\x01\xaa\xca\xf7\xfb\xe9\x9e\x7a\xd5\xfd\xa3\xd3\x9e\x70\ +\xa9\x54\x6d\x3e\x93\x09\xed\x21\x23\x23\x9b\x3a\x66\x0b\xc3\x62\ +\xb1\xdb\x3d\xa5\x6a\xa8\xdb\x4e\x86\x2a\x01\x67\x97\x22\xee\xaa\ +\x38\xba\x5b\x48\x57\x3d\xc1\xb6\xb3\x1b\x6b\x97\x19\x52\x58\xb0\ +\x6a\x80\xac\x9f\x4b\xa0\xe7\x1c\x70\x2e\x9c\xad\xaa\x2a\x37\xe0\ +\x4c\x9a\x02\xdc\xb1\xee\x0e\x01\x08\x15\xd9\xbc\x7a\xaa\x6c\x35\ +\xbb\x90\xad\xa9\x0b\x29\x71\xb1\x80\x09\xbd\xfd\xf4\xc8\xc8\x08\ +\x46\x46\x36\x76\x3c\x66\xd5\xea\xd5\xe5\x4b\x75\xfd\xfb\xc9\xbf\ +\x77\xc5\x00\x9a\xce\x05\x2b\x1a\xbb\x37\x0f\x20\x3a\x66\xcf\x03\ +\x27\x34\xa5\xcb\xb6\x4e\x81\x11\xeb\x25\x58\xd1\xc9\xec\xf8\x10\ +\x8f\x15\xd8\x0d\x9a\xe0\x9c\x20\x22\x22\xec\xfc\xce\x4e\x99\x34\ +\x05\x20\x0a\x16\xe0\x94\xf7\xbf\xdf\x68\xa5\x6e\xe0\x10\x95\x0f\ +\x30\x3b\xca\x34\x51\x48\x0d\x20\x75\x0d\xb9\xe2\x17\xb0\x61\xc3\ +\x86\xc6\x63\x6e\xf9\xe6\x2d\xe6\x3a\x1e\x84\x76\xc3\x00\x09\xc0\ +\xb1\x0f\x05\xc1\x5d\xb9\x09\xc0\xee\xda\xf0\xf8\x6a\xf7\x1a\xdc\ +\xa3\xfa\x10\x1d\xe2\xd7\xdd\xcb\x50\x9b\x43\x93\x58\xb5\x5a\x43\ +\x16\xbc\xf4\x9b\xdf\xc4\xd2\xf1\x6a\x72\x2c\xc0\xf0\xf0\x9d\x82\ +\xd8\xb8\x68\xe2\x6e\x68\x34\x0b\x83\x58\x6d\x7d\xbc\xee\xb8\xb1\ +\xc8\xb7\xbf\x50\xad\xd7\x71\xd1\x9c\xfb\x88\xa4\xcb\x39\x83\x83\ +\x83\x2e\x8c\x4d\x9d\x49\x82\xb5\x6b\xd6\x76\xcd\x4f\x64\x0b\x57\ +\xab\xec\x89\xd3\x45\xb8\xb0\x92\xe1\x87\x30\x1c\x89\x61\x4f\x21\ +\xaa\x67\x42\x81\x46\x37\xc5\x44\x5b\x54\x08\x07\x2e\x86\x80\x5d\ +\xbb\x1e\x38\x6a\x2b\x30\xf3\xe8\x77\x7f\xe8\x57\x7b\xdf\xfb\xde\ +\x17\x47\x9a\xf8\x5a\x0e\x5b\xde\x55\x2a\x73\x54\x7d\x9c\x61\xeb\ +\xc8\x72\xf6\x1d\xbf\x6c\x9d\x0e\x06\xee\xba\xeb\x2e\x0c\x0c\x0c\ +\xd4\x8e\x1b\x18\x18\xc0\xf0\xb7\x86\x6b\xc5\x9e\x10\xe0\xce\x3b\ +\xef\xc4\x9a\x35\x6b\x3a\x41\x88\x92\x3c\x8a\xa6\x95\x7b\x41\x12\ +\x35\xd4\x21\xf3\xf8\x68\xa8\x16\x02\x30\x3c\xdc\x3c\xab\x3a\x3f\ +\x83\x61\x02\x53\x17\x13\xa9\x22\x9a\xc0\xa6\x0a\x6c\xd1\x28\x18\ +\xd8\xbb\xf7\x57\x98\x37\x6f\xde\xe4\x58\x80\xe4\x73\x58\x01\x20\ +\x56\xa5\xd7\xbe\x14\x1a\xba\x1e\x90\x1d\x3b\xa6\x06\x46\x14\x54\ +\xdc\x19\x71\x73\x4a\x29\x73\x2f\x93\xae\x07\x4c\x70\x5f\x2e\x66\ +\xed\xed\x6b\xd5\x0e\x0b\xbb\x7b\x68\xe8\xf6\xbe\xc3\xcf\xe4\xaf\ +\x93\x09\xb7\xe6\xba\x37\x90\x14\x6d\x35\x81\x9a\xbf\xd7\x6c\x6a\ +\xa9\x33\x2c\x04\x5c\x6a\xc3\x9f\x50\x05\x58\xbf\x7e\x7d\x60\xfe\ +\x72\xf9\x95\x22\x30\x6a\xed\x53\x9c\x63\x7b\x33\x88\xc9\xa0\x7f\ +\x36\xc5\x90\xdd\x76\x5c\x4a\x33\x6b\xe2\xe8\xce\x0e\xbb\x6a\xcd\ +\x9a\x35\x39\xf4\xb4\xbc\x83\x60\xdd\xd0\x50\xc7\x6b\x0c\x0d\x0d\ +\x61\x68\xdd\x10\xd6\xad\x1b\xc2\xba\x75\xeb\x7a\xf3\x0f\x86\xa8\ +\x19\x2b\xd9\x41\x76\x80\xb2\x87\x12\x71\x4e\x5c\xa9\x69\x63\x22\ +\x18\x33\xc4\x11\xe7\xe8\x02\xaa\xb1\x35\x85\xbf\x81\x91\xad\xf0\ +\xe0\xee\xdd\x32\x61\x0a\x90\x76\xff\x8c\x19\x33\x8d\x5f\x87\x62\ +\xf4\x58\x21\x5d\x4f\x01\x43\xb8\x16\x3b\xeb\xc5\xe9\x1a\x06\xd6\ +\x3a\x82\x83\xf2\xdc\x71\xc7\x1d\x8d\x87\xdf\xbe\x76\xad\xcb\x37\ +\x14\x65\x3d\x4a\xba\xbb\xdb\xf2\x19\x64\x0f\x37\x34\x42\x8f\xc1\ +\xe9\xa7\xd0\x45\xf7\x38\x96\x71\x77\x3a\x94\x65\x95\x73\x11\x13\ +\x81\xbd\xf8\xe2\x8b\x11\x0b\x10\x26\x50\x01\xaa\x92\xf8\xc9\x89\ +\x1e\x31\xdd\x30\xbe\xe2\x25\x55\xef\xe8\x78\x9f\xa5\x81\xe9\xea\ +\x61\xd6\x99\x2d\xdf\xd0\x2f\xc7\x6f\xc8\xa0\xf8\x67\xed\xda\x35\ +\x7d\x3d\xef\x6d\xb7\xdd\xd6\xfd\xf3\xd9\x35\x8b\xba\xb1\x75\x9a\ +\xd1\xeb\x15\xdd\xb0\x29\x9d\xe7\x3a\x78\xce\x0d\xae\x9a\x43\x81\ +\xe9\x88\x22\x44\xeb\x3c\x11\x0a\x30\xb2\x71\x63\xcc\xfb\x17\x73\ +\x9c\x89\x1d\xd3\x0d\xcb\x96\xdd\xf3\x0b\x0e\x76\x83\x9e\x58\xf9\ +\xbf\xde\xb4\x2b\xfb\x88\x02\x8c\xdb\x6f\x6f\x36\xeb\xeb\xd6\xad\ +\x2b\x98\xc1\xc5\xe1\x83\x83\x83\x1d\x77\xf7\xc0\x6d\x03\x18\x18\ +\x18\xc8\xf7\xdb\x0f\x2e\xd1\x74\xaf\x61\x40\x7b\x29\xc0\x98\x43\ +\xff\x6c\xe7\x15\x9a\x5c\x0a\x90\x19\x42\xb8\xa4\x5b\x8a\x06\xaa\ +\x8a\xf0\xd0\xf7\x1f\xea\xdb\xcc\xf5\xad\x2e\x9b\x46\x36\x09\x08\ +\x78\xe7\x9d\x77\x6c\xa9\x57\x02\xc1\xae\xa4\x4b\x61\xda\xc6\xaa\ +\x5f\xdb\xbc\x09\x1b\x25\xa0\x53\x19\x97\xea\xf0\x51\xe5\x57\x76\ +\xfe\x06\x6a\x65\x58\x76\x5e\x5f\x7d\x9c\x1c\x52\x43\xa6\xd4\x47\ +\xc0\x02\xc0\xdd\xeb\xd7\x37\xf3\x0e\xb7\xac\xd6\xe5\x06\xf5\xea\ +\xa5\x54\x5f\x40\xca\x8d\x99\x6e\x63\xb8\x6e\xe7\x52\x1e\x6e\x5b\ +\xcd\x7c\x6d\x03\x4c\x34\xa0\xff\x7d\xee\x67\x3e\x03\x12\xe0\x2b\ +\xff\xfc\x15\x1a\x37\x0b\xb0\xe9\x9e\x7b\x24\xf9\xff\xec\x8b\xb8\ +\xbe\xd3\xfd\x84\x0b\x61\x65\x26\xfd\x8c\x80\x5a\xf5\x10\x5c\x2f\ +\x3f\x1b\xf7\x60\x62\xee\x48\xb6\xb0\xc9\x37\x70\xad\xf1\x32\xf3\ +\x0d\xdc\xcc\x49\x40\x5b\xab\xd4\xc8\xe2\xa6\x78\x76\x73\x01\x99\ +\xd5\x64\x3f\x86\x4e\x72\xde\x3e\xdf\xd3\x98\x94\x44\x91\xce\x0c\ +\xc2\x31\x84\x7e\x52\x4a\x43\x92\xcd\xa7\x95\x75\xf2\xaa\xa2\x90\ +\xa5\x7d\xe4\x91\x47\xfa\xb2\x02\x33\xfb\xd3\x12\x02\x2a\x60\xf4\ +\xad\xb7\xf4\x76\x77\x8d\x9f\x62\x9b\x26\x93\x56\x8a\x6d\xfe\xd4\ +\xe6\x90\x5d\xc5\x8e\xd6\x68\x26\xc9\x0d\x11\xfa\xb3\x52\xf3\x0e\ +\xa3\x69\x97\xab\x6b\xa8\x83\xf4\x94\xd1\xf5\x1d\x77\xf3\x2d\x48\ +\x1d\x2c\x65\x34\x91\x60\xe3\xc6\x66\xd6\x71\xd5\xaa\x95\x86\xbc\ +\x21\xb2\xa3\xe6\x84\x4a\xad\x60\xac\xf6\x87\xe6\x95\xeb\xdd\x4c\ +\xa5\xa7\x30\xe5\x10\x08\x7e\x96\x10\xca\x67\xe4\xa2\x5a\x1b\x65\ +\xec\xd9\xf3\x5f\xf8\xfb\xf3\x17\x8c\x2f\x06\xc8\xbb\x5f\x73\xdb\ +\x91\xd5\x82\x06\x3d\x35\x1f\xcd\x36\xbe\x6d\xa8\x19\xa8\x0d\x52\ +\x56\x20\x88\xc1\xaa\x82\x26\xf1\xf2\x2e\xcb\x68\xc6\xc9\xa9\xfc\ +\xbb\x9f\xdf\x8b\xee\xa9\xdd\x0d\x1b\x36\xa8\x90\x2e\xdc\xc7\xc6\ +\x8d\x1b\x7b\x00\xc0\x82\xde\xd9\xcd\xf9\x81\x4a\xfc\x40\x2c\x20\ +\x6c\x04\x78\xb9\x78\x66\x2c\x9e\x03\x03\x76\x73\x15\x91\x1b\x95\ +\xe7\x93\x44\x61\xfa\x58\xff\xd1\x40\xcf\xa3\x36\x6f\xde\x2c\xa9\ +\x23\xe5\xd0\x1b\x87\xac\xdf\xa2\x66\x7f\x9b\x5f\x88\x01\xdb\x49\ +\xa7\xdb\xba\xa9\xc1\xb7\x85\x0d\x20\x6e\x78\x64\xa1\x0f\xc5\xf7\ +\x73\x53\x53\xcf\x9d\xa4\x32\x3a\x3f\x5c\x2e\x9f\xd3\x29\x97\xd0\ +\xaf\xac\xb8\xf9\xe6\xe6\xfe\x40\xd8\xd2\xf0\xf2\x3d\xb8\x11\xb6\ +\x6a\x5c\x3d\xe9\x12\x72\xf5\x99\x50\xac\x9f\x9f\x75\x64\x3e\xd1\ +\xbf\x07\x41\x04\x0b\x17\x2e\xcc\x6f\x34\xb9\xfc\x8a\xcb\xe9\x98\ +\x2c\x40\x15\x79\xff\x37\x0e\xbe\xd1\x38\x9a\x5d\x1a\x06\x3e\x88\ +\x1f\x88\xc8\x25\x23\x37\x26\xc5\x52\xb0\xcf\xbf\x8b\x1f\xce\xe0\ +\x79\x72\x36\xbf\xd3\xc9\x1e\xa4\xd1\xec\x79\x7a\x57\xc3\x40\x49\ +\x84\x7b\x5c\xb5\x6a\xd5\x31\x29\x80\xe6\x32\x74\x78\xda\x3c\xb5\ +\xcc\x0d\xc1\x80\x64\x76\xb2\x94\x91\x41\xdd\xb7\xad\x62\x66\x57\ +\x10\x52\xe6\x27\x79\x36\xb5\x64\x3f\x7f\xfc\xe3\x1f\xc7\x90\x9d\ +\x8e\x1d\x03\x54\x15\x95\xce\x59\x3f\xc5\x5b\x37\x35\x34\x4c\xe7\ +\x36\x6f\xe3\x50\x73\x75\x04\xa4\xaa\x62\x6d\x5b\x54\xe3\xf0\x64\ +\x6d\x21\xd4\x1c\xc1\x72\xfd\xd8\x69\x9c\xb6\x3e\x4a\xc3\x69\x19\ +\xcc\x88\xd2\xf8\x09\xc2\x8a\x95\x2b\x70\xcf\xa6\x7b\x8e\xae\xfc\ +\xec\xa6\x9b\x72\xa2\x09\x00\x88\xc5\xa0\x71\x51\x3b\x92\xd0\xd0\ +\x18\x62\xb8\x7d\xa8\x81\x10\xc5\x42\xe4\xa6\x19\xd1\x65\xc9\x25\ +\x8a\x21\xd5\xeb\xe8\x7b\x1f\xf2\x80\x19\xa1\xdc\x47\x78\x4c\x2e\ +\x60\xeb\xd6\x6d\xa1\x47\x96\x80\x3f\xfc\xe1\xf5\x86\x11\xea\x02\ +\xef\x09\xa4\x61\xfa\xa7\x09\xf1\xf2\x40\x88\x62\xca\xf2\x80\x88\ +\x3c\x02\x4e\xbd\x84\x45\x1a\x42\x1e\x6a\x32\x89\xe5\x6d\x20\xa6\ +\xa3\x46\xea\x0d\xab\x56\x91\x05\xf7\xde\xbb\xb9\xfb\xc2\xdf\x78\ +\xa3\x0f\x56\x5d\xf9\x39\xb9\x07\xd6\x60\xb5\x74\x1a\xa7\xd6\x11\ +\x6a\x0a\x9b\xbb\xbc\x51\xa4\x69\x88\x05\xb9\x29\xe6\x09\xf8\xa6\ +\xc7\xfa\xdc\xe7\x3e\x97\x5f\x41\xb3\x68\xf1\x22\x7a\x4f\x0a\xb0\ +\x6d\xdb\x36\x21\x02\x5e\x7d\xf5\xb5\xf2\xa5\x99\xd8\xd9\xf7\xc7\ +\x7b\xe5\x20\xf3\xb5\x89\xf8\x78\xbf\x69\x66\x9e\x9b\x24\x66\x22\ +\x0e\x8b\x8b\xa5\x31\x8b\x58\x1f\x0f\xe3\x5b\xc2\xad\x42\x36\xbc\ +\xc7\x07\x62\xa7\x80\x36\x59\x3d\x95\xa1\x6b\x18\x2f\xd2\xf0\x64\ +\xa5\x7d\xbc\x7c\x8f\xba\x1f\x42\x0a\x6e\xf1\xb3\x0e\x0c\x9e\xf2\ +\xcf\x6d\x3b\x9f\xb4\x02\x5d\x74\xd1\xe7\x41\x10\x7c\x71\x51\x67\ +\x05\xe8\xe8\x02\x76\xec\xd8\x9e\xe1\x8b\x30\x07\x93\xca\xe2\x08\ +\x9a\xfa\x62\xea\x07\x12\xd5\x6b\x5f\xe7\x67\xa4\xb6\xb8\x7e\x10\ +\x23\xf4\x94\x31\x2a\x21\x97\x38\x25\xf4\x26\x47\x5b\xa3\x06\xf5\ +\xd0\x33\x5c\xeb\x24\x8e\x27\xad\x84\xeb\x03\x1d\x9c\x5b\x13\x12\ +\xb3\x98\x62\xd2\xdf\xe5\x19\x73\x80\xe9\xe6\x02\x71\xea\x23\x13\ +\xdd\xcb\xa8\x42\x3d\x4a\x1c\x02\xf2\x5b\xc8\xc4\x60\xeb\xe2\x54\ +\xf5\x03\xa5\x69\x2d\x8f\x3d\xf6\x98\x5c\x76\xd9\x65\x74\x54\x0a\ +\x90\x2a\x4c\xfe\xef\x77\xbf\xcb\x55\x2f\xe5\xb9\x75\x67\x4b\x6d\ +\x80\x7a\x68\x61\x56\xcb\xe9\x07\x45\x89\x9a\xb1\x27\xd1\x46\x53\ +\x9e\xda\xe1\xe2\xfa\x34\x60\x82\xdd\x7e\x8a\x3d\xf9\x86\x6d\x73\ +\xa3\xda\xb4\xef\xb7\x65\x07\x6a\x27\xb2\xb5\x1a\xfa\x10\xe3\x3a\ +\xfc\xa0\xa9\xe4\xd3\xf5\xa0\x28\x9d\xa9\x4b\x13\x50\xdc\x8b\x27\ +\x48\xea\x1d\x4b\xe2\x66\x13\x9b\xf9\x44\xb9\x16\xa2\xf0\x2c\xcc\ +\x1e\x43\xd4\x5f\x92\x21\x10\x3c\xf9\xd4\x93\xb8\xe4\x92\x4b\x73\ +\xcc\x70\x74\x0a\x10\x1b\x10\xf3\x14\x4d\xa8\x76\x2f\x88\xdb\x71\ +\xda\xf7\x91\xca\x72\xa1\x80\x33\x29\x2d\x61\x1e\x1f\x14\x34\x9b\ +\x2e\x2e\x76\x60\x12\x53\xed\xad\x5d\x7a\x48\x2b\x6b\x56\x49\xfc\ +\xeb\xe0\x50\x0f\xa5\x14\xa9\xd4\xed\x2d\x60\xdc\x40\xef\x5a\x57\ +\x23\x7a\x9b\x66\x14\x9e\xe8\x1c\x56\x8b\x42\x90\x3c\x35\x15\x1d\ +\x2c\xa2\x1e\x0f\x63\x5a\xc5\x54\x78\xc8\xe6\x2d\x23\x16\x87\x90\ +\xd4\xe6\x94\x47\x3e\x80\x8e\x4e\x01\xbe\xb3\xf3\x3b\x19\xd7\xb0\ +\x9f\xc9\xab\xfc\x63\xe3\x34\x10\xd4\xcd\xb0\x99\xd7\xeb\xc6\xb0\ +\xf9\xaf\xde\xbf\xd0\xc1\x70\xeb\x19\xe8\x48\x9e\x19\xdc\x0d\xdc\ +\x95\x5d\xe8\x27\x70\x35\x31\x93\xf5\x0a\xa5\x3a\xb0\x55\xb8\x84\ +\xc4\x72\xfb\x6c\x01\xa0\x74\xc0\x24\x4d\x2c\x60\xee\x2e\x16\xae\ +\xb9\x91\xe6\xf7\x0d\xd5\x20\xa9\xea\x37\xb4\x96\xac\x8a\xd1\xc0\ +\x53\x4f\x3d\x25\x5f\xf8\xc2\x17\xa8\x2f\x05\x48\xf1\xe3\xaf\x7f\ +\xfd\x6b\x5b\xfa\x14\x4d\x31\x45\x24\x6e\x36\x80\x7f\xef\x8f\x99\ +\xe9\x67\xdb\xc2\x35\x72\x37\xfa\x2d\x66\x2b\xbb\x2f\x2e\x9a\x7d\ +\x15\x1e\x32\xa3\x3e\xc6\xd5\x58\x6c\x56\x53\x40\xd3\x67\xa0\x61\ +\xc0\x33\x2b\x9f\xcb\x86\xa6\x36\xe1\x1c\x95\xb7\x98\xe8\x90\x16\ +\x1d\x22\x9f\xe2\x2e\x2d\xba\xb1\x93\x43\x29\xb3\x9b\xa5\xb4\xac\ +\x03\xa8\x14\x1b\x30\xf6\x23\x8f\xfe\xe8\xd1\xae\xaf\xea\xab\x29\ +\xc0\xae\x5d\xbb\xa4\x96\xd5\xca\xd3\xb3\x0a\xae\x29\xfd\x70\x64\ +\x98\x2c\x83\x0b\xd4\x5b\xbc\xec\x30\xef\x3a\x71\x20\x1d\x07\x27\ +\x24\x8c\x20\x66\x50\x94\xdd\xb8\xe2\xc6\xf2\x29\x9a\x50\xa4\x36\ +\x9f\xd0\x00\x36\xcd\x32\xaa\xe1\x52\x3e\x7a\x10\x17\xf7\x9b\x99\ +\x00\x79\xa0\x13\xd9\x50\xd0\x2b\x3e\x44\x8d\x18\x2e\x63\x61\x1b\ +\xdd\x8c\x7f\x59\xd5\x38\x48\x93\x15\xa8\x3a\xf1\xfe\x7b\xf7\xee\ +\x55\x25\x4f\x50\xac\x16\x37\x4c\xdb\xb6\xdd\x34\x30\x8c\x1d\x4c\ +\xaf\x1c\xc4\x75\xe0\xb8\xd1\xac\xba\x7f\x50\x0f\x60\x60\xd7\xe9\ +\x2b\x2e\xe7\xee\x67\xf8\x9b\x51\xb1\xbe\x59\x04\xaa\x16\x9f\x8b\ +\x2f\xaf\xf7\x05\xd6\xeb\xf5\xf5\x67\x98\xdf\x01\x66\xa6\x60\x1a\ +\x3d\xcb\x4d\xd9\x51\xf7\xaa\x19\xd6\x6c\x27\xc4\x4d\x58\x3d\xf6\ +\xc5\x7f\xf4\xd1\x47\xfb\xb7\x00\x09\x34\x04\x74\xeb\x18\x3b\xe4\ +\xf7\x23\xe4\xa9\x95\x22\xde\xf7\x39\x7e\x80\x44\x31\x70\xe2\x80\ +\x0b\x0c\x3b\x96\x5e\xa5\x62\xc1\x9e\xd4\x92\x30\xbe\xea\xc7\x7b\ +\x3e\x16\xcf\x48\x9a\xe9\xcc\x86\x43\xca\x38\xc2\x58\x3b\xb2\xef\ +\x1e\xf4\x55\xcd\x0d\xb5\x0f\x66\x44\x9c\x63\xe9\xa4\x84\x47\x0a\ +\xec\x35\x70\x20\xc7\x41\x66\x36\x96\x7d\x91\xab\x64\x11\xe5\xf3\ +\x3b\x52\xbf\x70\x04\x8e\x02\x7e\x1d\xe6\x01\x6b\x9f\x2f\xde\xe7\ +\x8b\x4b\x75\xea\x50\x0f\x50\x33\x75\x34\x60\xa2\x1a\x41\x62\x16\ +\x87\xea\x2f\x94\x64\x6f\x76\xf3\xf1\xe2\xde\x05\x5d\x42\x47\x62\ +\x4f\x12\x35\x24\x6e\xa4\x33\x1b\x8a\xe3\xb4\xd8\xfd\x29\x40\x05\ +\x40\x2a\x7c\xe2\x13\xf3\xf1\xc2\x0b\x2f\x94\x2f\x92\x3d\x33\x25\ +\x79\xf8\x5b\x13\x17\x00\x35\xff\x97\x7c\xbe\xde\xff\xac\x96\x19\ +\x94\xc8\x97\x90\x7d\xf1\xa2\x8f\xd5\x35\x17\xdf\x84\x23\xdc\xb4\ +\x48\x03\x5a\xfd\xb8\x36\xaa\x23\x73\xa8\x3c\x42\xce\x54\xb2\x7e\ +\xdf\x23\xdb\xa1\x3e\x8e\x88\x3a\x51\xa4\x1b\x08\xac\x61\x80\xa5\ +\x57\x2e\xa5\xaa\x2a\xd5\x3f\xa6\x3a\x46\xb7\x2c\xe5\xca\x20\xb8\ +\xcc\x1f\x9b\x31\xf0\xa8\x8d\x6a\x6b\x1a\x8f\xa6\x06\x47\x30\x87\ +\x2e\x23\x95\xdb\x6f\xca\x8b\xa3\xe9\x55\x6d\x06\x57\xb8\xcc\xa2\ +\xaa\x2c\x2a\x45\xaa\x9c\x67\xf6\x88\x9b\x58\x92\x78\x0b\xfd\xc2\ +\x47\x3f\xd3\xc7\xbc\xd4\xd2\xb3\x78\x27\xa0\xf4\x1f\x06\xa6\x99\ +\xbf\x9f\xfa\x24\x9e\xff\xd9\xf3\x26\xcb\x55\xf6\x70\xa4\x78\xf5\ +\x18\x75\xb0\xa3\x86\xc9\xb0\x7e\x86\xf1\xe5\xf8\x7b\x2a\x71\xba\ +\x37\x9f\x8d\x49\x10\x37\xf9\xd3\x8f\x9b\x2f\x11\x00\xd7\x58\x35\ +\x4d\xfa\x88\x2b\x38\xf5\x99\xcc\x1c\x11\x94\x37\x5b\x78\x1e\xe8\ +\x84\x5e\xec\x7e\x76\x7f\xd7\x64\xd0\xc3\xdf\xff\x7e\xb4\xbd\x94\ +\x99\xc1\xe4\xf2\x40\x88\xe8\x09\xd0\x13\xcb\x32\xcb\x97\x98\xc4\ +\xf8\x43\x6a\xba\x60\x3a\x98\xa0\x8f\x2e\xe0\x29\x9e\x97\x22\x2b\ +\x52\xf7\x52\xae\x49\x5a\x6b\x73\x91\x09\x22\x90\x4d\x9e\x39\x57\ +\xc7\xc4\x70\xb2\x5c\xb1\xf8\xf0\x72\xbb\xe5\xb9\xd2\xbd\x98\x6b\ +\x4f\x51\x69\xda\xfd\x3d\x9f\xaa\x14\x16\xba\x21\x04\x7a\xd1\x02\ +\xdd\x94\x77\xa6\x29\x45\x52\x8b\x4f\x7a\xe5\xb4\x12\xc1\x2a\x90\ +\x88\xba\x56\xbe\x8e\x1d\xd9\x45\xf1\x60\xf1\xe7\x3a\x45\xa2\x34\ +\xb1\x2b\xdd\xbf\x3f\x41\xab\x6a\x87\x6b\x4d\x07\xe9\xb4\xf8\xad\ +\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\ +\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\ +\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\ +\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\xad\xb4\xd2\x4a\x2b\ +\xad\xb4\xd2\x4a\x2b\xad\x4c\x31\xf9\x7f\x7b\x85\x02\x3e\xd1\x57\ +\xa6\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x35\xd9\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\xe5\x00\xbe\x00\x46\x49\x08\xc4\x6f\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x01\x1d\ +\x11\x2e\x2d\x65\x07\x4c\x18\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\x9d\x79\x9c\x5d\x55\x95\xef\xbf\xeb\ +\xdc\x7b\x6b\xae\x4a\x65\xaa\xaa\x44\x42\x06\x42\x27\x84\x00\x61\ +\x1e\x92\x30\x28\x84\x49\x6c\x14\xa5\xd1\x7e\xbe\x56\xc4\xc6\x67\ +\xa3\xb6\xb6\xbe\xd7\x83\x36\x6a\xfb\x5a\x5b\xc1\x27\xb6\xaf\x15\ +\xa7\xe7\x80\x43\x1b\xda\xa1\x0d\x0a\x04\x04\x4c\x68\x09\x24\x10\ +\x48\x42\x08\x09\x90\xa9\x48\x2a\x43\xa5\xe6\x5b\x75\xef\x39\x7b\ +\xbd\x3f\xce\xb4\xf7\xb9\xb7\x08\x19\x50\xe8\xae\xfd\xa1\xc8\x1d\ +\xce\x3d\xf7\xdc\xb3\xd7\x5e\xc3\x6f\xfd\xd6\xda\x30\x36\xc6\xc6\ +\xd8\x18\x1b\x63\x63\x6c\x8c\x8d\xb1\x31\x36\xc6\xc6\xd8\x18\x1b\ +\x63\x63\x6c\x8c\x8d\xb1\x31\x36\xc6\xc6\xd8\x18\x1b\x63\x63\x6c\ +\x8c\x8d\xb1\x31\x36\xc6\xc6\xd8\x18\x1b\xaf\xd6\x71\x0c\xb0\x10\ +\xc8\x8d\xdd\x8a\xff\x5a\xe3\x78\xe0\x67\xc0\x7d\x80\x02\x3d\xc0\ +\xbf\x01\x7f\x0e\xcc\x18\xbb\x3d\xff\xb9\xc7\x59\xd1\xa4\x6b\xa1\ +\x50\xd0\x9a\x9a\x1a\x8d\x9f\x5b\x7f\xcf\x00\xff\x0c\x5c\x01\x34\ +\x8d\xdd\xb2\xea\x43\x5e\xa3\xd7\xbd\x10\x58\x09\x70\xdd\x75\xd7\ +\xf1\xe3\x1f\xff\x98\x1b\x6e\xb8\x81\x69\xd3\xa6\xb1\x72\xe5\x4a\ +\x7e\xf7\xbb\xdf\x31\x30\x30\x60\x1f\x5f\x8a\x8e\x5f\x0e\xdc\x03\ +\xac\x8d\x84\xe4\x68\x8c\x56\xe0\x6d\xc0\xa2\x48\x2b\x4d\x01\x9a\ +\x33\xf7\xb6\x14\x69\xa8\x6d\xc0\x7a\x60\x15\x70\x17\x30\xf4\x5f\ +\x42\xca\x76\xdf\xb3\xf8\x68\x0b\xda\x3c\x40\x67\xcd\x9a\xa5\x9f\ +\xf9\xcc\x67\x14\xd0\x37\xbe\xf1\x8d\xba\x6e\xdd\x3a\x7d\xf2\xc9\ +\xb5\xba\xfa\xb1\xc7\xf4\xdb\xdf\xfe\xb6\xbe\xe7\x3d\xef\xd1\xf9\ +\xf3\xe7\xab\xe7\x79\x59\xed\xb0\x1b\xb8\x03\xf8\x6f\x40\xc7\x61\ +\x7c\xff\x71\xc0\x0f\x81\x3d\x55\x34\xcf\xa1\xfc\xf5\x44\x42\xf9\ +\x67\x40\xcd\x1f\x62\x6e\xf2\xbf\xa7\xef\x69\x01\x7a\x8f\xe2\xf9\ +\xfa\x00\x06\x06\x06\x98\x3a\x75\x2a\x00\xeb\xd6\xad\xe3\x85\xad\ +\x5b\x99\x3a\x75\x2a\x46\x95\x79\xf3\x4e\x60\xee\xdc\x39\xbc\xeb\ +\x5d\xef\xa2\xa7\xa7\x87\xd5\x6b\xd6\xf0\xe8\xaa\x55\xac\x5e\xbd\ +\x9a\xbd\x7b\xf7\xb6\x03\x7f\x1a\xfd\x69\xa4\x11\x62\xed\xb0\x32\ +\x5a\xb1\xd5\xc6\x39\xc0\x37\x80\xf9\xf6\x8b\xd3\xa7\x4f\x67\xce\ +\x9c\x39\xcc\x9e\x3d\x9b\xf6\xf6\x76\x3a\xda\x3b\x08\x4c\x40\x3e\ +\x9f\xa7\x5c\x2e\x53\x2a\x95\xd9\xd3\xd5\xc5\x8b\x2f\xbe\xc8\xf6\ +\x1d\xdb\xd9\xb8\x71\x23\xbb\x77\xef\x06\x18\x07\x5c\x1c\xfd\x7d\ +\x1b\xd8\x04\x7c\x05\xf8\x17\xe0\x1f\x80\x9f\x02\x4f\x8c\x99\x80\ +\x97\x10\xa8\xe9\xd3\xa7\xa3\xaa\xf4\xf5\xf5\x31\x30\x30\xc0\xdf\ +\xfc\xf5\x5f\x73\xf9\x15\x57\x10\x04\x06\x63\x0c\xc6\x04\x18\x63\ +\x08\x4c\x80\x89\x5e\xdb\xb6\x6d\x2b\xab\x57\xaf\xe1\x89\x27\x9e\ +\x60\xfd\xfa\xf5\x94\x4a\xce\x7c\x0f\x02\xbf\x05\x7e\x1d\x39\x98\ +\x1b\x81\x86\x48\x38\x16\xc5\x07\x9d\x79\xe6\x99\x5c\x75\xd5\x55\ +\x2c\x5a\xb8\x90\x89\x93\x27\x25\x6b\x5a\x23\xcb\xa2\x0a\x22\x8a\ +\x5a\x86\x46\x35\x3c\x48\x15\x7a\x7b\x7b\x59\xb3\x66\x0d\x8f\x3c\ +\xf2\x08\x0f\x3f\xfc\x70\x2c\x10\xf1\x18\x01\x6a\xa3\xc7\xcf\x45\ +\x9a\xea\x91\x57\x5c\x00\xba\xee\x59\xdc\xd2\x7e\xe9\x8a\xbe\xd7\ +\x88\x10\x28\x40\x3e\x9f\xe7\xae\xbb\xee\xe2\x43\x1f\xfa\x10\xcf\ +\x3c\xf3\x0c\x00\x37\xdf\x7c\x33\x17\x5d\x74\x21\x26\x30\x04\xc6\ +\x44\xff\x06\x91\x40\x18\x82\x20\x7d\x5c\x2c\x16\xd9\xb4\x69\x13\ +\x6b\xd7\xae\xe5\xa9\xa7\x9e\x62\xc7\x8e\x1d\xd9\xef\xd9\x1b\x09\ +\x40\x23\xc0\xc5\x17\x5f\xcc\xfb\xdf\xff\x7e\x66\xcd\x9c\x15\x4f\ +\x75\xf4\x7f\xb5\xae\x4a\xe3\xff\x92\xa7\xd6\x33\xfb\x10\x44\xc3\ +\x4f\x6e\xd9\xbc\x85\xbb\x7e\x75\x17\x3f\xfd\xe9\x4f\x29\x16\x8b\ +\x00\x65\xa0\x60\x5d\xc7\x0f\x22\x41\x38\xaa\xc3\x89\x9d\x3f\xf6\ +\xce\xe9\xa5\x5b\xee\xd8\xfe\x5a\xd1\x02\x27\x02\xf3\x9a\x9b\x9b\ +\xe5\x8d\x6f\x7c\x23\x6f\x7f\xfb\xdb\x29\x16\x8b\xac\x5f\xbf\x9e\ +\xb5\x6b\xd7\x72\xf9\xe5\x97\xe3\xe5\x72\x04\x41\x80\x6f\x02\x82\ +\x20\x60\xd9\xb2\x69\x74\x76\xd6\x51\x57\x57\xa4\xb6\x76\x04\x3f\ +\x08\x00\x61\xe2\xc4\xf1\x9c\x30\x6f\x1e\x17\x5c\x70\x01\xe7\x9f\ +\x7f\x3e\x53\xa7\x4e\xa5\x50\x28\xd0\xdd\xdd\x8d\xef\xfb\x8d\x40\ +\x4d\x47\x47\x07\xb7\xdc\x7a\x2b\xef\x7a\xd7\xbb\x68\x6d\x6d\xc5\ +\xa8\xa2\x6a\x50\x63\x30\x80\x1a\x0d\xff\x54\xd3\xf7\x94\xe8\x5f\ +\xc5\xa8\x81\xe8\xfd\xf0\x38\x83\x12\x3d\x57\x43\xeb\xf8\xf1\x9c\ +\x75\xd6\x59\xec\xdc\xb9\x93\x67\x9f\x7d\x96\x8f\x7c\xe4\x23\xb9\ +\x8f\x7e\xf4\xa3\xec\xdc\xd9\x19\x0b\xe5\xc9\xc0\x9b\x80\x6f\x1e\ +\x45\x07\xd6\x15\x80\x8f\xbe\x73\xba\x77\xcb\x1d\xdb\xf5\x55\x3e\ +\xf1\xb3\x80\x5b\x80\xeb\x80\xd2\xc8\xc8\x48\xa1\xbf\xbf\x9f\x73\ +\xcf\x39\x97\x53\x4f\x3b\x95\x55\xab\x56\xd1\xd9\xd9\x89\x20\xcc\ +\x3f\x69\x3e\x41\xe0\x63\x82\x80\x72\x39\xe0\xd3\x9f\x3e\x8f\xdf\ +\xfe\xf6\x58\x96\x2d\xfb\x23\x1e\x78\x60\x06\x5b\x36\x4f\x60\xff\ +\xfe\x1a\x44\x02\x1a\x1a\x06\x50\x63\xc8\x17\xf2\x4c\x99\x3a\x95\ +\x93\x4f\x3a\x89\xf5\xeb\xd7\xd3\xd3\xd3\x43\x47\x47\x07\x77\xdc\ +\xf1\x03\x66\xcd\x9a\x89\x51\x85\x68\x52\x93\x3f\x34\x9d\xe8\x48\ +\xd5\xab\x12\x0a\x42\x3c\xe9\x1a\xda\x85\xc0\x28\x60\x30\x1a\x1e\ +\x67\x8c\x49\x84\x06\x55\x96\x2e\x5d\xca\xae\x5d\xbb\xf8\xe3\x37\ +\xbd\x89\x13\x4e\x38\x81\x4b\x2e\xb9\x98\x8e\x8e\x0e\x56\xae\x5c\ +\x49\x14\x61\xbc\x01\xf8\x7f\xaf\x88\x00\xbc\xca\x27\xbf\x25\x72\ +\x8e\xbe\x09\x9c\x0e\x18\xe0\x21\xe0\xb8\xc1\xc1\x41\xae\xbe\xfa\ +\x6a\x82\x20\xa0\xa3\xa3\x83\xfb\xee\xbb\x8f\xae\xae\x2e\xae\xbc\ +\xf2\x4a\x4c\x10\xe0\x07\x01\xc3\xc3\xe1\x44\x14\x0a\x3e\x7d\x7d\ +\x75\xf4\xf5\xd5\xb3\x73\x67\x2b\xeb\xd6\x1d\xc3\x43\x0f\xcd\x61\ +\xf9\xf2\xf9\x6c\xdc\x38\x95\xdd\xbb\x9b\x18\x19\x81\x09\x13\xba\ +\x79\xf0\xc1\x07\x19\x1c\x1c\xe4\x73\x9f\xfb\x1c\xb3\x66\xcd\x8a\ +\x56\x7c\x34\xc1\xc6\x60\x50\x47\x10\x92\x09\xc7\x60\x8c\xf5\x7a\ +\x34\xc9\x6a\x0c\x10\x6b\x88\x48\x2b\x44\x8f\xd1\x50\x28\xbe\x7e\ +\xfb\xed\x0c\x0d\x0d\xf1\xee\xf7\x5c\x4f\x73\x73\x33\xaa\xca\xec\ +\xd9\xb3\x99\x31\x63\x26\x0f\x3e\xf8\x20\xc0\xb1\x91\x7f\x70\xff\ +\x6b\x29\x0a\xa8\x18\x5d\xf7\x2c\x6a\x6e\xbf\x74\x65\xff\x21\xc6\ +\xfe\xd7\x03\xbc\xfe\x8f\xfe\x88\x6b\x4e\x3e\x39\xff\xc0\xb3\xcf\ +\x2e\xb9\xf3\xa9\xa7\x98\x38\x71\x22\x65\x3f\x5c\xe9\xf3\xe6\xcd\ +\xa3\xb5\xb5\x95\xbd\x7b\xf7\xb2\x71\xe3\x46\x66\xcf\x9e\x4d\x10\ +\x04\x88\x67\x78\xd3\x55\xeb\x08\x4c\x40\x10\x18\x76\xec\x68\x61\ +\xf3\xe6\xc9\x6c\xd9\xd2\xc6\xf3\xcf\xb7\xb3\x67\x4f\x2b\x9b\x36\ +\x1d\xc3\xa6\x4d\xc7\xd0\xd2\xd2\xcf\x47\x3e\x7c\x2b\x5d\x5d\x5d\ +\xd4\xd6\xd6\x72\xca\x29\xa7\x60\x4c\x80\x22\xa0\xc6\x72\xe8\x12\ +\xef\x2e\xd1\xc9\x8a\x86\xa2\x69\xf9\x04\xb1\xf5\x97\xd8\x54\x44\ +\xcf\x24\xd2\x18\xf1\xe7\x0e\x74\x1f\x60\xdf\xbe\x7d\xd4\xd7\xd5\ +\xd1\xd1\xde\x81\x31\x26\x39\xf7\xf9\xe7\x2f\xe2\x86\xf7\xbe\x97\ +\x6f\x7e\xe3\x1b\x00\xff\x0b\xb8\x3d\xc2\x15\x5e\x9b\x02\x70\x88\ +\x93\x0f\x30\x15\x60\xc1\xd4\xa9\xbc\xef\xcc\x33\x29\x95\x4a\xdc\ +\xb3\x69\x13\x00\x97\x5f\x7e\x19\x41\xb9\x4c\x60\x42\xa7\xef\xf4\ +\xd3\x4f\xe7\xfe\xfb\xef\xe7\xa9\xa7\x9e\x64\xfa\x8c\x19\x98\x20\ +\xc0\x98\x80\xc0\x28\x1a\x04\x04\xc6\xd0\xde\xb1\x97\xc9\x93\xbb\ +\x38\xe7\x9c\xd0\x49\xec\xe9\xad\xe5\xf9\xe7\x3b\x78\xfe\xf9\x29\ +\xe4\xf2\x65\x9e\xdd\xbc\x19\x80\xf9\xf3\xe7\x93\xcb\xe5\x08\x02\ +\x6b\xaa\xd4\xf5\x44\x63\x47\xce\x89\x02\xe2\x50\x20\x8e\x08\xb0\ +\x26\x5b\x53\xc7\x51\x54\x92\xcf\x3c\xb5\x6e\x1d\x00\x73\xe6\xce\ +\x45\x01\x13\x04\x8e\xd3\x78\xed\xdb\xde\xc6\xc3\x2b\x57\xb2\x71\ +\xe3\x46\x0f\xf8\x05\xb0\xe0\x48\xe7\xc1\x8b\xbc\xff\xc6\xd7\x80\ +\xd3\x77\x2c\xc0\xac\xd6\x56\xfc\x62\x91\xc7\xb7\x6f\xa7\x7f\x64\ +\x84\x89\x13\x27\xb2\x68\xf1\x62\xca\xbe\x8f\x1f\xfd\xcd\x9d\x7b\ +\x02\x00\x9b\xb7\x3c\x87\x5f\x2e\x47\xaf\x07\xf8\xe5\xb2\x75\x5c\ +\x10\xbd\xe6\x53\xf6\xcb\xd4\xd7\xf7\x71\xc2\x09\xcf\x70\xd9\xe5\ +\xf7\x73\xf1\x1b\x1e\xe0\xf9\xe7\x9f\x07\xe0\xe4\x93\x4f\x71\x22\ +\x08\x63\x22\xc7\x2f\x8a\x2e\x4c\x10\xe0\xc7\x61\x66\x7c\x5c\x10\ +\x44\x42\x17\x0a\xa4\x6a\x10\x45\x23\x69\x28\x6a\x8c\x41\x03\x4d\ +\x3e\x17\x18\xc3\xe3\x6b\xd6\x00\x70\xd2\x49\xf3\xd1\x28\x82\x09\ +\xe2\xc8\xc5\x18\x54\x0d\x1f\xf8\xe0\x07\xe3\xfb\x71\x4a\xe4\x0f\ +\x1c\xb9\x06\xd0\xd7\x06\x24\x79\x2c\xc0\xf8\x42\x01\x7f\xb8\xc8\ +\xc6\xae\x2e\x00\xce\x3f\xff\x7c\xfc\xb2\x9f\x4e\x50\x60\x38\xe6\ +\x75\x21\x38\xb4\x63\xfb\x76\x7c\xdf\x4f\xf0\x80\x18\x1b\xb0\x31\ +\x81\x64\x62\x9c\x10\x51\xd9\xba\x75\x2b\x00\x0b\x4e\x39\x39\x5c\ +\x89\x2a\xa8\x68\x45\xbc\x1f\xa9\x80\x54\x03\x64\x4d\x83\x48\xa8\ +\x02\x22\x1b\xa0\x98\x64\x49\x2b\xa1\x27\x13\x7e\xc2\xf0\xf8\xe3\ +\x8f\x3b\x42\x17\x6b\x11\xb1\x34\xca\x8c\x19\xd3\x39\xfb\xec\xb3\ +\x59\xb5\x6a\x15\xc0\xe7\x80\x33\x8f\xdc\x04\x08\x39\xc0\x7f\x95\ +\x0b\xc0\x34\x80\x56\xcf\xa3\x5c\x1c\x66\x47\x6f\x08\x2c\xce\x9a\ +\x35\x33\x9c\x64\x8d\xe2\xfd\x20\x60\xd2\xe4\xc9\x00\xec\xdb\xb7\ +\x8f\x72\xb9\x1c\x39\x62\x91\x00\x04\x86\x40\x83\xe8\xd8\x4a\xb0\ +\x08\x85\x62\xb1\x48\x57\x57\x17\xf9\x7c\x9e\x39\x73\xe7\x86\xab\ +\x15\x09\xc3\x38\x42\x75\x5e\x31\xe1\xaa\xa8\x40\xf4\x3f\x67\x82\ +\x63\x41\x10\xa3\x0e\x2e\x60\xac\xc7\x7b\xf6\xec\x61\xc7\x8e\x1d\ +\x34\x34\x34\x30\x67\xce\x1c\x4c\x74\x2d\x6a\x19\x1b\x25\x74\x41\ +\xae\xbd\xf6\x4f\x62\x01\x38\x2d\x4a\x74\x0d\x1c\x91\x09\xe8\x58\ +\xb2\xc2\x7f\xad\x68\x80\x16\x84\x72\x71\x98\xee\xe1\x61\x00\x26\ +\x4d\x9a\x1c\xc6\xfa\xe5\x54\xb5\x7b\x9e\x47\x63\x63\x23\x41\x10\ +\x84\xb1\x7c\x39\x56\xf9\x3e\x7e\x50\x0e\x9f\x07\x3e\x81\xef\x13\ +\xf8\xe5\xf0\x71\x10\xde\x70\xdf\xf7\xd9\xb6\x6d\x1b\xaa\xca\xdc\ +\xb9\x73\xc9\x17\xf2\x98\x40\x2d\x2d\x61\x09\x92\xfd\x9a\x2a\x1a\ +\x98\x44\x9d\x87\x9f\xb1\xd5\x7d\x68\x2a\xc2\x63\x43\x6c\x42\x83\ +\x00\x8d\x84\x6f\xd5\x23\xab\x00\x38\xed\xb4\xd3\xf0\x3c\x49\x54\ +\x7f\x22\xa8\xf1\x9f\x09\x98\x3d\xfb\x38\x66\xcc\x98\x11\xcf\xdf\ +\xdf\xbf\x26\x9d\xc0\xc3\xd5\x00\xe3\x50\xfc\xe1\x21\xfa\x22\xf8\ +\x76\xdc\xb8\x16\xca\xe5\xb2\xa5\xd2\xc3\x1b\xda\xd8\xd8\xc8\xe0\ +\xe0\x20\x7d\xbd\x7d\xd4\xd7\xd5\x61\x4c\x6a\x6f\x43\x64\x50\x93\ +\x95\x0f\xd0\xd3\xd3\xc3\x9a\x35\x21\x3c\xdc\xd6\xd6\x96\x38\x80\ +\x26\x08\xe3\x76\x17\xd1\x0b\x57\xbe\x44\x0b\x3c\x71\x02\x63\x04\ +\x30\x52\xfb\x9e\x16\x09\xa4\x2e\x5d\xc9\xc9\x72\x36\x91\x63\x98\ +\xea\x8a\x95\x0f\xaf\x04\xe0\xf4\xd3\x4f\x27\x08\xe2\x57\x5d\x27\ +\xd1\x36\x1d\x17\x5c\x78\x01\x5b\xbf\xb3\x95\x28\x9f\xf1\x3f\xff\ +\xb3\x0b\x40\x1b\x50\xd7\x90\xcb\x21\x23\x25\xca\xc6\x67\x28\xf2\ +\x90\x6b\x6a\xea\xf0\x7d\x3f\x74\x92\x4c\xac\xd6\x7d\xea\xeb\xea\ +\x01\x18\x18\x1c\x60\x82\x3f\x21\xb5\xf1\x89\xa3\x16\x3e\xdf\xb2\ +\x65\x0b\xab\x57\xaf\x66\xf3\xe6\xcd\x89\x3a\x3f\xee\xb8\xe3\xb8\ +\xfa\xea\xab\x39\xfb\xac\xb3\xa3\xf0\x2f\x52\xfb\x0e\x7c\x9b\x4e\ +\x9f\x49\x63\x40\x27\x17\x10\x50\x9b\x1a\xf9\x24\x2f\x10\x7d\x36\ +\x12\x1a\x51\xe8\xed\xeb\x65\xc3\x86\x0d\xe4\x72\x39\x4e\x3f\xfd\ +\xf4\x50\xfd\xc7\x53\x1d\x9f\x53\x25\x3c\x38\xc4\x8b\x58\x78\xde\ +\x42\xbe\xf7\xdd\xef\xa1\xaa\x53\x81\xd7\x01\x9d\x47\x24\x00\x5d\ +\xf7\x2e\xae\x6d\x5f\xb2\x62\xe4\x55\x6d\xff\x73\x39\xfc\xe2\x10\ +\x25\xdf\xc7\x00\xb9\x5c\x0e\x41\xf1\xfd\xa0\x02\xe3\xaf\xa9\x0d\ +\xb3\xab\xc3\xc3\xc3\xd1\xfb\xa9\x57\xde\xdf\xd7\xc7\x13\x4f\x3c\ +\xc1\x9a\x35\x6b\xe8\x8d\x7c\x89\x7c\x3e\xcf\xa2\x45\x8b\xb8\xf2\ +\xca\x2b\x99\x7f\xe2\x89\xc4\xe6\xdb\x04\x26\x71\xfe\xe2\x58\xde\ +\x68\x1a\xcb\x27\xa1\x5e\x26\xec\x73\xad\x37\xae\xff\x90\xf8\x09\ +\xa1\x6e\x59\xb1\x62\x05\x41\x10\x70\xda\x69\xa7\x85\xa6\xcb\x18\ +\x2b\xb4\x74\xcf\x13\xbf\xd6\xda\xda\x4a\x5b\x5b\x1b\x5d\xa1\x33\ +\x7c\x0d\xf0\xe5\x23\x12\x00\x0d\x93\x0f\xaf\x6a\xfb\x3f\xce\xf3\ +\x28\x0f\x17\x29\x96\xfd\x68\xf5\xd7\x84\x00\x50\x1c\x26\x99\x10\ +\xf5\x33\xc6\x90\xcb\x85\x20\xe7\xf0\xc8\x30\x7e\x50\x26\xf0\x03\ +\x5e\x78\xe1\x05\x56\xaf\x5e\xcd\xc6\x8d\x1b\x13\xd5\xdf\xd1\xd1\ +\xc1\x15\x97\x5f\xc1\x25\x97\x5c\x4c\xcb\xb8\x71\xe1\xca\x8d\xde\ +\x4b\x54\xaf\x49\x91\x1c\xa3\xb1\x9a\x0f\x3d\xb2\x58\x28\xe2\x15\ +\xed\x44\x01\xd6\x6a\x77\xc0\xa3\xe4\xf3\xe1\xf3\x08\xe1\x63\xf1\ +\xe2\xc5\xa1\xc0\x59\x8e\xa6\x66\x40\x87\x48\xe7\xb0\xf6\x89\xb5\ +\xf1\xe4\x2b\x21\x37\xe1\xc8\x4c\x40\xc7\x92\x15\xa6\xeb\x9e\xc5\ +\x75\xed\x97\xae\x18\x7e\x15\x0a\xc0\xeb\x00\x9a\x15\x82\x52\x99\ +\x11\x63\xa8\x17\xa1\x5c\x2e\x73\xe0\xc0\x01\x1a\x1a\x1b\x51\x13\ +\x10\x04\x91\x5d\x0f\x02\xea\xea\xea\x00\x5e\x08\xfc\x60\xe6\xca\ +\x15\x2b\x59\xbd\x7a\x35\xfb\xf7\xef\x0f\x3d\x5f\xcf\xe3\xdc\x73\ +\xcf\xe5\xf2\xcb\x2f\x67\xc1\x82\x05\x78\x22\x21\xf0\x92\x84\x5e\ +\x38\x2a\xd8\x56\xef\xce\xaa\xb4\xbd\xf4\x44\x2b\x54\xf9\xec\x28\ +\x13\x09\xca\xce\x9d\x3b\xd9\xbc\x79\x33\xf5\xf5\xf5\x9c\x71\xfa\ +\x19\x98\x28\xa7\x10\x7e\x87\xa4\x62\xa8\x29\x08\x55\x1c\x19\xe6\ +\x5b\xdf\xfa\x56\x7c\xb6\x7b\x81\x7d\x47\xc5\x07\x78\x95\x4e\xbe\ +\xa5\x01\x84\x7d\x41\xc0\xd2\x81\x01\x8a\xaa\xe0\xfb\x7c\xff\xfb\ +\xdf\xe7\x3d\xef\x79\x8f\x03\xd4\x04\x81\xe1\xcc\xb3\xce\xe4\xc9\ +\xb5\x6b\xf5\x87\x3f\x4c\x17\xc7\xc4\x89\x13\x59\xb2\x64\x09\x4b\ +\x96\x2c\x61\xe2\x84\x09\x20\x82\xaa\x86\x1e\xbc\x0d\xdd\x3a\xb1\ +\x37\xae\x36\xc0\xcd\xeb\xdb\x33\xaa\x8e\xce\x57\x27\x65\xa7\xaa\ +\x2e\x7e\x10\x09\xcd\x43\x0f\x3d\x04\xc0\xb9\xe7\x9e\x4b\x2e\x9f\ +\x23\x08\xfc\x70\xfd\x27\x31\xa4\x0b\x35\x03\xdc\xf1\xfd\xef\xb3\ +\x6f\xdf\x3e\x80\x61\xe0\x2d\xff\x15\xa2\x80\x63\x00\x96\x17\x8b\ +\x3f\x5c\x5e\x2c\xbe\x1d\x90\x86\x86\x06\x00\x9e\x7e\xfa\x69\x1e\ +\xfa\xed\x43\x9c\x7b\xce\x79\x14\x8b\x43\x3c\xfe\xc4\x13\xac\x7e\ +\xec\xb1\x98\x60\x31\x4b\x44\x58\xb0\x60\x01\x97\x5d\x7a\x19\x67\ +\x9c\x79\x26\xb9\x9c\x07\x0a\x81\x1a\x0b\x84\x09\x75\x72\xe8\x75\ +\xa7\x2b\x5d\x6c\x8c\x5f\x15\x11\x6b\xf1\x67\x54\x7d\x3a\xb9\x92\ +\x6a\x83\xe8\x9c\x39\x4a\x18\x0a\x15\x1a\xc3\x0f\x02\x1e\x78\xe0\ +\x81\x30\xd1\xb1\x70\x61\x92\x34\x72\x86\x03\x3a\x29\xab\x57\xaf\ +\x4e\x3e\x03\xfc\x77\x8e\x10\xc4\xab\x2a\x00\xfb\xee\x5b\xbc\x20\ +\x30\xfa\x33\x90\x19\xa1\x26\x12\x2b\x9d\x41\xe6\xb1\x23\xf6\x88\ +\x0a\x22\xfa\xf9\xfa\xda\xdc\x27\x9b\x2f\x78\xb0\x78\x94\x04\xe0\ +\x51\x60\x0e\xf0\x8e\x38\x56\xfe\xd8\xc7\x3e\xc6\x93\x4f\x3e\xc9\ +\xe7\x3e\xf7\x39\xee\x5a\x76\x17\xcf\x3f\xf7\x3c\x9b\x37\x6f\x66\ +\x64\x64\x24\x0a\x0f\xc7\x71\xd1\x45\x17\x71\xe9\xa5\x97\xd2\xd1\ +\xde\x9e\x78\xed\x89\x9a\x37\x19\xef\xda\xc4\xa8\x5d\xfa\x5b\x8c\ +\x56\x86\x7c\x6a\xa3\x7f\x9a\x46\x07\xd8\x4e\x60\x46\x2b\x18\x72\ +\xa8\x1a\x7b\xe1\x03\xca\xea\xc7\x56\xd3\xd7\xd7\xc7\xd4\xa9\x53\ +\x39\xfe\xf8\xe3\x09\x4c\x10\x3b\xfa\x29\x72\x68\x09\x44\x57\x57\ +\x17\x5f\x0f\x93\x41\x00\x77\x02\x4b\x8f\x7a\x32\xe8\xc0\x6f\x16\ +\xb5\x97\x7d\xfd\x1b\x54\xa6\x29\xf1\xe4\x93\x4e\xb8\x48\xf4\xc3\ +\x05\x57\x4f\x86\x76\x14\x41\x11\xf9\x9f\x43\xa5\x60\x56\xef\x43\ +\x17\xfc\xe5\xb8\x0b\x1e\xea\x3c\x0a\x02\xf0\x02\x70\x2a\xc0\xeb\ +\x5f\xff\x7a\x6e\xba\xe9\x26\xc4\xf3\x38\xfb\xec\xb3\xb9\xf8\x92\ +\x4b\xb8\x6f\xf9\x72\xd6\xaf\x5f\x0f\xc0\xbc\x79\xf3\x58\x72\xc9\ +\x12\xce\x39\xf7\x1c\x0a\x85\x02\xa0\xe1\x6a\x57\x12\xbb\xaa\x29\ +\x1d\x27\x0d\xcd\x52\x93\x6b\xd9\xf9\xc4\x5b\x4b\x50\xbb\xcc\x14\ +\x57\x3a\x78\xd5\xa2\x80\xaa\xef\x29\x77\xdf\x73\x37\x00\x17\x5e\ +\x78\x61\xe2\x94\x6a\xe5\x9a\x02\x42\x74\xf2\xcb\x5f\xfe\x32\xc3\ +\x21\x00\xd6\x09\xfc\xc9\x2b\x92\x0e\x1e\x29\x51\x9b\xcb\x49\xb7\ +\xc2\xb0\x27\xd2\x68\xd4\x5a\xe9\xf1\x02\x11\x89\xbc\xdb\xf8\xa6\ +\x45\x77\x2e\xb4\xa9\x12\x3e\x94\x37\x8c\x94\xf4\xd3\x7b\x96\x9f\ +\xff\xf5\xa6\x86\xdc\xe3\x0d\x0b\x1f\x38\xdc\x28\xa3\x05\xf8\x31\ +\x20\x67\x9f\x7d\x36\x7f\xf1\x17\xef\x0f\xaf\x21\x08\x19\x35\xd7\ +\xbf\xeb\xdd\x0c\x0d\x0e\xd2\xda\xda\xca\xc5\x17\x5f\xcc\xb4\x69\ +\xc7\xa6\x2b\x38\x08\x1c\x15\x5e\xe9\xa0\x09\xaa\x06\x41\x2a\x6d\ +\xbc\x0d\xda\x58\x19\x3d\xad\x92\x02\xce\xda\x68\xec\xec\xa0\x68\ +\x55\xfe\xce\xb6\x6d\xdb\x78\xf6\xd9\x67\xa9\xad\xad\x65\xe1\xc2\ +\x85\x2f\x79\x03\x54\x95\xdb\x6f\xbf\x9d\xce\xce\xce\xd8\xee\x9f\ +\x99\x3a\x08\x47\x51\x00\x7a\x7f\x7b\x7e\x5d\xb9\xc4\xdb\x02\xa3\ +\xd7\x29\xd2\x98\xdc\x07\x11\x5b\x06\x52\xe1\x94\x74\xe2\xe3\xe5\ +\x13\xcb\x83\xc2\x78\x51\xae\x17\x41\x54\xe4\xc3\x1c\x3e\x2b\xf8\ +\x27\x40\xdd\xa4\x49\x93\xf8\xc0\x07\x3e\xe0\x10\x2b\x00\x0a\x35\ +\x79\xfe\xf2\x2f\xff\x32\xb1\xd9\x31\x86\x8e\xe3\xb1\x8b\x05\xd0\ +\x68\xc5\x12\x33\x55\xbc\x75\xb5\x55\x42\x45\x0a\x58\xc9\x52\x00\ +\x47\x65\x69\x8d\xf2\xf2\x7d\xf7\xdd\x97\x84\x7e\x8d\x8d\x2f\x9d\ +\x8c\xbd\xf3\xce\x3b\x59\xbb\x76\x6d\x7c\xb6\x37\x02\xbb\x8e\x96\ +\x73\xe5\x08\x40\xcb\xf1\xcd\xa5\xee\xa7\xfb\xd7\x81\x0c\x4b\x14\ +\x1a\x91\x99\xfa\xc4\xd1\x49\x56\x7e\x8c\x50\xa9\x75\x9c\xf3\xc9\ +\x77\x0f\x0c\x94\xff\x78\xcf\xf2\xc5\x8b\xda\x2e\x59\xb1\xf1\x10\ +\xaf\xaf\x15\x58\x02\x70\xc3\x0d\x37\x50\xa8\x29\x10\x04\x9a\x64\ +\xd6\x6d\x08\x36\x4d\xce\x64\x54\xb4\xad\xce\x47\xd5\x04\x5a\x05\ +\xea\xc5\x9d\x64\xeb\x37\x0d\x0d\x0d\xb1\x77\xef\x5e\xf6\xef\xdf\ +\x4f\x77\x77\x37\x43\x43\x43\x0c\x0d\x0d\xc5\xea\x99\x5c\x2e\x47\ +\x6d\x6d\x2d\xe3\xc6\x8d\x63\xe2\xc4\x89\xb4\xb7\xb7\x33\x75\xea\ +\xd4\x04\x9b\xe8\xeb\xeb\xe3\x91\x47\x1e\x41\x44\xb8\xe4\x92\x4b\ +\x5e\xf2\x06\xdc\x7f\xff\xfd\xdc\x75\xd7\x5d\xf1\xd3\x8f\x71\x94\ +\x98\x40\x95\x40\x50\xef\x5b\x64\xdf\x63\xfb\xcf\x55\xf8\x81\x08\ +\x93\x42\x07\xc8\x73\x7d\x3d\x89\xd7\xb8\x6d\x16\x34\xf4\x07\xe2\ +\x98\xd5\x0b\xe5\xc1\xc6\xbf\x05\x26\x18\xe5\x1d\x7b\xee\x3b\xff\ +\x2b\x6d\x17\xff\xb6\xeb\x10\xae\xef\xa6\xd8\xe3\x5f\xb0\xe0\x94\ +\x88\x21\x63\xa7\x52\xa3\xd5\x3d\x6a\x9a\xd6\x56\xe7\x99\x28\x3d\ +\x63\x6c\x6d\x74\x2e\x51\xfe\xc6\xb0\x73\xe7\x4e\xb6\x6d\xdb\xc6\ +\x8e\x1d\x3b\xd8\xb9\x73\x27\x9d\x9d\x9d\x0c\x0f\x0f\xd3\xd6\xd6\ +\xc6\xcc\xd6\x56\xda\x5a\x5b\x19\x5f\x5f\xcf\xb4\xda\x5a\xad\x6b\ +\x68\x00\x13\x50\x2e\xfb\x0c\x8d\x0c\xb3\x6f\xcb\x16\x59\xbb\x7a\ +\x35\x5b\xfa\xfb\x39\x70\xe0\x00\xa7\xcc\x9f\xc3\x89\x27\x9f\x4e\ +\x57\x57\x17\xe5\x72\x99\x53\x4f\x3d\x95\xf6\xf6\xf6\xd1\x3d\xdf\ +\x47\x1f\xe5\x8e\x3b\xee\x88\x9f\x7e\x15\xb8\xf5\x68\x87\x57\xa9\ +\x06\x78\xbe\x3f\xa7\xaa\xe7\xa9\x22\x2a\x62\xfb\xf5\xb1\xb9\x24\ +\x74\xfd\xac\xf7\x84\xd4\x7e\x26\xef\xab\xf5\x9e\x13\x21\x7d\x3c\ +\x24\xc1\x71\xf3\xcb\xbd\x38\x11\xce\x55\x85\xb3\xce\x3a\x2b\x41\ +\xc8\x1c\x47\x4a\x49\x79\x36\xb1\xbd\x8d\x52\xa6\x22\x29\xfc\x9a\ +\x0d\xe9\x46\xd3\xd5\xc6\x18\xb6\x6f\xdf\xce\x86\x0d\x1b\x78\xe6\ +\x99\x67\xd8\xbc\x79\x33\xe3\xc7\x8f\xe7\xb4\x99\x33\x99\x7f\xcc\ +\x34\xbd\xe6\xa4\x93\x38\xae\xbd\x4d\x26\x37\xb7\x60\x7c\x3f\xf9\ +\xd3\x20\xc0\x94\xcb\x62\x82\x00\x8d\x5f\xf3\x7d\x82\xc0\x47\xfd\ +\x00\xe3\xfb\xf4\x0c\x0c\xf0\xe8\xb6\x6d\xfa\xc0\xbd\xf7\xca\x63\ +\xa1\x2d\xe7\xf2\xcb\x2f\x1f\xf5\x6a\x9e\x7e\xfa\x69\x6e\xbf\xfd\ +\xf6\x58\x63\xdd\x03\xbc\xff\x95\x88\xaf\x13\x01\x18\x18\x28\x1f\ +\xab\xca\x59\x2a\x32\x4e\x92\x95\x6e\x4f\x7c\xf8\x9a\xe3\x13\xc4\ +\x2b\x4e\x24\x5c\xf5\x49\x58\x65\x59\x05\x89\x24\x4a\x14\xa3\x7c\ +\x7c\xcf\xf2\xc5\x8b\xc4\xe3\x63\x93\xdf\xb0\xe2\xf1\x97\x76\x7c\ +\xf0\x6a\x0a\xd2\x50\xf6\x95\x62\xb1\x88\x1f\xd9\x7d\x51\xc1\xc4\ +\xbe\xc6\x28\xd8\x7b\x06\x42\x7f\x29\x53\x4c\x6f\x6f\x2f\x4f\x3e\ +\xf9\x24\xeb\xd6\xad\xe3\xe9\xa7\x9f\xa6\xa5\xa5\x85\xd7\x9f\x7c\ +\x32\xef\xbd\xf8\x62\x3d\xf5\xc6\x1b\x65\x7c\x63\x43\x38\xa1\x65\ +\x5f\x82\x20\x00\xbf\x4c\x79\x60\x20\x9a\xfc\x00\x13\xf8\x68\xd9\ +\x0f\xff\xcd\x08\x45\x10\x09\x82\x09\x7c\x1a\x02\x9f\xc5\xed\x1d\ +\xb2\x7b\xdf\x7e\x1e\xeb\xec\xa4\xa1\xa1\x81\xe9\xd3\xa7\x57\xbd\ +\xa6\xe7\x9e\x7b\x8e\xdb\x6e\xbb\x2d\x4c\x51\xc3\x93\xc0\x65\xaf\ +\x14\xc0\x92\xe8\xf2\xbd\xcb\x17\xff\x77\xa3\x7c\xd1\x20\x13\x89\ +\x55\xba\x00\xe2\x45\x37\xd0\x0a\x07\xc5\xb6\xf5\x92\x18\xcc\x70\ +\x52\x0c\x15\xfa\x23\x9a\x20\x89\xaa\x65\x40\x7b\x05\xfe\x71\xd2\ +\x25\x6d\xb7\x8a\xfc\x34\xa8\x32\xf9\xb2\x61\xe9\x31\xad\x7f\xf2\ +\xbf\xf6\x7f\x76\xc3\x0b\xc5\x1b\x01\xfe\xea\xaf\x3e\xca\x49\x27\ +\xcd\x3f\x2a\x3f\x7a\xef\xde\xbd\xac\x59\xb3\x86\xd5\xab\x57\xf3\ +\xe2\x8b\x2f\x72\xc1\x82\x05\x2c\x3e\xe5\x64\x16\xce\x9f\xcf\xe4\ +\xe6\x66\x4c\x39\x9a\xd8\xc0\x0f\x1f\xfb\x99\x09\x4e\x56\x76\x39\ +\x14\x82\x64\xa2\xc3\xd7\xd4\x12\x0e\xe3\x47\x5a\xa1\x5c\x66\x68\ +\x64\x84\x1b\x1f\x78\x80\xfe\x72\x99\x13\x4e\x38\x81\xc9\x93\x27\ +\x73\xfd\xf5\xd7\x3b\xd7\xb6\x75\xeb\x56\x3e\xfb\xd9\xcf\xc6\x78\ +\xc6\xd6\x9b\xdf\xca\x9c\x0b\x4f\x3c\xb8\xc7\x7f\xe1\x89\xe8\xd2\ +\xa5\xf0\xb6\xa5\x18\x39\x84\xba\x01\x2b\x19\x24\x13\x44\x28\x84\ +\xf9\xe7\x54\x34\x12\x06\xab\xa5\xf6\x13\x87\x50\x3c\x92\xc4\xb6\ +\x25\x10\x71\x9a\x33\x4e\x86\x88\x58\x09\x94\xf0\x83\xe3\x44\xf4\ +\x0d\xe0\xdf\x52\xf5\xaa\x96\xce\x2b\xec\xdc\x63\x8e\xf9\xcc\xfb\ +\x9b\x3b\xff\xe4\x6f\x9e\x31\x25\x5f\xbd\x5b\x6f\xbd\x85\x25\x4b\ +\x96\x70\xcd\x35\xd7\x50\x5b\x5b\x7b\xc8\x93\xde\xdd\xdd\xcd\xaa\ +\x55\xab\x78\xf4\xd1\x47\xd9\xb3\x67\x0f\x57\x9e\x7b\x2e\x7f\x7d\ +\xed\xb5\x9c\x35\x67\x0e\x39\x11\xd4\x2f\x63\xca\x01\xe5\x81\xc1\ +\x68\x92\xd3\x09\x4e\x27\xb4\x9c\x4c\xbc\xfa\xd6\x0a\x4f\xfe\x0d\ +\x2c\x41\x89\x3e\x1f\x09\x91\x06\x3e\xbf\x7c\xfe\x79\xfa\xcb\x65\ +\xe6\xb6\xb6\xf2\xb7\x1d\x1d\xdc\xf4\xf8\xe3\x6c\xdb\xb6\x2d\xd1\ +\x04\x5b\xb7\x6e\xe5\xf3\x9f\xff\x3c\x23\x23\x23\xe4\x3c\xf6\xde\ +\xf1\x91\x71\x6f\x6d\x6f\xf5\xe6\xba\xb3\x99\x89\xa6\x23\x2a\xcf\ +\x6f\xd6\xf9\xda\x76\x82\x3f\xbc\xe3\x1b\xfe\x3e\xdd\x49\xaf\x7c\ +\xea\xe5\x85\x89\x89\x06\xd8\x7d\xef\xf9\x3f\xf0\x84\x77\xc4\x71\ +\xbf\x4a\xaa\x05\x62\xc7\x2f\x04\x05\x25\x01\x83\x52\x6c\x54\x53\ +\x13\x10\xeb\x0a\xdb\x8d\xc6\x44\x8e\x61\x08\xa7\x86\x7e\x82\x0e\ +\x8a\xca\x73\x60\x7c\x55\xf5\xec\xcf\xab\xd1\xbc\x31\xda\xe4\x07\ +\x66\xbc\xef\xd3\xb8\x6b\xdf\x48\x7e\xa4\x14\x2a\x8a\x9c\xe7\x31\ +\xbe\xb5\x95\xc6\xc6\x86\x0a\x0d\x63\xd5\x5b\x21\x06\x0c\x86\xa1\ +\xc1\x41\x86\x06\x07\x28\x95\xca\xb4\x34\xd4\xd3\xd2\xd8\x48\x63\ +\x6d\x4d\xe8\x9c\xc6\xd5\x39\x46\x11\x35\x91\x33\x18\x42\xc4\x82\ +\x41\x4d\x74\xce\x88\x9e\x9d\x84\x19\x6a\x00\x43\x79\xb8\xc0\xc6\ +\xc7\xe7\x31\x32\x94\x4b\x54\xbd\x29\xc7\x02\x11\x6b\x80\x50\x20\ +\x06\x46\x46\xf8\xe0\xda\xb5\x0c\x05\x01\x7f\x77\xe2\x89\xcc\x6f\ +\x1d\xc7\xb2\x9d\x9d\x3c\x37\x65\x0a\xef\x7b\xdf\xfb\x78\xe1\x85\ +\x17\xf8\xc2\x17\xbe\xc0\xd0\xd0\x10\x4d\xf5\x52\xfc\xf6\x87\x27\ +\xdd\xd3\x5c\x2f\xbe\x67\x93\x0d\x2c\x83\x26\x09\x2c\xa3\x88\x1a\ +\x35\x4a\xb9\x20\x66\x3b\x12\x3c\x74\xdc\xd4\xc1\x47\xa7\xbd\x97\ +\x9e\x97\xa3\x09\x12\x0d\x50\xc8\xb1\xac\x1c\x70\x1e\xe8\x8c\x34\ +\xee\x57\x50\x8f\x38\x24\x94\x14\x05\x4d\x6e\x7e\x8c\xa4\xa6\x2a\ +\x3f\x49\x82\x5a\x76\xda\xc6\x0b\x12\x62\x45\xa3\xa0\x27\xab\x86\ +\x8e\x23\x16\x60\xe2\x09\x78\x39\xa1\xe0\xe5\xa0\xa0\x34\x4d\xab\ +\x0f\x01\xc6\x68\xb2\x90\x21\x44\x87\x2c\x81\xd3\x28\xda\x48\xe1\ +\x59\xbc\xf0\x64\x13\xc6\x29\x8c\xf3\x80\x02\x68\x19\xb4\x27\xd1\ +\x48\x82\x49\xfc\x05\x41\x11\xb5\xae\x43\xdd\x73\xbb\xc2\x1d\x9a\ +\x32\xbf\xd6\x63\x5c\x4b\x27\x9d\x7b\x27\x84\x13\x6f\x39\x7d\xc6\ +\xb7\x7d\x82\x80\x7f\x7f\xb1\x93\xa1\x20\x60\x4e\x53\x23\xf3\xea\ +\x0b\x94\x07\x86\x58\xd8\xd8\xc4\x4f\xd6\xac\x61\xe3\xc6\x8d\xdc\ +\x76\xdb\x6d\x0c\x0f\x0f\x33\xbe\xc9\x33\x5f\xff\xe0\xa4\x52\x43\ +\xad\x77\xa1\x06\x86\x20\xb9\xdf\xe2\x4c\x7e\x26\x44\x57\x51\x1d\ +\x0a\xc4\x7b\xd2\x33\x3c\xfd\xc2\xf3\x0d\xf9\x69\x2f\x33\x45\x90\ +\x08\x40\x2e\x27\x0f\x05\x46\x1f\xd2\x30\xf5\x5a\xc8\x92\x11\xe3\ +\x29\x17\x4b\x02\x12\xed\x9f\xcc\xbc\x26\x91\x40\xd5\x8c\x81\x45\ +\xaa\x90\xec\x9b\xea\xba\xff\x49\x42\x45\x42\x0f\xde\x81\x6b\x5d\ +\x7a\x84\x73\x1d\x12\x53\xa9\xc4\xf6\x04\xd5\x42\x2b\x9d\x2f\x4a\ +\x84\x35\x5a\x4b\xd1\x21\xb1\x63\xab\x16\xce\xe1\xa6\x7f\x45\x95\ +\x5c\x3e\x60\xf2\xd4\xbd\xec\xdb\x0a\x7d\x3d\x1e\x5a\xb6\x57\x7d\ +\xfa\x78\xff\xf0\x30\xcb\xc2\xec\x1d\x6f\x9d\x30\x89\x91\xbe\x21\ +\x44\x95\x3a\x55\x26\x00\xff\xf4\x4f\xff\x14\x66\x2b\x5b\x3c\xbe\ +\x76\x53\x9b\xd4\xd5\xd0\x12\xa2\xd7\x5e\xf2\x7b\xdc\xdf\xe1\xfc\ +\x02\x15\xc5\x88\x60\x30\x9a\xf7\x3c\x93\x0b\x30\xde\x21\xfb\x00\ +\xe3\x4e\x19\xb7\x7b\xff\x9a\xde\x5f\x04\xca\x65\x0a\xed\xe9\x4c\ +\xc5\x6a\x56\x52\xfa\xb3\x25\x95\x56\x16\x20\xba\x91\xc6\x91\x07\ +\x67\xce\xa2\xd0\x20\x36\x25\x21\x10\x63\x32\xf6\x48\x92\xe4\x8b\ +\x9d\x7d\xc3\xc2\xf3\xd2\x98\x44\x2a\xd2\xae\x38\x81\x6a\x84\x11\ +\x18\x41\x30\x19\xd1\x54\x07\xde\x72\x08\xbd\x62\x91\x39\x12\xf3\ +\x46\x2a\x14\x02\x1a\x26\xbd\x18\x37\x71\x90\x96\x89\x79\xf6\x6f\ +\xab\x73\xcd\x40\x10\x60\xca\xa1\x23\xf9\xaf\xfb\xf7\x63\x80\xd3\ +\x1b\x1a\x98\x61\x0c\xfe\xe0\x20\xaa\xca\xc3\x83\x83\xec\x2d\x87\ +\x36\x7d\xca\x84\x1c\x5f\xfd\x8b\xc9\x14\xf2\x49\x46\xaa\xb2\x76\ +\xdf\xba\x99\x09\x09\x25\xf5\xb5\x05\x4f\x4b\xaa\x3a\x34\x75\xc2\ +\x70\xf9\xe5\xd6\xfd\x27\x92\x22\xe3\xff\xdd\xe0\xb1\x02\x74\xaf\ +\xab\x92\xdd\x5c\xb7\x38\x88\x99\xc1\x8b\xd4\x64\xc2\x60\x49\xec\ +\xb2\xed\x03\x68\x22\x0d\x22\xe9\x4d\x8f\x24\x21\x89\x30\x34\xb9\ +\xed\xee\xca\x4e\xd3\xb4\x92\x98\x15\xad\x98\x72\xad\x98\xdc\x30\ +\x04\x8d\xae\x47\xc4\x51\xe1\x99\x23\xa3\x85\xa5\x51\x94\x42\x62\ +\x52\x24\x33\x03\x9a\xc9\xfa\xd5\x36\x18\x26\x4d\x19\xa0\x3c\x30\ +\x40\x69\x60\x80\xf2\xc0\x20\xe5\xc1\x41\xca\x03\x03\x94\x07\x07\ +\x79\xba\xa7\x87\xc7\x86\x87\x29\x00\x6f\xa9\xa9\xa1\x34\x34\x48\ +\x79\x68\x88\x5f\xec\xef\xe6\x7b\xbd\xbd\x18\x60\xee\xb4\x02\x5f\ +\xff\x40\x1b\x85\xbc\xe0\x42\x6d\x5a\x45\x45\x6a\x95\xf7\x50\x55\ +\x86\x05\x39\xa0\x1e\xbd\xe3\xeb\x29\xf1\x32\x23\x01\x07\x0a\xae\ +\xf5\xa4\x34\x1c\xe8\x3a\x83\x9c\x18\xaf\xf7\x38\x2a\x90\x0c\x20\ +\x2a\x36\x76\x2e\xea\xac\xbc\xd8\x3f\x4c\xcc\x85\x46\xce\x63\xc2\ +\x86\x55\x47\x4b\x48\x34\x51\xa9\x86\x93\xc4\x3e\x63\x4f\x90\x66\ +\x93\xd2\xea\xac\x76\x30\x91\xa2\x12\x87\x51\x63\x27\x2e\xe3\x15\ +\x2c\x9a\xe6\xf8\xdd\x7b\x6c\xf9\x2b\xaa\x2e\xba\x1d\x87\xb1\x19\ +\xbf\xac\xa6\xde\x27\x27\xfd\x8c\x0c\x1a\xc7\xf6\x97\xcb\x3e\xff\ +\x5a\x0a\xd3\xd3\xaf\xcf\xe7\x69\x1a\x1e\xa6\x68\x0c\x3f\xf4\x7d\ +\x1e\x37\x06\x2f\xe7\x71\xd3\x57\xbe\xcc\x55\xef\xbb\xf1\x65\x47\ +\x33\xe5\x4f\x4e\x71\x4c\x5b\x24\xb7\x46\x3c\x06\x41\x77\x7b\xc6\ +\xef\xda\xf1\x14\x23\x87\x6c\x02\x00\x9a\xa6\x35\x14\x87\x9f\x1b\ +\xf8\x35\xe8\x39\x22\x32\x53\x24\x46\x5b\x2d\x2f\x20\x49\xae\x48\ +\x1a\x1b\x68\x05\xff\xc5\xd6\xa4\x09\x0a\x27\xb1\x12\xb6\x58\x36\ +\xb1\xad\x8e\xc5\x4b\xd4\xa2\x56\x3b\xa6\xc5\xc1\xa5\x92\x4b\x4a\ +\xcc\x45\x6c\x14\x62\xcd\x13\xf9\x0e\x2a\x20\x76\xb6\x47\xc4\x11\ +\xd2\x8a\xa0\x48\x5c\xe8\x38\x56\xb5\xf1\xf7\x26\x4e\x6b\x72\x6d\ +\x42\xcb\xf8\x80\xb6\xe9\x65\x36\xef\x1c\xb1\xc2\xbe\x80\xfb\x50\ +\x76\x01\x13\x81\xd7\xfb\x3e\xbb\x7d\x9f\xef\x44\x99\x9c\xfa\xe6\ +\x26\xde\xfb\x4f\xbf\x60\xcb\xe3\x17\xf2\x0f\xd7\xa6\x57\x50\xdf\ +\x04\xf5\xcd\xd0\x3c\x41\x19\xdf\x0e\x13\xa7\xc2\xe4\x63\x94\x8e\ +\x99\xd0\x3c\x1e\x0a\x9f\xdc\x55\x2d\x92\xab\x91\x4f\x4e\xee\xf3\ +\xa0\x17\x3f\x28\x9d\x3e\xe5\xe5\xe3\x00\x15\xb7\xa0\xef\xa1\x0b\ +\xa6\x0f\x97\xcc\x3f\xa8\x72\x1d\x78\x05\x5b\xd8\xc5\xba\x63\x9a\ +\x51\xbd\x62\xb1\x66\xb0\xa2\x84\x4a\x52\xbc\x05\x0c\x25\x8f\x4d\ +\xc6\xb4\xe0\x80\x4b\x64\xce\xe3\xb9\x99\x1f\xeb\x7d\x75\xec\x63\ +\xfc\x1d\x12\x41\xc6\xb6\xe9\x49\x9c\x2b\x55\x37\xaa\x49\xae\xdb\ +\xa4\x0e\x61\x06\xd4\x8a\x4d\x52\x98\x07\x51\xb4\x6c\xd8\xba\xa6\ +\xc4\x23\x3f\xee\xa3\x77\x77\x18\x4e\xbe\xa8\xf0\xc5\x28\x67\xfb\ +\x3e\xa0\x3f\x62\x70\x8c\x00\x39\x0f\xbe\xfa\xe4\x13\x68\xe9\x78\ +\x6e\x3c\xfd\xe5\x97\x65\x36\x4f\x50\x5e\x77\x3c\xcc\x98\xaf\x1c\ +\x77\x8a\x32\xfb\x54\xe5\xb8\x53\xa1\x3e\x73\x8a\x03\xd7\x16\xf2\ +\xd7\x2e\x25\x38\x2c\x01\xd0\xcd\x97\xe6\xf7\x6d\x1d\xba\xd6\x28\ +\xff\xac\x30\x21\x71\x13\x12\x2f\x29\x16\x06\xcd\x70\xe0\xdc\x9c\ +\xa1\xed\x79\x8b\x45\xb1\x4a\x55\x97\xad\x55\x6c\x04\xd1\x24\x1a\ +\x5d\x22\x27\x47\xac\xec\x52\x6a\x3e\x0c\x0e\x21\xdf\xb1\xef\xea\ +\x78\x8f\xa2\xc6\xf1\x45\x92\x73\x64\x8f\x71\xd4\x7b\x84\x0d\x38\ +\xa4\x17\x4d\xb4\x41\xca\x04\x56\x3c\x94\x62\x6f\xc0\x8a\xef\xf4\ +\xf3\xdc\x23\x23\x94\x55\xb9\x0d\x78\x11\x68\x6b\xcd\xe1\x07\xd0\ +\xdd\x1f\xce\xc7\x05\xd7\xbe\x95\x0f\x7f\xe3\x76\x1a\x5b\x5a\x28\ +\x8d\xc0\xb2\xaf\x09\xad\x93\xd3\xfb\x37\x3c\x04\xc5\x7e\x18\xe8\ +\x11\xba\x77\xc1\xbe\x4e\xe8\xda\x26\x74\x6d\x83\xe1\x81\x4a\xd7\ +\x2e\x57\x50\xfe\xe8\x0c\x38\xf5\xf5\xca\x79\x57\x1b\xe6\x9c\x71\ +\xf0\x49\xbf\x44\x0a\x32\xaa\x00\x00\xec\xbd\x6f\xd1\xc9\xc6\x70\ +\x27\x78\xc7\xab\xe3\x83\x5b\xf6\x57\x32\x11\x95\x83\x14\xa4\xd0\ +\xaf\xe2\xae\x4a\xb1\x1d\x3d\xc5\xb9\xa9\x8e\x77\x6e\x4f\xa4\x90\ +\x4e\x9c\xb5\x7a\x45\xdd\xa4\x7c\xcc\xdd\x71\x57\xb4\xe2\x8d\xa2\ +\x29\x6c\x61\xc0\x3e\x9f\x05\x6c\xa5\xdf\x13\x1a\x3d\x07\xea\xb6\ +\xae\x5b\x80\xd5\x77\x0e\xf0\xd8\xbf\x0d\xf2\x43\x55\x56\x03\x2d\ +\x93\xda\x29\x0e\x34\x52\x1e\x9e\x4c\x4d\xfd\x0c\x2e\xba\xee\x46\ +\x4e\x38\xe7\x7c\xe7\x5e\x37\x8d\x87\xd6\x36\xa5\xb5\x0d\xda\xa6\ +\x85\x26\x60\x54\x34\x73\x37\x6c\x7b\x5a\xd8\xf6\x34\x6c\x79\x42\ +\xd8\xf4\xa8\xb0\x7d\x23\x98\x20\x9d\xc6\x8e\x59\xca\x65\xd7\x1b\ +\x4e\x38\xdb\x15\x92\x71\x93\xa0\x7d\x7a\xe5\xf9\xab\x0a\x40\xf7\ +\xfd\x8b\xa7\x05\x86\x5b\x15\xde\x6c\x94\x7c\x9c\xec\x53\x2b\x09\ +\xe4\x30\xc2\x70\x29\xcf\x92\xf5\x5c\xad\x58\x45\x1d\x71\x72\x27\ +\x16\xaa\x4f\x4c\x1a\x41\xd8\x00\x4e\xda\x64\x41\x1d\xed\x60\x9f\ +\x23\x16\x36\x63\x41\x00\x96\x36\x11\x75\x91\x4c\xc1\x45\xfc\x2c\ +\x41\x48\x8c\x9d\x33\xe9\x96\xd9\x51\x78\xa1\xe9\x4a\xfe\xc7\x3f\ +\x9f\xc1\x43\xf7\x36\x10\x36\x31\x39\x9e\x43\x6d\xff\xd7\xda\xa6\ +\x1c\x3b\x4f\x99\xbd\x00\x66\x9f\xa6\xcc\x5f\xa4\x4c\x99\x59\xfd\ +\xd8\x17\x9f\x83\xff\xf8\x85\xf0\xc8\x32\x61\xcb\xe3\xc2\x60\xef\ +\xc1\x83\xbf\xe6\x89\xca\xcc\xf9\x30\x7f\x91\x72\xca\x85\x5a\x5d\ +\x00\x0e\xdc\xbf\xb8\xde\x0f\xcc\x3b\x8c\xca\xc7\x89\xfa\xee\x26\ +\x31\x71\x9c\x2a\x56\x07\xb3\x71\x84\xc1\x4d\x06\xa5\xf9\x77\xb1\ +\x08\x02\xc9\x84\xa5\x25\xb4\x8e\x8a\xb7\x63\xb5\xac\x30\x24\x2b\ +\x55\x32\xda\x23\xa3\x51\xd2\x90\x52\x13\x28\x3a\x11\x44\x0b\x09\ +\x74\x35\x80\xa6\x97\xa8\x6a\xf9\x31\x59\xb3\xa5\x15\x02\xbb\x75\ +\xcf\x34\xfe\xfe\xc7\x7f\xc7\x2f\x1e\xbb\x82\x92\x5f\x13\xad\xf0\ +\x61\x3a\x66\xd6\xd2\x32\x51\x99\x30\x25\xfc\x48\x4d\x58\xb5\x46\ +\xe0\x43\xef\xde\x50\xdd\xf7\xec\x81\xce\xcd\xa0\xa6\x72\x4a\xa6\ +\xce\x56\xce\xbc\x4c\x39\xef\x8f\x95\x13\xce\x55\x1e\xf8\x91\x70\ +\xf7\xb7\x3d\x36\xfe\x4e\xaa\xfa\x09\x6d\xc7\x86\x2b\xbd\x50\x17\ +\x5e\xdf\x60\x8f\xd0\xd7\x0d\xdd\xbb\xa0\x54\x94\x83\x6b\x00\x80\ +\xfd\xf7\x2d\x3a\x3e\x08\xf4\x33\xc0\x9b\x15\x29\x24\x71\xb9\xb8\ +\x64\xd0\x6a\x68\x5f\x16\xc8\x50\xdb\xe6\x4a\x66\x75\x56\xa8\xfa\ +\x8c\xf3\x28\xe9\xe4\x25\xf1\x87\x02\x62\xdc\x09\xb7\x91\x27\xc7\ +\xc4\x58\xb9\x08\xa9\xf6\xbe\x56\x6a\x1c\x67\x82\xed\x6c\xa6\xab\ +\x5d\x6c\xe7\x50\x44\x31\x06\xee\xde\x74\x31\x9f\xfd\xd5\x1c\x16\ +\xff\xf9\x55\x5c\xf4\xf6\xf9\xd4\x35\x1c\x5a\xd2\xaa\x6b\x1b\x6c\ +\x5d\x2f\x6c\x59\x0b\x1b\x1e\x16\xd6\xfd\x56\x18\x1e\x14\x47\x9d\ +\x07\x11\xcc\xe3\xe5\x95\xb3\xaf\x0c\x85\x63\xee\x59\xca\x8c\xf9\ +\x50\x38\x88\xc2\xd9\xf7\x22\x6c\x5e\x23\xac\x5b\x21\xac\xba\x4b\ +\x5e\xba\x51\xe4\xfe\xe5\x0b\xff\xdc\x28\x5f\x50\xa5\x45\xd5\x75\ +\x04\x5d\x86\xb8\x5a\x70\xac\xa4\x93\xe6\x40\x2d\xb8\x37\xdf\xca\ +\xe3\x4b\xd6\x54\xc4\xb1\x3a\xd6\x79\x13\x84\x31\x83\xcd\x6b\x16\ +\x0f\x50\x57\xbb\x88\x26\x66\xc2\x09\xe9\x2c\x81\xaa\xf4\x4d\xb2\ +\x02\x6a\x32\x9a\x28\xe3\x58\x46\xb2\x25\x18\xfc\x42\x33\x4f\xbc\ +\x50\x64\xf8\xa3\x69\xfb\x9e\x91\x7f\x98\x9e\x71\x3a\xd5\x89\x94\ +\x62\xd3\x58\xb8\xb9\x92\x40\x1d\x04\xb0\xe9\x51\x78\xf8\xe7\x1e\ +\x0f\xff\x4c\xe8\xdc\x2c\x89\xf6\x5b\xf4\x16\xe5\x5d\x9f\x36\x4c\ +\x9f\x37\xba\x93\x67\x8f\xe5\x5a\xd6\x83\x46\x01\x8e\x34\xde\x7d\ +\xee\x15\x9e\xc8\xd7\x50\x99\x66\xec\x40\x3c\x8a\x85\xd5\xc2\xcb\ +\x35\xc3\x1a\xa8\x24\x4a\x66\xf9\x01\x96\x61\x51\x75\x43\x30\xfb\ +\xab\x1c\x35\x9c\x4e\x68\x62\x01\x44\xad\xc9\xb0\x31\x07\x75\x54\ +\x3e\x99\x08\x44\xd5\xce\x5a\xda\xd1\x85\x7d\xac\xb1\xc2\xc4\x4c\ +\xc4\x91\xa9\x0a\x0a\xaf\xdf\xe0\x01\x1b\xba\xf2\xec\xea\xf3\x32\ +\xe6\x25\xb3\x20\x94\x0a\xc7\xd7\x0d\x6b\xab\xc6\xfc\xac\x7f\x18\ +\x96\x7d\xcd\xe3\xfe\x1f\x08\xa8\xe0\xe5\x95\x37\xde\xa8\x5c\xff\ +\xbf\x0d\x8d\xe3\x5e\x5a\x00\xaa\x09\xc4\x4b\x1e\xd8\x7b\xff\x79\ +\x73\xcb\xbe\x7e\x56\x95\x2b\x55\x28\x58\x09\xfd\x8a\xa8\x80\x04\ +\x23\xa7\xc2\x07\x50\xad\x22\x04\x59\x78\xd3\x11\x8a\xd8\x67\x18\ +\x05\x0a\xd5\x6c\xea\xd7\x35\x2d\x59\x4d\xa0\x19\x95\x2e\x19\x6d\ +\x63\x6b\x07\x1c\xe0\xa8\x52\xeb\x48\x06\xa7\xc0\x02\xbb\x90\xf0\ +\xf8\x5d\xbd\x1e\x9b\xf7\xe7\x28\x07\x19\x4c\x44\x2b\x53\xba\x15\ +\x59\xa6\x6a\x82\x18\xfd\xbc\xdc\xa7\x53\x3a\xe5\x9e\x1d\xf0\xa3\ +\x7f\xf4\x58\x76\x7b\x28\x08\x6d\xc7\x2a\xb7\x3c\x10\x30\x65\xd6\ +\xcb\x17\x00\x27\x17\x50\x75\x18\xdd\x26\xe8\x72\xe0\xc5\xa4\x92\ +\x86\x6a\x21\x95\x26\xd5\xae\x52\x95\x80\x15\x61\xec\x42\x85\xba\ +\x8f\x92\x99\x91\xfd\xce\xf4\x57\xcd\x64\xfe\xc4\xf6\xc0\x33\xde\ +\xbb\xa0\x55\x90\x3d\xd7\x11\xad\x22\x77\x96\x10\x3b\x29\xc5\x24\ +\xc6\x15\x75\x23\x14\xb7\x38\xd4\xaa\x24\x92\x34\x13\x3a\xa1\x21\ +\x60\x7c\xbd\x89\xae\xd7\x75\x1e\x53\xb5\x4f\x96\x76\x9c\x1c\xeb\ +\x98\x1a\x6b\x91\x05\x9f\x68\xc3\x7c\x22\x04\x0d\xda\xa6\xc1\x87\ +\xbe\x6a\xf8\xea\x9a\x80\x19\xf3\x95\xd7\x1d\xaf\xb4\x4d\x3f\x02\ +\x4a\xd8\xa8\x4e\xc3\x3d\xe7\xcc\x51\xb8\x45\x94\xcb\x54\x9d\x72\ +\xf2\x51\x4e\xa3\x55\xec\xbd\x64\xf2\xd8\x5a\x89\x16\x3a\xce\x95\ +\x0d\xf1\xaa\x6b\x5e\x54\x2b\x54\x7a\x36\xd4\x4c\xbe\x5b\xd2\x42\ +\x4e\xd1\x4c\xe8\x97\x36\xee\x0b\x05\x90\xac\x86\xc8\x82\x47\x8c\ +\xf2\xdc\x38\x8e\x6c\x4c\x46\xdd\x3d\xe0\xb1\x69\x8f\x87\x6f\xc4\ +\x89\x2c\x2a\x17\x10\x55\x70\x08\xaa\xe0\x21\x59\xff\x49\x35\xf7\ +\x99\xfd\x02\xe0\x97\xa1\x38\x10\x42\xc5\x87\x62\x02\x0e\xae\x01\ +\x80\x49\x97\x3e\xb2\x49\x8c\x3e\xa6\x46\xcb\x21\xfa\xa7\xc9\x4d\ +\x4d\x12\x24\x6a\x42\x3b\xac\x26\xba\xd1\x1a\xa5\x5f\xdd\x1f\xab\ +\xd9\x18\xdb\x56\xd5\xb6\x4d\x76\x56\x4e\x7c\x2e\x3b\x5c\xcc\xe0\ +\x0e\x8a\xc5\x59\x22\xe5\xa5\x1b\x77\xb2\xc4\xc2\x14\x9c\x1b\x2e\ +\xa1\x86\x12\xc7\x14\x48\x32\x69\x22\x2e\xda\x28\x19\x7c\x22\x9d\ +\x44\x89\x08\x2b\x4a\x5b\x63\x40\xce\xe3\x25\x26\x3f\xb3\x12\x35\ +\xc3\x68\x55\x2a\x7c\x0f\x47\x33\x08\x12\x7c\x7c\x42\xd8\x30\xbb\ +\x70\x78\x93\x5f\x91\x0c\x1a\x55\x4a\x44\x77\x1a\x64\x40\x55\xeb\ +\x45\xa5\x02\xdf\x4f\x13\x3d\x19\x47\x10\x8b\x20\xa2\x95\xb6\x3c\ +\x71\xe4\x46\xb9\x31\x89\xa3\x16\xe9\x8e\xc0\x87\xe7\x77\x8f\xb0\ +\xfc\xb1\x3e\x7e\xf4\x9b\x03\x1c\x7f\x4c\x2d\x5f\x7a\xff\x14\x5a\ +\x1b\x73\xd5\x1d\xcf\x38\x1d\x1c\xb7\x73\x8d\xd0\x4b\x9b\xf0\x24\ +\x54\x09\x67\x25\x75\x30\xd3\x28\x44\xa8\x56\x2a\xa3\xb6\xc0\x59\ +\xef\xe7\x3c\xa5\xb1\x60\x18\x29\x8b\xc5\xa8\xac\x8c\x02\x5c\xb6\ +\x91\x89\xea\x13\xa8\xf4\x33\xb2\xc9\xb6\xb0\x06\xcf\x97\x4f\xb4\ +\x3e\x9b\x17\xff\xbb\xf9\x81\x91\xa5\x0b\xff\x0f\x87\xdc\xe9\xfb\ +\xe5\x95\x87\x2b\x6b\x44\x74\x35\xca\xc5\x8a\x16\xaa\xdb\x11\x0b\ +\xff\x17\xdb\xf9\x33\x29\x09\x40\xd5\x49\x07\xa7\xb7\x3e\x2b\x20\ +\xea\xb0\x33\x8a\xa5\x80\x2f\xfe\x64\x0f\xdf\xbd\x67\x3f\xfb\x7a\ +\xd3\x1c\xc7\x86\x6d\x23\xfc\xfa\xd1\x7e\xae\xbb\x70\x1c\xef\xbc\ +\xa4\x95\x33\x8e\xaf\xcf\xa4\x49\xc5\x61\x12\x89\x43\x23\xb7\xfd\ +\x91\x8c\x6b\x9b\x64\x11\xdd\x34\x64\x1a\x39\x90\x61\x30\x44\x0b\ +\xc0\xe9\x18\x0a\xed\xcd\x86\xfe\xe1\x1c\xbe\x19\x65\xf2\x33\xbe\ +\x80\x2d\xee\x8e\x39\xaa\x88\xa6\x12\xb3\x57\x16\xd1\x1e\x51\x7a\ +\x06\x0d\x65\x6e\x06\x3e\x75\x68\x02\xf0\xb2\xa8\x43\xe3\x27\xe6\ +\x36\x7a\xa2\xf7\x80\xee\x11\x8c\x46\x1d\x93\x5d\x47\x50\x63\xda\ +\xb7\x65\x0e\x12\x04\xce\x44\x36\xd5\xf6\xe0\x23\xa7\xce\x81\x8e\ +\xd3\xcf\x88\xc5\xf8\xa9\xc9\xc1\xa3\x1b\x07\x93\x84\xca\x29\xc7\ +\xd5\xf1\xa9\x3f\xe8\x22\xc5\x3f\x00\x00\x15\x28\x49\x44\x41\x54\ +\x6b\xe7\x0b\x37\x76\x50\x5b\x23\x7c\x77\x79\x0f\xef\xfc\xdc\x4e\ +\xf6\xf4\x96\xd3\xb8\x5a\xad\x95\x29\x99\x02\x27\xc9\xf8\x23\x68\ +\x05\x78\x14\xa7\x92\xd3\x8a\x58\x75\x34\x84\x4a\x26\x9c\x8b\x12\ +\x47\x62\x91\x54\x26\xd4\x85\xce\xe0\x68\x93\xef\x12\x4d\xb5\x22\ +\xe9\x44\x35\xa7\x3b\x5a\xfd\x61\x62\x5a\x8d\x80\x0f\xa6\x5c\x68\ +\xc0\xe7\x93\x87\xde\x46\xfe\x65\x09\x80\x9c\xf5\xbb\x92\x60\x7e\ +\xe5\xa1\x9b\x01\x23\xe0\x70\x01\x24\x63\xcf\x53\xed\xa5\x76\xe2\ +\xde\xf5\xdc\x13\xf4\xcf\x58\x3e\x81\xcd\xdb\xd3\xc4\xe6\xaf\x7b\ +\xae\xc8\x70\xc9\x60\x0c\x7c\xe9\xfd\x53\x78\xf0\x8b\xc7\xf1\xc1\ +\x37\x4f\xe4\x86\xcb\xc7\xb3\xfd\x8e\x39\xbc\xf7\x8a\x56\x76\x75\ +\xfb\x2c\x7d\xb0\x97\x94\x0e\x60\x52\x5b\x8a\x49\x4a\xc4\x24\xeb\ +\x83\x68\x86\x73\x90\xf0\x1d\x53\x6e\x81\x88\x66\x4a\xc3\x2d\xa0\ +\x48\x1c\x74\xdb\xd2\x0a\x4a\x7d\x0d\xb4\x37\x07\x2e\xa1\xa1\x6a\ +\xce\x24\xeb\xf1\x8f\x42\x09\x8b\x5f\x17\x92\xf2\x6c\x41\x47\x72\ +\x39\x6f\xf0\xd8\x02\xfe\xe1\xec\xff\xf2\xb2\xc9\x83\xad\x97\xae\ +\xd9\xac\xaa\xcf\x09\xd1\x4e\x08\x31\x48\x42\x46\x1b\x44\x7f\x9e\ +\x98\x04\x9e\xad\xf4\x6e\xb5\x22\x37\x2f\x49\xcf\x7d\x71\xb7\xd4\ +\x00\x86\x4a\x86\xc7\x36\x15\x99\xfd\xba\x1a\x16\x9f\xdc\x98\x38\ +\x8c\xb1\x20\xbd\xe7\xb2\xf1\xb4\x34\x78\x7c\xf3\xee\x1e\xb6\x75\ +\x95\x1c\x9a\x98\xdd\xc0\xc1\x9d\xc8\x38\x72\x93\x6a\x18\x4c\x4a\ +\x0d\x23\xeb\xbe\x48\xc6\x86\xa7\x44\xb6\x04\xa0\xb2\x66\xa2\xbd\ +\x49\xf1\xac\xf2\x35\x07\x7a\xd6\x4a\x6c\x20\x7d\x4d\x33\x4e\xa1\ +\xc5\x56\x56\x54\xc2\x3b\xe5\x0b\xda\x2f\xc6\x74\x1f\x37\x8e\xa1\ +\x43\x29\x08\x39\x64\x01\x88\x6e\xd8\xd3\x28\xfd\x9e\x67\x43\x02\ +\x2e\x7f\x50\xd4\x4e\xaa\xd9\x90\x6a\x06\x84\xc9\xb6\xdc\x4e\xf8\ +\x82\x06\xb7\x12\x41\x39\xef\xc4\x46\xe6\xcf\xac\x63\x4b\x67\x89\ +\xfd\x7d\x3e\x26\x16\xba\x28\xf6\x9e\x3b\xad\x86\xb7\x2e\x6e\xe6\ +\x85\xdd\x65\xbe\xf4\xb3\xee\xa8\x82\x38\x65\xd0\x8a\x83\x55\xaa\ +\xe3\xf8\x25\x02\x28\x36\x63\x38\x3b\xc1\x69\x58\xe9\x84\xb0\xea\ +\xc2\x06\x9a\xc9\x7d\xc4\x7e\x46\x4b\xad\x66\x38\x13\xee\x04\x8b\ +\x03\x49\xeb\x4b\xc4\xe7\x9a\x5e\x8a\xa0\x02\x03\x8a\x76\x8a\x9a\ +\xee\xcd\x5b\x0f\xaf\x5f\xc0\x21\x09\x40\xde\xd3\xdf\x08\xe6\x71\ +\x55\x13\x24\xa0\x85\x6d\xbb\xa2\xdd\x30\x30\xc6\xcd\xa2\x69\x95\ +\x5c\x7c\x02\x7c\x98\x8c\x2f\x41\x02\xd5\xc6\xb6\x58\x50\x3e\xf4\ +\x96\x89\x4c\x68\xce\xf1\x7f\x96\xee\x63\x47\x57\xd9\x12\x36\xc3\ +\xee\x6e\x9f\xa7\x5e\x08\x69\x70\xe7\xcc\xad\x23\xe7\xc5\xac\xe2\ +\x51\xb2\x7b\x9a\xb1\xb1\xd6\xc3\x54\x0d\x1b\x87\x38\x92\x64\x13\ +\x2d\xa1\x76\xc0\x21\xb1\xd8\x50\x9a\x02\x48\xaa\xd0\xd1\x6c\xc8\ +\x7b\xc6\xfd\xde\x0a\xd6\x94\x66\x30\x56\xaa\xfb\x02\x51\xef\x38\ +\x35\x1a\xa8\x30\x24\xc2\x00\xbe\x8c\x1c\x3f\x72\x78\x02\x70\x48\ +\xfb\xed\xfe\xe3\x87\xa7\xed\x1b\x19\x34\x13\x81\x33\x04\x1a\x6d\ +\xcc\x3e\x2a\x18\xb2\xf8\x78\x95\x61\x13\x16\xb8\x13\x86\xd9\x16\ +\x6b\x17\x97\xa2\x2d\x19\x15\x38\xbd\xad\x86\x91\xb2\xe1\x7b\xcb\ +\x7b\xf9\xb7\x15\x7d\x14\x47\x94\x13\x67\xd4\x72\xfb\xb2\x6e\x6e\ +\xbd\xb3\x9b\xa7\x5e\x18\xc1\x0f\x60\xc3\xd6\x12\xcb\x1e\x1d\xe4\ +\xae\x55\x03\x5c\xb3\xb0\x29\x51\xe7\x69\x38\x97\xc9\xe2\xd9\x0e\ +\x80\xda\x85\xae\x99\x48\x41\xdc\x95\x29\x99\x1a\x85\x94\x22\x66\ +\x9b\x0f\xc5\xcb\x29\x35\xa2\x0c\x95\x61\xa8\x24\x2e\x0b\xa9\x4a\ +\x0e\xc0\x0e\x7b\x2b\x2a\x9e\x62\xef\x44\x54\x3d\xd1\x40\xd0\xfd\ +\x39\x4f\xd7\xfa\x5a\xde\x30\xa3\xc8\x81\x4f\xad\x39\x74\x21\x38\ +\x64\xb7\x61\xf0\xde\xd3\x66\x94\x4a\xe6\x67\x28\x0b\x4c\x65\x89\ +\x4a\x95\x36\x52\xd9\x10\x4f\x1c\x7d\x29\x99\x46\x02\xa8\x56\x1a\ +\xde\x08\x9f\x1f\x2c\x19\x6e\xb8\xa5\x93\x5f\x3f\x76\xf0\xe6\xd8\ +\xb5\x05\xe1\xce\xbf\x9b\xc2\x05\x27\xd5\xb9\x6c\x5e\x67\x05\x57\ +\xcb\xeb\x57\xe1\x25\x66\x26\x48\x47\x2b\x85\xd3\x2a\xb9\x8e\x48\ +\x7b\x74\x0d\xc2\xfa\x5d\x39\x37\x84\xd4\x0c\x54\x9d\xf5\x05\xaa\ +\x20\x82\x61\xa4\x69\xd4\x43\x47\xf2\x9e\xd9\xe4\x09\x3f\xa8\xd3\ +\xd2\xd2\xb3\xf2\xec\x78\xb9\xf5\x80\x87\x6d\x02\x00\x1a\x97\x3c\ +\xbe\x15\xd8\xa1\x09\x36\x6f\xa1\x76\x8a\xa3\xe6\x34\x1b\xda\x54\ +\x81\x81\x55\xa9\x92\x0d\x8b\x42\x35\x49\x72\x12\x20\x50\x97\x17\ +\xbe\x72\x53\x07\x8b\xe7\xd7\x3b\xb8\x7f\xfc\x38\x9f\x83\x33\x8e\ +\xaf\xe5\xef\xdf\x31\x81\xfb\x3f\xfb\x3a\x16\x9e\x50\x97\x56\xa4\ +\x19\x32\xd8\x03\x95\xc0\x8e\xb8\xa0\x94\x58\x49\x2a\x91\x8c\x90\ +\x4b\x25\x1b\x4e\xe2\x42\x58\x3b\x42\x8a\x6c\xca\xc4\xfa\x51\x57\ +\x74\x95\xc9\xcf\x3c\xd6\x8c\xc3\xac\x51\xd3\x52\x23\x7d\x39\x09\ +\x76\xd5\x0e\x33\xc0\xa7\x0e\x6f\x27\xb1\xc3\xea\x13\xa8\xaa\x2b\ +\x05\x5d\x8c\xd0\x6a\x54\xdc\x14\x6c\xb5\x0a\x2c\x47\x8a\xd3\xf0\ +\x49\x93\x7a\x0d\x5b\x00\x6c\xa6\xb1\x49\x49\x24\xc0\xea\x67\x87\ +\xf8\xeb\x6f\xed\xe1\x89\x2d\x69\x3f\xcb\x90\x74\xa9\x94\xca\xca\ +\x67\xdf\x3d\x89\x3f\xbb\xb8\x25\x13\xb7\x6b\xda\x30\x42\x4d\x25\ +\x7b\xc8\xe6\x2f\x4a\x96\x9b\x98\xa9\x21\xc8\x92\x4c\x92\x53\xa9\ +\x55\x31\x94\x41\x08\xa3\x45\xe1\x01\xe3\xeb\x03\x7a\x8a\x1e\x95\ +\x45\x1e\xd5\x60\xe2\x51\xf2\x25\xe1\xbd\x33\xa0\x45\xf1\x74\x1f\ +\x81\x1e\x98\xd2\xc4\xc8\xe1\x44\x00\x87\xa5\x01\x00\x1a\x6b\xe4\ +\x6e\x94\xc7\xd5\xa0\x9e\x13\xd6\xe1\x38\x2d\x36\xb9\x42\xac\x88\ +\xa1\x32\xa9\x63\x63\xf6\x26\x93\xec\x49\xc3\xc2\xd3\x66\xd7\xf3\ +\xc1\x3f\x1e\xcf\xac\x29\x05\x3e\xf3\x67\x93\x58\x75\xdb\xb1\x6c\ +\xf9\xf6\x2c\x96\xff\xe3\x31\x0c\x0c\x2b\xff\x77\x59\x4f\x1a\xc2\ +\x89\x4b\x48\x4d\xf2\x09\xaa\x4e\xbd\x87\x58\x4e\xaa\x53\xe4\xaa\ +\x6e\x09\x8a\x54\x0d\x63\x33\x66\xcf\x52\xef\xd9\x2c\xa2\xe4\x94\ +\x8e\x26\xa5\xe0\x99\x2a\x55\x47\xea\xe4\x00\x88\x98\xc6\x55\x20\ +\x60\x8d\x21\x72\xa0\x24\x62\xfa\x14\x33\xd4\xd6\x74\xf0\xc9\xd7\ +\x51\xcc\xfd\x61\x69\x80\x9a\x25\xd3\xd6\x17\x97\x6d\xfd\x25\xca\ +\x69\xaa\xb4\x52\x2d\xb5\x29\xea\x84\xcd\x6e\xac\x2c\x64\xde\xb2\ +\x6c\x6b\x58\xcf\x97\xd6\x17\x44\x39\x79\x03\x35\x79\xe5\x2d\x0b\ +\x9b\x79\xcb\xc2\x26\xe7\x96\xcc\x9e\x5a\xc3\xc9\x33\x6b\x78\xea\ +\x85\x12\x0f\x6f\x18\xe2\xbc\x13\xea\x92\xfe\xbf\xc9\x87\xd5\xc6\ +\xf9\xd5\xb9\x2d\x9a\x61\xf7\xaa\xe2\xc4\xf5\x15\x64\x17\xa8\x42\ +\xe0\xd0\x2c\xa6\x6c\x55\xbf\x85\xe5\xea\xe3\x1b\x0d\xad\x43\x1e\ +\xfb\x06\xa8\x8a\xef\xdb\x9f\x37\x4e\xa6\xd1\x11\x12\x0d\x99\x83\ +\x5a\x56\x43\x49\x95\xe0\xc5\x81\x83\x0b\xc0\x68\x1a\xe2\xb0\x34\ +\x80\xc8\x2f\x4d\x53\xbd\xb7\x54\x24\xac\x23\x94\x04\xd6\x35\x91\ +\x0d\x4c\x59\xb8\x62\x6c\x67\x27\x86\x7a\xad\xac\x61\x12\xfb\x9a\ +\x14\x4a\x8e\x6b\xf2\xe3\x1a\x01\xcd\x86\x44\x24\xdf\x19\x6a\x0c\ +\xc3\x47\xae\x1e\xcf\xa4\x16\x8f\xcf\xdf\xd9\xc3\xe6\x17\x4b\x29\ +\x7f\x40\x4d\xa6\xf9\xb3\xba\x90\xb4\xdd\xfb\x44\xb3\x34\x35\x4d\ +\x21\x6d\x32\x59\x4a\xa5\x0a\x25\x4c\x12\xe4\xb0\x82\xee\x26\x50\ +\x9f\x87\xc9\x4d\x26\x63\xdf\x6d\x18\x18\x0b\x06\x27\x43\x92\x49\ +\x7b\xb6\x44\xf5\x12\x81\xa7\xda\xef\x79\xf4\x1d\x38\x82\xed\x7e\ +\xbc\xc3\xfd\x60\xae\x51\x76\x63\xb4\x53\xb2\x71\xaa\xb1\xf2\xe9\ +\x6a\xe5\x6a\xad\xb8\x58\x47\x59\x35\x0e\x13\x48\xb2\x04\x89\x0c\ +\xfb\xc6\x0e\xbf\x14\x2e\x39\xad\x9e\xf7\x5e\x36\x8e\x07\x9e\x2a\ +\xf2\xed\x7b\xfb\x53\x9b\x9c\x90\x3a\x32\xc4\x0c\xc9\x10\x3a\x9c\ +\xef\xb4\x42\x56\xa9\x04\xe5\xb2\x66\xc1\x4d\x0f\x4b\x62\x0a\xc4\ +\xc9\x4e\x2b\x9e\x40\x73\x8d\x8e\x62\xef\x33\xd4\xb3\x2a\x02\x6a\ +\x35\x2e\xf0\x3d\xd1\x1e\x0f\xba\x08\xe8\x3d\xf1\x53\x87\xdf\xea\ +\xff\xb0\x05\x80\x73\x8e\x33\xe2\xe9\x3d\xa8\xf6\xc8\x28\x54\x26\ +\x27\x19\x44\x86\x4f\xef\xc8\x80\xad\x9d\x4c\x0a\x1f\x2b\x55\x70\ +\x04\x3b\x57\x90\x2e\xdd\x96\x06\x8f\x0f\x5e\xd5\x02\xc0\xd7\x7e\ +\xdd\x97\x6c\xba\x20\x99\xd8\x54\x9c\x0d\x1d\x33\x31\x79\x45\xb8\ +\x97\x31\xa2\xea\x46\x2b\x4e\x07\xf0\x04\x75\xb4\x1c\xc9\x0a\x16\ +\xb2\x52\xc8\x29\x13\xea\x8d\xeb\xf8\xaa\x55\xce\xe6\xd0\xd7\x33\ +\x35\x16\x1a\x77\x31\x50\x5f\xd0\x3e\xd4\xec\xf5\x46\x8e\xac\x59\ +\xf4\x61\x0b\x80\xc8\xbf\x69\xce\x93\x7b\x44\x58\x13\xe1\xd2\x16\ +\x16\x5e\x59\x7b\x27\x55\xb8\x7f\x88\xb1\xa0\xdf\x30\x17\x60\x03\ +\x2c\x0e\xd3\x26\xc3\x16\x4a\xa5\xc7\x24\x94\xb2\xa6\x3a\x8f\x77\ +\x5e\xd4\x84\x31\xf0\xb5\x5f\x0f\x30\x5c\xca\x76\xfb\x70\x27\x32\ +\x09\xa9\x6c\x94\x48\xb3\xdc\x7f\x17\x30\xca\x90\x32\xac\xf4\xb1\ +\xb5\x53\x58\x86\x78\x92\xf6\xcd\x53\x6a\xf2\xc2\xe4\x26\xa5\x90\ +\x33\xee\xa2\xc1\x4d\x80\x55\xb6\x84\x89\x72\x2c\x60\x44\xb4\xe4\ +\xa1\x83\x88\x8e\xb4\xd6\x1d\xd9\x46\xd2\xde\x91\x7c\xb8\xb1\xbd\ +\x66\xbd\xc0\x32\x54\x07\xe2\x55\x1e\xdb\x4d\x9b\xdf\xef\xc2\xaf\ +\x26\x31\x0f\x62\x43\xfa\xd9\x22\x0c\x2b\x53\xe8\x20\x66\x51\x48\ +\x15\x4f\x9c\xad\x61\x40\xf9\x1f\x97\x37\x73\xfa\xec\x1a\xfe\xe5\ +\x57\xbd\xac\xd8\x50\xc4\x2d\x3c\xb5\x6e\x7a\x42\xf9\x32\xa9\xd7\ +\xa5\x54\xf4\x37\x8a\xc9\x24\x95\x4c\x24\xb5\xe8\x66\x89\x71\xce\ +\x24\xbe\x70\x34\x5b\x5c\x8c\x32\xa1\xde\x30\xae\x4e\x47\xef\x0c\ +\x6d\x9b\x5a\x31\x96\xc2\x53\x5b\x6e\xcb\x28\xc5\xa6\x9a\x83\xda\ +\x7f\xb9\xf9\x25\xe6\xf9\x88\x04\x40\xce\x78\xa2\xec\xe5\x75\x99\ +\xaa\xf6\x25\x76\x33\x2e\xa8\x8c\x9d\xba\x6c\xde\xdd\xc6\xdb\x93\ +\xe4\x4f\xaa\x05\xec\x24\x90\xc3\xf7\x57\x4b\xf5\xdb\x1a\x40\xdc\ +\x82\x92\x79\xc7\x16\xf8\xe8\x9b\x5b\xd8\xb6\x27\xe0\x8b\x3f\xef\ +\xcb\x10\x3d\xac\xc9\xb3\xf0\x87\xa8\xea\x8f\xe1\xb2\x61\xa8\x64\ +\x32\x95\x47\x16\x40\x24\x54\x9a\x31\x2b\xb2\xd0\x4c\xdb\xdc\x6c\ +\x28\x18\xdf\xf0\xc6\x1a\x65\x7c\x9d\x3a\xce\x65\xb6\xa0\x26\xbe\ +\x07\x61\x13\xf1\xc0\x76\x1a\x55\x44\x87\x3d\xd1\x9e\x5a\x8f\xbe\ +\x69\x4d\x94\x0e\x82\x01\xe8\xa7\x5e\xa2\xb1\xf4\x11\x09\x00\x40\ +\x8d\x68\x9f\x27\xba\xb5\x92\x82\x1d\x2b\x44\x63\x91\x3f\x52\x4e\ +\x7e\xa2\x0d\x2a\x30\x69\x37\xb3\x58\xa1\x26\x45\x33\xc4\x52\x4d\ +\x9c\x3c\x05\xf2\x1e\x5c\x75\x56\x3d\x33\xda\xf2\xac\x78\x7a\x84\ +\x4d\x3b\x4a\x19\xc4\xcf\x4e\x32\xa5\xc5\x20\xdf\xb8\x7f\x90\x8e\ +\xeb\xf7\xf0\xf7\x3f\xea\xa7\x6f\x38\xe5\x12\xa8\x58\x0e\x9a\xda\ +\xd7\xee\x62\xf9\x2a\x36\x90\x65\x09\x86\xb8\xbc\x40\x13\x5d\x76\ +\x5d\x81\xaa\x79\x00\x27\x4d\x5e\xc1\x3e\x8e\x55\x09\x43\x18\xb3\ +\xbb\xec\xb3\x8b\x47\x19\xfe\x83\x99\x00\x80\x42\x43\x6e\x40\x94\ +\x5f\x79\x68\x77\x5a\x9e\x95\x4e\x38\x4e\x43\x85\xc4\x8e\x39\x37\ +\x25\xd9\x12\x53\x2b\x8b\x44\x63\xad\x92\x24\x8e\x34\x55\xff\xa1\ +\x7c\x89\xd5\x9a\x36\xd5\x06\x1f\x7e\x53\x88\x15\x7c\xe1\x67\xfd\ +\x11\x8d\xac\xb2\x56\x20\x71\xf6\x02\xc3\x73\xbb\x02\x4a\x3e\xfc\ +\xeb\xc3\xc3\xdc\xbb\x76\x24\x09\xe4\xb3\x05\x20\x49\xd6\x2f\x93\ +\x3f\x10\xeb\x5a\xc5\x12\x4a\x89\xd1\xc7\x4c\x1d\x63\x63\x8d\x61\ +\x7c\x43\xe0\x82\x66\x96\x0f\x20\x15\xbe\x80\x02\x46\x05\x53\xf6\ +\xc4\xf4\x01\xbd\x05\x3d\xf2\x8d\xbe\x8e\x58\x00\xb8\x60\x5a\xd1\ +\xf3\x74\xb9\x51\xf3\x24\xaa\xea\x55\x71\x6a\x04\xe3\xb2\x6e\x22\ +\x88\x57\x34\x8d\xb3\x53\x87\xc9\x38\x4e\x9f\x64\x35\x84\x55\x80\ +\x81\xd8\x1a\xc6\x38\x29\xdb\xab\xcf\xa9\xe7\x1d\xe7\xd7\xf3\xf3\ +\x55\x43\xfc\x78\xc5\x60\xf2\xbe\xed\x97\x88\x42\xb9\x6c\x78\xec\ +\x39\x9f\x03\x83\xd1\x06\x92\x43\xca\x2f\x1f\x1b\x49\xaf\x4b\x2c\ +\x36\xb0\xb8\x45\xa6\xd9\xfd\x84\x9c\xc8\x41\xdc\x4d\x22\x12\xf2\ +\xab\x86\x06\xa7\x21\x0f\x93\x1a\x94\x9a\x9c\x56\x68\x3f\xd1\xca\ +\x72\xba\xb0\x7e\x25\xa6\xdd\xe1\x7b\x50\x1c\x56\xca\x2c\xfd\x03\ +\x3a\x81\xa1\x27\x7c\xb7\x36\x8c\xf3\x36\x78\x1e\xf7\x08\x5a\x54\ +\x35\x19\x89\xb6\xe8\x55\xaa\x88\x98\x8a\x1c\xb7\x54\xa3\x5c\x3b\ +\x5c\x39\xd7\xee\x4b\xe2\x12\x64\x53\xc7\x26\xd1\x02\x93\x9a\x73\ +\x7c\xf8\x4d\xcd\x28\xf0\xe5\x65\x03\x0c\x97\xdd\x8d\xa1\xe2\xa8\ +\xaa\x90\x13\xae\xf8\xdf\xdd\x7c\xef\xc1\x50\x93\xfe\xf6\xd3\xad\ +\x7c\xe7\xa6\x16\x2b\xb9\x85\x53\x49\x44\x06\xf2\xae\xa0\x71\xa9\ +\xdb\x86\xbe\x82\x22\x12\x69\x73\xcf\x83\x89\x8d\x4a\x63\x4d\xb5\ +\x7b\xe1\x4e\x7e\x46\x13\xf8\xa8\x0e\x09\x0c\x79\x3e\xe6\xe5\xb7\ +\xde\x7e\xa5\x34\x00\x20\x17\x3e\x33\xa4\x81\xfe\x07\xaa\x43\x59\ +\xe0\x44\xac\xba\x3f\x07\x2a\xce\xa6\x57\xad\x1f\xec\xf2\xf3\xb2\ +\xd5\x40\x90\x76\xf3\xaa\x92\x4e\xb5\xbe\x68\xde\xb4\x02\x6f\x3a\ +\xb3\x9e\xce\x6e\xc3\x27\x7e\xd8\xcf\x4d\x5f\xef\xe1\xde\x27\x86\ +\x01\x65\xcb\xae\x32\x9f\xf8\x61\x3f\xa7\xfc\xd5\x3e\x86\x46\xe0\ +\xd8\x49\x1e\x9f\xbc\xb6\x81\x8e\x56\x89\x6e\x8a\x54\xa6\x66\xb5\ +\x5a\x22\xdd\x0d\x35\xd3\xc2\x58\x37\x3f\x20\x19\x1c\x44\x50\x9a\ +\x6a\xa0\xa1\x60\x67\x1e\xb3\xed\xcb\xd2\xe7\x39\x31\x71\x42\xd2\ +\x08\xf4\xe7\x60\xcf\xc2\x0e\xfa\x0e\x96\x02\xd6\x83\xa4\xfc\x8f\ +\xda\xae\x61\xb9\x9c\x74\xab\xd1\xcd\xa8\x4e\x8a\xaf\xdd\xd3\x4c\ +\xd7\x10\xbb\xb9\x93\x85\x15\x54\x10\x35\x24\x2e\xfa\xcc\xb6\xa7\ +\x0b\xed\x6f\xb8\xf7\x2f\x14\xf2\x76\xd7\x2f\x17\x29\xec\x1f\x32\ +\xdc\xb3\x76\x84\x7d\x7d\x21\x93\xf8\xff\xfe\x7a\x10\x80\xff\xf7\ +\x9b\x22\xa7\xcc\xc8\xf3\x8e\x45\x75\xdc\xbf\xae\xc4\xe6\x5d\xe1\ +\xfb\x2d\xf5\xc2\xe2\xb9\x05\xa6\x8c\xf7\xaa\x10\x34\x6c\x1f\xc0\ +\x6a\x5c\x39\x4a\xb6\x93\x0c\xc0\xe4\x34\xcc\xb2\xb6\x7f\x15\x31\ +\x34\xd6\x86\x5b\xb7\x27\x5b\xf3\x68\xf5\xcc\xa0\x51\x41\x30\x81\ +\x87\xf6\x8a\x61\x97\xe4\xe8\xa6\x78\x70\x1f\xe0\x60\x59\xc2\xa3\ +\x26\x00\x0d\x75\xd2\x39\x30\x18\xdc\x0b\xcc\xf1\xc2\x0d\x22\x9c\ +\xb4\x6f\x76\x65\xb8\x08\x9c\x7b\xe3\x54\x5d\xb6\xbc\x7d\x63\x7c\ +\x1f\xae\xf8\xd4\x1e\x1e\x79\xb6\xc4\xd7\xde\x37\x9e\xb7\x9c\xdb\ +\x40\x7d\x8d\xab\x55\x14\xa5\xbe\x4e\xf8\xee\x03\x83\x3c\xb0\xbe\ +\x54\xf1\x9d\x4f\x6e\xf5\x79\x72\xeb\x00\xf9\x1c\x7c\xf7\xa6\x66\ +\xce\x39\x3e\xcf\xf4\xc9\xb9\xcc\xca\xab\x8c\xe9\x53\x8c\xdf\x66\ +\x05\x69\x95\x6e\xa9\x99\xcc\xa1\x55\xbf\xe8\xe6\xfa\x85\xf1\x75\ +\x86\x96\x3a\x8f\x9e\x62\x15\x1e\x80\xab\xe1\x34\x85\x81\x19\xc8\ +\x09\x83\x1c\x41\x0e\xe0\xa8\x0b\x80\x5c\xf6\x6c\xcf\xe0\xcf\x67\ +\xde\x6b\x02\xb9\x48\xd1\xc5\x9e\x88\x98\x08\xa1\x93\xcc\x8f\xb6\ +\x6f\x9a\xa8\x9d\x6d\x8b\xf7\xee\x33\x51\x03\x49\xad\x60\x54\xe7\ +\x3d\xb8\x64\x41\x1d\x1b\xb6\x97\xf9\xf3\x7f\x39\xc0\x97\x97\xf5\ +\xe3\x07\x30\x6f\x5a\x81\x0f\x5f\xd5\xc8\xca\x8d\x25\xba\x7a\x03\ +\xae\x39\xa7\x8e\xdd\x07\x5e\x9a\x20\x33\x63\x72\x8e\xd3\x66\xe6\ +\x99\x3e\x29\xe7\x66\x04\x35\xdd\x0d\x07\x75\xbc\x38\xa7\x8a\xd8\ +\xe9\x25\x14\xf7\x3b\x4c\x76\x25\xcb\x08\x46\x06\xd7\x88\x23\x83\ +\xc6\x1a\x61\x62\xa3\xd2\x3f\x0c\x81\x4a\xc5\xea\xb7\x9b\x6c\xe4\ +\x14\x93\xf3\x18\x11\x18\x36\x65\x0c\xfd\x87\x43\x04\x7f\x85\x04\ +\x00\xa0\xa1\xde\x7b\x62\x68\xc0\x3c\xac\x70\xb6\x1a\xad\x15\xd1\ +\xcc\xca\xc8\x74\x7b\xd4\x34\x45\xac\x71\x5a\x36\xb1\x11\xa6\x22\ +\x11\x13\x87\x70\x7f\x7a\x7e\x03\x1b\xb6\x97\xf9\xf9\xaa\x22\xbb\ +\x0f\x18\xf6\xf5\x1b\x9e\xe9\xf4\xf9\xe9\x23\xe9\x36\x85\x5f\xfa\ +\xe5\x60\x95\x6a\xe1\x70\x5c\xba\xa0\xc0\x6d\xef\x6e\x62\xc6\xe4\ +\xbc\xd5\x5f\xc8\xcd\x11\x25\x4c\x24\xc8\x34\x9a\x34\x4e\x13\x49\ +\xb5\x19\x4c\x31\x4e\x20\x6e\xa2\xc8\x6e\x68\x65\x95\x1d\x86\xfd\ +\x86\x3d\x98\xdc\xa8\xec\xea\x15\x86\x4a\x64\x68\x62\x69\x0e\x40\ +\xd2\x75\xe2\x8b\x47\x3f\x65\x06\xd8\x7d\xe4\x1a\xc0\x3b\x9a\x02\ +\x20\x97\x3e\x57\x54\xd5\x67\x51\x1d\xc9\x52\xc4\xb2\x0e\x90\x18\ +\x93\x84\x81\x48\x1c\x2f\x9b\x0a\xfa\xb8\x24\xb5\x07\x69\xde\xe0\ +\x98\x89\x1e\xdf\xfc\x8b\x56\xf6\x7c\xa7\x83\xa7\xbe\xd4\xc6\x4d\ +\x97\x37\xf0\xa3\x8f\x84\xb4\x84\xf9\xc7\xe6\xf9\xdb\x6b\x1a\xb9\ +\xeb\x6f\x5b\x99\xd4\x2c\xcc\x3f\x36\xcf\x47\xae\x6a\xa0\xa3\xd5\ +\xc3\x13\x58\x30\x23\xcf\x82\xe9\x79\x26\xb7\x78\x69\x31\xab\xa5\ +\xf2\x13\x3a\xbb\x31\xa9\x13\xaa\x36\x24\x2d\x56\x44\x62\xac\xd4\ +\xb6\x6d\x1a\xc4\x85\x91\x2d\x2d\xe7\x59\xed\x6b\x23\x8a\x3f\x8d\ +\x35\x50\xb0\xca\xeb\xab\xb0\x84\x24\x12\xcb\xb2\x51\xf6\x63\xe8\ +\xf2\x46\x18\x3c\xd2\x10\xd0\x15\xb4\xa3\x34\x86\x7f\x3a\x7d\xa1\ +\x1f\xf0\x45\xc2\xbd\xed\x44\xed\x24\x90\x58\xce\xbd\xdd\x7b\x5e\ +\xdd\x56\xae\xea\x76\x97\xaf\x54\x03\x2a\x19\x60\x25\x7c\xbd\x58\ +\x52\xea\xf3\xa9\xca\x2d\xf9\x50\x9b\x0f\x6f\xec\xae\x1e\x43\x63\ +\x0d\x34\xd7\x4b\xd4\xc6\xb6\xd2\xd1\xd3\x6c\xb7\x10\x9b\xea\xe6\ +\x24\x88\xb4\x22\x1c\x74\xd2\xd3\xd5\x4a\xd6\x71\x77\x39\xcb\x76\ +\x20\x7b\x7e\x1f\x6c\xef\x8e\x9d\xc1\x6a\xed\xea\x30\x1e\x1c\xa8\ +\xf5\x58\x99\x83\x6f\x9d\x35\x95\x87\xe4\x43\xf4\xbd\xaa\x34\x00\ +\x40\xa1\x20\xcf\x78\xc2\x03\x82\x1e\x10\xab\xa9\x83\x3a\x99\x38\ +\xb7\x0d\x9b\xc3\xb9\x93\x34\x74\xa4\xa2\x4b\xa7\xd5\x55\x4c\x5d\ +\x6a\x99\x28\xa1\x33\x68\xb5\x30\x8a\x27\x1f\x81\x29\xad\x1e\xe3\ +\xea\x43\x2d\xe0\xf6\x15\x4a\x9b\x3e\x54\xb2\x98\x2b\x19\xbe\xa9\ +\x52\xab\xbc\x3e\xa9\xe2\xd8\xda\x35\x0e\xae\x30\xb8\x02\x34\xb1\ +\xd1\xd0\x54\x8b\x05\x8f\x67\x29\x6a\x28\xca\x48\xa0\xf4\xa2\x94\ +\x29\x1e\x9d\xc5\x7b\xd4\x05\x20\x77\xd5\xd6\xfd\x9e\x98\x5f\xa2\ +\xba\x59\x88\x77\x68\xd6\x4c\x11\x08\x4e\xad\xa0\xda\xbd\x04\xac\ +\x9c\x41\x9a\xf1\xb3\x4b\xc8\x42\x68\xd5\x4b\x76\xee\x88\x4b\xca\ +\x8c\xc5\x4c\x72\x41\x1c\xb1\x5b\xb8\x44\xa6\xc4\x8b\xfd\x0c\xcd\ +\xf0\x12\xed\x1d\x43\xd5\x2d\xdc\x14\xab\xef\x81\x64\xf2\x0a\x61\ +\x6a\x43\xd3\xcf\x59\xad\xe9\xc4\x31\x1b\x76\xef\x84\x54\x30\x9a\ +\x6a\x60\x52\x93\xc1\x93\x2c\x63\xc9\xcd\x32\x7b\x8a\x9f\xcf\xe1\ +\x33\xfe\xc8\x61\xe0\x57\x44\x00\x00\x6a\x4f\x6b\x78\x44\x3c\xd6\ +\x2b\x1a\x48\x86\xf6\x24\x71\x43\x09\x2b\xff\x9e\x88\xb2\x31\x0e\ +\xe9\x42\x2d\x3c\x5c\x1d\x5e\xb7\xb1\xb7\x33\xb0\x9a\x38\xd8\xe0\ +\x91\xb1\xb6\x81\xd1\x64\x6f\x41\xa9\xe0\x5a\xaa\x93\x6e\x75\xe8\ +\x69\xd5\xda\xb5\x6b\x06\x61\x51\xb7\x55\x1c\x6a\x35\xc5\x16\xe3\ +\x20\x94\x36\x5e\x94\x68\xc4\xc8\xf6\xe7\x3c\x68\x6f\x0a\x77\x4b\ +\xa9\xd6\x87\x40\x14\x3c\x61\x44\x84\x6e\x1d\xa6\x9b\xf5\x2f\xaf\ +\x17\xf0\x1f\x44\x00\x64\xe6\xa6\x40\x8d\x6e\xc7\x50\xb6\xbb\x6b\ +\xb8\x14\x30\x53\x89\xa2\x45\xa1\x92\x5a\x1d\xc3\xdc\xf6\xf4\xc6\ +\x52\xad\xc6\xe2\xf8\x51\xb1\x82\x63\xec\xc1\xe9\x2d\xe8\xf4\xfb\ +\x1f\x85\x90\x59\x25\xff\x60\xf7\x26\x4a\x93\x4e\x26\x01\xad\xec\ +\x3d\x15\x64\xb4\xd4\x77\x7c\x1e\xbb\x6e\x20\x83\x1b\xd4\xd7\x40\ +\x2e\x8b\xa4\xa6\x0f\x03\x81\x7e\xcf\x63\xb7\xf8\xec\xe3\x9f\x29\ +\xbd\x6a\x05\x20\xfa\x81\x8f\x88\xe8\x33\xa8\x1a\x4f\xed\x2f\xb2\ +\x30\xf4\x24\xbb\xa6\x0e\xae\x5f\x61\x4f\x2d\xbe\x9d\x58\xcc\x5d\ +\xa7\xcc\xdc\xee\x00\xee\x1c\x93\xa1\x5e\x49\x95\xbe\x06\xa2\x4e\ +\x81\x26\x49\x63\x4a\xcd\x24\xb6\xa8\xd8\x34\x9a\xec\x75\x64\x9a\ +\x4b\x6a\xb6\x0a\x58\xb3\xfb\xab\xb9\xa3\xa3\x25\xd5\x66\x16\x8e\ +\x20\x22\xf8\x22\xf4\xa0\x74\x07\x75\x47\x67\xf2\x5f\x51\x01\xa8\ +\x2f\xb0\xda\x13\x7d\x50\xd0\x3e\x11\x55\x4d\x32\x80\x69\xea\x34\ +\x21\x90\x64\x1a\x39\xb9\xe9\x61\x75\xfa\x0e\xa5\xac\xa0\xac\x33\ +\x69\xf9\x1a\xea\x92\x2d\xd2\xd0\xd2\x38\x3a\x58\x46\x29\xeb\x12\ +\xaa\x14\x91\x66\xd2\xdc\xf6\x39\xed\xbd\x52\xb2\xcd\xa6\x44\xb5\ +\x6a\xde\x40\xb4\x4a\x82\x09\x98\xdc\x0c\x4d\xb5\x99\xc2\xa3\xf0\ +\x0b\x7c\x11\x4a\x02\xa5\xa6\x3c\x01\x1f\x3f\x3a\x18\xce\x2b\xa7\ +\x01\xde\xdc\xd9\x0d\xfa\x73\x85\xce\x34\x16\x36\x8e\x97\x5b\x91\ +\x38\xc9\x34\x85\x72\xfb\xf3\xb9\xa6\x44\xc9\xd0\xa7\xed\x46\xd6\ +\x19\x22\x89\x8a\x4b\x44\x8d\xfb\x1c\x39\xed\x69\x1c\x86\x50\xb5\ +\x06\x97\x54\x73\x20\x32\x7b\x26\x99\xca\xa4\x91\x9d\x39\x4c\xb6\ +\xaf\x51\xaa\x42\xf4\x12\x3a\x83\x93\x9b\x33\xf6\x3f\x3d\x78\xc4\ +\x18\x86\x6b\x0a\x18\x3e\x83\xaf\xdf\x3c\xf2\x48\xe0\x15\x13\x00\ +\x80\xba\xb7\xed\x5a\x81\xd1\xed\x71\x1b\x41\xb7\xb3\x88\x05\xb9\ +\x56\x74\x06\xb3\x13\x43\x6e\xa9\x94\x58\x88\xa0\xda\x59\x16\xbb\ +\xeb\x87\xa4\xf4\x72\x9b\xa1\x64\xe7\x0a\x9c\xca\x1c\x51\x87\x93\ +\x98\xdd\xfa\xce\x66\x9f\x65\xca\xb4\xad\xae\xa5\xd6\x8a\x77\x4c\ +\x9d\xba\xa4\x00\x74\xf4\xf4\x8c\x86\x69\xe2\xf6\x16\xac\x6d\xf7\ +\x92\xa3\x03\x94\x41\xf1\xe8\x39\xee\x75\x14\x23\xa1\x68\x38\x9c\ +\x0c\xe0\xef\x4d\x00\x00\xc4\xd3\x67\x3d\x31\x65\x4f\x8c\xc6\x94\ +\x2a\xb5\x56\x9a\x38\x6a\x3e\xd3\x21\x2b\x7e\xcf\xd8\x6c\x19\xbb\ +\xb3\xb8\x71\xfa\xf9\xd9\xa4\x8b\x78\xb5\x7a\x55\xd5\x7c\x06\xac\ +\xa9\xd8\x44\x2a\xed\x3d\x60\x6f\x58\xe1\x14\x8e\x56\x21\x80\xaa\ +\xcd\x8a\xce\xf0\x48\xe5\x10\xb0\xb7\xba\x02\xd4\xe4\x63\x88\x39\ +\x09\x72\x8a\x9e\x47\x67\xce\xb0\x87\x35\x61\x08\x28\x37\x30\x78\ +\x38\x19\xc0\xdf\xaf\x00\xa8\xb9\x1b\x78\x36\x44\x7c\xdd\x6a\xe2\ +\x94\x24\x42\x3a\xc1\x6a\xdc\x15\xab\x31\x7d\x5c\x53\x88\x35\x09\ +\xf1\x48\xec\x7f\x36\x7c\x0b\x2b\x92\xd2\x58\x5e\x92\xb8\xdf\xa4\ +\xac\x65\x35\x4e\x2f\x42\x9b\x5f\xe8\x0a\x59\x16\x9e\x26\x69\x3b\ +\x97\x0d\x65\x9d\xea\x23\x8c\xab\xd5\x74\x14\xd5\x5f\x65\x09\xb7\ +\x8f\x4b\xed\x7f\xd8\x08\x8a\x01\x0c\x7d\x0a\x45\x0e\x1c\x5e\x33\ +\x88\x3f\x88\x00\x78\x79\x7e\x27\xe8\x6f\x44\x75\x10\xa1\x92\xe1\ +\x23\x9a\x41\xfe\xdc\xb0\x30\x49\xc1\x3a\x04\x50\x92\xb8\x1e\x27\ +\x8f\x8e\x13\x11\xb8\xc9\x20\x93\xe5\x6b\xba\xe8\x64\xba\xd9\x68\ +\x45\xbd\x7e\x5a\x44\xea\xee\x3f\x20\xd9\x9d\x45\x32\xf0\x2e\xb6\ +\x89\x3b\x14\xd8\x5e\x60\x52\x13\x34\xd5\x26\x4a\xc7\x88\x30\x22\ +\x1e\x45\x0d\x50\xde\x76\x14\xe7\xe7\x95\x16\x80\x9a\xb7\xee\xe9\ +\x15\xf4\x27\xa0\xfb\xbd\x4c\xcb\x36\xc9\x24\x4c\x2a\xb6\x6f\x51\ +\xad\x68\xa8\xa0\x64\x7b\xed\x9a\x0a\x6c\x3d\x49\x9f\xbd\x84\x60\ +\x55\x76\xf0\xce\x38\x85\x6a\x53\xda\xa2\x77\x24\x53\xfc\x49\x35\ +\x3e\x60\x25\x4a\x78\xc8\x43\xa1\xb1\x16\x26\x37\x27\x7b\x5d\x1a\ +\xc2\x5d\xa3\x4b\x94\xf1\xd9\x60\x45\xa2\xdf\x3c\xb2\x39\x7c\xc5\ +\x05\x00\xa0\xe6\xba\xbd\xff\xe1\xa1\xfb\xd5\x2e\xe8\xb4\x6d\xbc\ +\xcd\x89\x33\x2e\xab\xd6\xc9\xb8\x39\x82\x61\x31\x70\xb1\x8e\xb5\ +\x8a\x42\x9d\x7c\x82\x49\x23\x06\xfb\x78\x9b\xd5\xeb\x16\x9c\xc6\ +\xc7\x59\x35\x0b\x0e\x94\x67\x9c\x96\x37\x68\xb4\x37\x91\xa6\xef\ +\x71\x04\xc9\x3a\x4f\x60\x52\x4b\x6a\x57\x04\x06\x04\xf6\x4e\x6a\ +\x62\xd0\x6e\x06\x21\x37\x60\x8e\x24\x1a\xf8\xbd\x08\x40\xe4\xcd\ +\xaf\x02\x2d\xb9\xd4\x6f\x43\x45\x31\xa4\x58\x21\x22\x54\xe9\xd7\ +\x53\xa5\x95\x8c\x4d\xd1\xb2\xc9\x1b\x36\xbb\x47\x2a\x41\x9a\x6a\ +\x9d\xc0\xaa\xed\x6b\xe0\x08\x9d\x58\xd1\x8c\xe2\x26\xa8\x9c\xe6\ +\xd8\x47\x9e\xa6\x2d\x78\x50\x5f\x83\x8a\x30\xe4\x09\x7b\x30\xec\ +\x9d\x35\x21\x89\x00\xec\xd1\x9c\xde\xb5\x43\x9b\xd3\xdf\x9b\x00\ +\xa8\xea\x2f\x45\xf5\x39\x2f\x1b\x82\x59\x6d\xda\x44\xb3\xbb\x89\ +\x64\x3a\x88\x55\x05\x6d\xd2\x49\x94\x2a\xc4\x50\x27\xec\xce\xec\ +\x49\xe0\xc4\x78\x4e\xba\x59\x5d\x3a\x9a\x15\x0f\x86\x51\x8c\x49\ +\xe9\xe9\x62\xed\x9c\xe0\xec\xa7\x70\x14\xec\xb3\x44\x66\x20\xdc\ +\x6e\xb0\xdb\xcb\xd1\xc7\x40\x65\x0e\x40\x6e\x08\xd3\xc2\xd1\x15\ +\x98\x57\xa5\x00\x14\x9a\xbc\x07\x45\xf5\x37\xc6\x68\x39\xf5\xc8\ +\x5d\xf8\x55\x71\x31\x01\x67\x1b\xe0\x8c\xed\x17\x8d\xf7\x30\xb1\ +\x6a\x0e\x8c\x0b\x1d\xab\xd3\xcb\xdf\xf6\xf6\x63\x45\x61\xdc\x7a\ +\x83\x6c\xa5\x2e\x99\x16\x71\x76\x20\x27\x55\xb4\x87\xe8\x51\xbd\ +\x67\x5e\xe4\x0c\x8e\xab\x47\x31\x94\xf1\x81\xbe\xa3\xcb\xe1\xf8\ +\xfd\x99\x80\x37\xed\x2b\xaa\x31\x3f\x01\xa3\x5a\xad\x0f\x6e\x6c\ +\x43\x33\xf6\x3f\xf6\x01\x34\xd9\x28\xd2\x38\x55\xbb\x31\x7b\xc7\ +\x29\xe2\x18\x2d\xdc\x54\xb5\xea\x09\xb2\x1a\xc5\x86\x80\x8d\x03\ +\x29\xab\xe3\x38\x1a\x2a\xab\x7f\xed\xb4\xf2\xd1\x34\x9b\xd0\x54\ +\x0f\x53\x27\x30\xec\xe5\xd8\xee\x29\x83\xf8\x47\x2f\x04\x84\x57\ +\x80\x11\x74\x10\xe7\x56\xf8\x0a\x8d\x2b\xf7\xd0\x6e\x82\xdc\x78\ +\xf2\xf9\x5c\x60\x0e\x76\x0d\x7e\xd5\x87\xd5\x46\x2e\x81\xcc\xc2\ +\xc7\xf9\xe4\xd9\x4b\x8c\xe0\x95\xf9\xad\x47\x03\xa8\x57\x0f\xc5\ +\x87\xbc\x50\x0e\x02\x7a\xcf\xca\xb1\x87\x2f\x30\x20\x47\xcb\xc6\ +\xfc\xbe\x05\x20\xf9\x61\x37\xe3\x01\x1e\x17\xf2\x87\x1f\x0f\xf2\ +\xda\x18\x4f\xa3\x2c\xc5\x1c\xcd\xc9\x1f\x1b\x63\x63\x6c\x8c\x8d\ +\xb1\x31\x36\xc6\xc6\xd8\x18\x1b\x63\x63\x6c\x8c\x8d\xb1\x31\x36\ +\xc6\xc6\xd8\x18\x1b\x63\x63\x6c\x8c\x8d\xb1\x31\x36\xc6\xc6\x7f\ +\xfe\xf1\xff\x01\xbc\x68\xa0\xde\xbe\x88\xf6\x8c\x00\x00\x00\x00\ +\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x27\xb3\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x06\x62\x4b\x47\x44\x00\x47\x00\x9a\x00\xe8\x4d\xc5\x68\x4a\x00\ +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ +\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x05\x01\ +\x09\x38\x17\x42\xe9\x9c\x52\x00\x00\x00\x19\x74\x45\x58\x74\x43\ +\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\ +\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x20\x00\ +\x49\x44\x41\x54\x78\xda\xed\x7d\x7b\x90\x1d\xe5\x75\xe7\xef\xf4\ +\xbc\x25\xd0\x8c\x66\x34\x77\x44\x0c\x0e\x0b\xc8\x92\x10\x2f\x83\ +\x40\x40\xd8\x38\xb1\xc0\x3c\x84\xab\xe2\xc4\xb6\x04\xe5\x6c\x6d\ +\x52\xc9\x56\x2d\x54\x52\xb5\x15\x87\xda\x5d\x44\x82\x6d\xbc\x89\ +\x1d\xe2\x94\x37\x08\x27\xae\xdd\x38\xb1\x97\x45\xe8\x05\x96\x04\ +\x38\x48\xc2\x2f\x21\x84\x84\xde\x60\x49\x0b\x78\x29\x0c\x48\x58\ +\x36\x8c\x34\x08\xcd\xeb\xf6\xd9\x3f\xfa\x7b\x9c\x73\xbe\xbe\x5a\ +\x21\x8d\x75\x47\xe8\x76\xd5\x48\x33\xf7\xde\xee\xdb\xdd\xdf\x39\ +\xbf\xf3\x3b\xbf\x73\xbe\xaf\x81\xc6\xd6\xd8\x1a\x5b\x63\x6b\x6c\ +\x8d\xad\xb1\x35\xb6\x53\x6b\x23\x00\x73\x1a\xb7\xe1\xf4\xdb\x32\ +\x00\x9f\x04\xc0\xee\xe7\x9e\xc6\x2d\x39\x3d\xb6\x36\x00\x9f\x17\ +\x03\x5f\xf6\xd3\xd8\x8e\x03\x46\xc7\xfb\x76\x26\x80\xbf\x04\xf0\ +\x67\xfe\x85\x1d\x3b\x76\x80\x88\x40\x44\x00\x11\x32\x22\xcc\x9a\ +\x35\xeb\x54\xbc\xb6\x86\x01\x1c\x65\xeb\x05\xf0\x75\x00\xb7\xf9\ +\x17\xb6\x6d\xdf\x06\x02\x85\xc1\x27\x10\x28\x03\x88\x32\x80\x10\ +\xde\x9b\x39\x73\x66\xc3\x18\x4e\x61\x03\x38\x17\xc0\x3f\x03\xf8\ +\x98\x7f\x61\xcb\xd6\xad\xc8\x80\xe0\xf1\xc1\x00\xa8\xa0\x04\x19\ +\x51\x61\x00\x19\x05\x23\x80\xfb\x7f\xfa\xf4\x8f\x34\x0c\xe1\x14\ +\x31\x80\x73\x01\x2c\x01\x70\xa5\x7f\xe1\xf9\xe7\x37\x03\x20\x64\ +\x59\x1c\x50\x05\xfd\x20\x20\x23\x64\x00\x20\x06\xdf\xbe\x4f\x04\ +\x4c\xbb\x60\x5a\x03\x15\xc6\xa9\x01\x5c\x0a\x60\x05\x80\xf3\xfc\ +\x0b\x9b\x36\x6d\x2a\x3c\x1d\x00\x65\x59\x31\xc0\xa4\x0d\xa0\x70\ +\xf2\xac\x06\x32\x78\x74\xa0\x02\x15\x28\x2b\x8e\xe5\xde\x3b\xef\ +\xbc\xf3\x1a\xc6\x50\xe7\x0b\x27\x00\xbf\x05\x60\x19\x80\x6e\xff\ +\xe2\xb3\x1b\x37\x22\x0b\xb1\xdd\x79\x7d\x06\x1d\xf7\xc3\x60\xa3\ +\xf0\x70\x72\x03\x2c\x06\x3c\xf3\x9f\x77\xfb\xc2\xbd\x4f\x02\x11\ +\x0a\xa3\x20\x9c\x7b\xee\xaf\x9f\xd6\x86\x70\xb2\x2f\x38\x03\xf0\ +\x59\x00\xff\x02\xa0\xd5\xbf\xb8\x61\xc3\x86\xe0\xb5\x91\xe0\x39\ +\x62\x67\xd8\x7e\x88\xf1\x44\x28\x6c\xc4\x90\x42\x72\x83\x0c\x38\ +\x6e\xa0\x09\x63\x81\x1a\x1e\x41\xe2\xbe\x1f\xfe\xf0\x87\x4f\x4b\ +\x54\xa0\x93\x38\xf0\xf3\x9c\xc7\x87\x81\x7f\x66\xfd\xfa\x14\xba\ +\xe1\xc9\x9c\x36\x80\x82\xd8\x01\x19\x65\x61\x80\x2d\xe4\x13\x32\ +\x65\x48\xd6\x38\x02\x5f\x70\xc6\x04\x73\x6c\x8f\x1e\x1f\x3a\xfb\ +\xec\xd3\xc6\x18\x7e\xd5\x17\xd6\x0c\xe0\x73\x00\xbe\x25\x5f\x5c\ +\xbf\x7e\x7d\x3c\x81\xe0\xe1\x08\x9e\x9f\x19\x0f\x87\x34\x0e\x07\ +\xf9\x59\x06\x4d\x0c\xfd\x00\x53\xf9\xeb\xe4\xbc\x9e\xb2\x2c\x31\ +\x1e\x8d\x2e\xd1\x78\x40\x84\x5f\x3b\xeb\xac\x0f\xb4\x31\xfc\xaa\ +\x2e\xa6\x0d\xc0\x9f\x02\xf8\x6a\xad\x81\x17\x16\x50\x0c\x38\x08\ +\x59\x88\xd9\x36\xe6\x17\x9e\x5f\x64\x7d\x96\x14\x3a\x1d\xc0\x42\ +\xbe\xcc\x04\xfc\x77\x64\x1e\x25\xe2\xf7\xfa\x94\x31\x09\x27\xc2\ +\x08\x3d\xb2\x54\xfa\x2a\x1f\x38\x43\x18\xeb\x8b\x98\x08\xe0\x5e\ +\x14\x92\xed\xd1\x07\x3e\x8e\xbf\xb8\xe9\x99\x42\x05\x9f\x05\x44\ +\x02\x57\xdb\x7b\x91\x84\x04\x13\x36\x2c\xc7\xb0\xa1\x02\x82\x4c\ +\x0a\x44\x00\x15\x86\x09\x81\x10\xbd\xbd\x95\x0f\x0c\x2a\x8c\xe5\ +\x89\x9f\x03\xe0\x35\xfb\xe2\xd1\x06\xdf\x9f\x41\x56\x63\x70\xbd\ +\x11\x04\x16\x1f\xfe\x2f\xf7\xdc\x4c\x64\x08\xa0\x28\x10\x65\x6a\ +\x90\x65\x0a\xe9\x51\x81\x4a\xbe\xd7\x93\x46\x0a\xa8\xa1\x10\xc7\ +\x7d\xa6\xa7\xa7\xfb\x94\x36\x86\xe6\x31\xb3\x24\xa2\xe5\xcc\x7c\ +\x6c\x83\x2e\xf7\xe3\x62\x90\xc0\xe6\xd6\x71\xf1\x0f\x67\x84\xcc\ +\xbf\x49\xc5\xf1\x99\x7d\x9e\xaf\x77\x62\x75\x4c\x06\x33\x02\x3a\ +\xf8\x8f\xb2\x7f\x1f\x0c\x26\x20\x63\x17\xef\xfd\x31\xfc\x21\xdd\ +\x39\x91\x3d\x27\xa2\x70\x6e\x20\xe0\xed\xb7\xdf\x0e\x46\xd3\xd5\ +\xd5\xa5\x4e\xe3\x74\x42\x80\x0f\x01\x78\xfd\x7d\x7b\xbf\x3b\x85\ +\x84\xd0\xb9\xb8\x5b\x90\x3a\x03\xef\x42\x23\x88\xde\x1f\xc3\x44\ +\xa8\x0d\x88\x6c\x22\x40\x7d\x78\x9f\x12\x0d\x41\x91\x41\x15\x3a\ +\xe2\xbe\x85\x22\x29\xc3\x92\x3e\xb6\x47\x9c\xce\xce\xce\x53\x06\ +\x15\xc6\xea\xc4\x76\x02\xb8\x78\xef\x9e\x3d\x00\x11\xa6\x4f\x9f\ +\x8e\x63\x36\x06\x8a\xa9\x59\x88\xf9\x1e\x9a\xd5\x40\x19\x66\x1f\ +\x84\x1e\x33\x80\xb5\xd2\x3c\x41\xe8\x0a\x31\x48\xa7\x92\x3e\x54\ +\x44\xe1\x88\x12\xb2\x18\xc2\x40\x89\xf1\xf8\xba\x04\x99\x3b\x3a\ +\xde\x8d\x81\xc6\xd2\xfb\xf7\xec\xd9\xe3\x0e\x5a\x40\xf0\xf4\xe9\ +\x33\x8e\xc1\x10\xac\x00\x24\x84\x1c\xaf\x06\xaa\xaa\x5f\xf1\xb7\ +\x62\xed\x21\x05\x14\xbc\x41\xd6\x06\x84\x61\xf9\x54\x10\x25\x3a\ +\x42\x18\x54\x40\xa1\x8d\x4d\x0f\x33\xa3\x48\x06\xb4\xf2\xac\xb6\ +\xc6\x36\x1e\x8d\x61\x2c\x4e\x60\x13\x80\x2b\x77\xff\x64\xb7\x2b\ +\xc9\x16\x87\x65\x12\x07\x27\xc2\x8c\xa3\xa0\x82\x2e\xde\xc0\x90\ +\x2e\xd2\xa2\x8e\x34\x0c\x2a\x81\x77\x90\xc9\xf5\xb5\xe1\x50\x99\ +\x88\x24\x42\x83\x92\x8e\xa5\x67\xd7\xda\x8f\x7c\x6a\x1a\x09\xe5\ +\xb1\x6c\xc6\x18\xe8\x54\x35\x80\xb3\x00\xbc\x09\x00\x2f\xfe\xe4\ +\xc5\x78\xf1\x3e\x6d\xf3\x37\xc8\x3b\x06\x13\x18\xc0\x8c\x19\xa9\ +\x31\x6c\xd8\xf0\x8c\xca\xdb\x2d\xbc\x6a\xe8\x4d\x07\xa1\xbc\x20\ +\x64\x8c\x47\xd5\x0f\x52\x58\x2f\x90\xc1\xbe\xe6\xbf\x17\x69\x9a\ +\xe8\xb9\x82\x0f\x5b\xc1\x18\x8f\x7d\xab\x37\x2a\x9c\xe8\x97\xad\ +\x01\x70\xfd\x8b\x2f\xbc\x00\x39\xd2\x14\x58\xbb\x60\xf9\x02\x1d\ +\x9c\x58\x57\x1a\x22\x9e\x7d\xf6\xd9\xa0\x09\x10\x71\xf0\x5e\xa5\ +\xdf\x67\x82\x74\x85\x02\x90\x24\x84\x42\x52\x96\x32\x2f\x99\xb2\ +\x32\x10\x3e\x6f\xe5\xe5\xc8\x19\xca\x0c\x49\x87\x02\x9d\xaa\x1e\ +\xff\x2d\x2d\x31\x86\xab\x01\x3c\x37\x5e\x0d\xa0\x02\xe0\x2d\x00\ +\xd8\xb5\x6b\x57\x24\x71\x85\xa3\x23\x03\x81\x29\x02\xa2\xbd\x31\ +\xe1\x6f\x67\x24\xd3\x4b\x50\x61\xd3\xa6\x4d\xa2\x72\x67\xe3\xba\ +\xcb\xd3\x91\x89\x8a\x61\x49\xe8\x00\x95\x86\x93\xcc\x67\x13\xd2\ +\xdb\x65\x96\x41\x9e\x84\x66\x49\xe1\x28\xc4\xfd\x52\x71\xe9\xc4\ +\x7c\xaa\xc4\x08\xfe\x02\xc0\x97\xc6\xa3\x01\xac\x03\xf0\xf1\x9d\ +\x3b\x77\x3a\x0f\x20\x15\x02\x22\x1f\xa2\xf0\x02\x49\x5e\x10\x21\ +\x21\x78\x11\xbb\xc1\x2a\xcb\x22\x9e\x7f\xfe\x79\x1d\x77\x9d\xe7\ +\x66\x44\x49\xba\x18\xb3\x00\x38\xc2\x68\x0a\x4b\x26\xdb\xc8\x54\ +\xbd\x20\xa6\x7c\xd6\xb3\x75\x16\xa2\xa5\x67\xfb\x9d\x27\x3a\xf0\ +\x7b\xf7\xee\x05\x10\xee\xc5\xe7\x00\x3c\x34\x9e\x0c\xa0\x07\xc0\ +\x2f\x00\xd7\xa0\xe9\x07\x53\x78\xbc\xfa\x1d\xe9\x7b\xce\x77\x95\ +\x2d\x04\xc4\x08\x2f\x97\xa7\x94\x5b\xb7\x6d\x73\xde\x89\xd8\x37\ +\x50\x32\x40\x44\xb5\xba\x89\xac\xfa\x97\x19\x59\x18\xe2\x75\x52\ +\x1a\x83\xad\x21\x94\x85\x07\x1a\x83\x81\x97\x9b\xbb\x07\x17\x01\ +\x78\x71\xbc\x18\xc0\x52\x00\x9f\x06\x80\xed\xdb\x77\x88\xcc\x87\ +\x40\xe4\xe3\x3f\x81\x98\xa3\x34\xeb\x86\xbc\x18\x7f\xf9\x19\xa8\ +\xfd\x41\xd0\xe4\xd1\xbd\x56\x66\x08\x3b\xb6\x6f\x2f\xd7\x08\x84\ +\x37\x67\x25\xf0\x0d\x53\x36\x26\x93\x21\x04\x59\x3a\x13\xf5\x00\ +\xa1\x33\x14\x9c\x41\x67\x1a\x51\x08\xca\x70\x2c\x51\xe0\x58\x06\ +\xbe\xc4\x08\x7a\x00\xbc\x5d\x6f\x03\xe8\x04\xd0\x0f\x00\xdb\xb6\ +\x6d\x8b\xde\x2f\xe2\x7a\x02\xf3\x04\xfd\x39\x45\x06\x23\xfc\x47\ +\x20\x21\xc5\x15\xd8\xa3\x05\xa9\x9b\xa1\xb6\x5d\xbb\x76\xe9\xda\ +\x7e\x59\x26\xe0\x49\x9f\xc9\xed\x55\x96\x91\x51\x92\x86\xd6\xac\ +\x57\xd4\xc8\x12\xe8\x18\xb5\x80\xe5\xcb\x97\xe3\xa2\x8b\x2e\x3a\ +\xa6\x9b\x7e\xcf\x3d\xf7\x60\xc9\x92\x25\xef\xa2\xe8\xa0\x1a\xa9\ +\xa7\x01\x2c\x06\x30\xbf\x30\x80\xad\x42\x97\x87\x21\x82\x14\x07\ +\x9a\x44\x56\x20\x87\x9f\x58\x11\x06\x82\xce\x16\xfc\x81\x05\x60\ +\x24\x9f\x2f\x33\x06\x9f\x92\xaa\x78\x2e\x07\x32\x21\x6d\x16\x29\ +\x52\x03\x88\x72\xb3\xe5\x04\xee\x6a\x2c\x6a\x1c\x65\xe0\x77\xef\ +\xd9\x93\x64\x44\xc7\xb2\xb9\x6b\xdd\x03\xe0\x42\x8c\xd1\x44\x98\ +\xf7\x6b\x00\x4d\x00\x46\x43\x2c\xde\xb2\x25\x32\x3b\x8e\x03\x54\ +\xd4\x4b\xe2\x50\x03\xac\x62\xb3\xcd\x04\xe4\xc0\x7a\x3c\x40\x50\ +\x01\x45\xb8\x80\xa8\xd4\x10\x8b\x41\x2e\x37\x84\xdd\xbb\x77\x0b\ +\x5d\xdf\x43\xb9\x61\xef\xca\x8b\xcb\x59\x7d\x28\x47\x2b\xe3\x90\ +\x02\x11\x25\x99\x48\xd9\xc0\x07\xad\x84\x02\xe5\x15\x86\x7f\x6c\ +\xdc\xc1\x5d\xe7\x32\x00\x9f\xa9\x87\x01\x34\x03\x18\x79\xf2\x89\ +\x27\x71\xf3\x2d\x37\x6b\x62\xb6\x65\x6b\x24\x73\x0a\xce\xe5\xe0\ +\x46\x64\x20\x11\x1e\x24\x6f\xd6\x5e\x2e\x10\x83\xac\xc7\x50\xcd\ +\xf4\xb2\xcc\x18\xf6\xee\xdd\x9b\x14\x87\x74\xcf\x00\x25\xad\xe5\ +\xb1\x89\x94\x4a\x3b\x93\x43\x21\x8b\x4c\x4b\x3a\xe0\x2b\x83\x22\ +\x3c\xc5\x82\x97\x76\x00\x0a\xe8\x26\x4d\xe0\x68\x61\xc4\x5d\xdf\ +\xbd\x00\xbe\x50\x17\x03\x78\xe2\x89\x27\xa2\x47\x32\x70\xf3\x2d\ +\xb7\x68\x63\xd8\xba\x45\xa5\x7e\x5e\xcf\x97\xf5\x55\x2a\x1b\xc4\ +\x84\x43\x08\x99\x57\xd6\x66\xcb\x94\x46\xb3\x3f\x53\xed\x2c\xe2\ +\xe5\x97\x5f\x36\xf2\x71\xda\x4b\x98\x29\x19\xd8\x08\x42\x32\xac\ +\x08\x69\x9a\x99\xd1\xd3\xd3\x23\x48\xea\x8e\x28\x0f\x4b\x6e\x82\ +\x92\x73\x96\x48\x10\xc5\x94\x9a\x29\xa5\xbb\xae\x5b\x01\x3c\x7e\ +\xd2\x0d\xe0\xf1\x27\x1e\x97\xe0\x1c\xb6\x5b\x8c\x21\x6c\xd9\xb2\ +\x45\xc1\x3c\xcb\xd4\x4f\x4a\xa7\x2a\xc6\xfb\x04\x91\x45\x5a\x28\ +\x99\x03\xeb\x6c\x41\x5e\x85\x17\xa0\x04\xef\x90\x86\x66\x8d\xe1\ +\x95\x57\x7e\x5a\xb3\xed\x3c\x93\x1a\x41\x22\x1d\x67\xaa\xe8\xc4\ +\x39\xa3\xb7\xb7\x37\x1c\x77\xdb\xd6\x6d\x6e\x1f\x19\xbe\x2c\x19\ +\xf6\xa8\xa1\xf9\x91\x0d\x8b\x24\x90\xa7\x86\x11\x34\x03\xa8\x9e\ +\x5c\x03\x78\xfc\x71\x75\x00\x76\xe9\x1c\xe2\x58\xa6\xc6\xb0\x75\ +\x8b\x20\x85\xf1\x06\x30\x71\x09\xcc\x0b\xb4\x90\xa4\xd0\x86\x05\ +\x49\x2c\xcd\x8d\x94\xc6\x19\x84\xa6\xa3\xa0\xc2\xab\xaf\xbe\xaa\ +\x39\x41\x98\x76\x86\x44\x02\xf6\x70\x5d\xad\x56\x71\x96\x68\x1a\ +\x7d\x7e\xcb\x16\x91\xc5\x70\x14\xc7\x64\x9a\x08\x6d\x98\x32\x6b\ +\x29\x1b\x78\x8d\x82\x50\x69\xb5\xbb\x8e\x16\xc9\xcb\x4e\x8a\x01\ +\xac\x5e\xbd\xda\x88\x3b\xac\x20\x9f\xa1\xd9\x7b\x6a\x0c\x5b\x45\ +\xf8\x97\x80\xc8\xc2\xd2\x85\xf7\x12\x12\x8e\x40\x25\x6a\xa2\xdc\ +\x8f\x19\x31\xaf\x4f\xf8\x47\xfc\xde\x32\x63\x78\xed\xb5\x9f\x15\ +\x75\x80\x64\x5e\x41\xb1\xcf\xc8\xf0\x30\xce\x11\xf3\x08\x36\x6d\ +\xde\x04\xc1\x6c\x9c\xdc\xa1\xb9\x8e\x52\x4b\x49\x73\x20\x92\x26\ +\x2d\x79\x91\x0d\x97\xf2\xb3\x44\x98\x31\x63\x46\x7d\x10\x60\xd5\ +\xea\xd5\xc6\x2b\x19\xc4\xfe\x06\xb3\xf1\x56\x37\x18\x04\xdc\x72\ +\xcb\xbc\x54\xd5\x73\xc6\x10\x77\xc9\x1c\x2a\xa0\x34\x45\x0c\x37\ +\x56\x41\xa2\x80\x52\x90\xb6\x29\xe8\x9b\x06\xa4\x32\x35\x1d\x45\ +\x5f\x78\xe3\x8d\x37\x42\xfa\xf7\xde\x91\xf7\x70\xfe\xf9\xe7\x87\ +\xf7\x36\x6e\xdc\x98\xc0\x3b\x95\x48\xdc\x7a\xe0\x43\xac\x4a\x8d\ +\x84\xcc\xf5\xfa\xeb\x22\x19\x38\x23\x37\x70\xb3\xa0\xeb\x60\x00\ +\xab\x56\x89\x78\x6c\x58\xb9\x83\xf5\xa2\x65\x8e\x5c\x58\xe0\x84\ +\xcc\xcc\x9b\x37\xaf\x34\x8b\xb0\x85\x22\x70\x71\x13\x28\xf4\x18\ +\x98\x2a\xa3\x21\x88\x4a\x8c\xb2\xba\x81\xa2\x0f\x29\xf1\x3c\x9a\ +\xea\xa8\x4b\xd7\x1b\x94\xb7\xc6\xa0\x65\xb4\x01\x62\x31\x98\x99\ +\x42\x38\x5d\xa8\xd2\xc6\xa8\x65\x71\xd2\xd9\x94\x20\xc0\xb3\x66\ +\x5d\x58\x2f\x03\x58\x09\xdd\xf1\x21\x6b\xfe\x3e\x04\xb0\xc9\xfb\ +\x63\x9c\x26\x66\x55\x29\x4c\x8c\x41\x64\x11\xa0\xf2\x14\x51\xab\ +\x8e\x64\x48\x24\x61\xdd\x9b\xad\xe1\xef\xb9\xbf\x36\xa2\xd3\x4b\ +\x71\xa3\x51\x2b\xed\x74\x5f\x28\x8c\x61\xfb\xfa\xf5\xeb\x2f\x4b\ +\x34\x0b\x2a\x89\xdf\xc9\x80\x8a\xf7\x0d\x1f\xb1\xe8\x90\x20\x86\ +\x34\x54\x66\x55\xf4\x9a\x55\xa8\x88\x27\xdf\x00\xbe\xbb\x72\xa5\ +\x1a\x57\xe8\x28\x0e\xb2\x7f\x7b\xc3\x30\xf6\x20\x79\x42\x44\x86\ +\x5b\x93\x10\xa1\x3f\x9b\x56\xdc\xbc\x5a\xf7\xf4\x1b\x6d\x05\xda\ +\x90\x1e\xc4\x10\x57\x89\x30\x77\xaa\x34\x06\xae\x21\x46\x45\xa3\ +\x62\x30\x66\xce\x28\x16\x9c\xf8\xd1\x8f\x7e\x14\x8b\x4f\x25\x05\ +\xae\xcc\x7a\xa9\x47\xaa\xcc\x21\x59\xa6\xf9\x8b\xf6\xf6\x88\x06\ +\x0c\xed\xf5\xa5\x7c\x81\x08\x17\x5f\x7c\x71\x9d\x0c\xe0\xbb\xdf\ +\x35\x83\x98\x8e\xac\x87\x65\xe6\xb4\x4d\x8e\x02\x4b\xa3\x1a\x27\ +\x44\x98\x77\x6b\x09\x2a\x08\xd9\x59\x42\xe4\xba\xd7\x5b\xcd\x60\ +\xc7\xb0\x40\x02\x9a\x62\xe5\xb0\xb0\xba\xb9\x53\x47\x00\xd3\xba\ +\x66\x51\xc7\xc5\xd9\xdd\x3f\xfc\xe1\x0f\x66\xca\xde\x02\xd9\x3b\ +\x9e\x65\xa4\x0d\x9f\x4a\x52\x3f\x3f\x94\x64\xd8\x7d\x08\x73\x35\ +\x10\x4e\x91\x5b\x21\x67\x83\x71\xc9\xa5\x97\x9e\xb0\x01\x1c\xdf\ +\xbc\x00\x3f\x78\x8e\x02\xb0\xfb\xa5\x30\x84\x3c\x64\x01\x60\x16\ +\x1f\x8f\x39\x62\x9e\xb3\x1b\x13\x86\xc8\x8c\x5c\x4f\x3e\x81\xc1\ +\x90\x99\xc6\xad\xf3\xe6\xe1\xf2\xcb\xaf\xd0\x7c\x01\x8c\xb5\xaf\ +\xb7\x69\xe9\x99\xb8\xa8\x4d\x30\x3b\xb4\xf1\x67\x56\x78\x3a\xbb\ +\xef\x2d\xce\x87\xb1\x6e\x5f\x0b\x40\xc0\xdc\xb3\x86\x8b\xfd\x99\ +\x43\x56\xc3\xda\x37\x66\xe6\x0c\x64\xc4\xc8\xb9\x40\x22\x69\x60\ +\x79\x8e\x48\x86\x03\x33\xe2\x58\x27\x21\x88\xa3\x1a\xa2\xcc\x31\ +\x8b\x2a\xae\x9f\x6b\x8a\x3f\xfe\xfa\x72\x7d\x76\x27\x54\x13\x38\ +\x2e\x04\x78\xec\xb1\xc7\x2c\xee\xa7\xac\x5c\x9e\x1b\x21\xa1\x81\ +\x41\xed\x22\x2e\xe5\x13\x10\x13\x3a\x62\xcc\x04\x6e\xbf\xf7\x21\ +\xe5\x5d\x77\x2f\xbc\x3b\xc0\x25\xfb\xa2\x8e\x40\x03\xd5\x93\x22\ +\x09\xa0\x24\x7f\x14\x3f\xff\xf1\xbe\x11\x9f\xa9\x7b\x92\xb5\xfd\ +\xe9\xa7\x9f\xbe\x2c\x22\x85\x68\x55\x13\x03\x99\x51\x24\xa9\x89\ +\x78\x63\x95\xcb\x92\x4e\xa9\x18\xb6\x4c\x6a\x4b\x36\x64\xc4\xf7\ +\x3f\xfa\xd1\x8f\xfa\xfa\x4c\x7e\x52\x0d\xe0\xd1\xc7\x1e\x0b\x03\ +\x93\x8c\x2a\x23\xcc\xe0\x21\xa9\x0c\x85\xd2\x6e\x54\x8c\xca\xe4\ +\xee\x00\x83\x86\x1b\x3c\x7b\xa0\x3b\xda\x09\x11\x1e\x78\xe0\x81\ +\xc0\xb2\x01\x60\xe1\xdd\x77\x47\x7e\x40\x5c\xa2\xb9\x23\x92\xaa\ +\xa0\x12\xb2\x1a\x14\x15\xbb\x09\xf8\x93\xdf\x2e\xd6\x17\x5a\xb7\ +\x6e\x1d\xa4\x01\xd8\x3a\x87\x8f\xe3\x99\x89\xd9\x56\x03\xb0\xb2\ +\x37\x25\x7f\x47\xf1\x28\x0c\x7b\x06\x1d\x02\xc4\xbe\x97\x5f\x7e\ +\x79\x9d\x0c\x60\xc5\xa3\x69\x06\x60\xf2\xec\xb2\x6f\x91\x5c\x41\ +\x12\x46\x96\xbb\x32\xab\x1e\x81\x0d\x07\xba\x6d\xaf\x48\x3c\x64\ +\x31\x16\x78\xe0\x81\x45\x62\x50\x81\x85\x0b\xef\x56\x28\xa0\x25\ +\x05\x9d\x31\x90\xcd\x20\xdc\x3e\x5f\xfc\xe2\x17\xd1\x34\xb1\xf3\ +\xa5\x3f\xf9\x0f\x7f\x30\x8d\x40\x98\x73\x46\xbf\x40\x0f\xc9\xec\ +\xe5\xa0\xe8\xef\x23\xd9\xf4\x92\x99\x12\xb7\x25\x8e\xa6\x9c\x9e\ +\xa4\xb5\x8a\xcf\x14\xdf\x73\xc5\x15\x57\x9c\xb0\x01\x1c\x17\x07\ +\x60\x70\x18\x4c\x96\xa1\x88\x55\x54\xd0\x62\x0e\x43\xe8\x03\xee\ +\xa3\x62\x7f\x66\x6d\x2f\xeb\xdf\xea\x76\x37\x91\x93\x60\x17\xb4\ +\x86\xbc\xb8\x21\x77\xde\x79\x27\x88\x80\x07\x16\x2d\x02\x33\x70\ +\xdf\x7d\x5f\x0e\x07\x2a\x8c\x21\x42\x2e\x4b\xc2\xe1\xd1\x80\xc5\ +\xe0\x73\x31\xa7\x90\x19\xa8\x1e\x3e\x38\x8d\xf3\x1c\x20\xc2\xc6\ +\x81\x49\xa1\x59\x74\xce\x84\x83\xe2\x42\x39\x78\x2f\x4b\xe4\x0a\ +\xc6\xee\x79\x89\xff\x53\x43\x67\x2e\xb5\x09\x9f\x1e\x7b\x7e\x84\ +\x2c\x7c\x3e\xca\x5c\x0c\x73\xe3\x4f\x7e\x35\x70\xf9\xf2\xe5\x26\ +\xaf\x86\x62\xb3\xec\xc9\x9d\xee\x08\xd0\xde\x6e\xb3\x00\x02\x9e\ +\xd9\xdf\x13\xb9\x03\xe9\xb6\x30\xd6\x0e\xa4\x3d\xbb\xa4\x23\x69\ +\xd1\x83\x8b\x92\x2b\x5c\x78\xcf\xdd\x46\xc0\x31\xa8\xe0\x0e\xbc\ +\x72\xd5\x4a\xbc\xf0\xd2\xab\x2f\xff\xd1\xef\xcf\xbf\xa0\xa3\xbd\ +\x5d\xe7\xe3\x59\x8c\xc9\x73\x26\xf6\xab\x3e\x05\x19\xc7\x89\xa0\ +\x85\xab\x92\x86\x18\x2f\x2d\x6b\x8f\x37\x61\xc4\xb4\xc8\xf9\x03\ +\x13\x01\x57\x5d\x75\x55\x7d\x10\xc0\x27\xf5\xda\xa3\x8b\x1b\x91\ +\x73\x74\x0c\xff\x6a\x1e\x08\x83\xf0\x12\xe1\xd2\xcf\xec\xeb\x0e\ +\xb3\x7d\x99\x62\x9a\xc8\xec\x75\xf5\x88\x27\x11\x29\xac\xea\x10\ +\xb9\x3b\x13\xe1\x8e\x3b\xee\x08\x90\xea\x8d\xe1\xbe\x2f\x7d\xd9\ +\xa1\xc2\x42\x33\x11\x99\xd5\x31\x77\x6c\xdf\x0e\x00\x17\xb4\xb5\ +\xb6\x85\xef\x2b\xf4\x05\x80\x72\x20\x77\xc6\xb2\xf1\x70\x67\x18\ +\x98\x39\x13\x0e\x3a\xc3\x8f\x3c\x27\xf0\x5b\x16\xb0\x18\x46\x9c\ +\xc1\xb9\xd4\xf7\x59\xfa\xb7\x3a\x06\x91\xbf\x6f\x84\x2c\xe3\x98\ +\x38\xd4\x0d\x01\x96\x2d\x4b\x24\x60\x94\x0a\x3c\x35\xf2\x7c\x37\ +\xc0\xeb\xf7\xf5\x24\x5a\xbe\x4c\x9b\x34\x6b\x77\xc0\x90\x99\xf7\ +\xa4\xc2\x68\x3c\x5b\x1d\xc7\x9d\xeb\xa2\x45\x8b\x14\x7a\x2c\x5c\ +\xb8\x50\x79\xde\x7d\x5f\xfe\x12\x9a\x27\x4d\xd9\x79\xd5\x45\x1f\ +\xb9\x64\xf6\xec\x2b\x04\x9b\x67\xd1\x31\x84\xe4\x5c\x65\x3f\xc1\ +\x95\xed\xfd\x06\x59\xd2\xf8\x2d\xe5\xec\x58\xad\x2c\x67\xfc\x5a\ +\x15\x8c\xd7\x7a\xf5\xd5\xd7\xd4\x8b\x03\xc4\xb8\x9d\x45\xbf\x2b\ +\xc6\x35\x8f\x8d\x9c\x36\xb0\x13\x08\x3f\x7e\xb3\x3b\xa4\x59\xf1\ +\x2d\x0e\x79\x7c\xce\xaa\x20\x1c\x45\x25\xef\x89\xb9\x6b\x07\xe3\ +\x22\xed\x8a\x92\x33\xbb\x70\x29\x3c\x50\x7c\xb7\x3f\x95\x3b\xef\ +\xbc\xb3\x20\x8e\x0f\x2e\x02\x31\x70\xdf\x7d\xf7\x05\x03\xb8\xeb\ +\xae\xbb\x00\x00\xa3\x87\x7e\x71\xc9\xe5\x97\x2f\x00\x07\xf7\x97\ +\x71\x5e\xa4\xaf\x82\xd8\xb2\x3f\x47\x02\x36\x1d\xe9\x0c\x46\x77\ +\x65\xdb\xa1\x02\x36\x84\x67\x30\xfb\x35\x0a\xb4\xac\x12\x81\x2e\ +\xa2\x41\xe8\x8e\x93\xf2\xb9\xe7\x18\x63\xa0\x03\x1c\x9f\x01\x70\ +\x4c\xf3\xf2\x92\xef\x67\x45\x74\x0a\xf3\x58\xff\xc6\x14\xc3\x17\ +\x82\x44\x53\x72\x1d\x5c\xf0\x3b\x4f\x94\xa4\x64\xeb\xc8\x00\x3b\ +\x7c\x2d\x8c\x8e\xc3\x0d\x67\xa9\x3d\xb0\xe0\x1b\x10\x44\x0d\x8c\ +\x3b\xef\xb8\x33\x84\x9d\x45\x0f\x3e\x08\x66\xe0\xab\x5f\xfd\x2a\ +\x9a\x27\xf5\xee\x18\x1d\x38\x70\x29\xb3\x24\x8b\x3a\x0c\x59\x11\ +\x24\x98\x9b\x33\x0a\x78\x27\x20\x60\xf3\x60\x34\x86\xd9\xad\xfd\ +\xa2\x0d\x8c\xe3\x65\x27\x31\xc2\xbb\x95\x0e\xa1\x94\x03\x9c\xf9\ +\x5d\xb9\x7e\x21\x60\xc9\xd2\xa5\x8e\xa5\x52\x02\xb5\x32\xa7\x23\ +\x30\x9e\x79\xb3\xb7\xf4\xcb\xd8\xc4\x44\x32\x35\x72\xd5\x01\x96\ +\x89\xdb\x1f\xe0\xb8\x04\x1a\x09\xa5\x65\x5f\x2e\x6b\x4b\x57\xa9\ +\xa0\x57\x28\x73\xfc\xc3\x3f\xfe\x03\xee\xb8\xe3\x0e\x9d\xf2\x91\ +\x90\x6d\x6d\x15\x50\x4a\xbb\xa2\x85\x4b\x85\x2a\x43\x32\xaf\x6c\ +\xed\x4f\x3a\x80\x74\x93\x08\x4a\xc4\x21\xdb\x61\x44\xb8\xee\xba\ +\xdf\x88\x65\xc6\x93\x4a\x02\x73\x8e\xb0\x27\x80\x28\xc4\x7d\x66\ +\x3c\xf3\xe6\x14\x11\x9e\x19\x10\xd0\x2c\xb4\x22\x93\x41\x72\xb4\ +\x0e\xb2\x72\xa9\x37\x1a\x8e\x33\x8d\x3d\xcb\x0a\x5e\xaa\x0d\x8d\ +\x6d\xea\x1a\x7e\x77\xa3\x91\x2b\x49\x3f\xc0\x71\xce\x51\xb2\xf5\ +\xf4\x2c\xa6\xbe\x1c\x8c\x93\x29\x82\x35\x85\xf0\xe4\xef\x11\x89\ +\x7e\x08\x0e\x88\x40\x60\x6c\x1e\xea\x84\xef\x47\x9c\xdd\xd2\xef\ +\x38\x40\x44\x27\x59\x40\x93\x01\x41\x27\x4e\x63\x83\x00\x63\xa3\ +\x03\xe4\xc5\x88\x6e\x78\xb3\xd7\x60\x0a\xc7\xbc\x3b\xc4\x48\x99\ +\xc7\x8a\x24\xd8\x5c\xac\xfc\x1e\x26\xa4\xeb\x07\x05\xb5\xb1\x88\ +\x8d\x60\xa8\x5c\x9f\xbd\xf2\xc8\x22\x54\x08\x4e\xe1\x43\x89\x0f\ +\x59\x24\x15\x07\x76\xc6\x2d\xea\x07\xc5\x00\xb2\x08\x6a\x31\x80\ +\x71\xcc\x6d\x5d\xf8\x13\xc6\xe3\xde\xcb\xdc\xf5\xb3\xd3\x1e\xfc\ +\x00\x6f\x1e\xee\x0a\x88\x32\xbb\xf9\x60\x5c\xfb\x48\xe4\xbd\xc1\ +\x38\xbc\x03\x30\xd9\x5a\x45\x1d\x38\x80\x18\xb4\x0d\xfb\x7a\x13\ +\xd7\x23\x29\xb0\xb0\xc0\x7a\x06\xc8\x91\x22\x0e\x44\x2a\x56\xf8\ +\xe0\x0a\x39\x60\x8a\x11\x96\xe5\x71\x29\x02\x44\xfc\xc5\x7d\x0d\ +\x01\x59\x91\x5e\x51\x26\xb8\x0a\xf9\xdf\x29\xa6\x54\xce\x68\xa5\ +\x37\xc7\x67\x8f\xb8\xe3\xe5\xce\x73\x4d\xea\x19\x6a\xdb\x99\x68\ +\x7f\x73\xc4\x54\xb0\xe3\xc8\xd8\x05\xd8\xf8\x73\x25\xf8\xc5\xae\ +\x22\xb1\x7c\x7e\xa4\x33\x84\x89\xd9\xcd\xef\x04\x9e\xe7\xf7\xf3\ +\xce\x40\x32\x1b\xaa\x87\x01\xc0\xc1\xd1\xb3\xfb\x7b\x95\xba\x46\ +\x35\xb2\x05\x52\x74\x37\x6a\x04\x41\xd4\x32\x50\xee\x49\x8e\xf7\ +\xcb\xe0\xe1\x5e\x64\x0a\x24\x58\xc0\x86\x1f\x5c\x3f\xb0\xb9\xf3\ +\x58\x09\x3e\xbe\x5a\xe8\x98\x78\xac\x4f\x38\x96\xcd\xc5\x95\xe4\ +\x39\x9b\x7e\xc7\x78\xfe\x9c\x45\x69\x8a\x72\xcf\x01\x5c\x4e\x2f\ +\x78\x48\xc8\xf1\x89\x35\x92\x09\x7d\x00\x6e\xf0\x49\x1a\x82\x33\ +\x97\xcd\xa3\x5d\x81\x5f\xcc\x6e\xea\x87\x04\x52\xb8\xeb\xa8\x9b\ +\x01\x6c\xd8\x57\x31\xb9\x78\x34\x0a\x69\xdd\x47\x3b\xd1\x10\x09\ +\x44\x09\x36\xc2\x6f\x84\xbb\xe2\x30\x0c\xc9\xc3\x19\xba\x0b\x39\ +\x1c\x90\xe5\xbc\x00\xd6\xdc\x82\xa2\xd7\xb3\x58\x75\xce\x23\x4c\ +\xf0\x74\x16\x06\x2a\x4b\xd9\x88\x0c\x5f\x74\x78\xe9\xc2\xb1\xd3\ +\xfd\x59\xe8\xdd\x6c\x2a\xa3\xf1\x34\xb9\xa4\xe8\x45\x02\x21\xa2\ +\xe0\xf3\x3c\x17\x99\xc4\xec\xac\xdf\xc0\x55\x1d\x0c\xa0\x7b\xc6\ +\xed\x68\xaf\x16\x03\x34\x98\x29\x1a\x18\x6a\xed\xa1\x16\xcf\xe2\ +\x86\x23\x5a\xbf\xcc\x02\x4a\xbb\x85\x3c\xe1\xf1\x1f\xcc\x04\xc4\ +\xab\x1a\x31\x92\xe6\x54\x46\x34\x84\x38\x20\x66\x9f\xf0\x9d\x24\ +\x5e\xce\x45\xff\x02\x27\xa9\x9e\x3c\x1e\x50\xd4\x21\x38\x83\xae\ +\x7f\xc8\x5c\xdd\xa3\x88\x43\x0d\x6b\x08\x9e\xc6\x90\xe2\xb9\x26\ +\xd5\x34\xc8\xb0\xa5\xda\x15\xb2\x92\xcb\xb3\xfe\x31\x31\x80\xec\ +\xf8\x38\x40\xf1\xd3\x5e\x25\xf7\x93\xe9\x50\xef\xbd\xc8\x3c\xcb\ +\x8b\x02\x3d\x8b\xde\x93\x33\x83\xdd\x45\xfa\xe3\x6a\xa5\xb8\x80\ +\xf5\xe0\x9d\xee\xe0\x52\xa3\x61\x16\xaf\x31\xc4\xef\x1e\xd6\x39\ +\x1c\xdc\x7f\x9e\xd9\xe9\x07\xee\x7d\x11\xfa\x8b\xe3\xe5\xb9\xfb\ +\xde\xe2\x18\x39\x33\x38\xe7\xb8\xaf\xdf\x3f\x2f\x42\x46\xee\xde\ +\x43\x9e\x8b\xf3\xc9\xf5\x7e\x76\x7f\x2e\x84\xaf\x9c\xed\xfb\x8c\ +\x3c\x8f\xef\xfb\xf7\x72\xb7\x6f\x9e\x03\xcf\x1e\xea\xc4\x94\x8f\ +\xdd\x5e\x87\x10\x20\x88\x9d\x14\x40\xda\xab\x91\xb1\x0c\x66\x79\ +\x74\x69\xe3\x4c\x8a\xd8\x05\xce\x24\xfa\x70\x54\x4f\x01\x69\x95\ +\x5e\xc4\x7f\x55\xc4\x93\xa9\x52\x78\x5f\xf7\x22\xb3\xca\x34\xa2\ +\xa2\xc6\x6c\x74\x18\x37\xb0\xb1\xc5\x5d\x4c\x48\xf5\x21\x89\xac\ +\x86\x89\x88\x3c\xa4\xb3\x99\x64\xf1\x53\x77\x9c\x02\xc9\x23\x3d\ +\x8c\x2c\x8a\x0d\x10\xe8\x82\xc2\xf0\xe1\xaa\x59\x73\xa1\x1e\x24\ +\x90\xd9\x14\x69\x75\x01\xb8\xad\x1a\x1b\x27\x8f\x34\xe5\xb1\xa2\ +\xc7\x26\xee\xb1\x24\x04\xc2\xc3\x75\x33\x51\x24\x8e\x0c\x53\x2c\ +\x89\x4d\x95\x0a\x69\x02\x9f\x64\x03\xf3\x28\xb7\x48\x91\xdd\x78\ +\xef\x0c\x79\x77\x86\x98\xde\x19\x89\x1a\xaa\x7c\x53\x90\x4e\x6f\ +\x50\x5e\xbc\xd2\x65\x5c\xa1\x09\x18\x9d\xa1\xf8\x60\xee\x48\xaa\ +\x31\x04\x02\x46\xdf\x63\x5d\xb2\xd6\x72\xf0\xc9\x33\x80\x00\xb9\ +\xd2\xc1\x75\x02\xed\x06\xad\x38\xfb\xf6\x51\x0a\x5e\x7d\xa4\x89\ +\x55\x0e\xec\xfb\xff\x7c\xca\xa7\xf8\x9c\x24\x42\x56\x06\xe0\x18\ +\x4f\xd9\xaf\x44\x22\xbd\xcc\xf5\x09\xe4\x0c\x64\xa2\x9e\x1e\xd4\ +\x35\xc1\x53\x22\x51\x24\xa1\xfd\xe7\xc8\x3d\x4a\xb0\x20\x82\xa1\ +\xd6\xc1\xc8\x33\xdd\x7b\x48\x82\x6b\x86\x7b\x22\xfe\x66\x96\x13\ +\x43\x58\xe7\x48\x72\x0d\x62\x8a\xfa\xc2\xf0\xa0\x51\x2b\x83\xee\ +\x01\xa7\x05\xd4\x4d\x07\x88\x6c\xd6\x16\x31\x7d\x3e\x4f\x02\x25\ +\xfc\x6f\x9e\x2b\x00\x8c\xc1\x26\x06\x15\x77\x53\xa5\x69\x7e\x2d\ +\x41\x2e\x09\x3b\x2c\x34\x06\x26\x18\xcf\x16\xf7\x31\x7e\x50\x19\ +\x28\x41\x1a\x2f\x99\xf2\x6d\x3c\x7e\xce\x1c\xaf\x2f\x17\xe5\x69\ +\x3f\xd1\x83\x01\x72\x61\x22\x0d\x05\xee\xdf\x3c\x0a\x51\x14\x64\ +\x5c\x99\x33\x98\x69\xed\x22\xed\x1d\x19\xf4\x4d\xa7\xb2\x51\x16\ +\x11\x33\x02\x52\x9e\x78\x51\xe0\x38\x43\x80\x43\x9f\x5c\x22\x3a\ +\xcb\xaa\xbd\xe9\x14\xf2\x0b\x3a\xc4\x2d\x1a\x03\x30\xe8\xc2\x44\ +\x58\x21\x1c\x72\x8e\x21\x47\x6b\x27\xd1\x3d\x6b\x42\x01\x84\x38\ +\x14\x92\x00\xcf\x53\x5c\x5f\x3e\x87\xd6\x70\xc9\xf4\x85\x15\x79\ +\x42\x98\x5b\xad\x1a\x46\xcd\x8c\x5a\x65\x26\x18\xbd\x54\xb0\x6d\ +\xe2\x1a\x7a\xfd\xc3\xe7\x0b\x23\x66\x31\x17\x20\x1f\xca\x75\x58\ +\x62\xfb\x27\xab\x8c\x64\x2c\x20\xe0\xf8\x43\x80\x4c\xed\x84\xd2\ +\xa5\x53\x54\x36\xa9\x8f\x95\x85\x8b\xbf\xda\x47\xe3\xaa\x19\x83\ +\x4d\x1c\x3d\x55\x36\x4f\x90\xd2\x41\xca\x85\x26\x72\x95\x43\xb1\ +\x1c\x3c\x81\xc4\x80\x92\xab\xd4\x59\xb4\x90\x09\xba\x08\x05\x20\ +\x6d\x64\x36\x2c\x31\x90\x53\x14\x83\xcc\xb4\xc8\xa0\x85\xc4\xd9\ +\x50\xf1\x9a\x7d\xb5\x33\x1f\xce\x93\x6e\xa6\xa8\x6d\x49\x6f\x17\ +\xab\xad\x92\xef\x25\xab\x47\x08\x60\x5b\xc3\x8e\x74\x8c\x49\x96\ +\x2a\x49\xc4\x68\xd3\x3b\x48\x92\x14\x69\x6b\x6f\x1b\x2d\x6e\xfa\ +\x60\x33\xcb\x2a\x51\x42\x8e\x65\x0d\x9d\xa1\xc5\x04\x26\xa1\xa5\ +\x8b\xc1\xf5\x0a\xa0\x2c\x0e\xab\x81\x76\x6f\x4a\xa5\x32\xb0\x7e\ +\x55\xe9\xcc\x55\x77\x3f\xab\xd9\x8f\x1c\x09\xaf\x30\x5a\x79\x6f\ +\x98\x09\xf9\x28\x42\x0f\x85\x0a\x21\x72\x5e\xa5\xbf\x2f\x99\x9c\ +\x83\x9d\x47\x99\x9c\xeb\xc6\x01\x34\x14\x17\xd6\x99\x3b\xf9\xd5\ +\x64\x07\xc2\x9b\xb8\xa4\x0c\xce\xd0\x12\xaf\xff\x6c\xdb\x68\x16\ +\x6e\xcb\x50\x73\x5e\xda\xbe\xc5\xa6\xee\xc0\x42\x65\x0a\x9a\x83\ +\x10\x6f\x94\x01\xa9\x56\x2d\xc9\x02\x8a\xfc\x3d\x86\x15\x8b\x01\ +\x35\xaa\x71\xb1\x5e\x2d\x7a\x22\xa3\xf7\x83\x80\x6a\x55\x5c\x2b\ +\x65\x49\xfa\x1a\x4e\x2c\xf3\x45\x9f\x58\x01\x8d\x05\x2d\x82\x59\ +\x5b\xaf\x4e\x24\xd0\x94\x67\xa5\xe4\x2b\x59\x3c\xa0\x3d\x32\x2a\ +\x75\xb2\x71\x83\x8c\x51\x08\x74\x20\x46\xdb\x48\x16\x42\xc1\x50\ +\xb3\x28\x2a\xb3\xc8\x0a\x28\x56\xf5\x42\x41\x09\x10\xbf\x93\x4a\ +\x56\xb9\x6c\x00\x83\x14\xcc\x22\xef\x77\xa5\x61\xd6\xda\xbd\x6d\ +\x40\xa1\x52\x35\xcf\x69\x8c\x55\x23\x97\x7a\xe5\x51\xc9\xc5\xa2\ +\xc3\x29\x2f\x5e\x63\x37\xed\xde\x42\x9f\x46\xaf\x7a\x84\x00\x96\ +\x83\x2a\xb5\x73\xdb\xc8\x65\xa2\xb4\xaf\xce\xd9\xd4\x2c\x94\x7e\ +\xa1\xa4\x93\x10\xa3\x89\x43\x57\x55\xdb\x48\x16\xa0\xb3\x08\x13\ +\xba\x62\x28\xdb\xbe\x89\xc4\x24\x2c\x66\x13\xf7\x75\xa9\x47\x71\ +\x2a\x4e\xb3\x05\x64\x2c\x90\x45\x93\x43\x72\xf7\x43\x66\x01\x00\ +\x81\x47\x73\xb3\x82\x78\x84\xfa\x58\x2a\x16\x0a\xa9\xf4\x72\xd5\ +\xc7\xe0\xbe\xd7\x87\x38\x66\x59\x04\xad\x1f\x09\xd4\x3a\xb6\xbe\ +\x7c\x50\x24\x63\xc6\x84\xc3\xa4\x51\x0b\xa7\x2c\xe1\xc3\x86\x0f\ +\x91\x25\x78\x12\xd5\x36\x12\x6f\xec\xa0\x08\x13\x61\xc1\x8a\x1c\ +\x6a\x96\x92\xac\x4a\xfb\x29\xea\x7e\x14\x18\x51\xa6\xcd\x73\x97\ +\x2d\xc8\x2c\x2b\xa7\x90\x83\x47\x95\x92\x12\x52\xa8\xb2\x13\x17\ +\x42\xe4\x5c\x3e\x9d\x3e\xc3\x68\x00\x3a\x93\x22\xeb\x48\x63\x57\ +\x03\x3a\xf1\x10\x90\x9e\x8c\xa4\x79\xba\x2a\x66\x99\x6c\x9c\x1c\ +\x2a\xb4\x34\xd2\x9c\x4f\x8d\x16\x58\x8b\x2a\x52\x91\x73\x61\xa8\ +\x6d\x24\xbe\x36\xd4\xc2\x11\x4e\x39\xa2\x88\xe7\x2d\xb1\x4d\x4c\ +\x4c\x1e\x05\x85\xd8\xcf\x0c\xa0\xca\xb1\xd9\x2a\x23\x21\x7d\x8b\ +\x38\x9f\xb1\x91\xbc\x05\xf1\x25\x1d\xea\xf4\xf3\xa6\x0a\x5e\x90\ +\x9b\x29\x91\xe1\x61\x57\x10\x29\x15\x71\x22\xb8\x59\x94\xa8\x8b\ +\x14\x9c\x4a\x18\x32\x9e\xb3\x86\xd3\x92\xf6\x71\x9d\x86\x1b\x12\ +\x24\x3c\x39\xe4\xcc\xf6\x75\x26\x3d\x4b\x86\x22\xfc\xb7\x8d\x44\ +\xd5\x6d\xb0\x85\x75\x28\xb1\x3c\x84\x84\x2e\x10\x38\x80\x11\xa8\ +\x72\xb1\xce\x81\xf0\xce\x9f\x0d\x4d\xc6\x39\xad\xfd\x5a\x01\x0c\ +\xb3\x8b\xca\x16\x40\x28\x0b\x93\xa2\xf3\xc1\xc7\xfc\x92\x74\xb9\ +\xb4\x27\x95\xeb\xc5\x01\x64\xe5\x4c\xe7\x78\xea\xac\xd4\x44\x4f\ +\x94\xd4\xf4\x13\xd1\x28\x86\x88\xe8\xb9\x42\x4d\x60\x88\x24\x9a\ +\x13\x63\x24\xa1\xa7\xa1\xe8\x09\x41\xdb\x70\x4c\xcc\x87\x5a\xf3\ +\xe4\xb6\x5b\xb5\x25\x54\x25\x43\xac\x96\xcd\x24\xbe\xf1\xa4\xf8\ +\xf0\xd9\x2d\xef\x44\xa5\xce\x67\x23\xb9\x90\x99\xcb\x4b\x41\xaa\ +\xf1\xc3\x12\xe8\x34\xab\x88\xf0\x41\x90\x9d\xd4\x5c\x1f\x29\x98\ +\xc3\xec\x1f\x3f\x5b\x45\x8b\xc1\xca\x91\x73\x53\xd5\xb2\xcd\x22\ +\xb6\x8d\xcc\x68\x5e\x91\xf5\x26\xac\xd0\x41\x72\xca\xec\xb9\xc4\ +\x35\xfc\xe7\x5a\x87\x0a\xf5\xf1\xa7\x47\x26\xe1\x9c\xae\x83\xfa\ +\x13\xa2\x39\x24\x34\xbd\x8a\xee\x1f\xbf\xea\x98\x2c\x0c\xc9\xe9\ +\x85\xe2\x56\xe8\x22\x17\x0b\x42\xca\x52\xd8\x72\xb2\x37\xc7\x6c\ +\x82\x84\x00\x94\xa6\xcf\x8c\xf2\x72\x54\x5d\xb2\x00\x06\x5b\xa5\ +\x8f\x80\x9c\x6d\x5b\x18\x27\x35\x0f\xb0\x29\x1a\x95\x58\x33\x29\ +\x5d\x9f\x44\xde\xce\x5a\x61\x24\xa7\xdb\x8b\xd0\x13\x70\xc5\x0d\ +\x4c\x6e\xf3\x6c\x00\xe7\xb7\x0f\x80\x87\x8a\x3c\x7c\xb8\x9d\xc3\ +\xe7\xe5\x34\x30\x30\x8a\x96\xaf\x26\x99\xc4\xb0\x5a\x1b\xc3\x67\ +\x19\x2c\x08\x5b\x48\x8b\xa5\xd8\x24\xe6\x26\x84\x54\x35\x13\xbe\ +\x6c\x9b\x83\x84\x21\x91\x99\x24\x52\xb6\x94\xc2\xc9\x27\x81\x32\ +\x1f\x55\xda\x25\xab\x9b\xcf\x25\x98\xc6\x66\x90\x94\x87\x9b\x0c\ +\x21\xed\x28\x8a\xa5\xdf\x18\x2f\x05\xc9\x63\x1f\x47\x49\xa5\x84\ +\x6c\xa5\x43\x71\x33\x5b\x8e\x44\x83\x1b\x6e\x8b\x03\x9d\x35\x15\ +\x17\x91\x73\xb2\x72\x90\xd6\x12\x44\xaf\x36\xa9\xc0\x91\xb6\xa2\ +\x13\x99\x98\x6e\x5c\xc0\x2e\xb5\xc7\xa2\x40\xa4\x82\x9c\xb9\x94\ +\x93\x8c\x00\x14\x66\xe2\xa8\x29\xe1\x24\xd2\xb5\xdc\xcc\x5c\x0a\ +\xe5\x4b\x2e\x05\x30\x15\xda\x2d\x16\x70\xe4\x04\xb9\xd0\x10\x28\ +\x8f\xca\x5f\x94\x4d\x8d\xbf\xb3\xaf\xc2\x29\x81\x5d\x67\xd8\xa2\ +\x83\xac\xf9\x08\x8a\x81\x97\x1d\xc5\x21\xff\xd6\x1d\xc2\xc1\x00\ +\x89\x42\xfb\x97\xe2\x0a\x61\xf1\x13\x8a\x44\xd7\x69\x02\xbe\xda\ +\x48\x14\x67\x40\xc5\x5e\x47\x8e\xea\x1f\xe9\xfc\x5f\x9b\x5e\x56\ +\x2f\x04\x60\xdd\xc3\x2f\xd3\xb7\x00\x7f\x94\x90\xdf\x5c\x0d\xbe\ +\x9c\x47\x68\xc4\x13\x55\x50\x61\x23\xd5\x6a\x42\x48\x92\xfd\xdb\ +\xea\x0e\x9b\x50\x6a\x2a\x7f\xb2\x6b\x28\xc0\x73\xb5\xaa\xa4\xee\ +\x84\x82\x0b\x09\x34\x0c\x2e\x24\xb4\x0b\x72\xc7\x54\xd2\x14\x45\ +\x6a\xbe\x7f\xac\x5d\xc8\x06\x16\xf9\x3c\x65\x5d\xef\xd6\xf4\x22\ +\xaf\x4f\x2d\x40\xf5\xfd\xc9\x06\x4c\x86\xa9\xfb\x91\xe9\x13\x20\ +\xdd\x0d\x9b\x43\xb5\x88\x5b\xd9\x23\xc8\x4a\x1c\x8b\x31\x2c\x84\ +\x20\xf9\xd5\xaa\x65\x48\xb5\x7b\x09\x84\x20\x91\xd2\x51\x2c\x0f\ +\xcb\x26\x8d\xc0\xae\x55\x99\x9d\x4d\x2c\x97\x44\x85\xcb\x26\x30\ +\x29\xce\x52\x2e\x99\x48\x8f\x46\x49\xd9\x59\xb4\xd4\x85\x92\xb8\ +\x33\x38\x8f\xbe\x54\xef\x89\x21\x92\xaf\x0b\x18\x48\x89\x1d\x4b\ +\x2d\x2f\x85\x5f\xaf\xcc\x49\xbd\xcc\x84\x4a\x56\x33\x79\x04\xfb\ +\xe7\x98\xcf\x93\x50\x4b\x8a\x0c\x24\xce\xa5\x53\x52\x31\xc5\x14\ +\x45\xad\x43\x40\x91\xe4\x81\xf5\x3a\x5c\x81\xd3\xa8\x89\x1c\x10\ +\x8b\x5f\xb1\x4a\x43\xad\xc7\x84\xb9\x89\xde\xa3\x95\x45\x08\x05\ +\x55\x35\xd2\xf8\x2f\xc8\xa1\x9e\xc4\xca\x63\x2b\x08\x9e\x40\x4f\ +\x20\xa9\xd2\x27\x91\x2c\x14\x95\x4c\xd7\xb2\x93\x41\x45\x58\x08\ +\x4d\x55\x25\x90\xad\x16\x12\xe3\x88\xeb\xac\x96\x06\x11\x85\x20\ +\xc0\xd4\x07\x38\xd4\xdb\xc3\x04\x0d\x5f\xce\xb5\x03\xc2\x6c\x6a\ +\x1b\xb5\xd2\x72\x89\x2c\x9c\x88\x96\x69\xbe\xcf\x35\x9a\x3e\x45\ +\xb8\x40\x4c\x8d\xc3\x84\xd3\xd0\x13\xe1\xce\x5b\xa4\x20\xc4\x75\ +\x2c\x06\x31\x43\x7b\xb8\x2a\xb0\x70\x52\x1b\x0b\xb2\xa6\x20\x74\ +\x1e\x52\xd5\x3a\x02\x2c\x67\xf1\x8a\xb9\xf8\xee\x58\x39\x53\xd2\ +\x64\x22\x19\xba\xed\x03\x88\xe8\x12\xe5\x67\x56\xcd\x29\xb1\x98\ +\x13\x9c\x0d\x4e\x09\x04\x89\x38\xee\x91\x44\xa9\xfa\xd1\xf0\x49\ +\x78\x7f\xe8\x18\xca\xe3\xec\x65\x21\x5c\xa5\x44\x17\x6a\x2a\x78\ +\xda\x39\x1c\x09\xb4\x8d\x22\x75\x53\x02\x59\x30\xb5\xd0\x9d\x12\ +\x96\x39\x93\xde\x17\xa7\x6b\xc9\x49\x8f\x2c\x50\x40\x41\x82\x22\ +\x53\x50\x5e\x11\x73\xe2\x38\xf4\x32\xcf\xd7\x32\xa3\xe8\xa0\xc9\ +\x23\x59\x63\x16\xab\x98\xc6\x39\x5c\xc9\xb2\x8b\xa1\xf1\x33\xa4\ +\xb3\x6e\x45\x50\xab\x58\x98\x62\x52\x28\x13\x33\x8b\x54\x35\xa2\ +\xa1\x5a\x3f\x2a\x8f\x4b\xec\xc4\x12\x31\xeb\xd9\xc4\xa2\x71\x56\ +\xad\x9f\x8d\xb1\x8b\x01\xc7\xa1\x04\x0a\x32\x16\x72\x37\x52\xa4\ +\x90\x44\xef\x56\x5c\x33\x48\x76\x02\x95\xac\xfd\xc5\xf1\x79\x82\ +\xa1\xe3\xcc\xa5\x5a\xde\xef\xad\x92\xc0\x86\x4f\x68\xa8\x66\x35\ +\x93\x48\x61\x93\x5a\x84\x92\x82\x37\x29\xfd\x21\x4c\xdd\xd1\xbc\ +\x35\xae\x0b\x98\x23\x4e\x5b\xe6\xa4\x39\x35\x93\x28\x14\xae\xcd\ +\x5f\x1f\x99\xca\x8e\x98\x3a\xca\x04\xca\x58\xcd\x78\x57\xe1\x44\ +\xbc\x51\xb7\x8e\x20\x94\x89\x3c\x1c\xbd\x3c\x28\x82\xc9\x2a\x20\ +\x50\xcd\x1c\x56\xd5\x62\xd9\x6d\x22\x62\x6e\x2e\x66\xe9\xe7\x9c\ +\xf6\x43\x92\xea\x03\x30\xe5\x69\x22\x95\xd6\xb1\x4c\x11\x65\x4a\ +\xe9\xa6\x95\xc9\xb6\x77\x84\x26\xd3\x68\x72\x91\x8f\x88\xcc\x20\ +\x69\x03\x21\xe4\x42\xa8\xf2\x93\x52\xe5\x5c\x48\x55\x42\x26\x39\ +\xb1\x84\x45\xad\x23\x99\x37\xaf\xc2\x2c\xd5\x8d\x03\x88\x82\x0b\ +\xcb\x06\x0f\xd6\x25\x19\x49\x94\x74\xd5\xce\xd6\x8d\xca\xdb\xab\ +\x24\x64\xb3\xc9\x42\xe4\xea\x9f\x6c\x1b\x0b\x29\xf6\xe0\xe6\x76\ +\xdd\x20\x65\xa4\x5c\xba\x4e\x21\xb3\x14\x7f\x7c\x06\x20\x67\x25\ +\x47\x58\x0e\xcd\x19\x24\xd7\x2e\x64\xd1\x9d\x4c\x71\x15\x30\x36\ +\xab\xa5\x1a\x33\x96\x6d\xf1\x72\x06\x95\x9d\x37\x09\x1e\xb3\xa6\ +\xe0\xe3\x4c\x03\x73\x31\xb7\x5f\xd6\xb8\xfd\x0d\x15\xa5\xbc\x18\ +\xe7\xc4\xfa\x39\x30\xf5\x01\xd1\x3d\xa9\x9b\x3e\xb9\x44\x14\x24\ +\x85\x04\xb2\xe0\x14\x26\xa4\xe4\x54\x40\xb4\xec\xca\x2c\x59\xb8\ +\x4a\x92\x58\xd5\x89\x2c\x10\x80\xd5\x42\x8d\x71\x20\x95\x84\x98\ +\xc5\xf3\x90\x75\x09\xe9\xfd\x76\x72\x68\x5a\x05\x91\x05\x00\x12\ +\x15\xc0\x32\xc4\x1d\x23\xfc\x3f\x7e\x21\x88\xd3\xee\x60\xeb\x4d\ +\x4a\x22\xa4\x52\xc1\x84\x18\x46\xeb\x46\x69\x03\x36\x13\x85\x96\ +\x30\x36\x03\x98\x28\xbd\x6c\xe4\xd8\x9c\x45\x0f\x11\xc5\x2e\x20\ +\xb5\x38\x85\x0b\x30\xec\xb3\x8d\x18\xb8\x6c\x84\x67\xb3\xda\x49\ +\xb1\x0a\x39\xf4\x4a\xa1\x72\x0d\xa3\xd0\x2e\xc6\x81\xc7\x44\x89\ +\x37\x3e\xa9\x44\x66\x10\xc4\xb9\x10\xab\x28\x25\x80\x75\xcd\x02\ +\x5c\x39\x94\x84\xcb\xaa\x86\x50\xb5\x44\x3b\x54\xab\x53\x98\x02\ +\x66\xa7\x91\x97\x08\x1c\x64\x58\x7d\x69\x1f\x41\xc9\x02\x8c\xbe\ +\xdc\xcc\x22\x5e\x43\x6a\x02\xcc\x6a\x11\x6b\x96\x25\x67\x16\x35\ +\x05\xa7\xbc\xa9\x4e\x66\x02\xc8\x2d\x1d\xab\x3c\x5d\x14\x71\x64\ +\xda\xeb\x1b\x4b\x48\x3a\x04\x74\xd7\x1b\x88\x04\x2f\x90\xdd\x3f\ +\x14\x49\x68\x1e\xbb\x92\x34\x3b\xe2\x93\x6f\x00\xad\x67\x5c\x85\ +\x15\xab\x5f\xc6\xf0\xc0\x66\x2c\xb8\xed\x36\xd1\xa7\x67\xa4\x5e\ +\xd9\x15\x23\xeb\xe0\x46\x10\x61\x41\xd6\xf2\x12\xb1\x45\x12\x25\ +\xd5\x87\x20\xe2\x21\x4b\xa8\x94\xe7\x60\x55\x55\xa3\x5e\xca\x85\ +\x27\xa2\x55\x4a\x74\x65\xf5\xd0\x2b\xd5\xae\x26\x56\xea\x50\x2a\ +\x64\x60\x1f\x46\x06\xaf\xa5\x16\x2a\x72\x07\xa5\x16\x12\x0b\x25\ +\x31\x4c\x45\x23\x5d\x46\x3e\xc9\x06\x30\x3a\x32\xf0\xd3\x1d\x1d\ +\x6d\x83\x97\xe2\x8c\x2b\xb1\x62\xd5\xcb\x00\x11\x7e\x77\xde\xf9\ +\x6e\x46\x8e\xe9\xe8\x4a\x64\x31\x52\xf2\x28\x44\x9c\x4f\x5b\x39\ +\xc8\x14\x9a\xa4\x08\x22\xcc\x88\x4d\xa1\x8f\x63\x1a\x98\x73\xda\ +\x6b\x48\x90\xa8\x42\xa6\xd6\xcf\x21\xee\x2b\x4f\x54\xb3\x1c\x29\ +\xe1\x2c\x6c\xe6\x98\xb3\x22\x6e\xba\x9f\x2b\xe8\x1c\x3e\x93\x20\ +\xd6\xa5\x70\xc1\xa7\x92\x26\x18\x99\x0c\x17\x73\xde\x4e\xf8\x29\ +\xe2\xef\xbb\xa6\xf8\xee\xbe\x07\x2e\x3b\x32\x3c\x71\x4b\x36\xf4\ +\x22\x2e\x9b\xde\x04\x66\x60\xf9\xea\x57\xf0\xe8\xea\x97\xb1\x78\ +\xf1\xc3\xee\x46\xe6\xc1\x93\x72\x88\x85\x1f\xb8\xec\x66\x43\x2d\ +\x0e\xa1\x94\x46\x96\x3f\x71\xc1\x04\xdf\xb5\x13\xf7\xe5\xb0\x28\ +\x43\x58\x04\x42\xcc\x2d\x60\xf1\xe5\x76\x81\x06\xce\xdd\xb1\x10\ +\x8f\x97\x87\x85\x19\xa0\xbf\x3f\x8f\x42\x48\x1e\x16\x73\xc8\x63\ +\x74\xf1\x0b\x4a\xf8\x30\x24\xcf\x5f\x2c\x1c\xa1\xb3\x0d\xd7\x46\ +\xa6\x16\xac\xc8\xe3\xa2\x14\xcc\x6a\xa1\x0a\xff\xf3\xf0\xe2\x87\ +\x71\xc6\x85\x37\xfd\xf7\xba\x64\x01\xef\xbe\xf9\xf5\xd9\x74\xf6\ +\x9f\xff\x70\xe7\xce\x1d\xbf\x79\xd9\xc5\x17\xa3\xad\xad\x1d\x00\ +\xf0\xdc\xae\x2b\xb1\x62\xf5\x2b\x00\x80\x91\x77\x37\x63\xfe\x82\ +\x05\xb1\x37\x20\x0a\x6f\x4a\xce\x0a\xcb\xa6\x1a\x82\x68\x12\x24\ +\xe9\x6e\x7a\xd2\x28\xe9\x94\x14\x35\x0a\x50\x6c\xa6\x61\x97\x85\ +\x1a\x96\x8b\x5f\x90\x5e\x8e\xcd\xac\xe2\x97\x90\x56\x3b\x4b\x9a\ +\x4a\x2b\xa3\x32\x8d\x45\xf1\x3c\x40\x5f\x13\x61\xd9\x5a\x10\xe7\ +\x36\x2a\x81\xc1\xb7\x11\x13\x03\xc8\x46\xdf\xfc\x97\xdf\xff\xf3\ +\x93\x8e\x00\x7e\x1b\x78\xfd\x6f\x3e\x36\xcc\x53\xd7\x6c\xdf\xbe\ +\x03\x87\x0f\x1f\x06\x00\xcc\xb9\xb8\x23\xfc\x14\x5c\xe1\x15\x3c\ +\xf2\xc8\x62\xe7\x56\x6e\xe5\x0d\xe1\xf6\x6a\x19\x17\xef\x0d\xbe\ +\xe7\xce\x7b\x03\x9b\x65\x55\xfc\x00\x89\x1e\x3e\xbf\x0c\x4c\xf0\ +\x76\x08\xaf\x92\x9e\x0c\x8f\x1c\x71\xb9\x95\x30\xe7\x36\x1e\x3c\ +\x78\x65\x5e\xf2\xfd\xfa\x75\xb3\x44\x0d\x74\x18\x61\xb5\x54\x8d\ +\x43\x0e\xb5\xc4\x4c\x1e\xbd\x3e\x5c\x3f\xc2\xf9\xa9\xe3\x88\xf3\ +\x7e\x64\xf1\x23\xe8\x38\xff\xba\xff\x31\x16\x2c\xb0\xe9\x44\x76\ +\x1e\x3e\xb4\xfe\x3b\xad\xdd\xbf\x77\xc9\x81\xfd\x7b\x66\x9e\x39\ +\xe9\x4c\xb4\x3b\x24\x00\x80\x0f\xf5\x35\xe3\xec\xbe\x16\xec\xeb\ +\xaf\x60\xf7\x4b\xef\x60\xf7\x4b\xef\x60\xe7\xd6\xa7\xfc\xb3\xee\ +\x34\x99\x2d\xab\x72\xc8\xe5\x5e\x05\x49\xe3\x92\x06\x54\xbd\xc8\ +\x56\xf9\x73\x68\x6a\x2d\xb0\xa9\x24\x62\xce\xb1\xeb\x95\x17\x31\ +\x6d\xda\x05\x25\x55\x7a\x8e\x5e\x09\xa1\x2b\x24\xe7\x4e\x7a\xfd\ +\x07\x9b\xb6\x9a\xf5\x01\x98\x0c\x39\x61\x43\x68\x90\xb6\xa4\xfd\ +\xe4\x27\xbb\xf1\xf6\x9a\xbf\xbe\xba\xee\x06\x00\x00\x43\x07\xbf\ +\xbf\xa4\xbd\xf2\xc7\x67\xfd\xf2\xad\x5d\xb3\xf7\xef\xdf\x8f\xd1\ +\xea\x28\x3a\x3a\x9e\x3b\xc2\x97\x00\x00\x07\x02\x49\x44\x41\x54\ +\x3a\xd0\xd4\x54\x1c\xfa\xec\xbe\x96\xf0\xb3\xaf\xbf\x82\x3d\x2f\ +\xbd\x83\x1d\x5b\xd7\x60\xd6\xac\x59\x82\xec\x98\xb4\x46\xd9\x40\ +\x9c\x94\xa1\x96\x83\xa5\x5a\x16\x54\x22\x96\xaa\xfe\x3b\xbd\xf6\ +\x0c\x2b\xf1\x29\xc7\x0b\x2f\xbf\x80\x69\x17\x4c\x8b\x2d\x65\x9e\ +\x7a\x71\x5c\xbf\x3f\x31\x3a\xab\x5d\xcb\x81\x93\xb2\x3f\xdb\x90\ +\x66\xab\x97\xa2\x88\x65\x5a\xe2\xfc\x6d\x5a\xba\x74\x19\xda\xcf\ +\x99\xfd\x9d\xf7\xf6\x3e\xb5\x62\x2c\x84\xa0\xb1\x6c\x30\x45\xf7\ +\xf4\x87\xbe\x32\x72\x78\xfb\xd5\x18\xdd\xf7\x9b\x93\x26\x4d\x42\ +\xa5\x52\x41\xcf\x94\x1e\x34\x65\xda\xce\x9e\xdb\x35\x18\x2e\x6c\ +\x78\x60\x33\xe6\xcf\xff\xac\xba\x99\x54\xe3\x4c\xc9\x2c\xd9\x66\ +\x07\x3c\x31\x1c\xf1\x44\x32\xaa\x75\xc5\x61\x11\x4a\x46\xb5\x5a\ +\xc5\xe2\xa7\x1e\xc1\x4d\x37\xdd\x1c\x7a\x08\xf4\x03\x47\xd3\x85\ +\x9c\x43\x62\xe7\x9f\xef\x4b\xba\x88\x93\x3c\x01\x3d\x79\x56\x80\ +\xac\x5b\x64\x5a\x44\x92\x86\xee\xce\x73\xf9\x8a\x65\x18\xd8\xfa\ +\x70\x1b\x80\xe1\x71\x67\x00\x62\x9b\xdc\x75\xfe\xdf\x7f\x65\xf4\ +\xbd\xdd\xd7\x66\x34\x30\xab\xd2\x5b\x41\xa5\x52\xc1\x99\x67\x9e\ +\x99\x7c\xf0\xb9\x9d\xb1\x2d\xf7\x53\xf3\xce\x33\xd4\x8f\x55\xa9\ +\x58\xeb\xfd\x50\xd3\xc9\xa3\x24\xa8\x1e\xb3\xac\x5b\xaf\xe4\x8a\ +\xa3\x66\xb0\x00\xa0\x5a\x1d\xc5\xe2\xa7\x96\xe2\xa6\x9b\x6f\xd2\ +\x8b\x3f\x26\x46\x28\x1e\x02\x05\x63\x8f\x64\x1e\xfd\x6e\xf7\x23\ +\xf3\x5e\xf2\x59\xb1\xbf\x58\x12\x1f\x04\xac\x58\xbe\x02\x6d\x67\ +\xcd\x5a\xfe\x8b\x27\x16\x7e\x7a\xac\x06\xea\x57\x65\x00\x61\xeb\ +\xbd\x78\xed\x7f\x1e\x3a\xf8\xe3\x6b\x9b\xf9\xb5\x4f\x12\x11\xa6\ +\x4e\xed\x43\xa5\xd2\x87\xd6\xd6\xd6\xd4\x10\x3c\xb7\x78\x77\x33\ +\xe6\xcf\x5f\x50\xd2\x8b\x23\x9a\xc2\x4c\x08\x20\x11\x82\x89\xcb\ +\x0c\x02\x42\x95\x2b\x79\xc2\x39\x80\xbc\x5a\xc5\xe2\x35\x8f\xe0\ +\xc6\x1b\x6f\xd2\x4f\x09\x51\x80\x91\x2e\xeb\xae\x8e\xaf\xad\xa5\ +\xb6\x31\x94\xbc\xa7\x9f\x3b\x68\xa2\x3f\x11\x1e\x7d\x74\x05\x06\ +\xb6\x3d\x3c\x11\xc0\x7b\xa7\x8c\x01\xc8\xef\xea\x9e\xfe\xd0\x5f\ +\x8f\xbc\xbb\xed\x5a\x54\xf7\x5f\x77\xd4\x10\x11\x8c\x81\x30\xfc\ +\xee\x26\xcc\x9f\x3f\xbf\x16\x6d\x13\xf1\xd4\xf2\x08\x32\x69\x24\ +\x4a\x1f\xfc\x20\x6f\x76\x35\x1f\xc5\x23\x6b\x96\xe0\xc6\x4f\xdc\ +\xa8\x3d\x3e\x79\xc0\xb4\x7d\xb8\x13\x27\x5e\x9c\xa2\x82\x7e\x5e\ +\x41\x62\xc0\x24\x43\xa0\x0d\x15\x8c\x47\x1f\x7d\x0c\x2d\x3d\xe7\ +\xae\x7d\x67\xdd\x5f\xdd\x30\xa6\x83\x82\xfa\x6c\x93\xba\xce\xfb\ +\xfa\xd7\x46\x8f\xfc\x9f\x39\xc4\x07\x2f\xea\xee\xee\x46\x5f\x5f\ +\x1f\xba\xba\xba\xcc\x13\x48\x81\xe7\x76\x14\x21\xa2\x40\x85\xf9\ +\x25\x93\x24\x4b\x56\xa3\x0c\x33\x87\x4a\xaa\x28\x94\x56\x23\xc3\ +\x93\x49\xaa\xa3\x78\x64\xed\x32\x7c\xe2\xc6\x1b\x60\x1f\x39\x13\ +\x4b\xdb\xd2\xbb\x8b\x05\x01\x4b\x63\x3e\x21\x0d\x55\xe2\x99\x40\ +\xc9\xc3\x2b\x90\x86\x06\x22\xc2\x63\xee\x39\xcd\x6d\x67\xcf\xfe\ +\xf6\x2f\x57\xff\xd9\x1f\xe2\x04\x9e\x13\x3c\x9e\x0c\x40\x84\x88\ +\xef\xdf\x35\x74\xf0\x47\xd7\xb4\x66\xaf\xfd\xce\xe8\xc8\x28\x2a\ +\x7d\x15\xf4\x55\xfa\x30\x61\xc2\x84\xd4\x10\x54\x88\x98\x6f\x52\ +\x82\x5a\x85\x12\x4a\xfa\xed\xc5\xfa\x8b\x6a\x49\xf6\x6a\x3e\x8a\ +\x25\x6b\x97\xe1\x86\x1b\x6e\x88\x44\x2f\x81\x62\xf9\xd8\x5b\x23\ +\x5b\xd7\x22\x8e\xa5\xa8\x80\xe2\xb9\x80\x96\xd3\xb8\xcf\xaf\x5c\ +\xb9\x12\x20\x1a\xed\x38\xff\xb7\xbf\x71\x60\xf9\x1f\xff\xa7\xb1\ +\x1e\xf8\x71\x63\x00\x72\xeb\xb9\xf0\xb1\x7b\x87\x07\x36\x5d\xd3\ +\x94\xbf\xfe\x89\xb6\xf6\x76\xf4\x55\xfa\xd0\xdb\xdb\x8b\xe6\xe6\ +\xe6\x63\x33\x86\xf4\x31\xa4\x35\x42\x87\x5e\xcc\xd2\x6f\x79\xb5\ +\x8a\x25\x4f\x2f\xc5\xdc\x1b\x6e\x10\x4f\xf0\x34\xb9\x3b\x95\x3c\ +\x6a\x9e\x52\x0f\x97\xcf\x37\xa4\x34\x35\x30\xfb\xc5\xc7\xc2\xac\ +\x5e\xb5\x0a\xc8\x9a\x07\x26\x4e\xbf\xe5\xc1\xb7\x16\xdf\xf6\x5f\ +\x30\xe6\x4b\x42\x8c\x63\x03\x90\x45\xc7\xc9\x17\x7c\xf3\x6f\x47\ +\xde\x7b\xf1\x1a\xca\x7f\x79\x45\x77\xf7\x64\x54\xfa\xfa\x30\xb9\ +\xab\xcb\xa5\x4a\xa9\x31\x24\xa8\x50\x33\x3b\xe0\x9a\x37\xa2\x9a\ +\x57\xb1\xf4\xe9\x65\x98\x7b\xfd\xf5\xa9\x67\xc3\xa4\x7f\xea\xd1\ +\xae\xc2\xb0\x48\x92\x4d\x6b\x14\x5c\x02\xff\xc5\x1f\x8f\x3f\xfe\ +\x38\xb2\xd6\x89\x3f\x9b\x70\xd1\xef\x7d\xf3\xad\x7f\xbe\xf9\xbe\ +\x93\x46\xcc\x30\xce\xb7\x49\x1f\xbe\xf7\x52\xca\x3a\xee\x6a\xcf\ +\x5e\xb9\x7d\x68\x68\x10\x95\x4a\x1f\xfa\xfa\x2a\x98\x30\x61\x62\ +\x6d\x54\x18\xd8\x8c\xf9\x0b\xe6\xd7\x96\x88\xa8\x8c\x3f\x10\xf2\ +\x7c\xb4\x30\x80\xb9\xd7\x97\x6b\x10\x94\x12\x47\x9d\xba\x1d\x25\ +\xee\x4b\x24\x71\x46\xf3\xe4\x93\x4f\x16\x6a\x5c\x47\xcf\xae\x89\ +\x97\x2e\xf8\xf6\xbe\x6f\x5e\x77\xff\xc9\xbe\xbf\xe3\xde\x00\xe4\ +\x36\xe5\xc2\x55\x7f\x31\x34\xb0\xf1\x9a\xa6\xfc\xf5\x9b\x5a\x5b\ +\x5b\xd1\xd7\x57\x84\x88\x96\x96\x96\xf7\x81\x0a\xb5\xa2\x02\x21\ +\xaf\x8e\x62\xe9\xf7\x4b\x0c\x20\x11\xfb\x8c\xb8\xe3\x57\x39\x97\ +\xa1\x41\x90\x0c\xfd\xa0\x6a\xc6\xf7\xbe\xf7\xaf\x00\x18\x2d\x53\ +\xa6\xaf\xec\xff\xfe\x17\x6e\x1b\xcb\xb4\xee\x03\x6d\x00\x52\xc2\ +\x9e\x3c\xed\x9f\xee\x1f\x79\x6f\xd7\x35\x54\x3d\x30\xa7\x6b\x72\ +\x17\xfa\x2a\x7d\xe8\xee\x9e\xac\x42\x44\xc2\x15\x3e\x3b\x3f\x5d\ +\xad\x45\x09\x41\x55\x2c\xfb\x41\x0d\x03\x28\x31\x1a\x32\x8f\x80\ +\x29\x56\xa4\x2d\xf3\xf8\xe2\xb3\xc5\xc0\x13\x5a\xa6\x7c\x64\xd5\ +\xc1\x1f\x7c\xe1\x36\x00\x87\xeb\x7d\x23\x4f\x55\x03\x50\xc0\xd0\ +\xf9\x6f\xee\xff\xdb\x8e\xec\xa5\x7f\x77\xe4\xc8\x11\xf4\xf6\xf6\ +\xa2\x6f\x6a\x1f\xce\x98\x78\x46\x39\x2a\x0c\x6c\x06\x08\xd1\x18\ +\x04\x25\xa8\xe6\xc7\x60\x00\x47\xb9\x7b\x64\x62\xbf\xf7\xfa\xa7\ +\xd6\xfc\x2b\x00\xca\xdb\xce\xb9\xe6\x9f\xde\x79\xf2\x4f\xff\x23\ +\x80\xd1\xf1\x72\xf3\x3e\x08\x06\x10\x2d\x61\xd6\xf7\xee\x1e\x1e\ +\xd8\x70\x75\x53\xfe\xda\xad\xcd\xcd\xcd\xe8\x9b\xda\x87\x4a\x6f\ +\xe5\xe8\x21\x42\x18\xc2\xfb\x36\x80\x5a\x77\x93\x8a\x04\x6f\xcd\ +\x9a\x35\x00\x65\x23\xed\xe7\x7d\xe2\xef\xdf\x5e\xf9\xef\x3f\xff\ +\xab\x66\xf4\xa7\xbd\x01\xa8\x10\xf1\x91\x6f\xfd\xcd\xc8\xe1\x9d\ +\xd7\x50\xf5\xc0\xd5\x9d\x9d\x9d\xa8\x54\x2a\xe8\xee\xe9\x56\xaa\ +\xa3\x25\x8e\x9f\xfe\xcc\xa7\x4f\xcc\x00\xdc\xb6\x6e\xdd\x5a\x20\ +\x6b\x39\xd4\x31\xfd\x53\x5f\xff\xe5\xb2\xdf\xfd\xcb\xf1\x38\xf0\ +\x1f\x74\x03\x90\x5b\x77\xd7\x79\x7f\x77\xff\xc4\xe6\x97\xfe\xe0\ +\xd0\xa1\x43\x98\x32\x65\x0a\x2a\x95\x0a\x3a\x3b\x3b\x95\xea\xf8\ +\xdc\x8e\x23\x60\xce\x31\xd2\xb1\xe5\xb8\x0d\xc0\x0d\xfc\x40\xfb\ +\x05\xb7\x2c\x7a\xfb\xd1\xdb\xfe\xeb\x78\x1e\xf8\xd3\xc9\x00\xa2\ +\xea\x78\xc9\x8f\x3f\x3f\xd4\xff\xf4\x6f\x34\xf3\xab\xbf\x03\x00\ +\x95\x4a\x05\x95\xbe\x0a\x3a\xda\x3b\xc2\x67\x36\xbe\xfd\xce\xd2\ +\x91\x03\xbb\x3e\xf3\x7e\x8c\x60\xdd\xba\xb5\xa0\xe6\x09\xfb\x3b\ +\x66\x7e\xea\x1b\xbf\x58\xfc\xc9\x2f\x9e\x4a\xf7\xe4\xb4\x32\x00\ +\xa5\x3a\xce\x58\xfc\xdf\x86\xdf\xdd\x36\x27\xcb\xf7\x7d\xbc\xa3\ +\xa3\x03\x53\xa7\x4e\x45\x4f\x4f\x0f\x9a\x9b\x9b\xf1\x5c\xff\xc0\ +\xff\x1e\x7e\x6b\xdb\xed\xff\x3f\x23\x58\xb7\x6e\x2d\xa8\x65\xe2\ +\x1b\x13\x66\x2d\x58\x74\xe0\xa1\x1b\xfe\xea\x54\xbc\x0f\xa7\xad\ +\x01\x88\xad\x6d\xf2\x05\xdf\xf8\xda\xc4\xa6\x5d\x77\xf4\xf7\x1f\ +\x44\x4f\x4f\x0f\xfa\xfa\xfa\xb0\x37\x6b\xf9\x5f\x23\xfb\xb7\x7e\ +\xae\xcc\x08\xd6\xad\x5b\x0b\x6a\x9b\xf4\x7f\x27\xcc\x5a\xf0\x8f\ +\x07\xbe\xf3\xf1\xaf\x9c\xca\x17\xdf\x30\x00\x99\x45\xcc\xfc\xee\ +\x67\x46\x8e\xec\xfe\x54\x7b\xf6\xd3\xdb\x06\x07\x07\x51\x3d\xab\ +\xe3\xa5\x7c\xf0\xe0\xb4\xb9\x73\xaf\xc7\x5b\x3f\x7f\x0b\x2f\xec\ +\xda\x05\x6a\x9f\xbc\x67\xe2\xac\xdb\xff\xe7\xcf\xbf\xfd\x6f\xef\ +\xff\x20\x5c\x73\xc3\x00\x6a\xa6\x94\x4f\x2c\x1c\x3e\xb4\xe1\xda\ +\x6a\xf7\xeb\xb3\x79\x74\xb0\x37\x9b\x58\xd9\x3a\x61\xd6\x82\x87\ +\x7e\xfe\xad\x6b\xbf\xd6\xb8\x3b\xa7\xdf\xd6\xde\xb8\x05\x8d\xad\ +\xb1\x35\xb6\xc6\xd6\xd8\x1a\x5b\x63\x6b\x6c\x8d\xad\xb1\x35\xb6\ +\xc6\xd6\xd8\x1a\x5b\x63\x6b\x6c\x8d\xed\x94\xde\xfe\x1f\x85\xe6\ +\xea\x07\x1c\xa6\x75\x1a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +" + +qt_resource_name = "\ +\x00\x04\ +\x00\x05\x9f\x00\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\ +\x00\x05\ +\x00\x6f\xa6\x53\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\ +\x00\x0c\ +\x0d\xfc\x11\x13\ +\x00\x74\ +\x00\x72\x00\x61\x00\x6e\x00\x73\x00\x6c\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\ +\x00\x0a\ +\x06\x57\xbb\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x66\x00\x69\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6d\xcb\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x70\x00\x6c\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x51\x9b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x63\x00\x73\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x56\x6b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x66\x00\x72\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6b\x3b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x6a\x00\x61\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x08\xc9\x6a\x1d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x7a\x00\x68\x00\x2d\x00\x54\x00\x57\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x09\xfa\xaf\x9d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x65\x00\x73\x00\x2d\x00\x45\x00\x53\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x0a\xc7\xc9\x5d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x73\x00\x76\x00\x2d\x00\x53\x00\x45\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6e\x5b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x6e\x00\x6f\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x61\x1b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x75\x00\x6b\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x62\x5b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x72\x00\x6f\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x54\x7b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x68\x00\x75\x00\x2e\x00\x71\x00\x6d\ +\x00\x07\ +\x09\xf0\x35\xdd\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x5c\xab\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x61\x00\x66\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6f\xcb\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x6e\x00\x6c\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x08\xf8\xda\x1d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x7a\x00\x68\x00\x2d\x00\x43\x00\x4e\x00\x2e\x00\x71\x00\x6d\ +\x00\x0d\ +\x04\xf7\x98\xfd\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x70\x00\x74\x00\x2d\x00\x42\x00\x52\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x60\x6b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x74\x00\x72\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x51\x7b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x64\x00\x65\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x54\x6b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x68\x00\x72\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x62\x7b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x72\x00\x75\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x63\x1b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x73\x00\x6b\x00\x2e\x00\x71\x00\x6d\ +\x00\x0a\ +\x06\x6b\x4b\x7d\ +\x00\x53\ +\x00\x68\x00\x69\x00\x70\x00\x5f\x00\x69\x00\x74\x00\x2e\x00\x71\x00\x6d\ +\x00\x12\ +\x03\x27\x8a\x07\ +\x00\x4f\ +\x00\x75\x00\x74\x00\x6c\x00\x69\x00\x6e\x00\x65\x00\x44\x00\x72\x00\x61\x00\x77\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\ +\x00\x67\ +\x00\x10\ +\x0a\xa3\xc2\x07\ +\x00\x53\ +\x00\x69\x00\x6d\x00\x43\x00\x72\x00\x65\x00\x61\x00\x74\x00\x65\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0d\ +\x0b\xa7\x6e\x67\ +\x00\x53\ +\x00\x69\x00\x6d\x00\x52\x00\x75\x00\x6e\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x07\ +\x0f\xa2\x57\xc7\ +\x00\x49\ +\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0e\ +\x0f\xf7\x2d\x47\ +\x00\x53\ +\x00\x69\x00\x6d\x00\x53\x00\x74\x00\x6f\x00\x70\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x13\ +\x05\x9d\xfb\x67\ +\x00\x48\ +\x00\x79\x00\x64\x00\x72\x00\x6f\x00\x73\x00\x74\x00\x61\x00\x74\x00\x69\x00\x63\x00\x73\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\ +\x00\x6e\x00\x67\ +\x00\x0e\ +\x0f\xf0\x94\xc7\ +\x00\x53\ +\x00\x69\x00\x6d\x00\x50\x00\x6f\x00\x73\x00\x74\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x10\ +\x04\xed\x4c\xa7\ +\x00\x41\ +\x00\x72\x00\x65\x00\x61\x00\x43\x00\x75\x00\x72\x00\x76\x00\x65\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0a\ +\x0d\xfc\xe0\xa7\ +\x00\x57\ +\x00\x65\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0b\ +\x0f\x48\xf8\x47\ +\x00\x4c\ +\x00\x6f\x00\x61\x00\x64\x00\x49\x00\x63\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x08\x4e\x5c\x07\ +\x00\x54\ +\x00\x61\x00\x6e\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ +" + +qt_resource_struct = "\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ +\x00\x00\x00\x0e\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x1b\ +\x00\x00\x00\x1e\x00\x02\x00\x00\x00\x17\x00\x00\x00\x04\ +\x00\x00\x01\xee\x00\x00\x00\x00\x00\x01\x00\x00\x17\x5a\ +\x00\x00\x02\x28\x00\x00\x00\x00\x00\x01\x00\x00\x17\x82\ +\x00\x00\x00\x70\x00\x00\x00\x00\x00\x01\x00\x00\x00\x28\ +\x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x17\x96\ +\x00\x00\x01\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x16\xf6\ +\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x3c\ +\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x17\x1e\ +\x00\x00\x02\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x17\x6e\ +\x00\x00\x01\x38\x00\x00\x00\x00\x00\x01\x00\x00\x16\xce\ +\x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\x16\xe2\ +\x00\x00\x02\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x17\xaa\ +\x00\x00\x02\x76\x00\x00\x00\x00\x00\x01\x00\x00\x17\xbe\ +\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x00\x50\ +\x00\x00\x02\x90\x00\x00\x00\x00\x00\x01\x00\x00\x17\xd2\ +\x00\x00\x00\x56\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\ +\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x16\xba\ +\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x17\x32\ +\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x00\x64\ +\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x00\x17\x46\ +\x00\x00\x01\x86\x00\x00\x00\x00\x00\x01\x00\x00\x17\x0a\ +\x00\x00\x00\xde\x00\x01\x00\x00\x00\x01\x00\x00\x00\x78\ +\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x16\xa6\ +\x00\x00\x02\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x17\xe6\ +\x00\x00\x03\x9e\x00\x00\x00\x00\x00\x01\x00\x01\x7c\x73\ +\x00\x00\x03\x50\x00\x00\x00\x00\x00\x01\x00\x01\x07\x79\ +\x00\x00\x03\xfa\x00\x00\x00\x00\x00\x01\x00\x01\xe6\x7a\ +\x00\x00\x02\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x40\xce\ +\x00\x00\x02\xfa\x00\x00\x00\x00\x00\x01\x00\x00\x79\x78\ +\x00\x00\x03\xc4\x00\x00\x00\x00\x00\x01\x00\x01\x93\xfa\ +\x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x01\xb0\x9d\ +\x00\x00\x03\x1a\x00\x00\x00\x00\x00\x01\x00\x00\xb2\x56\ +\x00\x00\x03\x7c\x00\x00\x00\x00\x00\x01\x00\x01\x46\xe3\ +\x00\x00\x03\x2e\x00\x00\x00\x00\x00\x01\x00\x00\xd3\xc2\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/src/Mod/Ship/SimInstance.py b/src/Mod/Ship/SimInstance.py index 85740d0348..0e8f6db2af 100644 --- a/src/Mod/Ship/SimInstance.py +++ b/src/Mod/Ship/SimInstance.py @@ -1,29 +1,32 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** from math import * import threading +# Qt library +from PyQt4 import QtGui,QtCore + # COIN from pivy.coin import * from pivy import coin @@ -34,640 +37,660 @@ from FreeCAD import Base, Vector import Part # Ship design module -from shipUtils import Paths, Translator, Math +from shipUtils import Paths, Math class FreeSurfaceFace: - def __init__(self, pos, normal, l, b): - """ Face storage. - @param pos Face position. - @param normal Face normal. - @param l Element length (distance between elements at x direction) - @param b Element beam (distance between elements at y direction) - """ - self.pos = pos - self.normal = normal - self.area = l*b + def __init__(self, pos, normal, l, b): + """ Face storage. + @param pos Face position. + @param normal Face normal. + @param l Element length (distance between elements at x direction) + @param b Element beam (distance between elements at y direction) + """ + self.pos = pos + self.normal = normal + self.area = l*b - def __init__(self, pos, normal, area): - """ Face storage. - @param pos Face position. - @param normal Face normal. - @param area Element area - """ - self.pos = pos - self.normal = normal - self.area = area + def __init__(self, pos, normal, area): + """ Face storage. + @param pos Face position. + @param normal Face normal. + @param area Element area + """ + self.pos = pos + self.normal = normal + self.area = area class ShipSimulation: - def __init__(self, obj, fsMeshData, waves): - """ Creates a new simulation instance on active document. - @param obj Created Part::FeaturePython object. - @param fsMeshData [L,B,N] Free surface mesh data, with lenght - (x), Beam (y) and desired number of points. - @param waves [[A,T,phi,heading],] Waves involved - """ - # Add uniqueness property to identify Tank instances - obj.addProperty("App::PropertyBool","IsShipSimulation","ShipSimulation", str(Translator.translate("True if is a valid ship simulation instance"))).IsShipSimulation=True - # Compute free surface mesh - self.createFSMesh(obj,fsMeshData) - self.computeWaves(obj,waves) - # Store waves - obj.addProperty("App::PropertyVectorList","Waves","ShipSimulation", str(Translator.translate("Waves (Amplitude,period,phase)"))).Waves=[] - obj.addProperty("App::PropertyFloatList","Waves_Dir","ShipSimulation", str(Translator.translate("Waves direction (0 deg to stern waves)"))).Waves_Dir=[] - w = [] - d = [] - for i in range(0,len(waves)): - w.append(Vector(waves[i][0], waves[i][1], waves[i][2])) - d.append(waves[i][3]) - obj.Waves = w - obj.Waves_Dir = d - # Add shapes - shape = self.computeShape(obj) - if not shape: - obj.IsShipSimulation=False - return - obj.Shape = shape - obj.Proxy = self + def __init__(self, obj, fsMeshData, waves): + """ Creates a new simulation instance on active document. + @param obj Created Part::FeaturePython object. + @param fsMeshData [L,B,N] Free surface mesh data, with lenght + (x), Beam (y) and desired number of points. + @param waves [[A,T,phi,heading],] Waves involved + """ + # Add uniqueness property to identify Tank instances + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship simulation instance", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyBool","IsShipSimulation","ShipSimulation", tooltip).IsShipSimulation=True + # Compute free surface mesh + self.createFSMesh(obj,fsMeshData) + self.computeWaves(obj,waves) + # Store waves + tooltip = str(QtGui.QApplication.translate("Ship","Waves (Amplitude,period,phase)", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyVectorList","Waves","ShipSimulation", tooltip).Waves=[] + tooltip = str(QtGui.QApplication.translate("Ship","Waves direction (0 deg to stern waves)", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloatList","Waves_Dir","ShipSimulation", tooltip).Waves_Dir=[] + w = [] + d = [] + for i in range(0,len(waves)): + w.append(Vector(waves[i][0], waves[i][1], waves[i][2])) + d.append(waves[i][3]) + obj.Waves = w + obj.Waves_Dir = d + # Add shapes + shape = self.computeShape(obj) + if not shape: + obj.IsShipSimulation=False + return + obj.Shape = shape + obj.Proxy = self - def onChanged(self, fp, prop): - """ Property changed, tank must be recomputed """ - if prop == "IsShipSimulation": - FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") + def onChanged(self, fp, prop): + """ Property changed, tank must be recomputed """ + if prop == "IsShipSimulation": + msg = QtGui.QApplication.translate("ship_console", "Ussually you don't want to modify manually this option", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + "\n") - def execute(self, obj): - """ Shape recomputation called """ - obj.Shape = self.computeShape(obj) + def execute(self, obj): + """ Shape recomputation called """ + obj.Shape = self.computeShape(obj) - def createFSMesh(self, obj, fsMeshData): - """ Create or modify free surface mesh. - @param obj Created Part::FeaturePython object. - @param fsMeshData [L,B,N] Free surface mesh data, with lenght - (x), Beam (y) and desired number of points. - """ - # Study input object - try: - props = obj.PropertiesList - props.index("IsShipSimulation") - if not obj.IsShipSimulation: - msg = str(Translator.translate("Object is not a valid ship simulation.\n")) - FreeCAD.Console.PrintError(msg) - return - except ValueError: - msg = str(Translator.translate("Object is not a ship simulation.\n")) - FreeCAD.Console.PrintError(msg) - return - # Get areas and number of elements per direction - L = fsMeshData[0] - B = fsMeshData[1] - N = fsMeshData[2] - A = L*B - area = A/N - l = sqrt(area) - b = sqrt(area) - nx = int(round(L / l)) - ny = int(round(B / b)) - # Start data fields if not already exist - props = obj.PropertiesList - try: - props.index("FS_Nx") - except ValueError: - obj.addProperty("App::PropertyInteger","FS_Nx","ShipSimulation", str(Translator.translate("Free surface number of elements at x direction"))).FS_Nx=0 - try: - props.index("FS_Ny") - except ValueError: - obj.addProperty("App::PropertyInteger","FS_Ny","ShipSimulation", str(Translator.translate("Free surface number of elements at y direction"))).FS_Ny=0 - try: - props.index("FS_Position") - except ValueError: - obj.addProperty("App::PropertyVectorList","FS_Position","ShipSimulation", str(Translator.translate("Free surface elements position"))).FS_Position=[] - try: - props.index("FS_Area") - except ValueError: - obj.addProperty("App::PropertyFloatList","FS_Area","ShipSimulation", str(Translator.translate("Free surface elements area"))).FS_Area=[] - try: - props.index("FS_Normal") - except ValueError: - obj.addProperty("App::PropertyVectorList","FS_Normal","ShipSimulation", str(Translator.translate("Free surface elements normal"))).FS_Normal=[] - # Fill data - obj.FS_Nx = nx - obj.FS_Ny = ny - pos = [] - areas = [] - normal = [] - for i in range(0,nx): - for j in range(0,ny): - pos.append(Vector(-0.5*L + (i+0.5)*l,-0.5*B + (j+0.5)*b,0.0)) - areas.append(l*b) - normal.append(Vector(0.0,0.0,1.0)) - obj.FS_Position = pos[:] - obj.FS_Area = areas[:] - obj.FS_Normal = normal[:] + def createFSMesh(self, obj, fsMeshData): + """ Create or modify free surface mesh. + @param obj Created Part::FeaturePython object. + @param fsMeshData [L,B,N] Free surface mesh data, with lenght + (x), Beam (y) and desired number of points. + """ + # Study input object + try: + props = obj.PropertiesList + props.index("IsShipSimulation") + if not obj.IsShipSimulation: + msg = QtGui.QApplication.translate("ship_console", "Object is not a valid ship simulation", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + '\n') + return + except ValueError: + msg = QtGui.QApplication.translate("ship_console", "Object is not a ship simulation", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + '\n') + return + # Get areas and number of elements per direction + L = fsMeshData[0] + B = fsMeshData[1] + N = fsMeshData[2] + A = L*B + area = A/N + l = sqrt(area) + b = sqrt(area) + nx = int(round(L / l)) + ny = int(round(B / b)) + # Start data fields if not already exist + props = obj.PropertiesList + try: + props.index("FS_Nx") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface number of elements at x direction", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyInteger","FS_Nx","ShipSimulation", tooltip).FS_Nx=0 + try: + props.index("FS_Ny") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface number of elements at y direction", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyInteger","FS_Ny","ShipSimulation", tooltip).FS_Ny=0 + try: + props.index("FS_Position") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface elements position", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyVectorList","FS_Position","ShipSimulation", tooltip).FS_Position=[] + try: + props.index("FS_Area") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface elements area", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloatList","FS_Area","ShipSimulation", tooltip).FS_Area=[] + try: + props.index("FS_Normal") + except ValueError: + tooltip = str(QtGui.QApplication.translate("Ship","Free surface elements normal", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyVectorList","FS_Normal","ShipSimulation", tooltip).FS_Normal=[] + # Fill data + obj.FS_Nx = nx + obj.FS_Ny = ny + pos = [] + areas = [] + normal = [] + for i in range(0,nx): + for j in range(0,ny): + pos.append(Vector(-0.5*L + (i+0.5)*l,-0.5*B + (j+0.5)*b,0.0)) + areas.append(l*b) + normal.append(Vector(0.0,0.0,1.0)) + obj.FS_Position = pos[:] + obj.FS_Area = areas[:] + obj.FS_Normal = normal[:] - def computeWaves(self, obj, waves): - """ Add waves effect to free surface mesh positions. - @param obj Created Part::FeaturePython object. - @param waves waves data [A,T,phase, heading]. - """ - grav = 9.81 - positions = obj.FS_Position[:] - for i in range(0, len(positions)): - for w in waves: - A = w[0] - T = w[1] - phase = w[2] - heading = pi*w[3]/180.0 - wl = 0.5 * grav / pi * T*T - k = 2.0*pi/wl - frec = 2.0*pi/T - pos = obj.FS_Position[i] - l = pos.x*cos(heading) + pos.y*sin(heading) - amp = A*sin(k*l + phase) - positions[i].z = positions[i].z + amp - obj.FS_Position = positions[:] + def computeWaves(self, obj, waves): + """ Add waves effect to free surface mesh positions. + @param obj Created Part::FeaturePython object. + @param waves waves data [A,T,phase, heading]. + """ + grav = 9.81 + positions = obj.FS_Position[:] + for i in range(0, len(positions)): + for w in waves: + A = w[0] + T = w[1] + phase = w[2] + heading = pi*w[3]/180.0 + wl = 0.5 * grav / pi * T*T + k = 2.0*pi/wl + frec = 2.0*pi/T + pos = obj.FS_Position[i] + l = pos.x*cos(heading) + pos.y*sin(heading) + amp = A*sin(k*l + phase) + positions[i].z = positions[i].z + amp + obj.FS_Position = positions[:] - def computeShape(self, obj): - """ Computes simulation involved shapes. - @param obj Created Part::FeaturePython object. - @return Shape - """ - nx = obj.FS_Nx - ny = obj.FS_Ny - mesh = FSMesh(obj) - # Create BSpline surface - surf = Part.BSplineSurface() - for i in range(1,nx-1): - u = i / float(nx-1) - surf.insertUKnot(u,i,0.000001) - for i in range(1,ny-1): - v = i / float(ny-1) - surf.insertVKnot(v,i,0.000001) - for i in range(0,nx): - for j in range(0,ny): - u = i / float(nx-1) - v = j / float(ny-1) - point = mesh[i][j].pos - surf.movePoint(u,v,point,i+1,i+1,j+1,j+1) - return surf.toShape() + def computeShape(self, obj): + """ Computes simulation involved shapes. + @param obj Created Part::FeaturePython object. + @return Shape + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + mesh = FSMesh(obj) + # Create BSpline surface + surf = Part.BSplineSurface() + for i in range(1,nx-1): + u = i / float(nx-1) + surf.insertUKnot(u,i,0.000001) + for i in range(1,ny-1): + v = i / float(ny-1) + surf.insertVKnot(v,i,0.000001) + for i in range(0,nx): + for j in range(0,ny): + u = i / float(nx-1) + v = j / float(ny-1) + point = mesh[i][j].pos + surf.movePoint(u,v,point,i+1,i+1,j+1,j+1) + return surf.toShape() class ViewProviderShipSimulation: - def __init__(self, obj): - """ Set this object to the proxy object of the actual view provider """ - obj.Proxy = self + def __init__(self, obj): + """ Set this object to the proxy object of the actual view provider """ + obj.Proxy = self - def attach(self, obj): - """ Setup the scene sub-graph of the view provider, this method is mandatory """ - return + def attach(self, obj): + """ Setup the scene sub-graph of the view provider, this method is mandatory """ + return - def updateData(self, fp, prop): - """ If a property of the handled feature has changed we have the chance to handle this here """ - return + def updateData(self, fp, prop): + """ If a property of the handled feature has changed we have the chance to handle this here """ + return - def getDisplayModes(self,obj): - ''' Return a list of display modes. ''' - modes=[] - return modes + def getDisplayModes(self,obj): + ''' Return a list of display modes. ''' + modes=[] + return modes - def getDefaultDisplayMode(self): - ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' - return "Flat Lines" + def getDefaultDisplayMode(self): + ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' + return "Flat Lines" - def setDisplayMode(self,mode): - ''' Map the display mode defined in attach with those defined in getDisplayModes. - Since they have the same names nothing needs to be done. This method is optinal. - ''' - return mode + def setDisplayMode(self,mode): + ''' Map the display mode defined in attach with those defined in getDisplayModes. + Since they have the same names nothing needs to be done. This method is optinal. + ''' + return mode - def onChanged(self, vp, prop): - ''' Print the name of the property that has changed ''' - # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") + def onChanged(self, vp, prop): + ''' Print the name of the property that has changed ''' + # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") - def __getstate__(self): - ''' When saving the document this object gets stored using Python's cPickle module. - Since we have some un-pickable here -- the Coin stuff -- we must define this method - to return a tuple of all pickable objects or None. - ''' - return None + def __getstate__(self): + ''' When saving the document this object gets stored using Python's cPickle module. + Since we have some un-pickable here -- the Coin stuff -- we must define this method + to return a tuple of all pickable objects or None. + ''' + return None - def __setstate__(self,state): - ''' When restoring the pickled object from document we have the chance to set some - internals here. Since no data were pickled nothing needs to be done here. - ''' - return None + def __setstate__(self,state): + ''' When restoring the pickled object from document we have the chance to set some + internals here. Since no data were pickled nothing needs to be done here. + ''' + return None - def getIcon(self): - return """ - /* XPM */ - static char * Sim_xpm[] = { - "32 32 301 2", - " c None", - ". c #CCCCCC", - "+ c #A9A9A9", - "@ c #989898", - "# c #A1A1A1", - "$ c #C3C3C3", - "% c #C1C0C1", - "& c #BFBFBF", - "* c #A7A7A7", - "= c #808080", - "- c #5C5C5C", - "; c #565655", - "> c #4E4E4E", - ", c #676767", - "' c #898989", - ") c #B6B5B6", - "! c #BABABA", - "~ c #B9B9B9", - "{ c #A5A5A5", - "] c #7E7E7E", - "^ c #595A59", - "/ c #575656", - "( c #535353", - "_ c #505050", - ": c #4D4D4C", - "< c #474747", - "[ c #404040", - "} c #4D4D4D", - "| c #787878", - "1 c #B8B7B8", - "2 c #B6B6B6", - "3 c #888888", - "4 c #7C7C7C", - "5 c #575657", - "6 c #535354", - "7 c #4E4D4E", - "8 c #4A4A4A", - "9 c #444444", - "0 c #414141", - "a c #3E3E3E", - "b c #393938", - "c c #313131", - "d c #393939", - "e c #636363", - "f c #ABABAB", - "g c #B3B3B3", - "h c #848484", - "i c #787979", - "j c #545454", - "k c #515151", - "l c #4B4B4B", - "m c #484748", - "n c #3B3B3B", - "o c #383838", - "p c #353535", - "q c #323232", - "r c #2F2F2E", - "s c #2A2A2A", - "t c #222323", - "u c #252625", - "v c #AFAFAF", - "w c #767676", - "x c #484848", - "y c #454545", - "z c #424242", - "A c #3F3F3E", - "B c #3B3B3C", - "C c #393838", - "D c #2F2F2F", - "E c #2C2C2C", - "F c #292929", - "G c #262626", - "H c #222222", - "I c #1F1F20", - "J c #171716", - "K c #959595", - "L c #747474", - "M c #4E4E4F", - "N c #4C4B4C", - "O c #484849", - "P c #424243", - "Q c #282828", - "R c #525251", - "S c #373737", - "T c #353636", - "U c #333233", - "V c #30302F", - "W c #2C2D2D", - "X c #232323", - "Y c #201F20", - "Z c #1D1D1D", - "` c #151414", - " . c #717272", - ".. c #4C4C4C", - "+. c #484949", - "@. c #464545", - "#. c #424343", - "$. c #3A3A3A", - "%. c #5D4A49", - "&. c #7E7E86", - "*. c #56569F", - "=. c #3E3E41", - "-. c #757575", - ";. c #575757", - ">. c #222221", - ",. c #262627", - "'. c #242423", - "). c #212020", - "!. c #1A1A1A", - "~. c #121212", - "{. c #939493", - "]. c #6F6F6F", - "^. c #494949", - "/. c #464646", - "(. c #434343", - "_. c #554545", - ":. c #686863", - "<. c #939394", - "[. c #BDBDBD", - "}. c #202021", - "|. c #1E1E1E", - "1. c #171718", - "2. c #0F0F0F", - "3. c #929292", - "4. c #6C6D6D", - "5. c #464746", - "6. c #525F73", - "7. c #444648", - "8. c #3D3D3D", - "9. c #2D2C2A", - "0. c #A1A2A2", - "a. c #AAACAC", - "b. c #A6A7A7", - "c. c #A8AAAA", - "d. c #AFB0B0", - "e. c #777676", - "f. c #9A9A9A", - "g. c #1B1B1B", - "h. c #181818", - "i. c #0C0C0C", - "j. c #909090", - "k. c #6B6A6B", - "l. c #55657E", - "m. c #6990FB", - "n. c #6483CD", - "o. c #5871B2", - "p. c #434E7E", - "q. c #A97C76", - "r. c #AB7777", - "s. c #AC7070", - "t. c #A26565", - "u. c #805C5C", - "v. c #848686", - "w. c #424342", - "x. c #151515", - "y. c #0A0909", - "z. c #8F8F8F", - "A. c #676868", - "B. c #3B3A3A", - "C. c #383738", - "D. c #353534", - "E. c #45525F", - "F. c #6367AC", - "G. c #804682", - "H. c #942A39", - "I. c #991312", - "J. c #540901", - "K. c #393742", - "L. c #1C1C1C", - "M. c #191919", - "N. c #161515", - "O. c #121313", - "P. c #070707", - "Q. c #8D8E8D", - "R. c #656566", - "S. c #3E3F3F", - "T. c #2F2E2F", - "U. c #353838", - "V. c #35496A", - "W. c #3E4D88", - "X. c #354889", - "Y. c #5573D7", - "Z. c #5D80FB", - "`. c #374899", - " + c #293338", - ".+ c #101010", - "++ c #0D0D0D", - "@+ c #040404", - "#+ c #8C8C8C", - "$+ c #8B8B8B", - "%+ c #4B4A4B", - "&+ c #303030", - "*+ c #333232", - "=+ c #2F2F30", - "-+ c #232223", - ";+ c #1A1919", - ">+ c #2E3949", - ",+ c #5C7BA3", - "'+ c #36467D", - ")+ c #536F93", - "!+ c #0A0A0A", - "~+ c #010101", - "{+ c #C1C1C1", - "]+ c #B8B8B8", - "^+ c #A0A0A0", - "/+ c #3F3F3F", - "(+ c #222122", - "_+ c #202020", - ":+ c #161717", - "<+ c #141414", - "[+ c #111011", - "}+ c #0D0E0E", - "|+ c #0B0B0A", - "1+ c #000000", - "2+ c #525252", - "3+ c #686868", - "4+ c #ADADAD", - "5+ c #9E9F9F", - "6+ c #6D6D6D", - "7+ c #3C3C3C", - "8+ c #131414", - "9+ c #111111", - "0+ c #0E0E0E", - "a+ c #0B0B0B", - "b+ c #080708", - "c+ c #050504", - "d+ c #4C4D4C", - "e+ c #4D4C4D", - "f+ c #494A4A", - "g+ c #454444", - "h+ c #9D9D9D", - "i+ c #9E9E9E", - "j+ c #AEAEAE", - "k+ c #BEBEBF", - "l+ c #BEBDBD", - "m+ c #979797", - "n+ c #6A6B6A", - "o+ c #3F3F40", - "p+ c #020202", - "q+ c #030303", - "r+ c #878787", - "s+ c #69696A", - "t+ c #868685", - "u+ c #646464", - "v+ c #474647", - "w+ c #656565", - "x+ c #9E9F9E", - "y+ c #A8A8A8", - "z+ c #AFAFAE", - "A+ c #A4A4A4", - "B+ c #7A7A7A", - "C+ c #969696", - "D+ c #363636", - "E+ c #777776", - "F+ c #8C8D8D", - "G+ c #7D7D7D", - "H+ c #5E5E5E", - "I+ c #4F4F50", - "J+ c #808181", - "K+ c #707070", - "L+ c #909191", - "M+ c #9C9C9C", - "N+ c #787877", - "O+ c #696969", - "P+ c #616161", - "Q+ c #6E6E6E", - "R+ c #7C7B7C", - "S+ c #777677", - "T+ c #6F6E6E", - "U+ c #595959", - "V+ c #717171", - "W+ c #8D8D8D", - "X+ c #515051", - "Y+ c #49494A", - "Z+ c #4B4A4A", - "`+ c #606060", - " @ c #6A6A6A", - ".@ c #616162", - "+@ c #6C6D6C", - "@@ c #767777", - "#@ c #727272", - "$@ c #6B6B6B", - "%@ c #828283", - "&@ c #757475", - "*@ c #444545", - "=@ c #565656", - "-@ c #5A595A", - ";@ c #666666", - ">@ c #878687", - ",@ c #8A8A8A", - "'@ c #797979", - ")@ c #444344", - "!@ c #7F8080", - "~@ c #737373", - "{@ c #484747", - "]@ c #707170", - "^@ c #7F7F7F", - "/@ c #676867", - "(@ c #4D4C4C", - "_@ c #5F5F5F", - ":@ c #434444", - " ", - " ", - " . + ", - " @ # $ % & * ", - " = - ; > , ' ) ! ~ { ", - " ] ^ / ( _ : < [ } | # 1 2 # 3 ", - " 4 5 6 _ 7 8 < 9 0 a b c d e ' f g + h ", - " i j k 7 l m 9 0 a n o p q r s t u < | v ", - " w k > l x y z A B C p q D E F G H I J K ", - " L M N O y P Q R S T U V W F G X Y Z ` K ", - " ...+.@.#.$.%.&.*.=.-.;.>.,.'.).Z !.~.{. ", - " ].^./.(.[ c _._ :.<.[.$ ' /.}.|.!.1.2.3. ", - " 4.5.6.7.8.9.# 0.a.b.c.d.e.f.g.g.h.` i.j. ", - " k.9 l.m.n.o.p.q.r.s.t.u.v.w.g.h.x.~.y.z. ", - " A.0 a B.C.D.E.F.G.H.I.J.K.L.M.N.O.2.P.Q. ", - " R.S.n o p q T.E U.V.W.X.Y.Z.`. +.+++@+#+ ", - " $+%+&+q *+=+E F G -+I Z ;+>+,+'+)+!+~+$+ ", - " {+]+^+w /+H (+X _+Z !.:+<+[+}+|+P.1+' ", - " k 2+_ > 3+z.4+5+6+7+x.~.8+9+0+a+b+c+1+3 ", - " %+..d+e+..f+< g+h+i+j+k+l+m+n+o+P.p+q+p+1+r+ ", - " s+t+u+< (.< v+y 9 (.w+x+y+z+y+h+A+B+C+K ].D+1+h ", - " E+i+F+f.j.G+H+9 [ (.z I+J+m+f.j.K+z 9 9 9 K+L+r+/.9 (. ", - " L M+N+O+u+P+Q+R+S+T+U+y 8 - ;...9 9 9 9 9 9 9 9 (.(.k w+ ", - " V+m+' W+r+] , X+Y+(.: r+L P+k 9 z (.9 9 9 9 (.(.Z+;.- `+ ", - " ].C+w @u+.@+@@@#@$@j %@B+&@#@L $@H+2+/.0 (.*@+.} 2+=@-@ ", - " ;@| >@,@'@u+k 8 )@..!@| ~@V+#@#@#@#@L 6+..(.9 {@.._ ( ", - " e ]@^@] /@k G+w #@#@#@#@#@V+ @$@_ 9 9 9 /.Y+(@ ", - " - R.T+L ~@#@#@#@#@]._ _@_ 9 9 9 (.9 x ", - " =@_@O+L ~@#@~@L _ 9 9 :@ ", - " ;.H+ @-._ (. ", - " ", - " "}; - """ + def getIcon(self): + return """ + /* XPM */ + static char * Sim_xpm[] = { + "32 32 301 2", + " c None", + ". c #CCCCCC", + "+ c #A9A9A9", + "@ c #989898", + "# c #A1A1A1", + "$ c #C3C3C3", + "% c #C1C0C1", + "& c #BFBFBF", + "* c #A7A7A7", + "= c #808080", + "- c #5C5C5C", + "; c #565655", + "> c #4E4E4E", + ", c #676767", + "' c #898989", + ") c #B6B5B6", + "! c #BABABA", + "~ c #B9B9B9", + "{ c #A5A5A5", + "] c #7E7E7E", + "^ c #595A59", + "/ c #575656", + "( c #535353", + "_ c #505050", + ": c #4D4D4C", + "< c #474747", + "[ c #404040", + "} c #4D4D4D", + "| c #787878", + "1 c #B8B7B8", + "2 c #B6B6B6", + "3 c #888888", + "4 c #7C7C7C", + "5 c #575657", + "6 c #535354", + "7 c #4E4D4E", + "8 c #4A4A4A", + "9 c #444444", + "0 c #414141", + "a c #3E3E3E", + "b c #393938", + "c c #313131", + "d c #393939", + "e c #636363", + "f c #ABABAB", + "g c #B3B3B3", + "h c #848484", + "i c #787979", + "j c #545454", + "k c #515151", + "l c #4B4B4B", + "m c #484748", + "n c #3B3B3B", + "o c #383838", + "p c #353535", + "q c #323232", + "r c #2F2F2E", + "s c #2A2A2A", + "t c #222323", + "u c #252625", + "v c #AFAFAF", + "w c #767676", + "x c #484848", + "y c #454545", + "z c #424242", + "A c #3F3F3E", + "B c #3B3B3C", + "C c #393838", + "D c #2F2F2F", + "E c #2C2C2C", + "F c #292929", + "G c #262626", + "H c #222222", + "I c #1F1F20", + "J c #171716", + "K c #959595", + "L c #747474", + "M c #4E4E4F", + "N c #4C4B4C", + "O c #484849", + "P c #424243", + "Q c #282828", + "R c #525251", + "S c #373737", + "T c #353636", + "U c #333233", + "V c #30302F", + "W c #2C2D2D", + "X c #232323", + "Y c #201F20", + "Z c #1D1D1D", + "` c #151414", + " . c #717272", + ".. c #4C4C4C", + "+. c #484949", + "@. c #464545", + "#. c #424343", + "$. c #3A3A3A", + "%. c #5D4A49", + "&. c #7E7E86", + "*. c #56569F", + "=. c #3E3E41", + "-. c #757575", + ";. c #575757", + ">. c #222221", + ",. c #262627", + "'. c #242423", + "). c #212020", + "!. c #1A1A1A", + "~. c #121212", + "{. c #939493", + "]. c #6F6F6F", + "^. c #494949", + "/. c #464646", + "(. c #434343", + "_. c #554545", + ":. c #686863", + "<. c #939394", + "[. c #BDBDBD", + "}. c #202021", + "|. c #1E1E1E", + "1. c #171718", + "2. c #0F0F0F", + "3. c #929292", + "4. c #6C6D6D", + "5. c #464746", + "6. c #525F73", + "7. c #444648", + "8. c #3D3D3D", + "9. c #2D2C2A", + "0. c #A1A2A2", + "a. c #AAACAC", + "b. c #A6A7A7", + "c. c #A8AAAA", + "d. c #AFB0B0", + "e. c #777676", + "f. c #9A9A9A", + "g. c #1B1B1B", + "h. c #181818", + "i. c #0C0C0C", + "j. c #909090", + "k. c #6B6A6B", + "l. c #55657E", + "m. c #6990FB", + "n. c #6483CD", + "o. c #5871B2", + "p. c #434E7E", + "q. c #A97C76", + "r. c #AB7777", + "s. c #AC7070", + "t. c #A26565", + "u. c #805C5C", + "v. c #848686", + "w. c #424342", + "x. c #151515", + "y. c #0A0909", + "z. c #8F8F8F", + "A. c #676868", + "B. c #3B3A3A", + "C. c #383738", + "D. c #353534", + "E. c #45525F", + "F. c #6367AC", + "G. c #804682", + "H. c #942A39", + "I. c #991312", + "J. c #540901", + "K. c #393742", + "L. c #1C1C1C", + "M. c #191919", + "N. c #161515", + "O. c #121313", + "P. c #070707", + "Q. c #8D8E8D", + "R. c #656566", + "S. c #3E3F3F", + "T. c #2F2E2F", + "U. c #353838", + "V. c #35496A", + "W. c #3E4D88", + "X. c #354889", + "Y. c #5573D7", + "Z. c #5D80FB", + "`. c #374899", + " + c #293338", + ".+ c #101010", + "++ c #0D0D0D", + "@+ c #040404", + "#+ c #8C8C8C", + "$+ c #8B8B8B", + "%+ c #4B4A4B", + "&+ c #303030", + "*+ c #333232", + "=+ c #2F2F30", + "-+ c #232223", + ";+ c #1A1919", + ">+ c #2E3949", + ",+ c #5C7BA3", + "'+ c #36467D", + ")+ c #536F93", + "!+ c #0A0A0A", + "~+ c #010101", + "{+ c #C1C1C1", + "]+ c #B8B8B8", + "^+ c #A0A0A0", + "/+ c #3F3F3F", + "(+ c #222122", + "_+ c #202020", + ":+ c #161717", + "<+ c #141414", + "[+ c #111011", + "}+ c #0D0E0E", + "|+ c #0B0B0A", + "1+ c #000000", + "2+ c #525252", + "3+ c #686868", + "4+ c #ADADAD", + "5+ c #9E9F9F", + "6+ c #6D6D6D", + "7+ c #3C3C3C", + "8+ c #131414", + "9+ c #111111", + "0+ c #0E0E0E", + "a+ c #0B0B0B", + "b+ c #080708", + "c+ c #050504", + "d+ c #4C4D4C", + "e+ c #4D4C4D", + "f+ c #494A4A", + "g+ c #454444", + "h+ c #9D9D9D", + "i+ c #9E9E9E", + "j+ c #AEAEAE", + "k+ c #BEBEBF", + "l+ c #BEBDBD", + "m+ c #979797", + "n+ c #6A6B6A", + "o+ c #3F3F40", + "p+ c #020202", + "q+ c #030303", + "r+ c #878787", + "s+ c #69696A", + "t+ c #868685", + "u+ c #646464", + "v+ c #474647", + "w+ c #656565", + "x+ c #9E9F9E", + "y+ c #A8A8A8", + "z+ c #AFAFAE", + "A+ c #A4A4A4", + "B+ c #7A7A7A", + "C+ c #969696", + "D+ c #363636", + "E+ c #777776", + "F+ c #8C8D8D", + "G+ c #7D7D7D", + "H+ c #5E5E5E", + "I+ c #4F4F50", + "J+ c #808181", + "K+ c #707070", + "L+ c #909191", + "M+ c #9C9C9C", + "N+ c #787877", + "O+ c #696969", + "P+ c #616161", + "Q+ c #6E6E6E", + "R+ c #7C7B7C", + "S+ c #777677", + "T+ c #6F6E6E", + "U+ c #595959", + "V+ c #717171", + "W+ c #8D8D8D", + "X+ c #515051", + "Y+ c #49494A", + "Z+ c #4B4A4A", + "`+ c #606060", + " @ c #6A6A6A", + ".@ c #616162", + "+@ c #6C6D6C", + "@@ c #767777", + "#@ c #727272", + "$@ c #6B6B6B", + "%@ c #828283", + "&@ c #757475", + "*@ c #444545", + "=@ c #565656", + "-@ c #5A595A", + ";@ c #666666", + ">@ c #878687", + ",@ c #8A8A8A", + "'@ c #797979", + ")@ c #444344", + "!@ c #7F8080", + "~@ c #737373", + "{@ c #484747", + "]@ c #707170", + "^@ c #7F7F7F", + "/@ c #676867", + "(@ c #4D4C4C", + "_@ c #5F5F5F", + ":@ c #434444", + " ", + " ", + " . + ", + " @ # $ % & * ", + " = - ; > , ' ) ! ~ { ", + " ] ^ / ( _ : < [ } | # 1 2 # 3 ", + " 4 5 6 _ 7 8 < 9 0 a b c d e ' f g + h ", + " i j k 7 l m 9 0 a n o p q r s t u < | v ", + " w k > l x y z A B C p q D E F G H I J K ", + " L M N O y P Q R S T U V W F G X Y Z ` K ", + " ...+.@.#.$.%.&.*.=.-.;.>.,.'.).Z !.~.{. ", + " ].^./.(.[ c _._ :.<.[.$ ' /.}.|.!.1.2.3. ", + " 4.5.6.7.8.9.# 0.a.b.c.d.e.f.g.g.h.` i.j. ", + " k.9 l.m.n.o.p.q.r.s.t.u.v.w.g.h.x.~.y.z. ", + " A.0 a B.C.D.E.F.G.H.I.J.K.L.M.N.O.2.P.Q. ", + " R.S.n o p q T.E U.V.W.X.Y.Z.`. +.+++@+#+ ", + " $+%+&+q *+=+E F G -+I Z ;+>+,+'+)+!+~+$+ ", + " {+]+^+w /+H (+X _+Z !.:+<+[+}+|+P.1+' ", + " k 2+_ > 3+z.4+5+6+7+x.~.8+9+0+a+b+c+1+3 ", + " %+..d+e+..f+< g+h+i+j+k+l+m+n+o+P.p+q+p+1+r+ ", + " s+t+u+< (.< v+y 9 (.w+x+y+z+y+h+A+B+C+K ].D+1+h ", + " E+i+F+f.j.G+H+9 [ (.z I+J+m+f.j.K+z 9 9 9 K+L+r+/.9 (. ", + " L M+N+O+u+P+Q+R+S+T+U+y 8 - ;...9 9 9 9 9 9 9 9 (.(.k w+ ", + " V+m+' W+r+] , X+Y+(.: r+L P+k 9 z (.9 9 9 9 (.(.Z+;.- `+ ", + " ].C+w @u+.@+@@@#@$@j %@B+&@#@L $@H+2+/.0 (.*@+.} 2+=@-@ ", + " ;@| >@,@'@u+k 8 )@..!@| ~@V+#@#@#@#@L 6+..(.9 {@.._ ( ", + " e ]@^@] /@k G+w #@#@#@#@#@V+ @$@_ 9 9 9 /.Y+(@ ", + " - R.T+L ~@#@#@#@#@]._ _@_ 9 9 9 (.9 x ", + " =@_@O+L ~@#@~@L _ 9 9 :@ ", + " ;.H+ @-._ (. ", + " ", + " "}; + """ def FSMesh(obj, recompute=False): - """ Get free surface mesh in matrix mode. - @param obj Created Part::FeaturePython object. - @param recompute True if mesh must be recomputed, False otherwise. - @return Faces matrix - """ - nx = obj.FS_Nx - ny = obj.FS_Ny - if not recompute: - faces = [] - for i in range(0,nx): - faces.append([]) - for j in range(0,ny): - faces[i].append(FreeSurfaceFace(obj.FS_Position[j + i*ny], - obj.FS_Normal[j + i*ny], - obj.FS_Area[j + i*ny])) - return faces - # Transform positions into a mesh - pos = [] - for i in range(0,nx): - pos.append([]) - for j in range(0,ny): - pos[i].append(obj.FS_Position[j + i*ny]) - # Recompute normals and dimensions - normal = [] - l = [] - b = [] - for i in range(0,nx): - normal.append([]) - l.append([]) - b.append([]) - for j in range(0,ny): - i0 = i-1 - i1 = i+1 - fi = 1.0 - j0 = j-1 - j1 = j+1 - fj = 1.0 - if i == 0: - i0 = i - i1 = i+1 - fi = 2.0 - if i == nx-1: - i0 = i-1 - i1 = i - fi = 2.0 - if j == 0: - j0 = j - j1 = j+1 - fj = 2.0 - if j == ny-1: - j0 = j-1 - j1 = j - fj = 2.0 - l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) - b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) - xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, - obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, - obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) - yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, - obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, - obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) - n = Vector(xvec.cross(yvec)) # Z positive - normal[i].append(n.normalize()) - # Create faces - faces = [] - for i in range(0,nx): - faces.append([]) - for j in range(0,ny): - faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) - # Reconstruct mesh data - for i in range(0,nx): - for j in range(0,ny): - obj.FS_Position[j + i*ny] = faces[i][j].pos - obj.FS_Normal[j + i*ny] = faces[i][j].normal - obj.FS_Area[j + i*ny] = faces[i][j].area - return faces + """ Get free surface mesh in matrix mode. + @param obj Created Part::FeaturePython object. + @param recompute True if mesh must be recomputed, False otherwise. + @return Faces matrix + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + if not recompute: + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(obj.FS_Position[j + i*ny], + obj.FS_Normal[j + i*ny], + obj.FS_Area[j + i*ny])) + return faces + # Transform positions into a mesh + pos = [] + for i in range(0,nx): + pos.append([]) + for j in range(0,ny): + pos[i].append(obj.FS_Position[j + i*ny]) + # Recompute normals and dimensions + normal = [] + l = [] + b = [] + for i in range(0,nx): + normal.append([]) + l.append([]) + b.append([]) + for j in range(0,ny): + i0 = i-1 + i1 = i+1 + fi = 1.0 + j0 = j-1 + j1 = j+1 + fj = 1.0 + if i == 0: + i0 = i + i1 = i+1 + fi = 2.0 + if i == nx-1: + i0 = i-1 + i1 = i + fi = 2.0 + if j == 0: + j0 = j + j1 = j+1 + fj = 2.0 + if j == ny-1: + j0 = j-1 + j1 = j + fj = 2.0 + l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) + b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) + xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, + obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, + obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) + yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, + obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, + obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) + n = Vector(xvec.cross(yvec)) # Z positive + normal[i].append(n.normalize()) + # Create faces + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) + # Reconstruct mesh data + for i in range(0,nx): + for j in range(0,ny): + obj.FS_Position[j + i*ny] = faces[i][j].pos + obj.FS_Normal[j + i*ny] = faces[i][j].normal + obj.FS_Area[j + i*ny] = faces[i][j].area + return faces diff --git a/src/Mod/Ship/TankInstance.py b/src/Mod/Ship/TankInstance.py index 48a1269715..8bb084bf9a 100644 --- a/src/Mod/Ship/TankInstance.py +++ b/src/Mod/Ship/TankInstance.py @@ -1,28 +1,31 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import time +# Qt library +from PyQt4 import QtGui,QtCore + # COIN from pivy.coin import * from pivy import coin @@ -33,1913 +36,734 @@ from FreeCAD import Base, Vector import Part # Ship design module -from shipUtils import Paths, Translator, Math +from shipUtils import Paths, Math class ShipTank: - def __init__(self, obj, solid, level=0, density=998.0): - """ Creates a new tank on active document. - @param obj Created Part::FeaturePython object. - @param solid Solid shape that represent the tank. - @param level Tank filling level. - @param density Fluid density. - """ - # Add uniqueness property to identify Tank instances - obj.addProperty("App::PropertyBool","IsShipTank","ShipTank", str(Translator.translate("True if is a valid ship tank instance"))).IsShipTank=True - # Add general options - obj.addProperty("App::PropertyFloat","Level","ShipTank", str(Translator.translate("Fluid filling level percentage"))).Level=level - obj.addProperty("App::PropertyFloat","Density","ShipTank", str(Translator.translate("Inside fluid density"))).Density=density - # Add shapes - shape = self.computeShape(solid) - if not shape: - obj.IsShipTank=False - return - obj.Shape = shape - obj.Proxy = self + def __init__(self, obj, solid, level=0, density=998.0): + """ Creates a new tank on active document. + @param obj Created Part::FeaturePython object. + @param solid Solid shape that represent the tank. + @param level Tank filling level. + @param density Fluid density. + """ + # Add uniqueness property to identify Tank instances + tooltip = str(QtGui.QApplication.translate("Ship","True if is a valid ship tank instance", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyBool","IsShipTank","ShipTank", tooltip).IsShipTank=True + # Add general options + tooltip = str(QtGui.QApplication.translate("Ship","Fluid filling level percentage", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloat","Level","ShipTank", tooltip).Level=level + tooltip = str(QtGui.QApplication.translate("Ship","Inside fluid density", + None,QtGui.QApplication.UnicodeUTF8)) + obj.addProperty("App::PropertyFloat","Density","ShipTank", tooltip).Density=density + # Add shapes + shape = self.computeShape(solid) + if not shape: + obj.IsShipTank=False + return + obj.Shape = shape + obj.Proxy = self - def onChanged(self, fp, prop): - """ Property changed, tank must be recomputed """ - if prop == "IsShipTank": - FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") - elif prop == "Level": - if fp.Level > 100.0: - fp.Level = 100.0 - elif fp.Level < 0.0: - fp.Level = 0.0 + def onChanged(self, fp, prop): + """ Property changed, tank must be recomputed """ + if prop == "IsShipTank": + FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") + elif prop == "Level": + if fp.Level > 100.0: + fp.Level = 100.0 + elif fp.Level < 0.0: + fp.Level = 0.0 - def execute(self, obj): - """ Shape recomputation called """ - obj.Shape = self.computeShape(obj.Shape) + def execute(self, obj): + """ Shape recomputation called """ + obj.Shape = self.computeShape(obj.Shape) - def computeShape(self, solid): - """ Create faces shape. This method also calls to generate boxes. - @param solid Solid shape that represent the tank. - @return Computed solid shape. None if can't build it. - """ - # Study input to try to build a solid - if solid.isDerivedFrom('Part::Feature'): - # Get shape - shape = solid.Shape - if not shape: - return None - solid = shape - if not solid.isDerivedFrom('Part::TopoShape'): - return None - # Get shells - shells = solid.Shells - if not shells: - return None - # Build solids - solids = [] - for s in shells: - solid = Part.Solid(s) - if solid.Volume < 0.0: - solid.reverse() - solids.append(solid) - # Create compound - shape = Part.CompSolid(solids) - return shape + def computeShape(self, solid): + """ Create faces shape. This method also calls to generate boxes. + @param solid Solid shape that represent the tank. + @return Computed solid shape. None if can't build it. + """ + # Study input to try to build a solid + if solid.isDerivedFrom('Part::Feature'): + # Get shape + shape = solid.Shape + if not shape: + return None + solid = shape + if not solid.isDerivedFrom('Part::TopoShape'): + return None + # Get shells + shells = solid.Shells + if not shells: + return None + # Build solids + solids = [] + for s in shells: + solid = Part.Solid(s) + if solid.Volume < 0.0: + solid.reverse() + solids.append(solid) + # Create compound + shape = Part.CompSolid(solids) + return shape class ViewProviderShipTank: - def __init__(self, obj): - """ Set this object to the proxy object of the actual view provider """ - obj.Proxy = self + def __init__(self, obj): + """ Set this object to the proxy object of the actual view provider """ + obj.Proxy = self - def attach(self, obj): - """ Setup the scene sub-graph of the view provider, this method is mandatory """ - return + def attach(self, obj): + """ Setup the scene sub-graph of the view provider, this method is mandatory """ + return - def updateData(self, fp, prop): - """ If a property of the handled feature has changed we have the chance to handle this here """ - return + def updateData(self, fp, prop): + """ If a property of the handled feature has changed we have the chance to handle this here """ + return - def getDisplayModes(self,obj): - ''' Return a list of display modes. ''' - modes=[] - return modes + def getDisplayModes(self,obj): + ''' Return a list of display modes. ''' + modes=[] + return modes - def getDefaultDisplayMode(self): - ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' - return "Shaded" + def getDefaultDisplayMode(self): + ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' + return "Shaded" - def setDisplayMode(self,mode): - ''' Map the display mode defined in attach with those defined in getDisplayModes. - Since they have the same names nothing needs to be done. This method is optinal. - ''' - return mode + def setDisplayMode(self,mode): + ''' Map the display mode defined in attach with those defined in getDisplayModes. + Since they have the same names nothing needs to be done. This method is optinal. + ''' + return mode - def onChanged(self, vp, prop): - ''' Print the name of the property that has changed ''' - # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") + def onChanged(self, vp, prop): + ''' Print the name of the property that has changed ''' + # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") - def __getstate__(self): - ''' When saving the document this object gets stored using Python's cPickle module. - Since we have some un-pickable here -- the Coin stuff -- we must define this method - to return a tuple of all pickable objects or None. - ''' - return None + def __getstate__(self): + ''' When saving the document this object gets stored using Python's cPickle module. + Since we have some un-pickable here -- the Coin stuff -- we must define this method + to return a tuple of all pickable objects or None. + ''' + return None - def __setstate__(self,state): - ''' When restoring the pickled object from document we have the chance to set some - internals here. Since no data were pickled nothing needs to be done here. - ''' - return None + def __setstate__(self,state): + ''' When restoring the pickled object from document we have the chance to set some + internals here. Since no data were pickled nothing needs to be done here. + ''' + return None - def getIcon(self): - return """ - /* XPM */ - static char * Tank_xpm[] = { - "128 128 1605 2", - " c None", - ". c #000000", - "+ c #D1D1D1", - "@ c #D2D2D2", - "# c #D3D3D3", - "$ c #D3D4D4", - "% c #D5D5D5", - "& c #CFD0CF", - "* c #D0D0D0", - "= c #D3D2D3", - "- c #D4D4D3", - "; c #D5D6D5", - "> c #D6D6D6", - ", c #D7D7D7", - "' c #CDCECE", - ") c #CFCECE", - "! c #D0CFCF", - "~ c #D3D3D2", - "{ c #D3D3D4", - "] c #D5D4D5", - "^ c #D6D7D6", - "/ c #D8D8D8", - "( c #D8D8D9", - "_ c #D9D9DA", - ": c #CCCCCB", - "< c #CCCCCC", - "[ c #CECECD", - "} c #CECECE", - "| c #CFCFCF", - "1 c #D1D2D2", - "2 c #D5D4D4", - "3 c #D8D9D9", - "4 c #DAD9DA", - "5 c #DADBDB", - "6 c #DBDCDB", - "7 c #CACACA", - "8 c #CACBCB", - "9 c #CBCBCB", - "0 c #CCCDCD", - "a c #CECDCD", - "b c #D2D2D1", - "c c #D2D3D3", - "d c #D4D3D3", - "e c #D9D9D8", - "f c #D9D9D9", - "g c #DADBDA", - "h c #DBDCDC", - "i c #DCDCDC", - "j c #DDDDDD", - "k c #DEDEDE", - "l c #C7C8C8", - "m c #C9C9C9", - "n c #CAC9CA", - "o c #CBCBCC", - "p c #CCCDCC", - "q c #CDCDCD", - "r c #D0D1D1", - "s c #D1D2D1", - "t c #D3D2D2", - "u c #D4D4D5", - "v c #D5D5D6", - "w c #D6D7D7", - "x c #D8D7D8", - "y c #D9D8D9", - "z c #DADAD9", - "A c #DBDADA", - "B c #DBDBDC", - "C c #DDDCDD", - "D c #DDDEDE", - "E c #DEDFDE", - "F c #DFE0E0", - "G c #E0E0E1", - "H c #C6C6C6", - "I c #C7C7C7", - "J c #C8C8C7", - "K c #C9C9C8", - "L c #CACAC9", - "M c #CBCACB", - "N c #D0CFD0", - "O c #D1D0D1", - "P c #D1D1D2", - "Q c #D4D4D4", - "R c #D6D5D6", - "S c #D7D6D7", - "T c #D7D8D8", - "U c #DAD9D9", - "V c #DADADA", - "W c #DBDBDB", - "X c #DCDBDC", - "Y c #DDDDDC", - "Z c #DFDEDF", - "` c #E0DFDF", - " . c #E0E0E0", - ".. c #E1E1E1", - "+. c #E2E2E2", - "@. c #C5C4C4", - "#. c #C5C5C5", - "$. c #C8C8C8", - "%. c #C9C8C8", - "&. c #D5D5D4", - "*. c #D8D7D7", - "=. c #D9D8D8", - "-. c #DCDDDD", - ";. c #DEDDDD", - ">. c #E3E4E3", - ",. c #E5E4E4", - "'. c #C4C4C4", - "). c #C6C7C6", - "!. c #C7C8C7", - "~. c #C8C8C9", - "{. c #CACACB", - "]. c #CCCBCB", - "^. c #D0D0D1", - "/. c #D5D6D6", - "(. c #D7D7D6", - "_. c #DFDFDF", - ":. c #E1E2E2", - "<. c #E3E3E3", - "[. c #E4E3E4", - "}. c #E6E5E5", - "|. c #E6E6E6", - "1. c #E6E7E7", - "2. c #C4C5C5", - "3. c #C6C6C7", - "4. c #CFD0D0", - "5. c #D1D0D0", - "6. c #D6D5D5", - "7. c #DADADB", - "8. c #DCDDDC", - "9. c #DDDDDE", - "0. c #DEDFDF", - "a. c #E1E1E2", - "b. c #E3E2E2", - "c. c #E4E4E4", - "d. c #E5E5E5", - "e. c #E8E8E7", - "f. c #E9E8E9", - "g. c #EAE9EA", - "h. c #C5C5C4", - "i. c #C6C6C5", - "j. c #C7C7C6", - "k. c #CBCACA", - "l. c #CDCDCC", - "m. c #CECFCF", - "n. c #DBDADB", - "o. c #E0E0DF", - "p. c #E1E1E0", - "q. c #E1E2E1", - "r. c #E3E3E4", - "s. c #E4E5E5", - "t. c #E7E6E7", - "u. c #E7E7E8", - "v. c #E9E9E8", - "w. c #E9EAE9", - "x. c #EAEAEA", - "y. c #EBEBEA", - "z. c #C4C5C4", - "A. c #C6C5C5", - "B. c #C6C7C7", - "C. c #CCCCCD", - "D. c #CECECF", - "E. c #D9DAD9", - "F. c #DBDBDA", - "G. c #DEDEDD", - "H. c #E0DFE0", - "I. c #E0E1E0", - "J. c #E6E5E6", - "K. c #E7E7E6", - "L. c #E7E8E7", - "M. c #E8E8E9", - "N. c #E9E9E9", - "O. c #ECECEC", - "P. c #ECEDED", - "Q. c #EDEDEE", - "R. c #010101", - "S. c #C5C4C5", - "T. c #CBCCCB", - "U. c #CDCCCC", - "V. c #CECFCE", - "W. c #CFCFCE", - "X. c #CFCFD0", - "Y. c #D7D8D7", - "Z. c #DEDDDE", - "`. c #E1E0E0", - " + c #E5E6E6", - ".+ c #EBEBEB", - "++ c #ECEBEC", - "@+ c #EDEDED", - "#+ c #EEEEEE", - "$+ c #EFEFEF", - "%+ c #F0F0F0", - "&+ c #C4C4C5", - "*+ c #CFCECF", - "=+ c #D2D1D1", - "-+ c #D6D6D5", - ";+ c #D8D9D8", - ">+ c #DDDEDD", - ",+ c #DFDEDE", - "'+ c #E2E3E3", - ")+ c #E7E7E7", - "!+ c #E8E8E8", - "~+ c #EBECEC", - "{+ c #ECEDEC", - "]+ c #EFEFF0", - "^+ c #F1F0F1", - "/+ c #F1F1F1", - "(+ c #C7C6C6", - "_+ c #C9C8C9", - ":+ c #C9CAC9", - "<+ c #CACBCA", - "[+ c #D2D2D3", - "}+ c #D4D5D5", - "|+ c #DCDCDB", - "1+ c #E3E3E2", - "2+ c #E4E3E3", - "3+ c #E4E4E5", - "4+ c #E5E5E6", - "5+ c #EAEAE9", - "6+ c #ECEBEB", - "7+ c #F0F0EF", - "8+ c #F0F0F1", - "9+ c #C8C7C8", - "0+ c #C8C9C9", - "a+ c #CBCBCA", - "b+ c #CCCBCC", - "c+ c #D7D6D6", - "d+ c #DDDCDC", - "e+ c #E2E2E1", - "f+ c #E2E3E2", - "g+ c #E3E4E4", - "h+ c #E8E7E8", - "i+ c #E9E8E8", - "j+ c #EAE9E9", - "k+ c #EDECEC", - "l+ c #EEEEED", - "m+ c #EFEEEF", - "n+ c #EFF0F0", - "o+ c #F1F0F0", - "p+ c #C5C6C6", - "q+ c #C7C6C7", - "r+ c #D0D0CF", - "s+ c #D4D5D4", - "t+ c #E1E0E1", - "u+ c #E8E9E9", - "v+ c #EDECED", - "w+ c #EEEDED", - "x+ c #EEEFEF", - "y+ c #F0EFF0", - "z+ c #F0F1F0", - "A+ c #D7D7D8", - "B+ c #C8C7C7", - "C+ c #C9C9CA", - "D+ c #D2D1D2", - "E+ c #D9DADA", - "F+ c #E2E1E1", - "G+ c #E9E9EA", - "H+ c #EAEBEB", - "I+ c #D8D8D7", - "J+ c #CBCCCC", - "K+ c #CDCCCD", - "L+ c #D6D6D7", - "M+ c #E6E6E5", - "N+ c #E7E6E6", - "O+ c #E8E7E7", - "P+ c #EFEEEE", - "Q+ c #CDCECD", - "R+ c #D1D1D0", - "S+ c #D2D3D2", - "T+ c #DFE0DF", - "U+ c #E3E2E3", - "V+ c #E4E5E4", - "W+ c #E5E6E5", - "X+ c #ECECED", - "Y+ c #D4D3D4", - "Z+ c #CECDCE", - "`+ c #E6E6E7", - " @ c #EBEAEB", - ".@ c #ECECEB", - "+@ c #F0F1F1", - "@@ c #DCDCDD", - "#@ c #EBEAEA", - "$@ c #F0EFEF", - "%@ c #D3D4D3", - "&@ c #E6E7E6", - "*@ c #EEEDEE", - "=@ c #ADADAD", - "-@ c #565656", - ";@ c #DCDBDB", - ">@ c #DFDFE0", - ",@ c #E7E8E8", - "'@ c #E8E9E8", - ")@ c #EDEDEC", - "!@ c #EBEBEC", - "~@ c #EEEFEE", - "{@ c #B7B6B7", - "]@ c #E5E4E5", - "^@ c #EDEEED", - "/@ c #B6B6B6", - "(@ c #B6B7B7", - "_@ c #B7B7B6", - ":@ c #B7B6B6", - "<@ c #E5E5E4", - "[@ c #B5B6B5", - "}@ c #B5B6B6", - "|@ c #B5B5B5", - "1@ c #B6B5B5", - "2@ c #B6B5B6", - "3@ c #E2E1E2", - "4@ c #E4E4E3", - "5@ c #B4B4B4", - "6@ c #B4B5B5", - "7@ c #B5B5B4", - "8@ c #B6B6B5", - "9@ c #E2E2E3", - "0@ c #B3B4B4", - "a@ c #B4B4B5", - "b@ c #B4B5B4", - "c@ c #B5B4B4", - "d@ c #B3B3B3", - "e@ c #B3B3B4", - "f@ c #B4B3B3", - "g@ c #B4B4B3", - "h@ c #B5B4B5", - "i@ c #D0D1D0", - "j@ c #B3B3B2", - "k@ c #B3B2B3", - "l@ c #B4B3B4", - "m@ c #90B9D9", - "n@ c #91BAD9", - "o@ c #C6C5C6", - "p@ c #B1B2B2", - "q@ c #B2B2B2", - "r@ c #B2B3B2", - "s@ c #B2B3B3", - "t@ c #8FB7D8", - "u@ c #8EB7D7", - "v@ c #8FB8D8", - "w@ c #90B8D8", - "x@ c #91BBD9", - "y@ c #91BCDA", - "z@ c #C2C2C2", - "A@ c #C3C4C3", - "B@ c #C3C4C4", - "C@ c #C8C9C8", - "D@ c #CDCDCE", - "E@ c #B1B1B1", - "F@ c #B1B2B1", - "G@ c #B2B1B2", - "H@ c #B2B2B3", - "I@ c #B3B2B2", - "J@ c #8CB4D6", - "K@ c #8DB4D6", - "L@ c #8DB5D7", - "M@ c #8EB6D7", - "N@ c #8EB7D8", - "O@ c #8FB7D7", - "P@ c #90B9D8", - "Q@ c #91BBDA", - "R@ c #92BCD9", - "S@ c #92BCDA", - "T@ c #C1C1C0", - "U@ c #C1C1C1", - "V@ c #C2C2C1", - "W@ c #C3C3C2", - "X@ c #C3C3C3", - "Y@ c #C3C3C4", - "Z@ c #CAC9C9", - "`@ c #B1B0B0", - " # c #B2B2B1", - ".# c #8BB2D5", - "+# c #8BB2D6", - "@# c #8CB3D6", - "## c #8CB3D7", - "$# c #8DB5D6", - "%# c #8EB5D7", - "&# c #8FB8D7", - "*# c #92BBD9", - "=# c #92BBDA", - "-# c #BFC0C0", - ";# c #C0C1C0", - "># c #C2C1C1", - ",# c #C3C2C2", - "'# c #C4C4C3", - ")# c #C5C6C5", - "!# c #C5C5C6", - "~# c #B0B0B0", - "{# c #B0B1B0", - "]# c #B1B1B2", - "^# c #B2B1B1", - "/# c #0E3459", - "(# c #0E355A", - "_# c #0F355A", - ":# c #0F365A", - "<# c #8AB2D5", - "[# c #8CB3D5", - "}# c #8BB3D6", - "|# c #8FB6D7", - "1# c #8FB9D7", - "2# c #90B9D7", - "3# c #90BAD8", - "4# c #90BBD9", - "5# c #92BDDA", - "6# c #93BEDA", - "7# c #BEBEBE", - "8# c #BEBFBE", - "9# c #BFBFBE", - "0# c #BFBFC0", - "a# c #C0C0BF", - "b# c #C2C3C2", - "c# c #C4C3C3", - "d# c #AFB0B0", - "e# c #AFAFB0", - "f# c #B0AFB0", - "g# c #B0B1B1", - "h# c #B0B0B1", - "i# c #B1B0B1", - "j# c #7A9EC5", - "k# c #799FC5", - "l# c #7A9FC5", - "m# c #7AA0C6", - "n# c #0E345A", - "o# c #0F3559", - "p# c #8BB1D5", - "q# c #8CB4D5", - "r# c #8FB9D8", - "s# c #90BAD7", - "t# c #91BBD8", - "u# c #91BCD9", - "v# c #91BDD9", - "w# c #92BEDA", - "x# c #93BFDA", - "y# c #BDBDBD", - "z# c #BDBEBD", - "A# c #BEBEBD", - "B# c #BEBEBF", - "C# c #BEBFBF", - "D# c #BFBFBF", - "E# c #C0C0C0", - "F# c #C1C0C0", - "G# c #C0C1C1", - "H# c #C3C2C3", - "I# c #C4C3C4", - "J# c #AFAEAF", - "K# c #AFAFAF", - "L# c #B0AFAF", - "M# c #789DC5", - "N# c #789EC5", - "O# c #799EC5", - "P# c #7AA1C5", - "Q# c #7BA1C5", - "R# c #0F3659", - "S# c #10375A", - "T# c #8DB6D6", - "U# c #8EB8D7", - "V# c #92BDD9", - "W# c #143F5B", - "X# c #174A6A", - "Y# c #84B0CB", - "Z# c #85B0CC", - "`# c #BCBCBC", - " $ c #BDBCBC", - ".$ c #C0C0C1", - "+$ c #C1C2C1", - "@$ c #C2C3C3", - "#$ c #AEAEAE", - "$$ c #AEAFAF", - "%$ c #AFAFAE", - "&$ c #779BC4", - "*$ c #779CC4", - "=$ c #789CC4", - "-$ c #789DC4", - ";$ c #789EC4", - ">$ c #799FC4", - ",$ c #7AA0C5", - "'$ c #10385A", - ")$ c #8DB7D7", - "!$ c #8EB7D6", - "~$ c #90BBD8", - "{$ c #133E5B", - "]$ c #83AEC9", - "^$ c #84AFCA", - "/$ c #85B1CB", - "($ c #85B2CB", - "_$ c #BDBCBD", - ":$ c #BEBDBD", - "<$ c #C0BFBF", - "[$ c #C1C1C2", - "}$ c #C9CACA", - "|$ c #AEAEAD", - "1$ c #AEAFAE", - "2$ c #AEAEAF", - "3$ c #7599C3", - "4$ c #7699C3", - "5$ c #7699C2", - "6$ c #769AC3", - "7$ c #779BC3", - "8$ c #789BC4", - "9$ c #799EC4", - "0$ c #79A0C4", - "a$ c #8CB5D5", - "b$ c #8CB5D6", - "c$ c #8DB7D6", - "d$ c #426D8A", - "e$ c #16486A", - "f$ c #7AA5C1", - "g$ c #83ADC9", - "h$ c #84B1CB", - "i$ c #85B1CC", - "j$ c #BCBDBD", - "k$ c #BDBDBC", - "l$ c #BFBEBF", - "m$ c #BFC0BF", - "n$ c #ADADAC", - "o$ c #AEADAD", - "p$ c #ADAEAD", - "q$ c #ADAEAE", - "r$ c #7496C2", - "s$ c #7597C2", - "t$ c #7598C2", - "u$ c #769BC2", - "v$ c #779BC2", - "w$ c #779CC3", - "x$ c #789DC3", - "y$ c #7AA0C4", - "z$ c #7AA1C4", - "A$ c #7AA2C5", - "B$ c #7BA2C5", - "C$ c #10395A", - "D$ c #8EB6D6", - "E$ c #8EB8D6", - "F$ c #133D5A", - "G$ c #81ABC8", - "H$ c #82ACC9", - "I$ c #82ADC9", - "J$ c #82AEC9", - "K$ c #83AFC9", - "L$ c #83B0CA", - "M$ c #BDBEBE", - "N$ c #C1C0C1", - "O$ c #C7C7C8", - "P$ c #ADACAC", - "Q$ c #AFAEAE", - "R$ c #7395C1", - "S$ c #7395C2", - "T$ c #7496C1", - "U$ c #7599C2", - "V$ c #769BC3", - "W$ c #779DC3", - "X$ c #789EC3", - "Y$ c #7AA2C4", - "Z$ c #7BA3C4", - "`$ c #7BA3C5", - " % c #11395A", - ".% c #113A5A", - "+% c #123C5A", - "@% c #164A6E", - "#% c #4C7694", - "$% c #80AAC7", - "%% c #80ABC8", - "&% c #81ACC9", - "*% c #81ACC8", - "=% c #81ADC9", - "-% c #83AFCA", - ";% c #84B0CA", - ">% c #84B1CA", - ",% c #86B3CB", - "'% c #87B4CC", - ")% c #BFBEBE", - "!% c #ACACAC", - "~% c #ABACAC", - "{% c #ACACAD", - "]% c #7294C0", - "^% c #7194C0", - "/% c #7294C1", - "(% c #7394C1", - "_% c #7396C1", - ":% c #7497C2", - "<% c #7498C2", - "[% c #799FC3", - "}% c #7CA3C5", - "|% c #123B5A", - "1% c #88B1D0", - "2% c #7EA8C6", - "3% c #7FA9C6", - "4% c #7FAAC7", - "5% c #81ADC8", - "6% c #85B1CA", - "7% c #86B2CB", - "8% c #86B4CB", - "9% c #87B5CB", - "0% c #BCBCBD", - "a% c #C0BFC0", - "b% c #ABABAB", - "c% c #ACABAC", - "d% c #ABABAC", - "e% c #ACADAC", - "f% c #ACADAD", - "g% c #7193C0", - "h% c #7293C0", - "i% c #7193C1", - "j% c #7293C1", - "k% c #7498C1", - "l% c #789FC4", - "m% c #79A1C3", - "n% c #79A1C4", - "o% c #7BA2C4", - "p% c #7CA4C5", - "q% c #7CA4C4", - "r% c #16496F", - "s% c #7DA7C5", - "t% c #7FAAC6", - "u% c #80ABC7", - "v% c #80ACC7", - "w% c #82AFC9", - "x% c #84B1C9", - "y% c #85B2CA", - "z% c #87B5CC", - "A% c #88B6CC", - "B% c #BDBDBE", - "C% c #C1C2C2", - "D% c #AAABAB", - "E% c #AAAAAA", - "F% c #ABAAAB", - "G% c #ABACAB", - "H% c #ACACAB", - "I% c #7192C0", - "J% c #7292C0", - "K% c #7598C1", - "L% c #7599C1", - "M% c #759AC1", - "N% c #769AC2", - "O% c #779CC2", - "P% c #779DC2", - "Q% c #789DC2", - "R% c #78A0C3", - "S% c #7CA3C4", - "T% c #7AA2C2", - "U% c #7CA5C4", - "V% c #7DA5C4", - "W% c #7DA6C5", - "X% c #7EA8C5", - "Y% c #82ADC8", - "Z% c #83B0C9", - "`% c #85B3CA", - " & c #86B5CB", - ".& c #87B6CC", - "+& c #BCBDBC", - "@& c #C2C1C2", - "#& c #C2C2C3", - "$& c #AAA9AA", - "%& c #AAABAA", - "&& c #ABAAAA", - "*& c #7091BF", - "=& c #7092BF", - "-& c #7191C0", - ";& c #7192BF", - ">& c #7092C0", - ",& c #7295C0", - "'& c #7497C1", - ")& c #759AC2", - "!& c #769CC2", - "~& c #789FC3", - "{& c #79A0C3", - "]& c #79A2C4", - "^& c #7AA4C3", - "/& c #7BA4C4", - "(& c #7DA8C5", - "_& c #7EA9C6", - ":& c #80AAC6", - "<& c #81ADC7", - "[& c #82ADC7", - "}& c #82AEC8", - "|& c #88B7CC", - "1& c #A9A9A9", - "2& c #A9AAAA", - "3& c #A9A9AA", - "4& c #A9AAA9", - "5& c #7090BE", - "6& c #7091BE", - "7& c #7092BE", - "8& c #7191BF", - "9& c #7397C1", - "0& c #7499C1", - "a& c #7AA1C3", - "b& c #7AA2C3", - "c& c #79A2C2", - "d& c #7AA3C3", - "e& c #7BA5C4", - "f& c #80ABC6", - "g& c #81ACC7", - "h& c #81AEC8", - "i& c #82AFC8", - "j& c #83B1CA", - "k& c #85B3CB", - "l& c #85B4CA", - "m& c #87B6CB", - "n& c #88B8CC", - "o& c #A8A8A8", - "p& c #6F90BE", - "q& c #6F91BE", - "r& c #7192BE", - "s& c #7193BF", - "t& c #769BC1", - "u& c #779EC3", - "v& c #789FC2", - "w& c #79A1C2", - "x& c #7AA3C2", - "y& c #7BA4C3", - "z& c #7CA6C5", - "A& c #7DA7C4", - "B& c #7EA7C5", - "C& c #7EA9C5", - "D& c #7EAAC6", - "E& c #7FACC6", - "F& c #81AEC7", - "G& c #82AFC7", - "H& c #83B1C9", - "I& c #84B2C9", - "J& c #84B3C9", - "K& c #86B4CA", - "L& c #89B7CC", - "M& c #89B8CD", - "N& c #A8A8A7", - "O& c #6F90BD", - "P& c #6E90BD", - "Q& c #6E90BE", - "R& c #7293BF", - "S& c #7396C0", - "T& c #7397C0", - "U& c #7498C0", - "V& c #759BC1", - "W& c #769CC1", - "X& c #779EC2", - "Y& c #789EC2", - "Z& c #78A0C1", - "`& c #78A1C2", - " * c #7BA6C3", - ".* c #7BA6C4", - "+* c #7CA6C4", - "@* c #7FABC6", - "#* c #82AEC7", - "$* c #83AFC8", - "%* c #83B0C8", - "&* c #88B7CB", - "** c #89B9CC", - "=* c #89BACD", - "-* c #6E8FBD", - ";* c #6F91BD", - ">* c #7093BF", - ",* c #7194BF", - "'* c #7294BF", - ")* c #7395C0", - "!* c #7398C0", - "~* c #779FC1", - "{* c #77A0C1", - "]* c #78A1C1", - "^* c #7AA4C2", - "/* c #7CA7C4", - "(* c #7DA8C4", - "_* c #7DA9C5", - ":* c #7FAAC5", - "<* c #80ACC6", - "[* c #80ADC7", - "}* c #84B1C8", - "|* c #88B8CB", - "1* c #89BACC", - "2* c #BEBDBE", - "3* c #12285A", - "4* c #768CBE", - "5* c #768DBE", - "6* c #6E91BD", - "7* c #7193BE", - "8* c #7295BF", - "9* c #7396BF", - "0* c #7398BF", - "a* c #7499C0", - "b* c #749AC1", - "c* c #779DC1", - "d* c #789FC1", - "e* c #779EC0", - "f* c #769EC0", - "g* c #769FC0", - "h* c #77A0C0", - "i* c #79A2C1", - "j* c #79A3C2", - "k* c #7BA4C2", - "l* c #7CA7C3", - "m* c #7EAAC5", - "n* c #80ADC6", - "o* c #82B0C7", - "p* c #85B2C9", - "q* c #85B3C9", - "r* c #85B4C9", - "s* c #86B5CA", - "t* c #87B6CA", - "u* c #88B9CC", - "v* c #8AB9CC", - "w* c #8ABACC", - "x* c #8BBBCC", - "y* c #758BBE", - "z* c #758CBE", - "A* c #768CBF", - "B* c #6E91BE", - "C* c #7093BE", - "D* c #7397BF", - "E* c #7497BF", - "F* c #749AC0", - "G* c #759AC0", - "H* c #769BC0", - "I* c #769CC0", - "J* c #779EC1", - "K* c #769DC0", - "L* c #759DBF", - "M* c #769DBE", - "N* c #77A1C0", - "O* c #7AA5C2", - "P* c #7DA7C3", - "Q* c #7EA9C4", - "R* c #7EAAC4", - "S* c #7FABC5", - "T* c #81ADC6", - "U* c #81AFC7", - "V* c #82B0C8", - "W* c #83B1C8", - "X* c #84B2C8", - "Y* c #86B6CB", - "Z* c #87B7CA", - "`* c #87B7CB", - " = c #84AFCB", - ".= c #143F5A", - "+= c #12275A", - "@= c #758BBD", - "#= c #768BBE", - "$= c #6E8FBC", - "%= c #6E8EBD", - "&= c #7296BF", - "*= c #7297BF", - "== c #779CC1", - "-= c #749BBE", - ";= c #749CBF", - ">= c #759EBE", - ",= c #769FBF", - "'= c #76A0C0", - ")= c #779FC0", - "!= c #7BA5C3", - "~= c #7CA6C3", - "{= c #7CA8C4", - "]= c #7DA9C3", - "^= c #7FAAC4", - "/= c #81AFC6", - "(= c #82B1C7", - "_= c #85B5C9", - ":= c #86B6CA", - "<= c #82AECA", - "[= c #758ABD", - "}= c #748ABD", - "|= c #758CBD", - "1= c #6D8FBC", - "2= c #759CC1", - "3= c #769DC1", - "4= c #759BBF", - "5= c #739ABE", - "6= c #759DBE", - "7= c #769EBE", - "8= c #769EBF", - "9= c #779FBF", - "0= c #78A1C0", - "a= c #78A2C1", - "b= c #79A2C0", - "c= c #7AA3C1", - "d= c #7CA8C3", - "e= c #7DA9C4", - "f= c #82B0C6", - "g= c #83B2C8", - "h= c #84B3C8", - "i= c #143E5B", - "j= c #11265A", - "k= c #7489BC", - "l= c #748ABC", - "m= c #758ABC", - "n= c #6D8EBC", - "o= c #6E8EBC", - "p= c #6D8FBD", - "q= c #6F8FBD", - "r= c #7092BD", - "s= c #7294BE", - "t= c #7194BE", - "u= c #7295BE", - "v= c #7196BF", - "w= c #759BC0", - "x= c #749ABE", - "y= c #7399BC", - "z= c #729ABD", - "A= c #739ABD", - "B= c #749CBD", - "C= c #769DBF", - "D= c #779EBF", - "E= c #78A2C0", - "F= c #79A3C1", - "G= c #7AA4C1", - "H= c #7BA6C2", - "I= c #7CA9C4", - "J= c #7EABC4", - "K= c #7FACC4", - "L= c #80ADC5", - "M= c #80AEC6", - "N= c #81AEC6", - "O= c #83B1C7", - "P= c #7EA9C7", - "Q= c #7FAAC8", - "R= c #80AAC8", - "S= c #7388BC", - "T= c #7488BC", - "U= c #7389BC", - "V= c #7489BD", - "W= c #6E8EBB", - "X= c #6D8EBD", - "Y= c #7195BE", - "Z= c #7499BF", - "`= c #749ABF", - " - c #749BC0", - ".- c #7198BB", - "+- c #7298BC", - "@- c #7299BC", - "#- c #729ABC", - "$- c #739BBD", - "%- c #749BBD", - "&- c #749DBE", - "*- c #76A0BF", - "=- c #77A2C0", - "-- c #78A3C1", - ";- c #79A4C1", - ">- c #7CA8C2", - ",- c #7DAAC4", - "'- c #7FACC5", - ")- c #7DA7C6", - "!- c #7FA9C7", - "~- c #133E5A", - "{- c #7387BC", - "]- c #6F92BD", - "^- c #7094BE", - "/- c #7296BE", - "(- c #7399BD", - "_- c #0E3559", - ":- c #7096BB", - "<- c #7197BB", - "[- c #7199BB", - "}- c #739BBC", - "|- c #749CBE", - "1- c #749EBE", - "2- c #769FBE", - "3- c #77A0BF", - "4- c #77A1BF", - "5- c #78A3C0", - "6- c #79A4C0", - "7- c #7AA6C2", - "8- c #7BA7C2", - "9- c #7DA8C3", - "0- c #7EACC5", - "a- c #7CA5C5", - "b- c #10255A", - "c- c #7286BB", - "d- c #7287BC", - "e- c #6D8EBB", - "f- c #7093BD", - "g- c #7094BD", - "h- c #7195BF", - "i- c #7399BF", - "j- c #739ABF", - "k- c #7398BE", - "l- c #6F95BA", - "m- c #7096BA", - "n- c #7097BB", - "o- c #739ABC", - "p- c #739CBD", - "q- c #759EBF", - "r- c #78A2BF", - "s- c #7CA7C2", - "t- c #10245A", - "u- c #7185BB", - "v- c #7286BC", - "w- c #7387BB", - "x- c #7487BC", - "y- c #6E90BC", - "z- c #6F93BE", - "A- c #7196BE", - "B- c #7297BE", - "C- c #7298BF", - "D- c #7297BD", - "E- c #6E94BA", - "F- c #6F95B9", - "G- c #6F96BA", - "H- c #7097BA", - "I- c #729ABB", - "J- c #749DBD", - "K- c #77A0BE", - "L- c #78A4C0", - "M- c #7AA5C0", - "N- c #7CA7C5", - "O- c #7185BA", - "P- c #7286BA", - "Q- c #7285BB", - "R- c #7386BB", - "S- c #7288BC", - "T- c #7589BD", - "U- c #6E91BC", - "V- c #6F91BC", - "W- c #6E92BC", - "X- c #6F93BD", - "Y- c #7194BD", - "Z- c #7195BD", - "`- c #7298BE", - " ; c #7297BC", - ".; c #6D93B8", - "+; c #6E94B8", - "@; c #6E95B9", - "#; c #7096B9", - "$; c #739CBC", - "%; c #76A0BE", - "&; c #78A1BF", - "*; c #79A1C1", - "=; c #79A4C2", - "-; c #7BA3C3", - ";; c #7084BA", - ">; c #7184BB", - ",; c #7085BB", - "'; c #7186BB", - "); c #7287BB", - "!; c #7388BB", - "~; c #6C8EBB", - "{; c #6D8FBB", - "]; c #6F92BC", - "^; c #7095BD", - "/; c #7196BD", - "(; c #7195BC", - "_; c #0E3359", - ":; c #6C92B7", - "<; c #6D94B8", - "[; c #6F96B9", - "}; c #6F97BA", - "|; c #7299BB", - "1; c #729BBB", - "2; c #749DBC", - "3; c #759EBD", - "4; c #759FBE", - "5; c #10235A", - "6; c #7083BA", - "7; c #7084BB", - "8; c #7085BA", - "9; c #7093BC", - "0; c #7095BC", - "a; c #6C91B7", - "b; c #6E95B8", - "c; c #7198BA", - "d; c #739BBB", - "e; c #78A2C2", - "f; c #0F225A", - "g; c #6F82B9", - "h; c #7083B9", - "i; c #6F83B9", - "j; c #6F83BA", - "k; c #7184BA", - "l; c #6C8DBB", - "m; c #6C8FBB", - "n; c #6D90BB", - "o; c #6E91BB", - "p; c #6F93BC", - "q; c #7094BC", - "r; c #6F94BB", - "s; c #0D3259", - "t; c #6A8FB6", - "u; c #6B91B7", - "v; c #6E93B8", - "w; c #7098BA", - "x; c #7099BA", - "y; c #7199BA", - "z; c #729BBC", - "A; c #6E81B9", - "B; c #6E82B9", - "C; c #6E90BB", - "D; c #6E93BA", - "E; c #698EB6", - "F; c #6A8EB6", - "G; c #6A90B6", - "H; c #6B90B6", - "I; c #6B92B7", - "J; c #6D93B7", - "K; c #6E96B8", - "L; c #6F97B9", - "M; c #7098BB", - "N; c #78A0C0", - "O; c #6E80B8", - "P; c #6E81B8", - "Q; c #6F81B8", - "R; c #6F81B9", - "S; c #6F82B8", - "T; c #6F92BB", - "U; c #6E92BA", - "V; c #0D3159", - "W; c #688DB4", - "X; c #698EB5", - "Y; c #698FB5", - "Z; c #6A90B7", - "`; c #6C93B7", - " > c #518FC8", - ".> c #6F96B8", - "+> c #123A5A", - "@> c #0F215A", - "#> c #6D80B8", - "$> c #6D81B8", - "%> c #6C8FBA", - "&> c #6E90BA", - "*> c #6E92BB", - "=> c #6E93BC", - "-> c #0C3159", - ";> c #678CB4", - ">> c #678DB4", - ",> c #688EB4", - "'> c #698EB4", - ")> c #6A90B5", - "!> c #6B91B6", - "~> c #6D94B7", - "{> c #6D95B8", - "]> c #6E96B9", - "^> c #0E2159", - "/> c #6C7FB8", - "(> c #6D7FB7", - "_> c #6D7FB8", - ":> c #507FC9", - "<> c #6D8FBA", - "[> c #6D91BB", - "}> c #6D91B9", - "|> c #0C3059", - "1> c #678AB3", - "2> c #678BB3", - "3> c #678DB3", - "4> c #6B91B5", - "5> c #6B92B5", - "6> c #6C92B6", - "7> c #6B92B6", - "8> c #6C93B6", - "9> c #0E2059", - "0> c #6C7EB7", - "a> c #6D7EB7", - "b> c #6E80B7", - "c> c #6E82B8", - "d> c #7084B9", - "e> c #6F84BA", - "f> c #6C90B9", - "g> c #668AB2", - "h> c #698FB4", - "i> c #6A90B4", - "j> c #719ABB", - "k> c #749BBC", - "l> c #6B7EB7", - "m> c #6B7DB6", - "n> c #6C7DB7", - "o> c #6C7FB7", - "p> c #6D80B7", - "q> c #6F84B9", - "r> c #7186BA", - "s> c #6C8EB9", - "t> c #6589B1", - "u> c #678CB2", - "v> c #678DB2", - "w> c #688EB3", - "x> c #6A8FB5", - "y> c #6A91B5", - "z> c #6C92B5", - "A> c #6C94B7", - "B> c #6D95B7", - "C> c #759DBD", - "D> c #0E1F5A", - "E> c #6A7CB6", - "F> c #6A7DB6", - "G> c #6C7EB6", - "H> c #7082B9", - "I> c #7285BA", - "J> c #7085B9", - "K> c #0E335A", - "L> c #658BB1", - "M> c #668BB1", - "N> c #668CB1", - "O> c #678CB1", - "P> c #688DB3", - "Q> c #688FB3", - "R> c #698FB3", - "S> c #6990B4", - "T> c #7097B9", - "U> c #7197BA", - "V> c #739CBE", - "W> c #0E1F59", - "X> c #6A7BB6", - "Y> c #6B7CB6", - "Z> c #6C7DB6", - "`> c #6B7DB7", - " , c #6F82B6", - "., c #648AB0", - "+, c #658AB1", - "@, c #658BB0", - "#, c #668CB2", - "$, c #688FB4", - "%, c #6B90B5", - "&, c #0D1E59", - "*, c #697BB5", - "=, c #6A7CB7", - "-, c #6B7EB6", - ";, c #6C7EB8", - ">, c #6E82B7", - ",, c #6389B0", - "', c #6489B0", - "), c #658AB0", - "!, c #668AB1", - "~, c #688DB2", - "{, c #6990B5", - "], c #697AB5", - "^, c #697BB6", - "/, c #6A7BB5", - "(, c #6D7EB8", - "_, c #6D81B6", - ":, c #6388AE", - "<, c #6388AF", - "[, c #6389AF", - "}, c #6489AF", - "|, c #668BB0", - "1, c #6979B4", - "2, c #6879B5", - "3, c #6879B4", - "4, c #6979B5", - "5, c #6A7AB5", - "6, c #6B7CB7", - "7, c #6D80B5", - "8, c #6287AE", - "9, c #6288AE", - "0, c #0D1D59", - "a, c #6878B4", - "b, c #6778B4", - "c, c #6C7EB5", - "d, c #6186AC", - "e, c #6186AD", - "f, c #6286AE", - "g, c #668DB1", - "h, c #678EB3", - "i, c #0D1C59", - "j, c #6777B3", - "k, c #6777B4", - "l, c #697AB4", - "m, c #6A7CB5", - "n, c #6E81B7", - "o, c #6084AC", - "p, c #6185AC", - "q, c #6086AD", - "r, c #6187AE", - "s, c #6387AE", - "t, c #0C1C59", - "u, c #6676B3", - "v, c #6776B3", - "w, c #6877B4", - "x, c #687AB5", - "y, c #697CB6", - "z, c #6A7DB7", - "A, c #6B7DB5", - "B, c #5F83AC", - "C, c #6083AC", - "D, c #6185AD", - "E, c #6288AD", - "F, c #668BB2", - "G, c #6A91B4", - "H, c #6675B3", - "I, c #6575B3", - "J, c #6677B3", - "K, c #6677B4", - "L, c #6A7DB4", - "M, c #5E82AB", - "N, c #5F83AB", - "O, c #5F84AC", - "P, c #6085AD", - "Q, c #6085AC", - "R, c #10365A", - "S, c #0C1B59", - "T, c #6575B2", - "U, c #6675B2", - "V, c #6676B2", - "W, c #6676B4", - "X, c #6776B4", - "Y, c #687AB4", - "Z, c #5D81AA", - "`, c #5D81AB", - " ' c #5D82AA", - ".' c #5E83AB", - "+' c #6083AB", - "@' c #6286AD", - "#' c #648AB1", - "$' c #6473B3", - "%' c #6474B2", - "&' c #697CB3", - "*' c #5D80A9", - "=' c #5E82AA", - "-' c #5F84AB", - ";' c #6287AD", - ">' c #6389AE", - ",' c #0B1A59", - "'' c #6473B2", - ")' c #6574B2", - "!' c #6574B3", - "~' c #6778B3", - "{' c #6779B4", - "]' c #687BB2", - "^' c #5B7FA9", - "/' c #5B80A9", - "(' c #5C80A9", - "_' c #5D81A9", - ":' c #5E81AA", - "<' c #6184AC", - "[' c #638AB0", - "}' c #678DB1", - "|' c #0B1A58", - "1' c #6372B1", - "2' c #6472B2", - "3' c #6472B1", - "4' c #6473B1", - "5' c #6573B2", - "6' c #6576B3", - "7' c #6878B3", - "8' c #687AB3", - "9' c #5B7EA7", - "0' c #5B7FA8", - "a' c #5B80A8", - "b' c #5C81AA", - "c' c #5F82AB", - "d' c #668DB2", - "e' c #11268E", - "f' c #11268D", - "g' c #0B1958", - "h' c #6373B2", - "i' c #6877B3", - "j' c #6879B2", - "k' c #0C2F59", - "l' c #5A7DA7", - "m' c #5A7EA7", - "n' c #5B7FA7", - "o' c #5B7EA8", - "p' c #5C7FA8", - "q' c #5F83AA", - "r' c #6084AB", - "s' c #6589B0", - "t' c #0C196C", - "u' c #152064", - "v' c #11258D", - "w' c #6371B1", - "x' c #6271B1", - "y' c #6372B2", - "z' c #6778B1", - "A' c #0C2E59", - "B' c #597CA6", - "C' c #5A7CA6", - "D' c #597DA6", - "E' c #5D80AA", - "F' c #5E83AA", - "G' c #0E355B", - "H' c #0C1A6F", - "I' c #131E62", - "J' c #414C90", - "K' c #10258E", - "L' c #6271B0", - "M' c #6272B1", - "N' c #6373B1", - "O' c #6677B1", - "P' c #0B2E59", - "Q' c #577BA5", - "R' c #587BA6", - "S' c #587CA6", - "T' c #5A7EA8", - "U' c #5D82AB", - "V' c #6289AE", - "W' c #1A5FA3", - "X' c #0D1C75", - "Y' c #131E61", - "Z' c #404B8E", - "`' c #475296", - " ) c #10258D", - ".) c #6270B0", - "+) c #6272B0", - "@) c #6576B2", - "#) c #6576B1", - "$) c #577AA4", - "%) c #577BA4", - "&) c #587BA5", - "*) c #5C81A9", - "=) c #648AAF", - "-) c #0E345B", - ";) c #0D1D79", - ">) c #101B5F", - ",) c #3C478B", - "') c #11258E", - ")) c #6371B0", - "!) c #6575B1", - "~) c #0B2E58", - "{) c #5679A3", - "]) c #5779A4", - "^) c #567AA4", - "/) c #577AA5", - "() c #577BA6", - "_) c #597BA6", - ":) c #175797", - "<) c #0E1F82", - "[) c #101B5E", - "}) c #384487", - "|) c #0B1858", - "1) c #6170B0", - "2) c #6575B0", - "3) c #5578A2", - "4) c #5678A3", - "5) c #5679A4", - "6) c #5A7DA6", - "7) c #102394", - "8) c #111C60", - "9) c #141F63", - "0) c #293578", - "a) c #0A1859", - "b) c #616FAF", - "c) c #616FB0", - "d) c #6270AF", - "e) c #6372B0", - "f) c #6474AF", - "g) c #0B2D58", - "h) c #5576A2", - "i) c #5577A2", - "j) c #5577A3", - "k) c #5578A4", - "l) c #5578A3", - "m) c #587CA5", - "n) c #597DA7", - "o) c #5D82A9", - "p) c #6187AD", - "q) c #154F8D", - "r) c #1227A5", - "s) c #0D185C", - "t) c #1B266A", - "u) c #313C80", - "v) c #445093", - "w) c #10248D", - "x) c #6170AF", - "y) c #6474B1", - "z) c #6373AF", - "A) c #5375A1", - "B) c #5476A2", - "C) c #587AA4", - "D) c #5C7FA9", - "E) c #6084AD", - "F) c #102393", - "G) c #0C196A", - "H) c #0E1A5D", - "I) c #242F73", - "J) c #3A4589", - "K) c #626FAF", - "L) c #626FB0", - "M) c #6475B2", - "N) c #6272AE", - "O) c #0A2C59", - "P) c #5275A1", - "Q) c #5376A2", - "R) c #5477A2", - "S) c #144A84", - "T) c #0E1E7F", - "U) c #121D61", - "V) c #2B3679", - "W) c #0A1858", - "X) c #6370B0", - "Y) c #6271AF", - "Z) c #0A2C58", - "`) c #5173A0", - " ! c #5274A1", - ".! c #5274A0", - "+! c #0D1B74", - "@! c #10248E", - "#! c #6171AE", - "$! c #51729F", - "%! c #51739F", - "&! c #5273A0", - "*! c #5476A1", - "=! c #5576A3", - "-! c #114379", - ";! c #102291", - ">! c #0C196B", - ",! c #1F2A6E", - "'! c #364185", - ")! c #465195", - "!! c #10238D", - "~! c #616EAF", - "{! c #616FAD", - "]! c #0A2B59", - "^! c #50729E", - "/! c #50729F", - "(! c #5375A0", - "_! c #134C8D", - ":! c #0E1E81", - "~ c #323D81", - ",~ c #0A2D5D", - "'~ c #1354AE", - ")~ c #10228F", - "!~ c #212C70", - "~~ c #374286", - "{~ c #0F228B", - "]~ c #1251A7", - "^~ c #283377", - "/~ c #3E4A8D", - "(~ c #0F4085", - "_~ c #0B2F62", - ":~ c #1328A8", - "<~ c #0D1C77", - "[~ c #303B7F", - "}~ c #104289", - "|~ c #0B3063", - "1~ c #112497", - "2~ c #1C276A", - "3~ c #0C175B", - "4~ c #0F438A", - "5~ c #0B3266", - "6~ c #0F2088", - "7~ c #0C3367", - "8~ c #365885", - "9~ c #0B3369", - "0~ c #0E1D7C", - "a~ c #0B2F60", - "b~ c #0C366E", - " ", - " ", - " ", - " ", - " ", - " . . ", - " . . . . . . . ", - " . . . . + @ # $ % . . . . ", - " . . . . & * + @ = - % ; > , . . . . ", - " . . . . ' ) ! * + @ ~ { ] % ^ , / ( _ . . . ", - " . . . . : < [ } | * + 1 = $ 2 ; > , / 3 4 5 6 . . . . ", - " . . . . 7 8 9 0 a } | * + b c d 2 % > , / e f g h i j k . . . . ", - " . . . . l m n 9 o p q } | * r s t # u % v w x y z A B i C D E F G . . . ", - " . . . . H I J K L M 9 < q ' | N O P t # Q % R S T / U V W X Y D Z ` ...+.. . . . ", - " . . . . @.#.H I $.%.L M 9 < q } } N r + @ # Q &.R S *.=.f V W X -.;.k ` ...+.+.>.,.. . . . ", - " . . . . '.'.'.#.H ).!.~.n {.].< 0 ' } | ^.b @ # Q ] /.(., / f 4 5 B i D k _. ...:.<.[.,.}.|.1.. . . . ", - " . . . . '.'.'.'.'.2.H 3.J %.m 7 9 < p } ) 4.5.+ @ ~ Q Q 6.> , / 3 4 7.X 8.9.k 0. ...a.b.<.c.d.|.1.e.f.g.. . . ", - " . . . . . '.'.'.'.'.'.'.h.i.j.$.$.m 7 k.< l.a m.| * + @ c Q Q % > , / f f n.B i j k _.o.p.q.+.r.c.s.|.t.u.v.w.x.y.. . . . ", - " . . . . . '.'.'.'.'.'.'.'.z.A.B.I $.m 7 9 ].C.q D.| * + P t # Q 6.> (.T f E.F.6 i j G.0.H.I...+.<.c.d.J.K.L.M.N.x.y.O.P.Q.. . . . ", - " R.. . '.'.'.'.'.'.'.'.'.'.'.S.A.3.I $.m n k.T.U.q V.W.X.+ + t # Q % /.S Y./ z F.W i -.Z.k _.`.a.+.<.r.s. +|.L.M.N.g..+++O.@+#+$+%+. . . ", - " . . . . . '.'.'.'.'.'.'.'.'.&+i.H I $.K n 8 < < q } *+* ^.=+@ { Q ] -+, , ;+_ V W B 8.>+,+_.G ..+.'+c.d.d.t.)+!+M.x.x.~+{+Q.#+$+]+^+/+. . . . ", - " . . =.f . . . . . '.'.'.'.'.'.2.A.H (+$._+:+<+].< q } | N ^.s [+# Q }+6.> *./ f V 5 |+C D 0._. ...q.1+2+3+4+|.1.!+N.5+y.6+O.Q.#+$+7+8+/+/+/+/+. . . . ", - " . . / / y e . . . . . '.'.'.'.&+#.H I 9+0+m a+9 b+l.} m.X.5.+ @ = $ % > c+Y./ f U W X d+k k _. ...e+f+g+c.d.J.)+h+i+j+x.6+k+@+l+m+n+o+/+/+/+/+/+/+/+. . . . ", - " . . S , *.x T / / 3 . . . . . '.'.#.p+q+!.~.m 7 9 < 0 ' } r+* P @ # { s+% w , / e V 5 B -.j k _. .t+e+1+2+3+d.|.K.u.u+N.x..+O.v+w+x+y+z+/+/+/+/+/+/+/+/+/+/+. . . ", - " . . ; > > ^ , A+/ / e y ( . . . . . i.).B+$.C+7 9 : l.a } | * + D+t d Q % > , / f E+5 6 d+j k _.o.p.F+<.r.c.d.J.)+h+!+G+x.H+O.@+@+$+y+%+/+/+/+/+/+/+/+/+/+/+/+/+. . . . ", - " . . 2 % % /.-+> ^ S , Y.I+/ =.e . . . . . I $.C+L 9 J+K+a } & 4.+ P c d Q v L+S / f f g |+i j k ,+H.t+:.+.<.c.s.M+N+O+i+N.x..+~+@+#+P+]+%+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+. . . . ", - " . . # $ Q 2 s+6./.> > , , , , / / ;+y . . . . . 7 a+< U.Q+} | N R+P S+# u % > , / ( f V W i -.Z._.T+I...+.U+c.V+W+t.O+!+N.x.y.++X+@+#+$+%+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+. . . . ", - " . . @ t # Y+Y+Q Q &.% v v > c+c+S , , / =.( f . . . . . < q Z+) X.^.D+c Q Q % /., Y./ 4 V W i d+k Z T+`.q.+.<.r.d.}.`+)+!+N.x. @.+k+@+#+x+%+z+/+/+/+/+/+/+/+/+/+/+/+/+/+. . . . f f . ", - " . . + D+@ c # # $ Q Q Q }+% % /./.S S , *.T / ;+;+f . . . . . m.4.5.b @ # Q % R > , e f V W i 8.j k _.G ..+.'+<.c.4+`+)+h+v.w.y..@O.@+#+x+n++@/+/+/+/+/+/+/+/+/+/+/+. . . . f f f f f . ", - " . . . ^.+ + P b @ c t # - - u u &.% /.R c+c+S , A+/ / y f . . . . . 5.+ @ # Q ] /.L+A+=.f V W |+@@9.k _. .t++.b.g+c.W+|.1.!+u+j+#@~+O.@+l+#+$@8+/+/+/+/+/+/+/+/+/+. . . . f f f f f f f f . ", - " . . | N * * + + =+=+D+@ S+# %@%@- Q 2 % 6.v /.> , , , / T y f f . . . . . # Q % % > , / f E+V B -.9.k _.o.p.F+f+r.c.d.|.&@O+u+N.x..+++@+*@#+]+%+/+/+/+/+/+/+/+. . . =@f f f f f f f f f f -@. ", - " . . . W.D.| | 4.* 5.r + P b @ S+# # Y+- Q Q }+% ; -+> w w S , I+/ / 3 f . . . . . ; > , A+f V g ;@i j k _.>@`...+.r.c.d.|.&@,@'@G+x..+O.)@@+x+$+z+/+/+/+/+/+. . . T / ( y f f f f f f f f f f . . ", - " . . . a } V.} W.| r+4.* ^.* + D+@ @ @ # # - Q Q ] 2 ; /.-+> w (., A+Y./ f f . . . . . , / / U V X @@j k Z .t+a.+.<.c.d.|.K.O+!+G+x.y.!@P.Q.~@$+8+/+/+/+. . . ; > w ^ , T / 3 f f f f f f f f f . . ", - " . {@. . . . Z+} ) D.m.| r+* * 5.r + D+@ S+c # # - Q Q s+% % -+> c+(., , / / / / f . . . . . f g B i j k _._.`.q.+.<.c.]@ +1.O+!+N.x..+!@)@^@#+$+%+%+. . . # - Q % % % > L+w Y./ / / f f f f f f f . . ", - " . /@(@_@:@. . . . [ } } W.| N ! * * R++ + @ @ c c # # # Q u 2 % % ; > L+, , *./ / =.;+f . . . . . i j 9.E >@G ..+.'+c.<@4+&@)+!+N.G+.+O.O.l+#+@+. . . O s @ c c $ Q Q 2 % % > c+, I+x ;+f f f f f f . ", - " . [@/@}@/@/@/@. . . . q } } W.V.! ! N * + O + b b [+t c # $ Q u 2 ] % v R > > ^ *.A+I+/ e f f . . . . 9.E _. ...+.'+[.V+}.|.)+!+v.x..+6+{+.+. . . *+X.r+* r + s @ S+c { - Q s+% > > (., *./ f f f f f . ", - " . |@|@|@1@}@2@/@}@/@. . . . Q+[ } W.| N & * * R++ D+=+@ S+~ # # %@Q Q ] % R -+> ^ , w , , / =.;+f . . . . . ...3@<.4@3+}.|.)+!+u+w.x.)+. . . 0 q } [ V.| & 4.+ R++ b @ # # Q Q &.% 6.> > , A+x ( f f . ", - " . 5@5@6@|@7@|@|@8@}@}@2@/@. . . . ' } ) | | X.| * * ^.+ P 1 @ @ ~ # d Y+Q Q % % v > v w , , *.T / =.f f . . . . . 9@2+,.d.|.t.!+!+b.. . . <+9 o b+p 0 q Z+} ) | N * O + s @ t = d - Q % % -+> ^ , *./ . ", - " . 0@5@a@a@b@c@6@7@|@|@[@8@|@8@. . . . . } ) W.W.N & r+* * r + s 1 @ # # # { - Q u % % ; ; > c+, , , I+/ ( f f . . . . . d.M+t.j . . . $.0+m :+7 M 9 9 < U.q Z+} ) *+& 4.* O + @ @ c # { - }+% % R ^ , . ", - " . d@e@f@f@g@5@5@h@b@5@h@|@b@|@|@|@|@. . . . Z+} } | | & X.r+5.i@+ s D+@ [+t # # Q Q 2 &.% % /.R > c+, , T T / y f . . . . . . . . H 3.I !.$.%.~.C+7 {.a+T.: C.< q q } D.| r+* ^.+ =+1 @ c # - Q s+% v . ", - " . j@k@d@d@d@d@g@f@e@d@l@5@5@a@b@6@c@6@|@|@. . . . [ } } m.| | r+* * + + =+D+@ ~ ~ # m@n@n@Q &.% % v > c+(., , Y./ / =.f . . . '.h.#.#.o@H I I J $.K m C+7 M M ].< U.p q ' D.m.| ! * O + @ @ c @ d d 2 . ", - " . p@q@q@r@r@r@j@s@d@d@f@e@5@l@0@5@5@b@b@c@7@7@7@. . . . } V.V.) | & * * * + s t@u@v@v@w@m@n@x@y@u % v % > > (., , *.x / Y.. . z@A@B@'.2.#.#.p+j.I !.$.C@_+:+C+<+8 9 o < U.0 D@} W.m.| r+* O + s @ t # . ", - " . E@E@F@F@G@q@q@H@H@I@d@H@d@d@d@d@5@f@5@5@5@5@5@c@h@. . . . [ Z+) ) m.| 4.J@K@L@M@N@O@v@w@m@P@x@Q@R@S@] % 6.6.> > w , , . . T@U@V@W@X@Y@X@h.2.#.#.H B.I !.$.$._+Z@7 7 9 T.o < l.q q } } | | X.^.r D+=+. ", - " . `@E@E@E@E@F@G@ #p@q@q@q@q@d@k@d@H@d@d@g@f@g@d@5@0@5@5@6@. . . . Z+} .#+#@###$#L@%#M@O@O@&#P@P@n@n@*#=#S@&.}+% 6.-+> > . . -#T@;#U@>#z@,#X@Y@'#@.#.)#!#H I I I $.K m 7 7 7 9 9 T.< q q } } D.r+4.* 5.. ", - " . ~#~#~#{#~#E@E@E@]#G@^#^# #p@q@q@q@j@k@j@k@d@d@d@d@0@0@e@l@0@5@/#(#_#:#<#.#[#}#K@K@L@M@|#O@#2#3#4#4#x@R@5#6#% }+v . . 7#8#9#0#a#U@T@U@U@,#b#X@c#'.#.#.)#H 3.I l $.$.m m 7 7 M 9 9 < 0 q D@} *+| | . ", - " . d#e#f#~#~#~#g#h#{#{#E@i#E@E@q@F@p@]#q@q@q@q@q@j@d@k@d@d@d@j#k#l#m#n#o#:#:#p#+#}#q#$#$#$#M@M@u@v@1#r#s#3#t#u#v#5#w#x#. . y#z#A#B#C#D#a#E#F#G#V@z@H#X@I#'.@.#.#.H H B.I $.$.0+K :+7 M M : : < q q ' } . ", - " . J#K#K#K#K#L#~#~#~#~#~#~#{#{#i#E@E@^#]#G@]#q@q@^#q@I@H@M#M#N#O#k#k#l#P#Q#_#R#:#S#[#[#J@$#$#T#T#u@U#1#1#P@3#t#t#u#V#W#X#Y#Z#`# $y#z#7#7#D#D#-#.$U@U@+$z@@$H#'#'.2.2.#.p+j.I I l $.%.m m 7 7 9 ].< C.q . ", - " . #$J#K#$$$$%$K#K#L#K#L#f#~#f#~#~#`@`@E@E@E@E@E@E@q@&$*$=$=$-$-$;$O#>$>$,$,$Q#:#:#S#S#'$q#J@$#$#T#)$!$U#1#1#s#~$t#t#{$W#]$^$^$/$($`#_$y#:$7#9#D#<$a#E#U@+$[$b#X@X@A@'.2.#.p+H H B.!.!.~._+m }$7 a+9 ].. ", - " . =@|$#$#$#$1$2$K##$%$K#K#L#e#f#e#~#L#~#~#~#{#3$4$5$6$7$7$8$&$*$-$-$9$9$>$0$0$P#P#Q#S#S#'$'$'$a$b$T#c$!$!$#2#3#d$e$f$g$]$^$^$h$/$i$`#j$k$y#7#7#l$<$m$E#;#U@+$z@z@H#'.'.@.#.#.i.H q+I J $.K K :+C+7 . ", - " . n$o$p$=@o$q$#$q$#$#$#$J##$$$%$$$K#K#e#e#r$s$s$t$4$5$5$u$v$7$w$w$w$-$x$9$>$>$0$y$P#z$A$B$'$'$'$C$b$T#D$D$!$E$#F$F$G$H$I$J$K$^$L$Y#h$($($`#`#y#y#M$7#C#D#E#E#N$U@>#z@b#X@'#'.z.#.#.p+H j.!.O$K 0+m . ", - " . P$P$n$=@=@=@=@p$p$o$#$#$#$#$#$Q$K#Q$R$R$S$T$r$s$t$t$U$5$6$V$6$w$w$W$x$-$X$;$>$0$y$y$z$z$Y$Z$`$'$ % %.%T#T#!$u@+%@%#%$%%%&%*%=%J$K$-%;%>%>%($,%'%`#`#y#z#7#)%D#0#E#;#N$U@z@,#@$X@Y@'.S.#.o@H I j.I J . ", - " . !%!%~%P${%!%n$!%=@=@=@=@=@p$#$]%^%/%/%/%(%S$T$_%:%s$<%t$5$5$5$6$u$7$w$w$-$X$X$>$[%>$y$y$Y$Y$A$`$}%C$ %.%.%|%1%+%+%2%3%4%$%%%*%5%I$J$K$^$;%>%6%7%,%8%9%0%k$:$7#8#8#D#a%E#.$U@[$z@z@X@Y@Y@S.@.#.A.H q+. ", - " . b%b%c%b%d%d%!%!%!%e%f%e%n$g%g%g%^%h%h%i%j%/%R$R$T$_%:%s$k%U$U$4$6$u$V$w$7$w$x$X$X$l%l%0$m%n%z$A$o%`$p%q%.%.%|%r%+%s%2%2%3%t%u%v%*%5%J$]$w%L$x%y%6%7%,%'%z%A%`#y#B%7#l$l$D#E#E#T@[$C%z@H#X@A@I#z.#.A.. ", - " . D%E%F%F%b%b%G%b%~%~%H%I%I%I%J%J%J%g%I%I%g%]%(%R$_%R$T$T$K%k%K%U$L%M%N%u$w$O%P%Q%X$X$X$[%R%0$n%n%z$Y$Z$Z$S%q%T%|%U%V%W%s%X%3%t%4%u%v%*%Y%J$J$Z%;%;%y%y%`%8% &9%.&`#+&y#7#7#B#D#0#E#E#U@U@@&#&W@X@B@&+. ", - " . $&E%E%E%%&E%&&b%b%*&=&-&;&I%;&I%>&I%I%I%I%g%h%]%/%,&_%_%'&'&k%k%L%U$M%)&N%u$!&O%x$x$W$X$~&~&{&{&0$]&z$Y$Z$Z$T%.%^&/&U%W%s%(&2%_&3%:&u%v%<&[&}&K$K$;%>%y%y%,%8%9%9%z%|&`#y#:$7#7#C#m$E#E#.$U@U@z@@$X@. ", - " . 1&$&E%2&3&4&5&6&6&*&7&6&=&=&*&=&>&-&8&-&I%I%J%g%h%]%,&(%R$_%9&9&'&k%0&L%)&)&u$v$O%!&W$P%W$X$~&~&[%a&z$Y$b&o%c&.%d&d&e&/&U%W%s%X%2%3%t%f&f&g&<&<&h&i&Z%Z%j&y%y%k&l& &m&.&|&n&0%y#z#A#)%D#<$E#;#T@>#@&. ", - " . o&1&1&1&p&p&q&q&p&6&6&6&6&6&*&*&r&8&7&=&8&8&I%;&s&g%]%]%]%,&,&_%9&'&:%K%L%L%U$t&)&!&!&!&W$P%u&v&~&[%{&{&a&Y$w& %T%T%x&y&y&U%z&A&A&B&C&D&D&E&v%v%v%F&G&i&Z%H&x%I&J&K&8%9%m&.&|&L&M& $y#M$7#8#D#m$a%U@. ", - " . N&o&O&O&P&Q&q&q&p&6&q&q&6&6&5&6&6&6&6&=&7&*&*&=&;&;&g%R&^%^%,&,&S&T&T&U&U&k%L%L%M%N%V&W&O%!&X&u&v&Y&v&{&m%m%Z&C$Z&`&c&x&x&y&y& *.*+*s%2%C&D&t%@*f&v%<&#*G&$*%*H&x%y%`%l&8%9%m&A%&*n&**=*y#y#7#7#9#m$. ", - " . -*-*P&O&P&P&P&P&O&p&;*Q&p&p&p&q&q&5&6&q&6&6&6&6&*&=&=&>*s&s&,*'*,&)*S&T&T&!*k%k%L%M%M%V&t&!&O%P%P%X&Y&v&v&{&~*'$~*{*]*]*c&x&x&^*^& *+*/*(*_*D&t%:*E&<*[*F&#*G&$*%*}*I&I&`%K& &9%m&&*|*n&**1* $y#2*2*. ", - " 3*4*5*-*-*-*-*O&-*P&O&P&6*P&P&Q&p&p&q&p&6&5&q&6&6&6&q&6&*&7*7*>*s&,*8*8*9*S&T&U&0*U&a*b*M%M%V&W&W&c*c*X&X&Y&d*e*'$f*g*h*{*]*i*j*x&x&k* * *l*(*(*_*C&m*@*f&n*[*F&#*G&o*%*}*p*q*r*K&s*t*m&&*|*u*v*w*x*k$. ", - " 3*y*z*4*4*A*-*-*-*-*-*-*P&P&P&O&P&p&p&P&P&;*B*p&p&q&q&q&6&6&7&=&C*7*,*8*8*8*9*T&D*E*!*a*a*F*G*H*V&I*W&W&c*J*~*K*'$L*M*f*g*h*N*]*i*c&x&^*y&O* *l*P*(*Q*R*m*S*E&<*T*F&U*G&V*W*X*X*q*r*l&s*Y*Z*`*|***** =.= ", - " +=y*@=@=#=4*4*4*5*$=%=-*-*-*-*O&O&P&-*P&P&Q&Q&P&q&p&;*q&q&q&7&q&7&C*s&,*,*'*8*9*&=*=D*!*U&a*F*G*M%V&t&W&W&==c*I*S#-=;=L*>=,='=)=h*]*i*j*j*^*O*!=~=/*{=]=Q*^=S*S*<*<*T*F&/=o*(=W*X*X*J&r*_=s*:=`*I$<=-%.= ", - " +=[=}=}=[=y*@=y*z*|=z*4*1=1=-*$=-*%=-*-*-*P&P&-*P&P&P&Q&p&q&q&p&q&7&7&C*7*,*,*8*8*D*&=D*!*!*a*a*a*F*G*V&2=W&3=4=:#5=-=-=6=7=>=8=9=h*0=a=b=c=^*O*O*!=l*d={=e=R*R*R*S*E&n*F&U*U*f=o*W*g=X*h=r*G$G$&%H$I$i= ", - " j=k=l=m=l=}=}=}=}=[=@=#=@=4*#=n=1=$=o=-*1=p=-*-*P&q=-*q=-*P&O&O&;*q&6&r=C*7*7*s=t=u=&=v=9*D*0*0*a*a*F*w=w=w=2=x=:#y=z=A=B=B=6=8=C=D='=h*N*E=F=F=G=^*H=H=l*d={=I=e=R*J=K=L=L=M=N=U*o*O=P=4%Q=R=R=G$*%H${$ ", - " j=S=T=k=U=k=V=k=k=}=m=[=[=@=@=y*y*@=n=W=1=X=X=$=-*-*p=-*-*-*q=-*-*O&;*;*7&7&7&C*t=t=Y=v=&=&=*=D*D*0*a*Z=G*`= -5=_#.-+-@-#-$-%-B=&-6=7=,=*-N*=-E=----;-O*O* *l*>-d=]=,-J='-'-L=n*N=)-B&X%X%_&_&!-Q=R=R=~- ", - " j={-S={-S=S=T=S=T=k=k=V=k=V=l=[=[=[=y*y*y*n=n=o=o=n=$=p=1=%=%=$=-*-*P&O&;*;*]-r=r&C*^-t=t=/-&=/-0*0*0*0*Z=`=F*(-_-:-<-.-[-#-A=}-$-|-&-1-2-*-3-4-0=E=5-6-;-f$7-8-l*d=9-]=,-J=0-U%a-z&W%W%s%2%2%2%_&3%4%F$ ", - " b-c-c-c-d-{-d-{-S=S=S=S=T=T=k=k=V=k=V=}=[=[=y*@=n=o=e-n=1=o=1=$=p=%=-*-*P&O&;*r=]-7&f-g-t=t=Y=h-&=D**=0*0*i-j-k-(#l-m-n-.-[-@-#-o-$-p-B=&-q-2-2-3-4-r-E=5-;-G=f$H=s-8-d=x&x&y&y&q%U%U%z&W%s%s%X%2%_&2%F$ ", - " t-c-u-c-c-c-v-d-{-w-{-w-S=x-S=S=S=U=k=l=k=k=V=}=}=[=e-e-e-W=e-e-o=o=n=$=$=-*y-O&;*]-]-z-C*g-^-Y=Y=A-&=B-B-C-i-D-n#E-F-l-G-H-.-.-@-I-}-}-B=J-1->=2-3-K-4-r-5-L-6-M-f$]*]*i*c&j*x&^*^*y&e&q%z&z&N-A&s%B&+% ", - " t-O-u-u-u-u-P-Q-c-c-c-v-c-R-{-S-{-S=S=T=S=k=S=k=k=T-}=m=}=e-e-e-e-e-n=1=n=$=$=y-U-6*V-W-X-f-f-g-Y-Z-A-/-B-B-`- ;/#.;+;@;l-#;H-H-.-[-I-I-}-$;p-J->=>=2-%;4-&;r-,=3-,={*Z&]**;a=i*c&=;x&-;y&!=/&U%a-+*s%+% ", - " t-;;>;,;;;O-u-u-';Q-u-Q-Q-P-c-d-);d-);w-!;S=S=U=T=T=k=T=k=V=}=l=e-~;e-e-e-n=$={;y-$=y-U-V-];]-f-f-Y-^;Z-/;/;/;(;_;:;.;.;<;@;l-[;};n-.-|;I-1;}-$;2;J-3;4;%;6=6=6=8=8=,=3-3-h*]*a=a=i*c&j*x&x&^&!=y&U%+*+% ", - " 5;6;;;;;;;;;;;7;8;O-u-O-O-';';';';Q-c-c-);{-);w-{-{-S=k=S=U=T=k=V=k=m=e-e-~;e-e-{;1={;U-U-];V-];9;9;g-Y-^;^;/;0;_;a;a;:;.;.;b;@;[;G-H-c;[-|;I-d;$;$;J-o-}-B=B=|-&-6=8=8=,=9=3-h*0=]*`&e;a=c&x&d&^&^&y&|% ", - " f;g;g;h;h;i;j;j;;;;;8;>;k;O-u-u-O-c-u-u-';c-c-c-);c-d-w-w-S=S=S=S=T=U=k=k=V=l;l;~;m;e-1=n;o;V-U-];p;9;g-q;g-0;r;s;t;u;u;:;:;.;v;+;b;[;};w;w;x;y;[-|;|;I-o-z;}-$-%-B=&-6=6=8=8=,=*-h*h*0=]*]*i*j*j*j*x&|% ", - " f;A;B;g;g;g;g;g;h;j;6;6;;;k;;;;;O-;;O-k;u-u-c-Q-';';';c-v-);c-w-);d-S=S=U=S=S=T=S=l;~;m;{;{;C;y-y-V-];9;p;p;g-D;s;E;F;G;H;I;:;:;J;<;<;K;[;L;L;H-H-M;y;[-|;I-I-}-}-$-%-p-B=6=6=C=7=8=,=)=h*N;0=]*]*i*c&|% ", - " f;O;P;Q;R;P;Q;S;g;g;g;g;g;i;j;j;;;;;;;;;7;k;O-O-u-u-u-P-';P-u-c-c-);d-w-S={-S=!;S=S=U=k=~;{;{;n;y-o;U-T;p;p;p;U;V;W;X;Y;Y;G;Z;u;:;`;J; >b;b;.>[;};H-n-n-c;[-[-I-#-#-o-$-$-p-|-&-6=6=q-8=8=9=9=h*h*0=]*+> ", - " @>O;#>O;$>#>O;P;P;P;P;S;g;g;g;g;i;h;j;6;6;6;;;;;;;,;>;k;u-u-u-u-';u-';c-c-c-);{-);{-{-S-S=S=U=%>{;&>&>o;*>W-=>U;->;>>>,>'>Y;)>)>!>`;J;~>~>{>{>K;@;]>[;G-H-M;w;y;|;[-@-I-d;z;$-p-B=B=|-6=6=M*8=9=9=h*h*.% ", - " ^>/>(>_>(>_>_>O;O;O;$>O;A;A;P;P;S;R;g;g;i;i;i;6;6;;;;;;;;;k;k;u-O-u-O-u-Q-u-c-c-';c-c-);w-d-S=S-S-:><>n;[>[>o;}>|>1>2>3>W;'>'>)>4>5>6>7>8>J;~>~>{>{>b;K;[;[;H-H-.-c;y;[-[-#-#-}-}-p-$-B=|-&-6=>=8=,=,=.% ", - " 9>0>0>0>a>a>(>/>_>_>#>b>O;O;P;$>P;P;P;Q;g;S;c>g;g;h;i;d>j;6;e>;;;;;;k;u-;;O-u-O-Q-Q-';c-';c-);););{-S-S=n;n;[>f>|>g>g>2>'>h>h>h>h>i>)>!>7>7>8>`;`;~>~>b;b;K;.>[;[;m-w;w;c;.-[-j>I-#-z;}-k>B=B=B=&->=>=.% ", - " 9>l>m>n>0>0>0>0>a>o>(>(>_>_>p>#>p>O;O;P;P;Q;P;Q;g;g;g;g;i;g;i;h;e>j;q>;;;;;;8;7;8;>;u-O-u-u-O-';r>c-c-););w-);s>|>t>u>v>3>w>,>,>'>h>x>)>i>y>5>z>7>`;`;A>~>B>{>K;b;[;L;};H-<-w;c;[-|;#-I-#-}-}-$-B=B=C> % ", - " D>E>F>m>m>m>G>0>0>n>0>0>0>o>_>o>(>_>_>#>#>#>O;#>P;P;P;A;P;B;g;B;g;i;H>i;i;6;;;h;;;;;8;7;O-O-O-u-u-Q-I>';Q-c-c-J>K>L>M>N>O>u>v>w>P>w>Q>R>S>h>)>)>4>!>7>6>`;`;J;~>b;{>b;.>K;[;T>H-U>c;c;[-|;@-#-#-$-}-V> % ", - " W>X>E>E>m>Y>m>Y>Z>`>n>0>0>0>l>0>0>0>(>0>(>/>(>_>_>#>#>O;P;P;P;P;A;B;A;R;g;g;g;j;i;i;i;;;;;;;;;;;8;k;8;O-u-O-u- ,K>.,+,@,M>M>#,u>v>3>P>,>Q>$,$,h>)>i>%,4>6>7>6>`;J;~>~>+;b;]>]>[;L;H-w;w;y;.-[-|;#-#-o-'$ ", - " &,X>X>*,X>X>X>X>E>E>=,m>`>m>`>l>-,l>n>0>0>0>;,;,a>o>(>_>_>O;P;#>#>P;O;P;c>B;P;c>B;g;i;i;i;6;;;e>6;;;7;;;,;O-O->,_;,,',.,),!,L>N>N>#,v>v>~,w>w>w>h>h>{,i>y>4>4>7>6>:;`;J;~>{>{>b;]>.>[;L;w;w;c;[-.-[-#-'$ ", - " &,],],],],^,*,],/,X>X>E>E>E>Y>m>m>m>`>n>`>l>G>l>0>0>0>(,;,o>(>_>(>#>O;p>#>#>P;P;P;c>A;S;g;g;g;g;i;j;i;;;;;6;;;_,s;:,<,[,},.,),+,|,L>M>N>#,v>v>P>w>w>$,h>h>S>)>)>4>7>7>6>`;A>~>{>b;b;b;]>.>[;L;w;H-c;[-'$ ", - " &,1,2,3,4,2,],],],5,^,^,X>X>E>E>E>F>6,E>Y>`>`>l>`>`>`>n>l>0>o>a>_>(>_>_>_>#>p>O;O;P;$>P;P;P;g;c>g;c>g;g;i;q>i;7,s;8,8,9,:,[,[,',),.,),M>N>N>N>v>v>v>w>w>,>Q>$,Y;i>)>y>!>5>6>:;`;`;~>{>{>b;K;[;[;};H-U>'$ ", - " 0,a,a,b,a,3,3,2,3,4,],],],*,^,],^,X>X>E>E>E>E>E>6,`>m>m>`>Z>G>`>l>0>0>0>a>_>(>p>(>#>#>#>$>P;#>P;P;P;P;P;B;g;i;c,s;d,e,f,8,:,<,:,[,[,',',),@,M>N>M>#,g,v>h,P>w>'>$,h>S>)>y>y>4>6>7>`;`;~>B>b;b;b;]>[;L;S# ", - " i,j,k,k,b,j,b,a,3,3,3,2,l,3,],l,],],*,/,/,X>m,E>X>Y>Y>=,F>F>F>m>-,-,l>n>`>0>0>0>o>o>o>p>(>#>p>#>#>b>O;P;n,P;c>c,V;o,p,q,e,r,r,s,9,9,<,,,},.,.,+,L>M>M>N>O>v>v>3>w>Q>'>h>h>{,)>y>4>4>6>6>`;`;~>~>b;b;b;S# ", - " t,u,u,j,v,k,k,j,k,a,w,a,b,a,a,3,1,4,x,],l,],],/,X>X>^,y,E>Y>=,=,m>z,`>`>m>l>n>n>l>0>G>0>0>o>(>/>_>#>#>#>O;$>$>A,V;B,C,o,p,D,e,e,r,8,E,9,<,[,},',.,.,!,M>M>F,O>O>~,3>P>w>$,Q>h>S>Y;G,y>4>7>6>8>`;J;~>~>:# ", - " t,H,I,u,u,J,u,j,j,K,k,j,j,k,k,b,b,a,a,3,1,4,4,],4,],],/,/,^,X>/,*,E>E>E>E>`>m>`>`>`>`>m>0>-,0>0>0>0>(>/>_>/>p>L,|>M,N,N,C,O,P,Q,D,e,f,e,8,9,9,<,[,',.,),),|,M>N>N>u>u>v>P>w>w>,>$,h>S>)>y>4>4>7>:;8>`;R, ", - " S,T,H,H,I,U,V,V,u,v,W,u,X,j,k,k,b,b,b,b,a,a,a,3,3,3,Y,x,x,],],],],],X>X>E>E>E>E>=,F>`>`>z,`>m>`>0>G>l>0>0>0>0>L,|>Z,`, '.'N,N,+'o,P,P,e,e,@'8,9,8,:,<,[,,,#'),),M>M>F,N>u>v>3>w>,>,>h>h>h>S>i>y>4>4>6>:# ", - " S,$'%'%'T,T,I,U,I,V,U,H,u,u,J,J,u,v,v,j,j,k,b,b,a,a,b,3,3,1,l,3,],l,x,*,],*,*,/,m,X>m,E>F>Y>`>z,m>m>`>`>m>-,G>&'|>*'Z,Z,Z,=' 'M,N,B,-'o,o,d,D,e,;'8,8,9,>'[,,,',),),+,M>M>N>N>v>v>h,w>$,h>h>h>{,)>)>%,:# ", - " ,''''''''')')')'!')'I,T,T,I,H,u,u,u,u,v,W,v,j,j,j,j,k,~'~'{'a,3,3,3,2,x,4,],],],],/,*,y,/,X>m,E>z,E>F>F>Y>`>`>]'|>^'/'('*'Z,_':'M,M,M,N,o,o,<'P,D,D,e,8,s,9,:,<,[,['.,.,),M>@,M>#,O>}'v>3>w>w>h>h>h>S>_# ", - " |'1'2'3'4'''''''5'''%'T,)'T,T,I,H,u,I,6'u,u,u,v,u,u,X,v,j,j,j,7'b,a,a,b,3,3,3,Y,l,],Y,],*,*,*,*,*,X>X>E>E>E>Y>8'|>9'9'0'a'('('b'*'Z,='M,N,c'B,o,o,Q,P,Q,q,e,8,8,9,<,<,[,.,.,),),M>M>F,N>d'u>h,w>w>,>$,o# ", - " e'f'g'1'1'1'2'h'4'''4'''''''%'%'%'I,T,T,I,T,u,6'u,u,u,u,J,v,j,J,j,k,k,j,i'b,a,a,3,3,2,],4,x,],],],],^,/,/,*,X>j'k'l'l'm'n'o'p'/'('('*'_'Z,='M,q'.'-'r'o,Q,D,e,e,8,8,8,9,<,[,',',s'),L>M>M>N>O>v>3>3>w>/# ", - " t'u'v'v'e'w'x'w'1'y'1'3'3'4'4'''''5'%''')')'T,T,T,T,I,u,u,u,u,u,v,J,K,j,v,k,k,b,b,a,a,b,3,3,3,3,1,l,l,],*,*,],z'A'B'C'D'l'l'9'n'0'^'('('E'*'_'='='='F'N,O,o,P,P,P,D,e,f,8,9,:,[,[,,,.,),L>@,M>N>O>u>u>G' ", - " H'I'J'K'K'v'g'L'L'w'w'M'1'1'y'''3'N'2'''%'%'%')'%'T,T,T,T,I,T,I,u,H,u,u,u,u,j,j,k,~'b,b,~'7'3,7'3,3,3,2,1,Y,O'P'Q'R'S'B'B'l'l'o'o'T'0'p'('*'E'_' 'U'='.'N,N,O,o,D,e,D,e,f,8,8,:,V'[,[,.,',),@,|,M>/#W' ", - " X'Y'Z'`'`' ) ) )g'L'.)L'+)1'w'1'1'3'1'2'''''''''%'%'%'!')'T,)'I,T,H,@)u,H,u,u,u,J,j,j,j,k,k,b,b,a,a,b,a,3,#)P'$)%)&)R'R'S'B'D'l'l'9'9'0'0'p'('*)Z,Z, 'U'='.'N,N,r'P,D,P,D,@'e,8,s,9,<,[,=)',),@,-) ", - " ;)>),)`'`'`'`'') )g'.).).)L'))w'w'))w'1'1'4'1'3'4'N'''''%'%')'%'T,T,T,T,I,T,V,H,u,u,u,u,K,v,J,J,k,~'b,~'!)~){)])^)/)/)()R'_)S'B'l'l'm'9'n'0'('('('b'Z,Z,=' 'M,N,N,C,o,o,p,e,e,e,8,8,9,:,<,[,_;:) ", - " <)[)})`'`'`'`'`' ) ) )|)1).).)L'L'L'L'L'w'))1'1'1'3'2'3'h'h'''%'%')')'T,!'T,T,T,T,6'u,u,H,u,u,u,j,J,j,2)P'3)4){)5)5)$)$)Q'Q'S'S'B'D'6)l'T'o'o'0'0'('('*)Z,Z,M,M,.'N,-'o,o,o,P,d,e,;'8,8,:,K> ", - " 7)8)9)0)J'`'`'`'`'`' ) )a)b)c)d).).)d).)L'.)e)1'))x'1'1'1'4'''''''''%'%')'%'!')')'I,I,U,U,V,u,I,u,u,f)g)h)i)j)4)k)l)5)])$)&)&)m)S'B'D'n)6)l'9'n'o'0'p'('E'_'o)Z,M,.'F'N,r'o,P,o,e,D,p)s;q) ", - " r)X's)t)u)v)`'`'`'`'K'w)K'a)b)b)x)1).).).).).)L'w'))))1'1'1'3'1'N'1'4'''y)''%')')'T,T,T,T,6'I,V,z)g)A)A)B)h)i)i)l){){)$)$)/)C)()R'S'B'B'C'l'm'9'o'0'a'D)('_'Z,_'M,='F'N,N,r'o,P,E)s; ", - " F)G)H)I)J)`'`'`'`'`'w) )w)b)b)b)c)K)L)d).).)d).)L'))))w'e)e)1'1'y'2'''4'4'%''')'%'M)T,T,T,N)O)P)A)A)Q)B)B)R)j)j){)5)5)5)$)$)Q'&)S'S'B'D'l'l'9'0'0'p'p'('('*'Z,:'M,F'M,N,-'V;S) ", - " T)U)I'V)J'`'`'`'`'w)w)w)W)c)c)b)c)c)c)L)b)d).).).)X)L'+)w'e)e)1'1'1'h'2'4'''''%')'%'Y)Z)`) !.!P)A)A)A)B)i)j)4)4)4)4)5)$)$)/)Q'&)S'S'B'D'l'm'9'0'0'p'a'('*'_'Z,Z,:'M,V; ", - " r)+!s)t)u)v)`'`'`'`'w)w)@!W)b)b)b)c)b)c)b)L)K).).)d)d)L'L'L'w'w'1'e)1'1'1'3'4'''#!Z)$!$!%!&!.! ! !P)A)*!B)=!i)l)l)4)5)5)$)$)Q'R'S'S'B'6)l'l'l'9'n'0'D)('*)E'_'|>-! ", - " ;!>!s),!'!)!`'`'`'`'!!w)W)b)~!b)b)b)c)b)b)b)c)b)K).).)L'.).)L'))))e)+)1'1'{!]!^!/!$!$!%!%!&!.! !P)(!Q)B)B)h)j)l){)5)^)$)$)Q'&)R'S'S'B'D'6)m'm'9'9'p'|>|>_! ", - " :!)[!}!`'`'`'`'!!!!!!|!~!~!~!c)b)b)c)c)b)b)c)K)x)L).)1).)X)L'L'))1!2!3!3!4!^!/!/!$!%!5!&!.!.! !A)A)B)h)i)i)l)4)5)5)$)$)%)R'&)R'S'B'n)l'k'6!7! ", - " 8!9![)0!a!b!`'`'`'`'!!!!!!|!~!~!b)~!c)c)b)b)b)c)b)c)c)L)d).).).)c!2!d!e!3!f!4!4!g!/!%!`)`)&!.!.!P)A)h!B)B)i)i!4)4){)5)])$)$)%)&)S'k'j!k! ", - " l!H's)m!n!o!`'`'`'`'!!!!|!~!~!~!~!p!b)b)c)c)b)b)b)b)b)b)K)q!2!r!r!s!e!e!3!3!4!4!/!/!`)%!`)`).!P)t!A)Q)B)u!i)j)l)l)4)5)5)P'v! ", - " w!x![)y!z!`'`'`'`'!!!!!!A!~!~!~!~!~!p!~!b)b)c)b)b)c)q!2!B!B!B!B!r!C!e!e!3!f!D!4!/!$!%!`)E!.!.!P)A)F!B)B)G!R)P'P'H! ", - " I!>)J!K!L!`'`'`'`'!!!!|!~!~!~!~!~!~!~!b)~!b)c)M!2!B!B!B!B!B!r!r!N!C!e!3!O!3!4!^!/!/!%!P!`).!.!t!(!Q!g)R! ", - " S!T!s)U!V!o!`'`'`'!!!!!!|!W!~!~!W!~!~!~!~!X!2!B!B!B!B!B!B!B!r!B!r!Y!e!Z!e!`!D!4!^!$!$!%!5!Z)O) ~ ", - " .~+~@~I)#~`'`'`'`'!!!!A!|!W!~!W!W!W!X!2!B!B!B!B!B!B!B!B!B!B!r!r!r!r!e!Z!3!D!D!g!Z)O)$~ ", - " %~8)u'&~L!`'`'`'`'!!!!|!W!~!W!X!2!B!B!B!B!B!B!B!B!B!B!B!B!B!B!r!r!d!3!2!*~=~ ", - " -~T!s);~>~v)`'`'`'!!!!!!A!X!2!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!2!,~'~ ", - " )~t)s)!~~~)!`'`'`'!!{~2!B!B!B!B!B!B!B!B!B!B!B!B!B!B!2!,~]~ ", - " :!U)U)^~/~`'`'`'(~2!B!B!B!B!B!B!B!B!B!B!B!2!_~ ", - " :~<~@~+~[~b!`'}~2!B!B!B!B!B!B!B!B!2!|~ ", - " 1~2~3~,!'!4~2!B!B!B!B!B!2!5~ ", - " 6~x!@~7~2!B!8~2!9~ ", - " 0~a~2!b~ ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " "}; - """ + def getIcon(self): + return """ + /* XPM */ + static char * TankS_xpm[] = { + "32 32 516 2", + " c None", + ". c #2A2A2A", + "+ c #6D6C6D", + "@ c #434343", + "# c #000000", + "$ c #3C3C3C", + "% c #878787", + "& c #DADADA", + "* c #D1D2D1", + "= c #DBDBDC", + "- c #DDDDDD", + "; c #777677", + "> c #636363", + ", c #3D3D3D", + "' c #D2D2D1", + ") c #CBCBCB", + "! c #CECECE", + "~ c #D2D2D2", + "{ c #D5D5D5", + "] c #D8D9D9", + "^ c #DCDCDC", + "/ c #E6E6E6", + "( c #ACADAC", + "_ c #949494", + ": c #2B2A2B", + "< c #202020", + "[ c #838383", + "} c #D0D0D1", + "| c #C4C3C3", + "1 c #C7C7C7", + "2 c #CACACA", + "3 c #D1D1D1", + "4 c #D5D4D5", + "5 c #D8D8D8", + "6 c #DEDEDE", + "7 c #E2E2E2", + "8 c #E5E5E5", + "9 c #F5F5F6", + "0 c #B5B5B5", + "a c #747474", + "b c #393939", + "c c #7E7E7E", + "d c #7B7B7B", + "e c #7C7C7C", + "f c #D3D3D3", + "g c #CCCCCC", + "h c #CDCDCD", + "i c #D4D4D4", + "j c #DBDBDA", + "k c #DEDFDF", + "l c #E2E2E1", + "m c #E5E4E5", + "n c #E9E8E8", + "o c #ECECEC", + "p c #F2F2F1", + "q c #FEFEFE", + "r c #989898", + "s c #737373", + "t c #ADADAD", + "u c #AAAAAA", + "v c #5A5A5A", + "w c #717171", + "x c #9D9D9D", + "y c #D7D7D7", + "z c #DBDBDB", + "A c #DEDDDD", + "B c #E1E1E1", + "C c #E4E5E4", + "D c #E8E8E8", + "E c #EBEBEC", + "F c #EFEFEF", + "G c #F1F1F1", + "H c #F0F0F0", + "I c #FFFFFF", + "J c #666666", + "K c #5E5E5E", + "L c #4D4D4D", + "M c #D8D7D8", + "N c #D7D7D6", + "O c #E3E3E3", + "P c #797979", + "Q c #656565", + "R c #A9AAAA", + "S c #707070", + "T c #949493", + "U c #C3C3C3", + "V c #E0E0E0", + "W c #E1E0E0", + "X c #E4E4E4", + "Y c #E7E7E7", + "Z c #EBEBEB", + "` c #EEEDED", + " . c #585858", + ".. c #5B5B5B", + "+. c #C3C4C3", + "@. c #D3D3D2", + "#. c #D3D3D4", + "$. c #D5D5D4", + "%. c #DFDFDF", + "&. c #474747", + "*. c #858585", + "=. c #505050", + "-. c #606060", + ";. c #848485", + ">. c #F4F4F5", + ",. c #6F6F6F", + "'. c #909090", + "). c #D9DAD9", + "!. c #D4D3D4", + "~. c #D6D6D5", + "{. c #525252", + "]. c #ADACAD", + "^. c #323232", + "/. c #ABABAA", + "(. c #D0CFCF", + "_. c #D1D0D1", + ":. c #D1D2D2", + "<. c #D3D4D3", + "[. c #D5D5D6", + "}. c #D6D6D6", + "|. c #1B1B1B", + "1. c #494949", + "2. c #919191", + "3. c #CFCFCF", + "4. c #D2D3D2", + "5. c #D4D5D4", + "6. c #848384", + "7. c #B2B2B2", + "8. c #B3B2B2", + "9. c #A7A7A7", + "0. c #444344", + "a. c #CCCFD1", + "b. c #ABC2D5", + "c. c #94BBD9", + "d. c #A9C4D7", + "e. c #C1CFD8", + "f. c #D0D1D1", + "g. c #2D2D2D", + "h. c #CDCECD", + "i. c #C5C5C5", + "j. c #C9C9C9", + "k. c #CBCBCA", + "l. c #CDCECE", + "m. c #CFCFD0", + "n. c #818181", + "o. c #B0B0B0", + "p. c #B1B1B1", + "q. c #9FA4AA", + "r. c #4D6782", + "s. c #557CA0", + "t. c #90B7DB", + "u. c #8DB5D7", + "v. c #8FB7D7", + "w. c #91BAD9", + "x. c #93BCD9", + "y. c #BCD3E1", + "z. c #747C81", + "A. c #BDBCBC", + "B. c #BEBEBE", + "C. c #C0C0C0", + "D. c #C2C2C2", + "E. c #C4C4C4", + "F. c #C6C6C6", + "G. c #C7C8C7", + "H. c #CAC9C9", + "I. c #7D7D7E", + "J. c #828281", + "K. c #AEAEAD", + "L. c #ADADAE", + "M. c #A6AAB1", + "N. c #7C9ABF", + "O. c #7699C2", + "P. c #769BC3", + "Q. c #789DC3", + "R. c #6288AE", + "S. c #4F7799", + "T. c #5981A3", + "U. c #94BDDC", + "V. c #8FB9D8", + "W. c #537E9A", + "X. c #87B2CE", + "Y. c #8AB0C7", + "Z. c #A8B6BE", + "`. c #B7BABB", + " + c #BDBDBD", + ".+ c #BFBFBF", + "++ c #C1C1C1", + "@+ c #C2C3C3", + "#+ c #C4C4C5", + "$+ c #C7C7C6", + "%+ c #7A7A7B", + "&+ c #7F8080", + "*+ c #A8AAAB", + "=+ c #9EA6AF", + "-+ c #7594BE", + ";+ c #7192C0", + ">+ c #7293C0", + ",+ c #7395C1", + "'+ c #7498C1", + ")+ c #7599C1", + "!+ c #779CC2", + "~+ c #779EC3", + "{+ c #769DC0", + "]+ c #638BAD", + "^+ c #4F7897", + "/+ c #4F7D9F", + "(+ c #7DA7C4", + "_+ c #7FAAC6", + ":+ c #80ADC7", + "<+ c #83B0C8", + "[+ c #8EB4C6", + "}+ c #B5B9BB", + "|+ c #BABBBC", + "1+ c #787878", + "2+ c #717B89", + "3+ c #6F90BD", + "4+ c #6F91BD", + "5+ c #6F90BE", + "6+ c #7091BE", + "7+ c #7192BF", + "8+ c #7194BF", + "9+ c #7396C0", + "0+ c #7498C0", + "a+ c #759AC1", + "b+ c #769CC1", + "c+ c #789FC2", + "d+ c #79A1C3", + "e+ c #4A7CA2", + "f+ c #7AA3C2", + "g+ c #7BA5C2", + "h+ c #7DA8C4", + "i+ c #7FABC5", + "j+ c #81AEC6", + "k+ c #83B1C8", + "l+ c #85B4C9", + "m+ c #98B7C4", + "n+ c #BABABB", + "o+ c #747576", + "p+ c #5B71A4", + "q+ c #6D89BE", + "r+ c #678BBF", + "s+ c #6D8EBD", + "t+ c #6D8FBD", + "u+ c #6E90BD", + "v+ c #7091BD", + "w+ c #7193BE", + "x+ c #7296BF", + "y+ c #7397C0", + "z+ c #7499C0", + "A+ c #759BC1", + "B+ c #779EC1", + "C+ c #4979A1", + "D+ c #769FBF", + "E+ c #78A0C0", + "F+ c #79A4C1", + "G+ c #7BA6C2", + "H+ c #7DAAC3", + "I+ c #80ACC5", + "J+ c #82B0C6", + "K+ c #84B2C7", + "L+ c #89B4C6", + "M+ c #95AFC1", + "N+ c #59819C", + "O+ c #5A6FA3", + "P+ c #7388BC", + "Q+ c #7489BC", + "R+ c #7189BD", + "S+ c #6B89BE", + "T+ c #678BBE", + "U+ c #6D8EBC", + "V+ c #6E8FBC", + "W+ c #6F92BE", + "X+ c #7194BE", + "Y+ c #7398BF", + "Z+ c #759BBF", + "`+ c #46759F", + " @ c #729ABC", + ".@ c #749CBD", + "+@ c #769FBE", + "@@ c #77A2BF", + "#@ c #79A5C0", + "$@ c #7BA7C2", + "%@ c #7CA9C2", + "&@ c #7AA5C3", + "*@ c #7CA6C4", + "=@ c #7DA7C5", + "-@ c #577E98", + ";@ c #586CA2", + ">@ c #7184BA", + ",@ c #7185BB", + "'@ c #7286BB", + ")@ c #7287BB", + "!@ c #7388BB", + "~@ c #6C86BD", + "{@ c #6486BF", + "]@ c #6B8DBB", + "^@ c #6D8FBB", + "/@ c #6E91BC", + "(@ c #7093BC", + "_@ c #7195BD", + ":@ c #7297BD", + "<@ c #43719D", + "[@ c #6E95B8", + "}@ c #7098BA", + "|@ c #729BBB", + "1@ c #749DBC", + "2@ c #799EB9", + "3@ c #719CBF", + "4@ c #769EBF", + "5@ c #77A0C0", + "6@ c #78A2C1", + "7@ c #7AA3C3", + "8@ c #557B96", + "9@ c #576AA1", + "0@ c #6F82B9", + "a@ c #7083BA", + "b@ c #7084BA", + "c@ c #7185BA", + "d@ c #7285BB", + "e@ c #7187BC", + "f@ c #6985BF", + "g@ c #6387C0", + "h@ c #6E90BC", + "i@ c #6F92BB", + "j@ c #7095BC", + "k@ c #416D9B", + "l@ c #6A90B5", + "m@ c #6A92B7", + "n@ c #6393BD", + "o@ c #6D95B9", + "p@ c #7097BA", + "q@ c #7199BA", + "r@ c #729ABB", + "s@ c #739BBD", + "t@ c #759DBE", + "u@ c #779FBE", + "v@ c #527794", + "w@ c #5567A0", + "x@ c #6D7EB7", + "y@ c #6D7FB7", + "z@ c #6E81B8", + "A@ c #6F82B8", + "B@ c #6F83B9", + "C@ c #7186BA", + "D@ c #6F85BB", + "E@ c #6183C2", + "F@ c #698DBC", + "G@ c #3D6A9A", + "H@ c #5E8BB7", + "I@ c #688EB3", + "J@ c #6A90B4", + "K@ c #6B91B5", + "L@ c #6C93B6", + "M@ c #6F97B8", + "N@ c #7199BB", + "O@ c #739BBC", + "P@ c #507492", + "Q@ c #52639E", + "R@ c #6A7BB5", + "S@ c #6A7CB6", + "T@ c #6B7DB6", + "U@ c #6C7EB7", + "V@ c #6D7FB8", + "W@ c #6D80B7", + "X@ c #6F83BA", + "Y@ c #436587", + "Z@ c #6388AF", + "`@ c #658AB0", + " # c #668CB1", + ".# c #688DB3", + "+# c #698FB4", + "@# c #6C92B6", + "## c #6D94B7", + "$# c #6F96B9", + "%# c #4E7190", + "&# c #50619D", + "*# c #6778B4", + "=# c #6878B4", + "-# c #6979B4", + ";# c #697BB5", + "># c #6A7CB7", + ",# c #6A7DB7", + "'# c #6B7EB7", + ")# c #6C7FB7", + "!# c #6E80B8", + "~# c #416285", + "{# c #6084AC", + "]# c #6186AD", + "^# c #6389B0", + "/# c #668BB0", + "(# c #678CB1", + "_# c #6B91B4", + ":# c #4B6E8E", + "<# c #4F5F9D", + "[# c #6575B2", + "}# c #6675B2", + "|# c #6676B3", + "1# c #6776B3", + "2# c #6777B4", + "3# c #6879B4", + "4# c #697AB5", + "5# c #6A7DB6", + "6# c #6B7DB7", + "7# c #6C7EB6", + "8# c #3E5E83", + "9# c #5C80A9", + "0# c #5D81AA", + "a# c #5F83AB", + "b# c #6085AC", + "c# c #6388AE", + "d# c #648AAF", + "e# c #668BB1", + "f# c #678CB2", + "g# c #688EB4", + "h# c #486B8C", + "i# c #233077", + "j# c #314293", + "k# c #6574B5", + "l# c #6573B2", + "m# c #6473B2", + "n# c #6575B3", + "o# c #6676B2", + "p# c #697AB4", + "q# c #3C5B81", + "r# c #587CA5", + "s# c #5A7DA7", + "t# c #5B7FA8", + "u# c #5D80A9", + "v# c #5D82AA", + "w# c #6185AD", + "x# c #6287AE", + "y# c #6389AF", + "z# c #678CB3", + "A# c #385C80", + "B# c #2A3576", + "C# c #35418C", + "D# c #253584", + "E# c #4F5FA4", + "F# c #6574B3", + "G# c #6372B1", + "H# c #6473B1", + "I# c #6474B2", + "J# c #6576B3", + "K# c #6777B3", + "L# c #3A587F", + "M# c #5578A3", + "N# c #5779A3", + "O# c #577BA5", + "P# c #597CA6", + "Q# c #5B7EA7", + "R# c #5C7FA8", + "S# c #5E82AA", + "T# c #4D7299", + "U# c #0C1A71", + "V# c #1E2A74", + "W# c #38448D", + "X# c #2E3D90", + "Y# c #33428C", + "Z# c #5D6AAC", + "`# c #6371B2", + " $ c #6270B0", + ".$ c #6372B0", + "+$ c #37557D", + "@$ c #52739F", + "#$ c #5274A1", + "$$ c #5577A3", + "%$ c #577AA4", + "&$ c #587CA6", + "*$ c #597DA6", + "=$ c #5C7FA9", + "-$ c #5478A1", + ";$ c #21466F", + ">$ c #111F72", + ",$ c #2B377D", + "'$ c #34428F", + ")$ c #303F8D", + "!$ c #455293", + "~$ c #6572B3", + "{$ c #616FB0", + "]$ c #626FB0", + "^$ c #34537B", + "/$ c #4E709D", + "($ c #50719E", + "_$ c #50729F", + ":$ c #5174A0", + "<$ c #5375A1", + "[$ c #577AA5", + "}$ c #3F618C", + "|$ c #2F5786", + "1$ c #0C315B", + "2$ c #182678", + "3$ c #1C2872", + "4$ c #354087", + "5$ c #2C3A88", + "6$ c #36448A", + "7$ c #5562A4", + "8$ c #6370B1", + "9$ c #34527A", + "0$ c #4C6D9B", + "a$ c #4D6E9C", + "b$ c #51739F", + "c$ c #385A87", + "d$ c #254672", + "e$ c #1F2A6F", + "f$ c #2A367A", + "g$ c #334088", + "h$ c #33428D", + "i$ c #254673", + "j$ c #4F709E", + "k$ c #375886", + "l$ c #224473", + "m$ c #09155A", + "n$ c #2A3577", + "o$ c #1E275A", + "p$ c #244676", + "q$ c #1F4373", + " ", + " . + @ # ", + " $ % & * = - ; > ", + " , % ' ) ! ~ { ] ^ / ( _ : ", + " < [ } | 1 2 ! 3 4 5 = 6 7 8 9 0 a # ", + " b c d e e f g h 3 i 5 j k l m n o p q r s # ", + " # t 7 u v _ w w x & f y z A B C D E F G H I J K ", + " L M f i N O P Q R S T U V 6 W X Y Z ` I d _ - V . ", + " ..+.3 3 @.#.$.5 %.&.*.=.-.;.8 Z Y >.,.'.).!.~.5 Y {. ", + " % ].^./.(._.:.<.!.[.}.V |.# # 1.Q 2.} g h 3._.4.5.6. ", + " *.7.8.t 9.0.N ' a.b.c.d.e.f.'.g.h.U i.1 j.k.g l.m.n. ", + " [ o.o.p.p.7.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.k.I. ", + " J.t K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+%+ ", + " &+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+B.C.++1+ ", + " 2+3+4+5+6+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+A.o+ ", + " p+q+r+s+t+u+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+ ", + " O+P+Q+R+S+T+U+V+3+W+X+x+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@ ", + " ;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@ ", + " 9@0@a@b@c@d@'@'@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@ ", + " w@x@y@z@z@A@B@b@b@,@C@D@E@F@G@H@I@J@K@L@[@M@p@N@O@P@ ", + " Q@R@S@T@U@U@V@W@z@z@0@X@b@c@Y@Z@`@ #.#+#J@@###[@$#%# ", + " &#*#=#-#;#R@>#,#'#U@)#W@!#z@~#{#]#R.^#/#(#I@+#_#@#:# ", + " <#[#}#|#1#2#=#3#4#;#S@5#6#7#8#9#0#a#b#]#c#d#e#f#g#h# ", + " i#j#k#l#m#[#n#o#|#2#*#3#p#4#q#r#s#t#u#v#a#w#x#y#z#A# ", + " B#C#D#E#F#G#G#H#I#[#J#|#K#L#M#N#O#P#Q#R#0#S#{#T# ", + " U#V#W#X#Y#Z#`# $.$G#H#I#+$@$#$$$M#%$&$*$=$-$;$ ", + " >$,$'$)$!$~${$]$ $^$/$($_$:$<$[$}$|$1$ ", + " 2$3$4$5$6$7$8$9$0$a$a$b$c$d$ ", + " e$f$g$h$i$_$j$k$l$ ", + " m$n$o$p$q$ ", + " ", + " "}; + """ def tankWeight(obj, angles=Vector(0.0,0.0,0.0), cor=Vector(0.0,0.0,0.0)): - """ Compute tank fluid weight and their center of gravity. - @param obj Tank object. - @param angles Tank angles, Roll, Pitch and Yaw. - @param cor Center or rotation. - @return Weight and center of gravity. None if errors detected - """ - # Test if is a tank instance - props = obj.PropertiesList - try: - props.index("IsShipTank") - except ValueError: - return None - if not obj.IsShipTank: - return None - # Get object solids - Solids = obj.Shape.Solids - W = [0.0, 0.0, 0.0, 0.0] - for s in Solids: - # Get fluid volume - bbox = s.BoundBox - z0 = bbox.ZMin - z1 = bbox.ZMax - dz = obj.Level/100.0 * (z1-z0) - z = z0 + dz - dx = bbox.XMax-bbox.XMin - dy = bbox.YMax-bbox.YMin - box = Part.makeBox(3.0*(dx), 3.0*(dy), (z1-z0)+dz, Vector(bbox.XMin-dx, bbox.YMin-dy, bbox.ZMin-(z1-z0))) - fluid = s.common(box) - vol = fluid.Volume - W[0] = W[0] + vol*obj.Density - # Compute fluid solid in rotated position (non linear rotation - # are ussually computed as Roll -> Pitch -> Yaw). - s.rotate(cor, Vector(1.0,0.0,0.0), angles.x) - s.rotate(cor, Vector(0.0,1.0,0.0), angles.y) - s.rotate(cor, Vector(0.0,0.0,1.0), angles.z) - bbox = s.BoundBox - z0 = bbox.ZMin - z1 = bbox.ZMax - dx = bbox.XMax-bbox.XMin - dy = bbox.YMax-bbox.YMin - Error = 0.01*vol - z = 0.0 - v = 0.0 - while(abs(vol - v) > Error): - z = z + (vol - v) / (dx*dy) - dz = z - z0 - box = Part.makeBox(3.0*(dx), 3.0*(dy), (z1-z0)+dz, Vector(bbox.XMin-dx, bbox.YMin-dy, bbox.ZMin-(z1-z0))) - fluid = s.common(box) - v = fluid.Volume - if(abs(vol - v) / (dx*dy) <= 0.000001): - break - # Add fluid moments - for f in fluid.Solids: - cog = f.CenterOfMass - W[1] = W[1] + f.Volume*obj.Density*cog.x - W[2] = W[2] + f.Volume*obj.Density*cog.y - W[3] = W[3] + f.Volume*obj.Density*cog.z - return [W[0], W[1]/W[0], W[2]/W[0], W[3]/W[0]] + """ Compute tank fluid weight and their center of gravity. + @param obj Tank object. + @param angles Tank angles, Roll, Pitch and Yaw. + @param cor Center or rotation. + @return Weight and center of gravity. None if errors detected + """ + # Test if is a tank instance + props = obj.PropertiesList + try: + props.index("IsShipTank") + except ValueError: + return None + if not obj.IsShipTank: + return None + # Get object solids + Solids = obj.Shape.Solids + W = [0.0, 0.0, 0.0, 0.0] + for s in Solids: + # Get fluid volume + bbox = s.BoundBox + z0 = bbox.ZMin + z1 = bbox.ZMax + dz = obj.Level/100.0 * (z1-z0) + z = z0 + dz + dx = bbox.XMax-bbox.XMin + dy = bbox.YMax-bbox.YMin + box = Part.makeBox(3.0*(dx), 3.0*(dy), (z1-z0)+dz, Vector(bbox.XMin-dx, bbox.YMin-dy, bbox.ZMin-(z1-z0))) + fluid = s.common(box) + vol = fluid.Volume + W[0] = W[0] + vol*obj.Density + # Compute fluid solid in rotated position (non linear rotation + # are ussually computed as Roll -> Pitch -> Yaw). + s.rotate(cor, Vector(1.0,0.0,0.0), angles.x) + s.rotate(cor, Vector(0.0,1.0,0.0), angles.y) + s.rotate(cor, Vector(0.0,0.0,1.0), angles.z) + bbox = s.BoundBox + z0 = bbox.ZMin + z1 = bbox.ZMax + dx = bbox.XMax-bbox.XMin + dy = bbox.YMax-bbox.YMin + Error = 0.01*vol + z = 0.0 + v = 0.0 + while(abs(vol - v) > Error): + z = z + (vol - v) / (dx*dy) + dz = z - z0 + box = Part.makeBox(3.0*(dx), 3.0*(dy), (z1-z0)+dz, Vector(bbox.XMin-dx, bbox.YMin-dy, bbox.ZMin-(z1-z0))) + fluid = s.common(box) + v = fluid.Volume + if(abs(vol - v) / (dx*dy) <= 0.000001): + break + # Add fluid moments + for f in fluid.Solids: + cog = f.CenterOfMass + W[1] = W[1] + f.Volume*obj.Density*cog.x + W[2] = W[2] + f.Volume*obj.Density*cog.y + W[3] = W[3] + f.Volume*obj.Density*cog.z + return [W[0], W[1]/W[0], W[2]/W[0], W[3]/W[0]] diff --git a/src/Mod/Ship/makeResources.sh b/src/Mod/Ship/makeResources.sh new file mode 100755 index 0000000000..f1c67a8428 --- /dev/null +++ b/src/Mod/Ship/makeResources.sh @@ -0,0 +1,56 @@ +#!/bin/bash +## Create resources stuff for Ship module. + +# Perform trnaslations +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship.ts +lrelease resources/translations/Ship.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_af.ts +lrelease resources/translations/Ship_af.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_cs.ts +lrelease resources/translations/Ship_cs.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_de.ts +lrelease resources/translations/Ship_de.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_es-ES.ts +lrelease resources/translations/Ship_es-ES.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_fi.ts +lrelease resources/translations/Ship_fi.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_fr.ts +lrelease resources/translations/Ship_fr.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_hr.ts +lrelease resources/translations/Ship_hr.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_hu.ts +lrelease resources/translations/Ship_hu.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_it.ts +lrelease resources/translations/Ship_it.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_ja.ts +lrelease resources/translations/Ship_ja.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_nl.ts +lrelease resources/translations/Ship_nl.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_no.ts +lrelease resources/translations/Ship_no.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_pl.ts +lrelease resources/translations/Ship_pl.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_pt-BR.ts +lrelease resources/translations/Ship_pt-BR.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_ro.ts +lrelease resources/translations/Ship_ro.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_ru.ts +lrelease resources/translations/Ship_ru.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_sk.ts +lrelease resources/translations/Ship_sk.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_sv-SE.ts +lrelease resources/translations/Ship_sv-SE.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_tr.ts +lrelease resources/translations/Ship_tr.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_uk.ts +lrelease resources/translations/Ship_uk.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_zh-CN.ts +lrelease resources/translations/Ship_zh-CN.ts +pylupdate4 -verbose `find ./ -name "*.py"` -ts resources/translations/Ship_zh-TW.ts +lrelease resources/translations/Ship_zh-TW.ts + +# Create resources +rm -f Ship_rc.py +cd resources +pyrcc4 Ship.qrc -o ../Ship_rc.py +cd .. diff --git a/src/Mod/Ship/resources/Ship.qrc b/src/Mod/Ship/resources/Ship.qrc new file mode 100644 index 0000000000..e5a2525c3f --- /dev/null +++ b/src/Mod/Ship/resources/Ship.qrc @@ -0,0 +1,38 @@ + + + icons/AreaCurveIco.png + icons/HydrostaticsIco.png + icons/Ico.png + icons/LoadIco.png + icons/OutlineDrawIco.png + icons/SimCreateIco.png + icons/SimPostIco.png + icons/SimRunIco.png + icons/SimStopIco.png + icons/Tank.png + icons/Weight.png + translations/Ship.qm + translations/Ship_af.qm + translations/Ship_cs.qm + translations/Ship_de.qm + translations/Ship_es-ES.qm + translations/Ship_fi.qm + translations/Ship_fr.qm + translations/Ship_hr.qm + translations/Ship_hu.qm + translations/Ship_it.qm + translations/Ship_ja.qm + translations/Ship_nl.qm + translations/Ship_no.qm + translations/Ship_pl.qm + translations/Ship_pt-BR.qm + translations/Ship_ro.qm + translations/Ship_ru.qm + translations/Ship_sk.qm + translations/Ship_sv-SE.qm + translations/Ship_tr.qm + translations/Ship_uk.qm + translations/Ship_zh-CN.qm + translations/Ship_zh-TW.qm + + diff --git a/src/Mod/Ship/Examples/s60.fcstd b/src/Mod/Ship/resources/examples/s60.fcstd similarity index 100% rename from src/Mod/Ship/Examples/s60.fcstd rename to src/Mod/Ship/resources/examples/s60.fcstd diff --git a/src/Mod/Ship/Examples/s60_katamaran.fcstd b/src/Mod/Ship/resources/examples/s60_katamaran.fcstd similarity index 100% rename from src/Mod/Ship/Examples/s60_katamaran.fcstd rename to src/Mod/Ship/resources/examples/s60_katamaran.fcstd diff --git a/src/Mod/Ship/Examples/wigley.fcstd b/src/Mod/Ship/resources/examples/wigley.fcstd similarity index 100% rename from src/Mod/Ship/Examples/wigley.fcstd rename to src/Mod/Ship/resources/examples/wigley.fcstd diff --git a/src/Mod/Ship/Examples/wigley_katamaran.fcstd b/src/Mod/Ship/resources/examples/wigley_katamaran.fcstd similarity index 100% rename from src/Mod/Ship/Examples/wigley_katamaran.fcstd rename to src/Mod/Ship/resources/examples/wigley_katamaran.fcstd diff --git a/src/Mod/Ship/Icons/AreaCurveIco.png b/src/Mod/Ship/resources/icons/AreaCurveIco.png similarity index 100% rename from src/Mod/Ship/Icons/AreaCurveIco.png rename to src/Mod/Ship/resources/icons/AreaCurveIco.png diff --git a/src/Mod/Ship/Icons/AreaCurveIco.xcf b/src/Mod/Ship/resources/icons/AreaCurveIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/AreaCurveIco.xcf rename to src/Mod/Ship/resources/icons/AreaCurveIco.xcf diff --git a/src/Mod/Ship/Icons/AreaCurveIco.xpm b/src/Mod/Ship/resources/icons/AreaCurveIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/AreaCurveIco.xpm rename to src/Mod/Ship/resources/icons/AreaCurveIco.xpm diff --git a/src/Mod/Ship/Icons/HydrostaticsIco.png b/src/Mod/Ship/resources/icons/HydrostaticsIco.png similarity index 100% rename from src/Mod/Ship/Icons/HydrostaticsIco.png rename to src/Mod/Ship/resources/icons/HydrostaticsIco.png diff --git a/src/Mod/Ship/Icons/HydrostaticsIco.xcf b/src/Mod/Ship/resources/icons/HydrostaticsIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/HydrostaticsIco.xcf rename to src/Mod/Ship/resources/icons/HydrostaticsIco.xcf diff --git a/src/Mod/Ship/Icons/HydrostaticsIco.xpm b/src/Mod/Ship/resources/icons/HydrostaticsIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/HydrostaticsIco.xpm rename to src/Mod/Ship/resources/icons/HydrostaticsIco.xpm diff --git a/src/Mod/Ship/Icons/Ico.png b/src/Mod/Ship/resources/icons/Ico.png similarity index 100% rename from src/Mod/Ship/Icons/Ico.png rename to src/Mod/Ship/resources/icons/Ico.png diff --git a/src/Mod/Ship/Icons/Ico.xcf b/src/Mod/Ship/resources/icons/Ico.xcf similarity index 100% rename from src/Mod/Ship/Icons/Ico.xcf rename to src/Mod/Ship/resources/icons/Ico.xcf diff --git a/src/Mod/Ship/Icons/Ico.xpm b/src/Mod/Ship/resources/icons/Ico.xpm similarity index 100% rename from src/Mod/Ship/Icons/Ico.xpm rename to src/Mod/Ship/resources/icons/Ico.xpm diff --git a/src/Mod/Ship/Icons/LoadIco.png b/src/Mod/Ship/resources/icons/LoadIco.png similarity index 100% rename from src/Mod/Ship/Icons/LoadIco.png rename to src/Mod/Ship/resources/icons/LoadIco.png diff --git a/src/Mod/Ship/Icons/LoadIco.xcf b/src/Mod/Ship/resources/icons/LoadIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/LoadIco.xcf rename to src/Mod/Ship/resources/icons/LoadIco.xcf diff --git a/src/Mod/Ship/Icons/LoadIco.xpm b/src/Mod/Ship/resources/icons/LoadIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/LoadIco.xpm rename to src/Mod/Ship/resources/icons/LoadIco.xpm diff --git a/src/Mod/Ship/Icons/OutlineDrawIco.png b/src/Mod/Ship/resources/icons/OutlineDrawIco.png similarity index 100% rename from src/Mod/Ship/Icons/OutlineDrawIco.png rename to src/Mod/Ship/resources/icons/OutlineDrawIco.png diff --git a/src/Mod/Ship/Icons/OutlineDrawIco.xcf b/src/Mod/Ship/resources/icons/OutlineDrawIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/OutlineDrawIco.xcf rename to src/Mod/Ship/resources/icons/OutlineDrawIco.xcf diff --git a/src/Mod/Ship/Icons/OutlineDrawIco.xpm b/src/Mod/Ship/resources/icons/OutlineDrawIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/OutlineDrawIco.xpm rename to src/Mod/Ship/resources/icons/OutlineDrawIco.xpm diff --git a/src/Mod/Ship/Icons/Ship.xcf b/src/Mod/Ship/resources/icons/Ship.xcf similarity index 100% rename from src/Mod/Ship/Icons/Ship.xcf rename to src/Mod/Ship/resources/icons/Ship.xcf diff --git a/src/Mod/Ship/Icons/Ship.xpm b/src/Mod/Ship/resources/icons/Ship.xpm similarity index 100% rename from src/Mod/Ship/Icons/Ship.xpm rename to src/Mod/Ship/resources/icons/Ship.xpm diff --git a/src/Mod/Ship/Icons/Sim.xpm b/src/Mod/Ship/resources/icons/Sim.xpm similarity index 100% rename from src/Mod/Ship/Icons/Sim.xpm rename to src/Mod/Ship/resources/icons/Sim.xpm diff --git a/src/Mod/Ship/Icons/SimCreateIco.png b/src/Mod/Ship/resources/icons/SimCreateIco.png similarity index 100% rename from src/Mod/Ship/Icons/SimCreateIco.png rename to src/Mod/Ship/resources/icons/SimCreateIco.png diff --git a/src/Mod/Ship/Icons/SimCreateIco.xcf b/src/Mod/Ship/resources/icons/SimCreateIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/SimCreateIco.xcf rename to src/Mod/Ship/resources/icons/SimCreateIco.xcf diff --git a/src/Mod/Ship/Icons/SimCreateIco.xpm b/src/Mod/Ship/resources/icons/SimCreateIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/SimCreateIco.xpm rename to src/Mod/Ship/resources/icons/SimCreateIco.xpm diff --git a/src/Mod/Ship/Icons/SimIco.xcf b/src/Mod/Ship/resources/icons/SimIco.xcf similarity index 100% rename from src/Mod/Ship/Icons/SimIco.xcf rename to src/Mod/Ship/resources/icons/SimIco.xcf diff --git a/src/Mod/Ship/Icons/SimPostIco.png b/src/Mod/Ship/resources/icons/SimPostIco.png similarity index 100% rename from src/Mod/Ship/Icons/SimPostIco.png rename to src/Mod/Ship/resources/icons/SimPostIco.png diff --git a/src/Mod/Ship/Icons/SimPostIco.xpm b/src/Mod/Ship/resources/icons/SimPostIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/SimPostIco.xpm rename to src/Mod/Ship/resources/icons/SimPostIco.xpm diff --git a/src/Mod/Ship/Icons/SimRunIco.png b/src/Mod/Ship/resources/icons/SimRunIco.png similarity index 100% rename from src/Mod/Ship/Icons/SimRunIco.png rename to src/Mod/Ship/resources/icons/SimRunIco.png diff --git a/src/Mod/Ship/Icons/SimRunIco.xpm b/src/Mod/Ship/resources/icons/SimRunIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/SimRunIco.xpm rename to src/Mod/Ship/resources/icons/SimRunIco.xpm diff --git a/src/Mod/Ship/Icons/SimStopIco.png b/src/Mod/Ship/resources/icons/SimStopIco.png similarity index 100% rename from src/Mod/Ship/Icons/SimStopIco.png rename to src/Mod/Ship/resources/icons/SimStopIco.png diff --git a/src/Mod/Ship/Icons/SimStopIco.xpm b/src/Mod/Ship/resources/icons/SimStopIco.xpm similarity index 100% rename from src/Mod/Ship/Icons/SimStopIco.xpm rename to src/Mod/Ship/resources/icons/SimStopIco.xpm diff --git a/src/Mod/Ship/Icons/Tank.png b/src/Mod/Ship/resources/icons/Tank.png similarity index 100% rename from src/Mod/Ship/Icons/Tank.png rename to src/Mod/Ship/resources/icons/Tank.png diff --git a/src/Mod/Ship/Icons/Tank.xcf b/src/Mod/Ship/resources/icons/Tank.xcf similarity index 100% rename from src/Mod/Ship/Icons/Tank.xcf rename to src/Mod/Ship/resources/icons/Tank.xcf diff --git a/src/Mod/Ship/Icons/Tank.xpm b/src/Mod/Ship/resources/icons/Tank.xpm similarity index 100% rename from src/Mod/Ship/Icons/Tank.xpm rename to src/Mod/Ship/resources/icons/Tank.xpm diff --git a/src/Mod/Ship/Icons/Weight.png b/src/Mod/Ship/resources/icons/Weight.png similarity index 100% rename from src/Mod/Ship/Icons/Weight.png rename to src/Mod/Ship/resources/icons/Weight.png diff --git a/src/Mod/Ship/Icons/Weight.xcf b/src/Mod/Ship/resources/icons/Weight.xcf similarity index 100% rename from src/Mod/Ship/Icons/Weight.xcf rename to src/Mod/Ship/resources/icons/Weight.xcf diff --git a/src/Mod/Ship/Icons/Weight.xpm b/src/Mod/Ship/resources/icons/Weight.xpm similarity index 100% rename from src/Mod/Ship/Icons/Weight.xpm rename to src/Mod/Ship/resources/icons/Weight.xpm diff --git a/src/Mod/Ship/resources/translations/Ship.qm b/src/Mod/Ship/resources/translations/Ship.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship.ts b/src/Mod/Ship/resources/translations/Ship.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_af.qm b/src/Mod/Ship/resources/translations/Ship_af.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_af.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_af.ts b/src/Mod/Ship/resources/translations/Ship_af.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_af.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_cs.qm b/src/Mod/Ship/resources/translations/Ship_cs.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_cs.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_cs.ts b/src/Mod/Ship/resources/translations/Ship_cs.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_cs.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_de.qm b/src/Mod/Ship/resources/translations/Ship_de.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_de.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_de.ts b/src/Mod/Ship/resources/translations/Ship_de.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_de.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_es-ES.qm b/src/Mod/Ship/resources/translations/Ship_es-ES.qm new file mode 100644 index 0000000000000000000000000000000000000000..a72de36ef96dcd2ba715300d9867c6369acb4807 GIT binary patch literal 20755 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 literal 0 HcmV?d00001 diff --git a/src/Mod/Ship/resources/translations/Ship_es-ES.ts b/src/Mod/Ship/resources/translations/Ship_es-ES.ts new file mode 100644 index 0000000000..26f2a40702 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_es-ES.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + True si se trata de una entidad tanque de buque valida + + + + Fluid filling level percentage + Porcentage de llenado + + + + Inside fluid density + Densidad del fluido del interior + + + + True if is a valid ship simulation instance + True si se trata de una entidad simulacion de buques válida + + + + Waves (Amplitude,period,phase) + Olas (amplitud,periodo,phase) + + + + Waves direction (0 deg to stern waves) + Direccion de las olas (0 grados para olas de popa) + + + + Free surface number of elements at x direction + Numero de elementos en la dirección x en la superficie libre + + + + Free surface number of elements at y direction + Numero de elementos en la dirección y en la superficie libre + + + + Free surface elements position + Posiciones de los elementos de la superficie libre + + + + Free surface elements area + Area de los elementos de la superficie libre + + + + Free surface elements normal + Normales de los elementos de la superficie libre + + + + Ship + Buque + + + + Ship module provides some of the commonly used tool to design ship forms + El módulo de diseño de buques provee algunas de las herramientas más comunes + + + + Ship design + Buques + + + + Weights + Pesos + + + + Simulation + Simulación + + + + True if is a valid ship instance + True si se trata de una entidad buque valida + + + + Ship Weights names + Nombres de los pesos del buque + + + + Lightweight + Peso en rosca + + + + Ship Weights masses + Masas de los pesos del buque + + + + Ship Weights centers of gravity + Centros de gravedad de los pesos del buque + + + + Ship_AreasCurve + + + Areas curve + Curva de áreas + + + + Plot transversal areas curve + Grafica la curva de áreas + + + + Ship_CreateShip + + + Create a new ship + Crear nuevo barco + + + + Create a new ship in order to work with them + Crea un nuevo barco para poder trabajar con él + + + + Ship_CreateSim + + + Create a new simulation + Crear nueva simulación + + + + Create a new simulation in order to process later + Crea una nueva simulación para procesarla más tarde + + + + Ship_CreateTank + + + Create a new tank + Crear nuevo tanque + + + + Create a new ship tank + Crea un nuevo tanque + + + + Ship_GZ + + + GZ curve + Curva de GZ + + + + Transversal stability GZ curve computation + Calcula la curva de brazos adrizantes GZ (estabilidad transversal) + + + + Ship_Hydrostatics + + + Hydrostatics + Hidrostáticas + + + + Plot ship hydrostatics + Grafica las curvas de hidrostáticas + + + + Ship_LoadExample + + + Load an example ship geometry + Cargar formas de buque de ejemplo + + + + Load an example ship geometry able to be converted into a ship. + Carga formas de ejemplo de buques que pueden ser directamente convertidas en buques + + + + Ship_OutlineDraw + + + Outline draw + Plano de formas + + + + Plot ship outline draw + Traza el plano de formas de buque + + + + Ship_RunSim + + + Run a simulation + Lanzar simulación + + + + Ship_StopSim + + + Stop active simulation + Deterner la simulación activa + + + + Ship_TrackSim + + + Track simulation + Seguimiento de la simulación + + + + Ship_Weights + + + Set ship weights + Establecer los pesos del buque + + + + Set ship weights, tanks must be added later + Establezca los pesos del buque. Los tanque se añadirán más tarde + + + + ship_areas + + + Plot transversal areas curve + Graficar la curva de áreas + + + + Draft + Calado + + + + Trim + Trimado + + + + Displacement + Desplazamiento + + + + Areas curve tool draft selected [m] + Calado seleccionado en la herramienta de curva de areas + + + + Areas curve tool trim selected + Trimado seleccionado en la herramienta de curva de areas + + + + ship_console + + + Plot module is disabled, can't perform plot + El módulo de graficado está desactivado, no se podran trazar los graficos + + + + Can't create folder + No se puede crear la carpeta + + + + Can't write to file + No se puede esbribir el archivo + + + + Data saved + Datos guardados + + + + Ship instance must be selected (no object selected) + Una entidad de buque debe ser seleccionada (Ningun objeto seleccionado) + + + + More than one ship selected (extra ships will be neglected) + Mas de un buque ha sido seleccionado (solo se considerara el primero de ellos) + + + + Ship instance must be selected (no valid ship found at selected objects) + Una entidad de buque debe ser seleccionada (Ningun objeto seleccionado) + + + + Ussually you don't want to modify manually this option + Normalmente usted no deseara modificar esta opcion manualmente + + + + Object is not a valid ship simulation + El objeto no es una simulacion de buques valida + + + + Object is not a ship simulation + El objeto no es una simulacion de buques + + + + Can't find any active simulation + No se encuentra ninguna simulacion activa + + + + Ship objects can only be created on top of hull geometry (any object selected) + Los buques solo se puede crear a partir de la geometria del casco (Ningun objeto seleccionado) + + + + Please create or load a ship hull geometry before using this tool + Por favor, cree o cargue una geometria para el casco antes de usar esta herramienta + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + Los buques solo se puede crear a partir de la geometria del casco (No existen solidos en los objetos seleccionados) + + + + Plot module is disabled, tools can't graph output curves + El modulo de graficado esta desactivado, no se podran trazar los graficos + + + + pyOpenCL not installed, simulations stuff will disabled therefore + pyOpenCL no se encuentra instalado, las herramientas para simular seran desactivadas + + + + numpy not installed, simulations stuff will disabled therefore + numpy no se encuentra instalado, las herramientas para simular seran desactivadas + + + + Can't detect external faces from ship object + No se pueden extraer las caras exteriores del buque + + + + Computing hydrostatics + Calculando hidrostaticas + + + + Computing external faces + Calculando caras externas + + + + Initializating + Iniciando + + + + Iterating + Iterando + + + + Generating linear system matrix + Generando matriz del sistema linear de ecuaciones + + + + Solving linear systems + Resolviendo sistema linear de ecuaciones + + + + Time integrating + Integrando en el tiempo + + + + Building data + Construyendo datos + + + + Launching simulation + Lanzando simulacion + + + + Done + Hecho + + + + Ship simulation instance must be selected (no object selected) + Una entidad de simulacion debe ser seleccionada (Ningun objeto seleccionado) + + + + More than one ship simulation selected (extra simulations will be neglected) + Mas de una simulacion ha sido seleccionada (solo se considerara la primera de ellas) + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + Una entidad de simulacion debe ser seleccionada (No existe una simulacion valida en los objetos seleccionados) + + + + Can't find OpenCL devices + No se puede encontrar ningun dispositivo OpenCL + + + + Simulation already stopped + La simulacion ya se encuentra detenida + + + + Any active simulation to stop + No se encuentra ninguna simulacion activa + + + + Simulation will stop at the end of actual iteration + La simulacion se detendra al final de la actual iteracion + + + + Computing GZ + Calculando curva de GZ + + + + Ship weights has not been set. You need to set weights before use this tool + Los pesos del buque no has sido establecidos. Necesita establecerlos antes de usar esta herramienta + + + + Performing plot + Graficando + + + + Computing sections + Calculando secciones + + + + Any valid ship section found + No se encontro ninguna seccion valida + + + + Tank has not been created + El tanque no ha sido creado + + + + Tank objects can only be created on top of structure geometry (no object selected) + Las entidades tanque solo se pueden crear a partir de la geometria de la estructura (Ningun objeto seleccionado) + + + + Please create a tank geometry before using this tool + Por favor, cree la geometria del tanque antes de usar esta herramienta + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + Las entidades tanque solo se pueden crear a partir de la geometria de la estructura (No existen solidos en los objetos seleccionados) + + + + ship_create + + + Base line + Linea base + + + + Free surface + Superficie libre + + + + Forward perpendicular + Perpendicular de proa + + + + After perpendicular + Perpendicular de popa + + + + Main frame + Cuaderna maestra + + + + Create a new ship + Crear nuevo barco + + + + Length + Eslora + + + + Breadth + Manga + + + + Draft + Calado + + + + ship_hydrostatic + + + Plot hydrostatics + Graficar hidorstaticas + + + + Trim + Trimado + + + + Minimum draft + Calado mínimo + + + + Maximum draft + Calado máximo + + + + Number of points + Número de puntos + + + + Hydrostatics tool trim selected + Trimado seleccionado en la herramienta de hidrostaticas + + + + Hydrostatics tool minimum draft selected [m] + Calado minimo seleccionado en la herramienta de hidrostaticas + + + + Hydrostatics tool maximum draft selected [m] + Calado maximo seleccionado en la herramienta de hidrostaticas + + + + Hydrostatics tool number of points selected + Numero de puntos seleccionado en la herramienta de hidrostaticas + + + + ship_load + + + Load example ship + Cargar buque de ejemplo + + + + Select ship example geometry + Elija la geometria del buque de ejemplo + + + + ship_outline + + + Outline draw + Plano de formas + + + + Auto create + Auto-generar + + + + Scale + Escala + + + + Delete all sections + Eliminar todas las secciones + + + + Create sections + Generar secciones + + + + Transversal + Transversal + + + + Longitudinal + Longitudinal + + + + Water lines + Lineas de agua + + + + Transversal sections position [m] + Posiciones de las secciones transversales [m] + + + + Longitudinal sections position [m] + Posiciones de las secciones longitudinales [m] + + + + Water lines position [m] + Posiciones de las lineas de agua [m] + + + + Plot scale (1:scale format) + Escala del grafico (formato 1:escala) + + + + shipsim_create + + + Create a new ship simulation + Crear nueva simulacion de buques + + + + Free surface + Superficie libre + + + + Length + Largo + + + + Breadth + Ancho + + + + Number of points + Número de puntos + + + + Waves + Olas + + + + Amplitude + Amplitud + + + + Period + Periodo + + + + Phase + Fase + + + + Heading + Dirección + + + + shipsim_stop + + + Run the simulation + Lanza la simulación + + + + Simulation time + Tiempo de simulación + + + + Output + Salida + + + + OpenCL device + Dispositivo OpenCL + + + + shipsim_track + + + Track simulation + Seguimiento de la simulación + + + + Now + Ahora + + + + shiptank_create + + + Create a new tank + Crear nuevo tanque + + + + Filling level + Nivel de llenado + + + + Fluid density + Densidad del fluido + + + + shiptank_gz + + + Draft + Calado + + + + GZ curve computation + Cálculo de la curva de GZ + + + + Loading condition + Condición de carga + + + + Roll angles + Ãngulos de escora + + + + Trim + Trimado + + + + Start + Inicial + + + + End + Final + + + + Number of points + Número de puntos + + + + Displacement + Desplazamiento + + + + Press update to compute + Presiona actualizar para calcularlo + + + + Update displacement and draft + Actualizar desplazamiento y calado + + + + shiptank_weights + + + Set weights + Establecer pesos + + + + Name + Nombre + + + + Mass + Masa + + + diff --git a/src/Mod/Ship/resources/translations/Ship_fi.qm b/src/Mod/Ship/resources/translations/Ship_fi.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_fi.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_fi.ts b/src/Mod/Ship/resources/translations/Ship_fi.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_fi.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_fr.qm b/src/Mod/Ship/resources/translations/Ship_fr.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_fr.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_fr.ts b/src/Mod/Ship/resources/translations/Ship_fr.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_fr.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_hr.qm b/src/Mod/Ship/resources/translations/Ship_hr.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_hr.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_hr.ts b/src/Mod/Ship/resources/translations/Ship_hr.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_hr.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_hu.qm b/src/Mod/Ship/resources/translations/Ship_hu.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_hu.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_hu.ts b/src/Mod/Ship/resources/translations/Ship_hu.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_hu.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_it.qm b/src/Mod/Ship/resources/translations/Ship_it.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_it.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_it.ts b/src/Mod/Ship/resources/translations/Ship_it.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_it.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_ja.qm b/src/Mod/Ship/resources/translations/Ship_ja.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ja.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_ja.ts b/src/Mod/Ship/resources/translations/Ship_ja.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ja.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_nl.qm b/src/Mod/Ship/resources/translations/Ship_nl.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_nl.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_nl.ts b/src/Mod/Ship/resources/translations/Ship_nl.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_nl.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_no.qm b/src/Mod/Ship/resources/translations/Ship_no.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_no.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_no.ts b/src/Mod/Ship/resources/translations/Ship_no.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_no.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_pl.qm b/src/Mod/Ship/resources/translations/Ship_pl.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_pl.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_pl.ts b/src/Mod/Ship/resources/translations/Ship_pl.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_pl.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_pt-BR.qm b/src/Mod/Ship/resources/translations/Ship_pt-BR.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_pt-BR.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_pt-BR.ts b/src/Mod/Ship/resources/translations/Ship_pt-BR.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_pt-BR.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_ro.qm b/src/Mod/Ship/resources/translations/Ship_ro.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ro.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_ro.ts b/src/Mod/Ship/resources/translations/Ship_ro.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ro.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_ru.qm b/src/Mod/Ship/resources/translations/Ship_ru.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ru.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_ru.ts b/src/Mod/Ship/resources/translations/Ship_ru.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_ru.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_sk.qm b/src/Mod/Ship/resources/translations/Ship_sk.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_sk.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_sk.ts b/src/Mod/Ship/resources/translations/Ship_sk.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_sk.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_sv-SE.qm b/src/Mod/Ship/resources/translations/Ship_sv-SE.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_sv-SE.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_sv-SE.ts b/src/Mod/Ship/resources/translations/Ship_sv-SE.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_sv-SE.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_tr.qm b/src/Mod/Ship/resources/translations/Ship_tr.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_tr.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_tr.ts b/src/Mod/Ship/resources/translations/Ship_tr.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_tr.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_uk.qm b/src/Mod/Ship/resources/translations/Ship_uk.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_uk.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_uk.ts b/src/Mod/Ship/resources/translations/Ship_uk.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_uk.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_zh-CN.qm b/src/Mod/Ship/resources/translations/Ship_zh-CN.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_zh-CN.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_zh-CN.ts b/src/Mod/Ship/resources/translations/Ship_zh-CN.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_zh-CN.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/resources/translations/Ship_zh-TW.qm b/src/Mod/Ship/resources/translations/Ship_zh-TW.qm new file mode 100644 index 0000000000..be651eede2 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_zh-TW.qm @@ -0,0 +1 @@ +<¸dÊÍ!¿`¡½Ý \ No newline at end of file diff --git a/src/Mod/Ship/resources/translations/Ship_zh-TW.ts b/src/Mod/Ship/resources/translations/Ship_zh-TW.ts new file mode 100644 index 0000000000..ed2d718ae1 --- /dev/null +++ b/src/Mod/Ship/resources/translations/Ship_zh-TW.ts @@ -0,0 +1,863 @@ + + + + Ship + + + True if is a valid ship tank instance + + + + + Fluid filling level percentage + + + + + Inside fluid density + + + + + True if is a valid ship simulation instance + + + + + Waves (Amplitude,period,phase) + + + + + Waves direction (0 deg to stern waves) + + + + + Free surface number of elements at x direction + + + + + Free surface number of elements at y direction + + + + + Free surface elements position + + + + + Free surface elements area + + + + + Free surface elements normal + + + + + Ship + + + + + Ship module provides some of the commonly used tool to design ship forms + + + + + Ship design + + + + + Weights + + + + + Simulation + + + + + True if is a valid ship instance + + + + + Ship Weights names + + + + + Lightweight + + + + + Ship Weights masses + + + + + Ship Weights centers of gravity + + + + + Ship_AreasCurve + + + Areas curve + + + + + Plot transversal areas curve + + + + + Ship_CreateShip + + + Create a new ship + + + + + Create a new ship in order to work with them + + + + + Ship_CreateSim + + + Create a new simulation + + + + + Create a new simulation in order to process later + + + + + Ship_CreateTank + + + Create a new tank + + + + + Create a new ship tank + + + + + Ship_GZ + + + GZ curve + + + + + Transversal stability GZ curve computation + + + + + Ship_Hydrostatics + + + Hydrostatics + + + + + Plot ship hydrostatics + + + + + Ship_LoadExample + + + Load an example ship geometry + + + + + Load an example ship geometry able to be converted into a ship. + + + + + Ship_OutlineDraw + + + Outline draw + + + + + Plot ship outline draw + + + + + Ship_RunSim + + + Run a simulation + + + + + Ship_StopSim + + + Stop active simulation + + + + + Ship_TrackSim + + + Track simulation + + + + + Ship_Weights + + + Set ship weights + + + + + Set ship weights, tanks must be added later + + + + + ship_areas + + + Plot transversal areas curve + + + + + Draft + + + + + Trim + + + + + Displacement + + + + + Areas curve tool draft selected [m] + + + + + Areas curve tool trim selected + + + + + ship_console + + + Plot module is disabled, can't perform plot + + + + + Can't create folder + + + + + Can't write to file + + + + + Data saved + + + + + Ship instance must be selected (no object selected) + + + + + More than one ship selected (extra ships will be neglected) + + + + + Ship instance must be selected (no valid ship found at selected objects) + + + + + Ussually you don't want to modify manually this option + + + + + Object is not a valid ship simulation + + + + + Object is not a ship simulation + + + + + Can't find any active simulation + + + + + Ship objects can only be created on top of hull geometry (any object selected) + + + + + Please create or load a ship hull geometry before using this tool + + + + + Ship objects can only be created on top of hull geometry (no solid found at selected objects) + + + + + Plot module is disabled, tools can't graph output curves + + + + + pyOpenCL not installed, simulations stuff will disabled therefore + + + + + numpy not installed, simulations stuff will disabled therefore + + + + + Can't detect external faces from ship object + + + + + Computing hydrostatics + + + + + Computing external faces + + + + + Initializating + + + + + Iterating + + + + + Generating linear system matrix + + + + + Solving linear systems + + + + + Time integrating + + + + + Building data + + + + + Launching simulation + + + + + Done + + + + + Ship simulation instance must be selected (no object selected) + + + + + More than one ship simulation selected (extra simulations will be neglected) + + + + + Ship simulation instance must be selected (no valid simulation found at selected objects) + + + + + Can't find OpenCL devices + + + + + Simulation already stopped + + + + + Any active simulation to stop + + + + + Simulation will stop at the end of actual iteration + + + + + Computing GZ + + + + + Ship weights has not been set. You need to set weights before use this tool + + + + + Performing plot + + + + + Computing sections + + + + + Any valid ship section found + + + + + Tank has not been created + + + + + Tank objects can only be created on top of structure geometry (no object selected) + + + + + Please create a tank geometry before using this tool + + + + + Tank objects can only be created on top of structure geometry (no solids can't be computed) + + + + + ship_create + + + Base line + + + + + Free surface + + + + + Forward perpendicular + + + + + After perpendicular + + + + + Main frame + + + + + Create a new ship + + + + + Length + + + + + Breadth + + + + + Draft + + + + + ship_hydrostatic + + + Plot hydrostatics + + + + + Trim + + + + + Minimum draft + + + + + Maximum draft + + + + + Number of points + + + + + Hydrostatics tool trim selected + + + + + Hydrostatics tool minimum draft selected [m] + + + + + Hydrostatics tool maximum draft selected [m] + + + + + Hydrostatics tool number of points selected + + + + + ship_load + + + Load example ship + + + + + Select ship example geometry + + + + + ship_outline + + + Outline draw + + + + + Auto create + + + + + Scale + + + + + Delete all sections + + + + + Create sections + + + + + Transversal + + + + + Longitudinal + + + + + Water lines + + + + + Transversal sections position [m] + + + + + Longitudinal sections position [m] + + + + + Water lines position [m] + + + + + Plot scale (1:scale format) + + + + + shipsim_create + + + Create a new ship simulation + + + + + Free surface + + + + + Length + + + + + Breadth + + + + + Number of points + + + + + Waves + + + + + Amplitude + + + + + Period + + + + + Phase + + + + + Heading + + + + + shipsim_stop + + + Run the simulation + + + + + Simulation time + + + + + Output + + + + + OpenCL device + + + + + shipsim_track + + + Track simulation + + + + + Now + + + + + shiptank_create + + + Create a new tank + + + + + Filling level + + + + + Fluid density + + + + + shiptank_gz + + + Draft + + + + + GZ curve computation + + + + + Loading condition + + + + + Roll angles + + + + + Trim + + + + + Start + + + + + End + + + + + Number of points + + + + + Displacement + + + + + Press update to compute + + + + + Update displacement and draft + + + + + shiptank_weights + + + Set weights + + + + + Name + + + + + Mass + + + + diff --git a/src/Mod/Ship/shipAreasCurve/Plot.py b/src/Mod/Ship/shipAreasCurve/Plot.py deleted file mode 100644 index 4c2bc46e57..0000000000 --- a/src/Mod/Ship/shipAreasCurve/Plot.py +++ /dev/null @@ -1,211 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import os -# FreeCAD modules -import FreeCAD,FreeCADGui -from FreeCAD import Base -import Image, ImageGui -# FreeCADShip modules -from shipUtils import Paths, Translator - -header = """ ################################################################# - - ##### #### ### #### ##### # # ### #### - # # # # # # # # # # # # - # ## #### #### # # # # # # # # # # # - #### # # # # # # # ##### # # ## ## ##### # #### - # # #### #### # # # # # # # # # # - # # # # # # # # # # # # # # - # # #### #### ### # # #### ##### # # ### # - - ################################################################# -""" - -class Plot(object): - def __init__(self, x, y, disp, xcb, ship): - """ Constructor. performs plot and show it (Using pyxplot). - @param x X coordinates. - @param y Transversal areas. - @param disp Ship displacement. - @param xcb Bouyancy center length. - @param ship Active ship instance. - """ - if self.createDirectory(): - return - if self.saveData(x,y,ship): - return - if self.saveLayout(x,y,disp,xcb,ship): - return - if self.execute(): - return - ImageGui.open(self.path + 'areas.png') - - def createDirectory(self): - """ Create needed folder to write data and scripts. - @return True if error happens. - """ - self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" - if not os.path.exists(self.path): - os.makedirs(self.path) - if not os.path.exists(self.path): - msg = Translator.translate("Can't create '" + self.path + "' folder.\n") - FreeCAD.Console.PrintError(msg) - return False - - def saveData(self,x,y,ship): - """ Write data file. - @param x X coordinates. - @param y Transversal areas. - @param ship Active ship instance. - @return True if error happens. - """ - # Open the file - filename = self.path + 'areas.dat' - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Print header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains transversal areas data, filled with following columns:\n") - Output.write(" # 1: X coordiante [m]\n") - Output.write(" # 2: Transversal area [m2]\n") - Output.write(" # 3: X FP coordinate [m]\n") - Output.write(" # 4: Y FP coordinate (bounds in order to draw it)\n") - Output.write(" # 3: X AP coordinate [m]\n") - Output.write(" # 4: Y AP coordinate (bounds in order to draw it)\n") - Output.write(" #\n") - Output.write(" #################################################################\n") - # Get perpendiculars data - Lpp = ship.Length - FPx = 0.5*Lpp - APx = -0.5*Lpp - maxArea = max(y) - # Print data - if len(x) < 2: - msg = Translator.translate("Not enough data to plot.\n") - FreeCAD.Console.PrintError(msg) - string = "%f %f %f %f %f %f\n" % (x[0], y[0], FPx, 0.0, APx, 0.0) - Output.write(string) - for i in range(1, len(x)): - string = "%f %f %f %f %f %f\n" % (x[i], y[i], FPx, maxArea, APx, maxArea) - Output.write(string) - # Close file - Output.close() - self.dataFile = filename - msg = Translator.translate("Data saved at '" + self.dataFile + "'.\n") - FreeCAD.Console.PrintMessage(msg) - return False - - def saveLayout(self, x, y, disp, xcb, ship): - """ Prints the data output. - @param x X coordinates. - @param y Transversal areas. - @param disp Ship displacement. - @param xcb Bouyancy center length. - @param ship Active ship instance. - @return True if error happens. - """ - filename = self.path + 'areas.pyxplot' - # Open the file - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Write header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains a script to plot transversal areas curve.\n") - Output.write(" # To use it execute:\n") - Output.write(" #\n") - Output.write(" # pyxplot %s\n" % (filename)) - Output.write(" #\n") - Output.write(" #################################################################\n") - # Write general options for hydrostatics - Output.write("set numeric display latex\n") - Output.write("set output '%s'\n" % (self.path + 'areas.eps')) - Output.write("set nokey\n") - Output.write("set grid\n") - Output.write("# X axis\n") - Output.write("set xlabel 'x / $m$'\n") - Output.write("set xtic\n") - Output.write("# Y axis\n") - Output.write("set ylabel 'Area / $m^2$'\n") - Output.write("set ytic\n") - Output.write("# Line styles\n") - Output.write("set style 1 line linetype 1 linewidth 1 colour rgb (0):(0):(0)\n") - Output.write("set style 2 line linetype 1 linewidth 2 colour rgb (0):(0):(0)\n") - # Get perpendiculars data - Lpp = ship.Length - FPx = 0.5*Lpp - APx = -0.5*Lpp - maxArea = max(y) - # Perpendicular labels - Output.write("# Perpendiculars labels\n") - Output.write("set label (1) AP %f,%f\n" % (APx+0.01*Lpp, 0.01*maxArea)) - Output.write("set label (2) AP %f,%f\n" % (APx+0.01*Lpp, 0.95*maxArea)) - Output.write("set label (3) FP %f,%f\n" % (FPx+0.01*Lpp, 0.01*maxArea)) - Output.write("set label (4) FP %f,%f\n" % (FPx+0.01*Lpp, 0.95*maxArea)) - # Additional data - Output.write("# Additional data\n") - Output.write("set label (5) 'XCB = %g m' %f,%f\n" % (xcb, -0.25*Lpp, 0.25*maxArea)) - Output.write("set label (6) 'Maximum area = %g m2' %f,%f\n" % (maxArea, -0.25*Lpp, 0.15*maxArea)) - Output.write("set label (7) 'Displacement = %g tons' %f,%f\n" % (disp, -0.25*Lpp, 0.05*maxArea)) - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 1:2 title 'Transversal areas' axes x1y1 with lines style 1, \\\n" % (self.dataFile)) - Output.write(" '%s' using 3:4 title 'FP' axes x1y1 with lines style 2, \\\n" % (self.dataFile)) - Output.write(" '%s' using 5:6 title 'AP' axes x1y1 with lines style 2\n" % (self.dataFile)) - # Close file - self.layoutFile = filename - Output.close() - return False - - def execute(self): - """ Calls pyxplot in order to plot an save an image. - @return True if error happens. - """ - filename = self.path + 'areas' - comm = "pyxplot %s" % (self.layoutFile) - if os.system(comm): - msg = Translator.translate("Can't execute pyxplot. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Plot will not generated\n") - FreeCAD.Console.PrintError(msg) - return True - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - return False diff --git a/src/Mod/Ship/shipAreasCurve/PlotAux.py b/src/Mod/Ship/shipAreasCurve/PlotAux.py new file mode 100644 index 0000000000..42699539f6 --- /dev/null +++ b/src/Mod/Ship/shipAreasCurve/PlotAux.py @@ -0,0 +1,185 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import os +# Qt library +from PyQt4 import QtGui,QtCore +# FreeCAD modules +import FreeCAD,FreeCADGui +from FreeCAD import Base +import Image, ImageGui +# FreeCADShip modules +from shipUtils import Paths + +header = """ ################################################################# + + ##### #### ### #### ##### # # ### #### + # # # # # # # # # # # # + # ## #### #### # # # # # # # # # # # + #### # # # # # # # ##### # # ## ## ##### # #### + # # #### #### # # # # # # # # # # + # # # # # # # # # # # # # # + # # #### #### ### # # #### ##### # # ### # + + ################################################################# +""" + +class Plot(object): + def __init__(self, x, y, disp, xcb, ship): + """ Constructor. performs plot and show it. + @param x X coordinates. + @param y Transversal areas. + @param disp Ship displacement. + @param xcb Bouyancy center length. + @param ship Active ship instance. + """ + # Try to plot + self.plot(x,y,disp,xcb,ship) + # Save data + if self.createDirectory(): + return + if self.saveData(x,y,ship): + return + + def plot(self, x, y, disp, xcb, ship): + """ Perform areas curve plot. + @param x X coordinates. + @param y Transversal areas. + @param disp Ship displacement. + @param xcb Bouyancy center length. + @param ship Active ship instance. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('Areas curve') + except ImportError: + msg = QtGui.QApplication.translate("ship_console", "Plot module is disabled, can't perform plot", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + '\n') + return True + # Plot areas curve + areas = Plot.plot(x,y,r'Transversal areas') + areas.line.set_linestyle('-') + areas.line.set_linewidth(2.0) + areas.line.set_color((0.0, 0.0, 0.0)) + # Get perpendiculars data + Lpp = ship.Length + FPx = 0.5*Lpp + APx = -0.5*Lpp + maxArea = max(y) + # Plot perpendiculars + FP = Plot.plot([FPx,FPx], [0.0,maxArea]) + FP.line.set_linestyle('-') + FP.line.set_linewidth(1.0) + FP.line.set_color((0.0, 0.0, 0.0)) + AP = Plot.plot([APx,APx], [0.0,maxArea]) + AP.line.set_linestyle('-') + AP.line.set_linewidth(1.0) + AP.line.set_color((0.0, 0.0, 0.0)) + # Add annotations for prependiculars + ax = Plot.axes() + ax.annotate('AP', xy=(APx+0.01*Lpp, 0.01*maxArea), size=15) + ax.annotate('AP', xy=(APx+0.01*Lpp, 0.95*maxArea), size=15) + ax.annotate('FP', xy=(FPx+0.01*Lpp, 0.01*maxArea), size=15) + ax.annotate('FP', xy=(FPx+0.01*Lpp, 0.95*maxArea), size=15) + # Add some additional data + addInfo = r"""$XCB = %g \; \mathrm{m}$ +$Area_{max} = %g \; \mathrm{m}^2$ +$\bigtriangleup = %g \; \mathrm{tons}$""" % (xcb,maxArea,disp) + ax.text(0.0, 0.01*maxArea, addInfo, + verticalalignment='bottom',horizontalalignment='center', fontsize=20) + # Write axes titles + Plot.xlabel(r'$x \; \mathrm{m}$') + Plot.ylabel(r'$Area \; \mathrm{m}^2$') + ax.xaxis.label.set_fontsize(20) + ax.yaxis.label.set_fontsize(20) + # Show grid + Plot.grid(True) + # End + plt.update() + return False + + def createDirectory(self): + """ Create needed folder to write data. + @return True if error happens. + """ + self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" + if not os.path.exists(self.path): + os.makedirs(self.path) + if not os.path.exists(self.path): + msg = QtGui.QApplication.translate("ship_console", "Can't create folder", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ self.path + "\'\n") + return True + return False + + def saveData(self,x,y,ship): + """ Write data file. + @param x X coordinates. + @param y Transversal areas. + @param ship Active ship instance. + @return True if error happens. + """ + # Open the file + filename = self.path + 'areas.dat' + try: + Output = open(filename, "w") + except IOError: + msg = QtGui.QApplication.translate("ship_console", "Can't write to file", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ filename + "\'\n") + return True + # Print header + Output.write(header) + Output.write(" #\n") + Output.write(" # File automatically exported by FreeCAD-Ship\n") + Output.write(" # This file contains transversal areas data, filled with following columns:\n") + Output.write(" # 1: X coordiante [m]\n") + Output.write(" # 2: Transversal area [m2]\n") + Output.write(" # 3: X FP coordinate [m]\n") + Output.write(" # 4: Y FP coordinate (bounds in order to draw it)\n") + Output.write(" # 3: X AP coordinate [m]\n") + Output.write(" # 4: Y AP coordinate (bounds in order to draw it)\n") + Output.write(" #\n") + Output.write(" #################################################################\n") + # Get perpendiculars data + Lpp = ship.Length + FPx = 0.5*Lpp + APx = -0.5*Lpp + maxArea = max(y) + # Print data + string = "%f %f %f %f %f %f\n" % (x[0], y[0], FPx, 0.0, APx, 0.0) + Output.write(string) + for i in range(1, len(x)): + string = "%f %f %f %f %f %f\n" % (x[i], y[i], FPx, maxArea, APx, maxArea) + Output.write(string) + # Close file + Output.close() + self.dataFile = filename + msg = QtGui.QApplication.translate("ship_console", "Data saved", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + ':\n\t' + "\'"+ self.dataFile + "\'\n") + return False + diff --git a/src/Mod/Ship/shipAreasCurve/Preview.py b/src/Mod/Ship/shipAreasCurve/Preview.py index 6af80580d8..4cd17bf924 100644 --- a/src/Mod/Ship/shipAreasCurve/Preview.py +++ b/src/Mod/Ship/shipAreasCurve/Preview.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -26,53 +26,53 @@ import FreeCAD,FreeCADGui from FreeCAD import Base import Part # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths class Preview(object): - def __init__(self): - """ Constructor. - """ - self.reinit() + def __init__(self): + """ Constructor. + """ + self.reinit() - def reinit(self): - """ Reinitializate drawer. - """ - self.obj = None - self.clean() + def reinit(self): + """ Reinitializate drawer. + """ + self.obj = None + self.clean() - def update(self, draft, trim, ship): - """ Update free surface 3D view - @param traft Draft. - @param trim Trim in degrees. - """ - # Destroy old object if exist - self.clean() - # Set free surface bounds - bbox = ship.Shape.BoundBox - L = 1.5 * bbox.XLength - B = 3.0 * bbox.YLength - # Create plane - x = - 0.5 * L - y = - 0.5 * B - point = Base.Vector(x,y,0.0) - plane = Part.makePlane(L,B, point, Base.Vector(0,0,1)) - # Set position - plane.rotate(Base.Vector(0,0,0), Base.Vector(0,1,0), trim) - plane.translate(Base.Vector(0,0,draft)) - # Create the FreeCAD object - Part.show(plane) - objs = FreeCAD.ActiveDocument.Objects - self.obj = objs[len(objs)-1] - self.obj.Label = 'FreeSurface' - # Set properties of object - guiObj = FreeCADGui.ActiveDocument.getObject(self.obj.Name) - guiObj.ShapeColor = (0.4,0.8,0.85) - guiObj.Transparency = 50 + def update(self, draft, trim, ship): + """ Update free surface 3D view + @param traft Draft. + @param trim Trim in degrees. + """ + # Destroy old object if exist + self.clean() + # Set free surface bounds + bbox = ship.Shape.BoundBox + L = 1.5 * bbox.XLength + B = 3.0 * bbox.YLength + # Create plane + x = - 0.5 * L + y = - 0.5 * B + point = Base.Vector(x,y,0.0) + plane = Part.makePlane(L,B, point, Base.Vector(0,0,1)) + # Set position + plane.rotate(Base.Vector(0,0,0), Base.Vector(0,1,0), trim) + plane.translate(Base.Vector(0,0,draft)) + # Create the FreeCAD object + Part.show(plane) + objs = FreeCAD.ActiveDocument.Objects + self.obj = objs[len(objs)-1] + self.obj.Label = 'FreeSurface' + # Set properties of object + guiObj = FreeCADGui.ActiveDocument.getObject(self.obj.Name) + guiObj.ShapeColor = (0.4,0.8,0.85) + guiObj.Transparency = 50 - def clean(self): - """ Erase all annotations from screen. - """ - if not self.obj: - return - FreeCAD.ActiveDocument.removeObject(self.obj.Name) - self.obj=None + def clean(self): + """ Erase all annotations from screen. + """ + if not self.obj: + return + FreeCAD.ActiveDocument.removeObject(self.obj.Name) + self.obj=None diff --git a/src/Mod/Ship/shipAreasCurve/TaskPanel.py b/src/Mod/Ship/shipAreasCurve/TaskPanel.py index e027f5f9e1..258f487b7e 100644 --- a/src/Mod/Ship/shipAreasCurve/TaskPanel.py +++ b/src/Mod/Ship/shipAreasCurve/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import math @@ -28,207 +28,218 @@ import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore # Module -import Preview, Plot +import Preview, PlotAux import Instance -from shipUtils import Paths, Translator +from shipUtils import Paths from shipHydrostatics import Tools as Hydrostatics class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipAreasCurve/TaskPanel.ui" - self.preview = Preview.Preview() - self.ship = None + def __init__(self): + self.ui = Paths.modulePath() + "/shipAreasCurve/TaskPanel.ui" + self.preview = Preview.Preview() + self.ship = None - def accept(self): - if not self.ship: - return False - self.save() - # Plot data - data = Hydrostatics.displacement(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) - disp = data[0] - xcb = data[1].x - data = Hydrostatics.areas(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) - x = [] - y = [] - for i in range(0,len(data)): - x.append(data[i][0]) - y.append(data[i][1]) - Plot.Plot(x,y,disp,xcb, self.ship) - self.preview.clean() - return True + def accept(self): + if not self.ship: + return False + self.save() + # Plot data + data = Hydrostatics.displacement(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) + disp = data[0] + xcb = data[1].x + data = Hydrostatics.areas(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) + x = [] + y = [] + for i in range(0,len(data)): + x.append(data[i][0]) + y.append(data[i][1]) + PlotAux.Plot(x,y,disp,xcb, self.ship) + self.preview.clean() + return True - def reject(self): - self.preview.clean() - return True + def reject(self): + self.preview.clean() + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") - form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") - form.output = form.findChild(QtGui.QTextEdit, "OutputData") - form.doc = QtGui.QTextDocument(form.output) - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.draft, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.trim, QtCore.SIGNAL("valueChanged(double)"), self.onData) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") + form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") + form.output = form.findChild(QtGui.QTextEdit, "OutputData") + form.doc = QtGui.QTextDocument(form.output) + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.draft, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.trim, QtCore.SIGNAL("valueChanged(double)"), self.onData) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get bounds - bbox = self.ship.Shape.BoundBox - self.form.draft.setMaximum(bbox.ZMax) - self.form.draft.setMinimum(bbox.ZMin) - self.form.draft.setValue(self.ship.Draft) - # Try to use saved values - props = self.ship.PropertiesList - flag = True - try: - props.index("AreaCurveDraft") - except ValueError: - flag = False - if flag: - self.form.draft.setValue(self.ship.AreaCurveDraft) - flag = True - try: - props.index("AreaCurveTrim") - except ValueError: - flag = False - if flag: - self.form.trim.setValue(self.ship.AreaCurveTrim) - # Update GUI - self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) - self.onUpdate() - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", "Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get bounds + bbox = self.ship.Shape.BoundBox + self.form.draft.setMaximum(bbox.ZMax) + self.form.draft.setMinimum(bbox.ZMin) + self.form.draft.setValue(self.ship.Draft) + # Try to use saved values + props = self.ship.PropertiesList + flag = True + try: + props.index("AreaCurveDraft") + except ValueError: + flag = False + if flag: + self.form.draft.setValue(self.ship.AreaCurveDraft) + flag = True + try: + props.index("AreaCurveTrim") + except ValueError: + flag = False + if flag: + self.form.trim.setValue(self.ship.AreaCurveTrim) + # Update GUI + self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) + self.onUpdate() + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Plot transversal areas curve")) - self.form.findChild(QtGui.QLabel, "DraftLabel").setText(Translator.translate("Draft")) - self.form.findChild(QtGui.QLabel, "TrimLabel").setText(Translator.translate("Trim")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_areas","Plot transversal areas curve", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "DraftLabel").setText(QtGui.QApplication.translate("ship_areas","Draft", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "TrimLabel").setText(QtGui.QApplication.translate("ship_areas","Trim", + None,QtGui.QApplication.UnicodeUTF8)) - def onData(self, value): - """ Method called when input data is changed. - @param value Changed value. - """ - if not self.ship: - return - self.onUpdate() - self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) + def onData(self, value): + """ Method called when input data is changed. + @param value Changed value. + """ + if not self.ship: + return + self.onUpdate() + self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) - def onUpdate(self): - """ Method called when update data request. - """ - if not self.ship: - return - # Calculate drafts - angle = math.radians(self.form.trim.value()) - L = self.ship.Length - draftAP = self.form.draft.value() + 0.5*L*math.tan(angle) - if draftAP < 0.0: - draftAP = 0.0 - draftFP = self.form.draft.value() - 0.5*L*math.tan(angle) - if draftFP < 0.0: - draftFP = 0.0 - # Calculate hydrostatics involved - data = Hydrostatics.displacement(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) - # Prepare the string in html format - string = 'L = %g [m]
' % (self.ship.Length) - string = string + 'B = %g [m]
' % (self.ship.Beam) - string = string + 'T = %g [m]


' % (self.form.draft.value()) - string = string + 'Trim = %g [degrees]
' % (self.form.trim.value()) - string = string + 'TAP = %g [m]
' % (draftAP) - string = string + 'TFP = %g [m]
' % (draftFP) - string = string + Translator.translate('Displacement') + ' = %g [ton]
' % (data[0]) - string = string + 'XCB = %g [m]' % (data[1].x) - # Set the document - self.form.output.setHtml(string) + def onUpdate(self): + """ Method called when update data request. + """ + if not self.ship: + return + # Calculate drafts + angle = math.radians(self.form.trim.value()) + L = self.ship.Length + draftAP = self.form.draft.value() + 0.5*L*math.tan(angle) + if draftAP < 0.0: + draftAP = 0.0 + draftFP = self.form.draft.value() - 0.5*L*math.tan(angle) + if draftFP < 0.0: + draftFP = 0.0 + # Calculate hydrostatics involved + data = Hydrostatics.displacement(self.ship,self.form.draft.value(),0.0,self.form.trim.value()) + # Prepare the string in html format + string = 'L = %g [m]
' % (self.ship.Length) + string = string + 'B = %g [m]
' % (self.ship.Beam) + string = string + 'T = %g [m]
' % (self.form.draft.value()) + string = string + 'Trim = %g [degrees]
' % (self.form.trim.value()) + string = string + 'TAP = %g [m]
' % (draftAP) + string = string + 'TFP = %g [m]
' % (draftFP) + dispText = QtGui.QApplication.translate("ship_areas",'Displacement', + None,QtGui.QApplication.UnicodeUTF8) + string = string + dispText + ' = %g [ton]
' % (data[0]) + string = string + 'XCB = %g [m]' % (data[1].x) + # Set the document + self.form.output.setHtml(string) - def save(self): - """ Saves data into ship instance. - """ - props = self.ship.PropertiesList - try: - props.index("AreaCurveDraft") - except ValueError: - self.ship.addProperty("App::PropertyFloat","AreaCurveDraft","Ship", str(Translator.translate("Areas curve draft selected [m]"))) - self.ship.AreaCurveDraft = self.form.draft.value() - try: - props.index("AreaCurveTrim") - except ValueError: - self.ship.addProperty("App::PropertyFloat","AreaCurveTrim","Ship", str(Translator.translate("Areas curve trim selected [m]"))) - self.ship.AreaCurveTrim = self.form.trim.value() + def save(self): + """ Saves data into ship instance. + """ + props = self.ship.PropertiesList + try: + props.index("AreaCurveDraft") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_areas","Areas curve tool draft selected [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","AreaCurveDraft","Ship", tooltip) + self.ship.AreaCurveDraft = self.form.draft.value() + try: + props.index("AreaCurveTrim") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_areas","Areas curve tool trim selected", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","AreaCurveTrim","Ship", tooltip) + self.ship.AreaCurveTrim = self.form.trim.value() def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipAreasCurve/TaskPanel.ui b/src/Mod/Ship/shipAreasCurve/TaskPanel.ui index 8e03561851..efed908cd2 100644 --- a/src/Mod/Ship/shipAreasCurve/TaskPanel.ui +++ b/src/Mod/Ship/shipAreasCurve/TaskPanel.ui @@ -11,19 +11,51 @@ - Create new ship + Transversal areas curve - - + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + + 0 + 0 + + Draft - + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + m + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -36,31 +68,20 @@ - - - - - 24 - 16777215 - - - - m - - - - - - - - + + + + 0 + 0 + + Trim - + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -76,11 +97,17 @@ - + + + + 0 + 0 + + - 24 + 16777215 16777215 @@ -91,13 +118,6 @@ - - - - Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - - - diff --git a/src/Mod/Ship/shipAreasCurve/__init__.py b/src/Mod/Ship/shipAreasCurve/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/shipAreasCurve/__init__.py +++ b/src/Mod/Ship/shipAreasCurve/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipCreateShip/Preview.py b/src/Mod/Ship/shipCreateShip/Preview.py index 72f6014328..60a61dec19 100644 --- a/src/Mod/Ship/shipCreateShip/Preview.py +++ b/src/Mod/Ship/shipCreateShip/Preview.py @@ -1,130 +1,142 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base import Part +# Qt library +from PyQt4 import QtGui,QtCore # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths class Preview(object): - def __init__(self): - """ Constructor. - """ - self.baseLine = None - self.baseLineLabel = None - self.reinit() + def __init__(self): + """ Constructor. + """ + self.baseLine = None + self.baseLineLabel = None + self.reinit() - def reinit(self): - """ Reinitializate drawer. - """ - self.clean() + def reinit(self): + """ Reinitializate drawer. + """ + self.clean() - def update(self, L, B, T): - """ Update the 3D view printing annotations. - @param L Ship length. - @param B Ship beam. - @param T Ship draft. - """ - # Destroy all previous entities - self.clean() - # Draw base line - xStart = -0.6*L; - xEnd = 0.6*L; - baseLine = Part.makeLine((xStart,0,0),(xEnd,0,0)) - Part.show(baseLine) - objs = FreeCAD.ActiveDocument.Objects - self.baseLine = objs[len(objs)-1] - self.baseLine.Label = 'BaseLine' - self.baseLineLabel = DrawText('BaseLineText', str(Translator.translate('Base line')), Base.Vector(xEnd,0,0)) - # Draw free surface - fsLine = Part.makeLine((xStart,0,T),(xEnd,0,T)) - Part.show(fsLine) - objs = FreeCAD.ActiveDocument.Objects - self.fsLine = objs[len(objs)-1] - self.fsLine.Label = 'FreeSurface' - self.fsLineLabel = DrawText('FSText', str(Translator.translate('Free surface')), Base.Vector(xEnd,0,T)) - # Draw forward perpendicular - zStart = -0.1*T - zEnd = 1.1*T - fpLine = Part.makeLine((0.5*L,0,zStart),(0.5*L,0,zEnd)) - Part.show(fpLine) - objs = FreeCAD.ActiveDocument.Objects - self.fpLine = objs[len(objs)-1] - self.fpLine.Label = 'ForwardPerpendicular' - self.fpLineLabel = DrawText('FPText', str(Translator.translate('Forward perpendicular')), Base.Vector(0.5*L,0,zEnd)) - # Draw after perpendicular - apLine = Part.makeLine((-0.5*L,0,zStart),(-0.5*L,0,zEnd)) - Part.show(apLine) - objs = FreeCAD.ActiveDocument.Objects - self.apLine = objs[len(objs)-1] - self.apLine.Label = 'AfterPerpendicular' - self.apLineLabel = DrawText('APText', str(Translator.translate('After perpendicular')), Base.Vector(-0.5*L,0,zEnd)) - # Draw amin frame - amLine = Part.makeLine((0,-0.5*B,zStart),(0,-0.5*B,zEnd)) - Part.show(amLine) - objs = FreeCAD.ActiveDocument.Objects - self.amLine = objs[len(objs)-1] - self.amLine.Label = 'AminFrame' - self.amLineLabel = DrawText('AMText', str(Translator.translate('Amin frame')), Base.Vector(0,-0.5*B,zEnd)) - - def clean(self): - """ Erase all annotations from screen. - """ - if not self.baseLine: - return - FreeCAD.ActiveDocument.removeObject(self.baseLine.Name) - FreeCAD.ActiveDocument.removeObject(self.baseLineLabel.Name) - FreeCAD.ActiveDocument.removeObject(self.fsLine.Name) - FreeCAD.ActiveDocument.removeObject(self.fsLineLabel.Name) - FreeCAD.ActiveDocument.removeObject(self.fpLine.Name) - FreeCAD.ActiveDocument.removeObject(self.fpLineLabel.Name) - FreeCAD.ActiveDocument.removeObject(self.apLine.Name) - FreeCAD.ActiveDocument.removeObject(self.apLineLabel.Name) - FreeCAD.ActiveDocument.removeObject(self.amLine.Name) - FreeCAD.ActiveDocument.removeObject(self.amLineLabel.Name) + def update(self, L, B, T): + """ Update the 3D view printing annotations. + @param L Ship length. + @param B Ship beam. + @param T Ship draft. + """ + # Destroy all previous entities + self.clean() + # Draw base line + xStart = -0.6*L; + xEnd = 0.6*L; + baseLine = Part.makeLine((xStart,0,0),(xEnd,0,0)) + Part.show(baseLine) + objs = FreeCAD.ActiveDocument.Objects + self.baseLine = objs[len(objs)-1] + self.baseLine.Label = 'BaseLine' + text = str(QtGui.QApplication.translate("ship_create","Base line", + None,QtGui.QApplication.UnicodeUTF8)) + self.baseLineLabel = DrawText('BaseLineText', text, Base.Vector(xEnd,0,0)) + # Draw free surface + fsLine = Part.makeLine((xStart,0,T),(xEnd,0,T)) + Part.show(fsLine) + objs = FreeCAD.ActiveDocument.Objects + self.fsLine = objs[len(objs)-1] + self.fsLine.Label = 'FreeSurface' + text = str(QtGui.QApplication.translate("ship_create","Free surface", + None,QtGui.QApplication.UnicodeUTF8)) + self.fsLineLabel = DrawText('FSText', text, Base.Vector(xEnd,0,T)) + # Draw forward perpendicular + zStart = -0.1*T + zEnd = 1.1*T + fpLine = Part.makeLine((0.5*L,0,zStart),(0.5*L,0,zEnd)) + Part.show(fpLine) + objs = FreeCAD.ActiveDocument.Objects + self.fpLine = objs[len(objs)-1] + self.fpLine.Label = 'ForwardPerpendicular' + text = str(QtGui.QApplication.translate("ship_create","Forward perpendicular", + None,QtGui.QApplication.UnicodeUTF8)) + self.fpLineLabel = DrawText('FPText', text, Base.Vector(0.5*L,0,zEnd)) + # Draw after perpendicular + apLine = Part.makeLine((-0.5*L,0,zStart),(-0.5*L,0,zEnd)) + Part.show(apLine) + objs = FreeCAD.ActiveDocument.Objects + self.apLine = objs[len(objs)-1] + self.apLine.Label = 'AfterPerpendicular' + text = str(QtGui.QApplication.translate("ship_create","After perpendicular", + None,QtGui.QApplication.UnicodeUTF8)) + self.apLineLabel = DrawText('APText', text, Base.Vector(-0.5*L,0,zEnd)) + # Draw amin frame + amLine = Part.makeLine((0,-0.5*B,zStart),(0,-0.5*B,zEnd)) + Part.show(amLine) + objs = FreeCAD.ActiveDocument.Objects + self.amLine = objs[len(objs)-1] + self.amLine.Label = 'AminFrame' + text = str(QtGui.QApplication.translate("ship_create","Main frame", + None,QtGui.QApplication.UnicodeUTF8)) + self.amLineLabel = DrawText('AMText', text, Base.Vector(0,-0.5*B,zEnd)) + + def clean(self): + """ Erase all annotations from screen. + """ + if not self.baseLine: + return + FreeCAD.ActiveDocument.removeObject(self.baseLine.Name) + FreeCAD.ActiveDocument.removeObject(self.baseLineLabel.Name) + FreeCAD.ActiveDocument.removeObject(self.fsLine.Name) + FreeCAD.ActiveDocument.removeObject(self.fsLineLabel.Name) + FreeCAD.ActiveDocument.removeObject(self.fpLine.Name) + FreeCAD.ActiveDocument.removeObject(self.fpLineLabel.Name) + FreeCAD.ActiveDocument.removeObject(self.apLine.Name) + FreeCAD.ActiveDocument.removeObject(self.apLineLabel.Name) + FreeCAD.ActiveDocument.removeObject(self.amLine.Name) + FreeCAD.ActiveDocument.removeObject(self.amLineLabel.Name) def DrawText(name, string, position, displayMode="Screen", angle=0.0, justification="Left", colour=(0.00,0.00,0.00), size=12): - """ Draws a text in a desired position. - @param name Name of the object - @param string Text to draw (recommended format u'') - @param position Point to draw the text - @param angle Counter clockwise rotation of text - @param justification Alignement of the text ("Left", "Right" or "Center") - @param colour Colour of the text - @param size Font size - @return FreeCAD annotation object - """ - # Create the object - text = FreeCAD.ActiveDocument.addObject("App::Annotation",name) - # Set the text - text.LabelText = [string, u''] - # Set the options - text.Position = position - FreeCADGui.ActiveDocument.getObject(text.Name).Rotation = angle - FreeCADGui.ActiveDocument.getObject(text.Name).Justification = justification - FreeCADGui.ActiveDocument.getObject(text.Name).FontSize = size - FreeCADGui.ActiveDocument.getObject(text.Name).TextColor = colour - FreeCADGui.ActiveDocument.getObject(text.Name).DisplayMode = displayMode - return FreeCAD.ActiveDocument.getObject(text.Name) + """ Draws a text in a desired position. + @param name Name of the object + @param string Text to draw (recommended format u'') + @param position Point to draw the text + @param angle Counter clockwise rotation of text + @param justification Alignement of the text ("Left", "Right" or "Center") + @param colour Colour of the text + @param size Font size + @return FreeCAD annotation object + """ + # Create the object + text = FreeCAD.ActiveDocument.addObject("App::Annotation",name) + # Set the text + text.LabelText = [string, u''] + # Set the options + text.Position = position + FreeCADGui.ActiveDocument.getObject(text.Name).Rotation = angle + FreeCADGui.ActiveDocument.getObject(text.Name).Justification = justification + FreeCADGui.ActiveDocument.getObject(text.Name).FontSize = size + FreeCADGui.ActiveDocument.getObject(text.Name).TextColor = colour + FreeCADGui.ActiveDocument.getObject(text.Name).DisplayMode = displayMode + return FreeCAD.ActiveDocument.getObject(text.Name) diff --git a/src/Mod/Ship/shipCreateShip/TaskPanel.py b/src/Mod/Ship/shipCreateShip/TaskPanel.py index de26764502..a92770759d 100644 --- a/src/Mod/Ship/shipCreateShip/TaskPanel.py +++ b/src/Mod/Ship/shipCreateShip/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -29,192 +29,202 @@ from PyQt4 import QtGui,QtCore # Module import Preview import Instance -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipCreateShip/TaskPanel.ui" - self.preview = Preview.Preview() + def __init__(self): + self.ui = Paths.modulePath() + "/shipCreateShip/TaskPanel.ui" + self.preview = Preview.Preview() - def accept(self): - self.preview.clean() - # Create new ship instance - obj = App.ActiveDocument.addObject("Part::FeaturePython","Ship") - ship = Instance.Ship(obj, self.solids) - Instance.ViewProviderShip(obj.ViewObject) - # Set main dimensions - obj.Length = self.form.length.value() - obj.Beam = self.form.beam.value() - obj.Draft = self.form.draft.value() - # Discretize it - App.ActiveDocument.recompute() - return True + def accept(self): + self.preview.clean() + # Create new ship instance + obj = App.ActiveDocument.addObject("Part::FeaturePython","Ship") + ship = Instance.Ship(obj, self.solids) + Instance.ViewProviderShip(obj.ViewObject) + # Set main dimensions + obj.Length = self.form.length.value() + obj.Beam = self.form.beam.value() + obj.Draft = self.form.draft.value() + # Discretize it + App.ActiveDocument.recompute() + return True - def reject(self): - self.preview.clean() - return True + def reject(self): + self.preview.clean() + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") - form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") - form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") - form.mainLogo = form.findChild(QtGui.QLabel, "MainLogo") - iconPath = Paths.iconsPath() + "/Ico.xpm" - form.mainLogo.setPixmap(QtGui.QPixmap(iconPath)) - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - self.preview.update(self.L, self.B, self.T) - # Connect Signals and Slots - QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.draft, QtCore.SIGNAL("valueChanged(double)"), self.onData) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") + form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") + form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") + form.mainLogo = form.findChild(QtGui.QLabel, "MainLogo") + iconPath = Paths.iconsPath() + "/Ico.xpm" + form.mainLogo.setPixmap(QtGui.QPixmap(iconPath)) + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + self.preview.update(self.L, self.B, self.T) + # Connect Signals and Slots + QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.draft, QtCore.SIGNAL("valueChanged(double)"), self.onData) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get objects - self.solids = None - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship objects can only be created on top of hull geometry (any object selected).\n") - App.Console.PrintError(msg) - msg = Translator.translate("Please create or load a ship hull geometry before using this tool.\n") - App.Console.PrintError(msg) - return True - self.solids = [] - for i in range(0, len(selObjs)): - solids = self.getSolids(selObjs[i]) - for j in range(0, len(solids)): - self.solids.append(solids[j]) - if not self.solids: - msg = Translator.translate("Ship objects can only be created on top of hull geometry (no solid found at selected objects).\n") - App.Console.PrintError(msg) - msg = Translator.translate("Please create or load a ship hull geometry before using this tool\n") - App.Console.PrintError(msg) - return True - # Get bounds - bounds = [0.0, 0.0, 0.0] - bbox = self.solids[0].BoundBox - minX = bbox.XMin - maxX = bbox.XMax - minY = bbox.YMin - maxY = bbox.YMax - minZ = bbox.ZMin - maxZ = bbox.ZMax - for i in range(1,len(self.solids)): - bbox = self.solids[i].BoundBox - if minX > bbox.XMin: - minX = bbox.XMin - if maxX < bbox.XMax: - maxX = bbox.XMax - if minY > bbox.YMin: - minY = bbox.YMin - if maxY < bbox.YMax: - maxY = bbox.YMax - if minZ > bbox.ZMin: - minZ = bbox.ZMin - if maxZ < bbox.ZMax: - maxZ = bbox.ZMax - bounds[0] = maxX - minX - bounds[1] = max(maxY - minY, abs(maxY), abs(minY)) - bounds[2] = maxZ - minZ - # Set UI fields - self.form.length.setMaximum(bounds[0]) - self.form.length.setMinimum(0.001) - self.form.length.setValue(bounds[0]) - self.L = bounds[0] - self.form.beam.setMaximum(bounds[1]) - self.form.beam.setMinimum(0.001) - self.form.beam.setValue(bounds[1]) - self.B = bounds[1] - self.form.draft.setMaximum(bounds[2]) - self.form.draft.setMinimum(0.001) - self.form.draft.setValue(0.5*bounds[2]) - self.T = 0.5*bounds[2] - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get objects + self.solids = None + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", + "Ship objects can only be created on top of hull geometry (any object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + msg = QtGui.QApplication.translate("ship_console", + "Please create or load a ship hull geometry before using this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + self.solids = [] + for i in range(0, len(selObjs)): + solids = self.getSolids(selObjs[i]) + for j in range(0, len(solids)): + self.solids.append(solids[j]) + if not self.solids: + msg = QtGui.QApplication.translate("ship_console", + "Ship objects can only be created on top of hull geometry (no solid found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + msg = QtGui.QApplication.translate("ship_console", + "Please create or load a ship hull geometry before using this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get bounds + bounds = [0.0, 0.0, 0.0] + bbox = self.solids[0].BoundBox + minX = bbox.XMin + maxX = bbox.XMax + minY = bbox.YMin + maxY = bbox.YMax + minZ = bbox.ZMin + maxZ = bbox.ZMax + for i in range(1,len(self.solids)): + bbox = self.solids[i].BoundBox + if minX > bbox.XMin: + minX = bbox.XMin + if maxX < bbox.XMax: + maxX = bbox.XMax + if minY > bbox.YMin: + minY = bbox.YMin + if maxY < bbox.YMax: + maxY = bbox.YMax + if minZ > bbox.ZMin: + minZ = bbox.ZMin + if maxZ < bbox.ZMax: + maxZ = bbox.ZMax + bounds[0] = maxX - minX + bounds[1] = max(maxY - minY, abs(maxY), abs(minY)) + bounds[2] = maxZ - minZ + # Set UI fields + self.form.length.setMaximum(bounds[0]) + self.form.length.setMinimum(0.001) + self.form.length.setValue(bounds[0]) + self.L = bounds[0] + self.form.beam.setMaximum(bounds[1]) + self.form.beam.setMinimum(0.001) + self.form.beam.setValue(bounds[1]) + self.B = bounds[1] + self.form.draft.setMaximum(bounds[2]) + self.form.draft.setMinimum(0.001) + self.form.draft.setValue(0.5*bounds[2]) + self.T = 0.5*bounds[2] + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Create a new ship")) - self.form.findChild(QtGui.QLabel, "LengthLabel").setText(Translator.translate("Length")) - self.form.findChild(QtGui.QLabel, "BeamLabel").setText(Translator.translate("Beam")) - self.form.findChild(QtGui.QLabel, "DraftLabel").setText(Translator.translate("Draft")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_create","Create a new ship", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "LengthLabel").setText(QtGui.QApplication.translate("ship_create","Length", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "BeamLabel").setText(QtGui.QApplication.translate("ship_create","Breadth", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "DraftLabel").setText(QtGui.QApplication.translate("ship_create","Draft", + None,QtGui.QApplication.UnicodeUTF8)) - def onData(self, value): - """ Method called when ship data is changed. - Annotations must be showed. - @param value Changed value. - """ - self.L = self.form.length.value() - self.B = self.form.beam.value() - self.T = self.form.draft.value() - self.preview.update(self.L, self.B, self.T) + def onData(self, value): + """ Method called when ship data is changed. + Annotations must be showed. + @param value Changed value. + """ + self.L = self.form.length.value() + self.B = self.form.beam.value() + self.T = self.form.draft.value() + self.preview.update(self.L, self.B, self.T) - def getSolids(self, obj): - """ Returns object solids (list of them) - @param obj Object to extract solids. - @return Solids. None if errors happens - """ - if not obj: - return None - if obj.isDerivedFrom('Part::Feature'): - # get shape - shape = obj.Shape - if not shape: - return None - obj = shape - if not obj.isDerivedFrom('Part::TopoShape'): - return None - # get face - solids = obj.Solids - if not solids: - return None - return solids + def getSolids(self, obj): + """ Returns object solids (list of them) + @param obj Object to extract solids. + @return Solids. None if errors happens + """ + if not obj: + return None + if obj.isDerivedFrom('Part::Feature'): + # get shape + shape = obj.Shape + if not shape: + return None + obj = shape + if not obj.isDerivedFrom('Part::TopoShape'): + return None + # get face + solids = obj.Solids + if not solids: + return None + return solids def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipCreateShip/TaskPanel.ui b/src/Mod/Ship/shipCreateShip/TaskPanel.ui index 5cd6a79b64..117e9324d8 100644 --- a/src/Mod/Ship/shipCreateShip/TaskPanel.ui +++ b/src/Mod/Ship/shipCreateShip/TaskPanel.ui @@ -68,126 +68,120 @@ false - - - - 0 - 20 - 241 - 141 - - - - - 6 - - - QLayout::SetDefaultConstraint - - - - - QLayout::SetDefaultConstraint - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Length - - - - - - - 3 - - - 0.010000000000000 - - - - - - - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Beam - - - - - - - 3 - - - 0.010000000000000 - - - - - - - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Draft - - - - - - - 3 - - - 0.010000000000000 - - - - - - - + + + + + 6 + + + QLayout::SetDefaultConstraint + + + + + QLayout::SetDefaultConstraint + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Length + + + + + + + 3 + + + 0.010000000000000 + + + + + + + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Beam + + + + + + + 3 + + + 0.010000000000000 + + + + + + + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Draft + + + + + + + 3 + + + 0.010000000000000 + + + + + + + + diff --git a/src/Mod/Ship/shipCreateShip/__init__.py b/src/Mod/Ship/shipCreateShip/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/shipCreateShip/__init__.py +++ b/src/Mod/Ship/shipCreateShip/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipHydrostatics/Plot.py b/src/Mod/Ship/shipHydrostatics/Plot.py deleted file mode 100644 index d209bbf59d..0000000000 --- a/src/Mod/Ship/shipHydrostatics/Plot.py +++ /dev/null @@ -1,345 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import os -import math -# FreeCAD modules -import FreeCAD,FreeCADGui -from FreeCAD import Base, Vector -import Part, Image, ImageGui -# FreeCADShip modules -from shipUtils import Paths, Translator -import Tools - -header = """ ################################################################# - - ##### #### ### #### ##### # # ### #### - # # # # # # # # # # # # - # ## #### #### # # # # # # # # # # # - #### # # # # # # # ##### # # ## ## ##### # #### - # # #### #### # # # # # # # # # # - # # # # # # # # # # # # # # - # # #### #### ### # # #### ##### # # ### # - - ################################################################# -""" - -class Plot(object): - def __init__(self, ship, trim, drafts): - """ Constructor. performs plot and show it (Using pyxplot). - @param ship Selected ship instance - @param trim Trim in degrees. - @param drafts List of drafts to be performed. - """ - if self.createDirectory(): - return - if self.saveData(ship, trim, drafts): - return - if self.saveLayout(trim): - return - if self.execute(): - return - ImageGui.open(self.path + 'volume.png') - ImageGui.open(self.path + 'stability.png') - ImageGui.open(self.path + 'coeffs.png') - - def createDirectory(self): - """ Create needed folder to write data and scripts. - @return True if error happens. - """ - self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" - if not os.path.exists(self.path): - os.makedirs(self.path) - if not os.path.exists(self.path): - msg = Translator.translate("Can't create '" + self.path + "' folder.\n") - FreeCAD.Console.PrintError(msg) - return False - - def saveData(self, ship, trim, drafts): - """ Write data file. - @param ship Selected ship instance - @param trim Trim in degrees. - @param drafts List of drafts to be performed. - @return True if error happens. - """ - # Open the file - filename = self.path + 'hydrostatics.dat' - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Print header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains transversal areas data, filled with following columns:\n") - Output.write(" # 1: Ship displacement [ton]\n") - Output.write(" # 2: Draft [m]\n") - Output.write(" # 3: Wetted surface [m2]\n") - Output.write(" # 4: 1cm triming ship moment [ton m]\n") - Output.write(" # 5: Bouyance center x coordinate\n") - Output.write(" # 6: Floating area\n") - Output.write(" # 7: KBt\n") - Output.write(" # 8: BMt\n") - Output.write(" # 9: Cb (block coefficient)\n") - Output.write(" # 10: Cf (Floating coefficient)\n") - Output.write(" # 11: Cm (Main frame coefficient)\n") - Output.write(" #\n") - Output.write(" #################################################################\n") - # Get external faces - faces = self.externalFaces(ship.Shape) - if len(faces) == 0: - msg = Translator.translate("Can't detect external faces from ship object.\n") - FreeCAD.Console.PrintError(msg) - else: - faces = Part.makeShell(faces) - # Print data - FreeCAD.Console.PrintMessage("Computing hydrostatics...\n") - for i in range(0,len(drafts)): - FreeCAD.Console.PrintMessage("\t%d / %d\n" % (i+1, len(drafts))) - draft = drafts[i] - point = Tools.Point(ship,faces,draft,trim) - string = "%f %f %f %f %f %f %f %f %f %f %f\n" % (point.disp, point.draft, point.wet, point.mom, point.xcb, point.farea, point.KBt, point.BMt, point.Cb, point.Cf, point.Cm) - Output.write(string) - # Close file - Output.close() - self.dataFile = filename - msg = Translator.translate("Data saved at '" + self.dataFile + "'.\n") - FreeCAD.Console.PrintMessage(msg) - return False - - def saveLayout(self, trim): - """ Prints the pyxplot layout. - @param trim Trim in degrees. - @return True if error happens. - """ - filename = self.path + 'volume.pyxplot' - # Open the file - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Write header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains a script to plot transversal areas curve.\n") - Output.write(" # To use it execute:\n") - Output.write(" #\n") - Output.write(" # pyxplot %s\n" % (filename)) - Output.write(" #\n") - Output.write(" #################################################################\n") - # Write general options for hydrostatics - Output.write("set numeric display latex\n") - Output.write("set output '%s'\n" % (self.path + 'volume.eps')) - Output.write("set title '$trim$ = %g [degrees]'\n" % (trim)) - Output.write("set key below\n") - Output.write("set grid\n") - # Configure axis - Output.write("# Y axis\n") - Output.write("set ylabel '$\\bigtriangleup$ / $\\mathrm{ton}$'\n") - Output.write("set ytic\n") - Output.write("# X axis\n") - Output.write("set xlabel '$Draft$ / $\\mathrm{m}$'\n") - Output.write("set xtic\n") - Output.write("set x2label '\\textit{Wetted area} / $\\mathrm{m}^2$'\n") - Output.write("set x2tic\n") - Output.write("set x3label '\\textit{1cm trim moment} / $\\mathrm{ton} \\times \\mathrm{m}$'\n") - Output.write("set x3tic\n") - Output.write("set x4label '$XCB$ / $\\mathrm{m}$'\n") - Output.write("set x4tic\n") - Output.write("set axis x2 top\n") - Output.write("set axis x4 top\n") - Output.write("# Line styles\n") - Output.write("set style 1 line linetype 1 linewidth 1 colour rgb (0):(0):(0)\n") - Output.write("set style 2 line linetype 1 linewidth 1 colour rgb (1):(0):(0)\n") - Output.write("set style 3 line linetype 1 linewidth 1 colour rgb (0):(0):(1)\n") - Output.write("set style 4 line linetype 1 linewidth 1 colour rgb (0.1):(0.5):(0.1)\n") - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 2:1 title 'Draft' axes x1y1 with lines style 1, \\\n" % (self.dataFile)) - Output.write(" '' using 3:1 title 'Wetted area' axes x2y1 with lines style 2, \\\n") - Output.write(" '' using 4:1 title '1cm trim moment' axes x3y1 with lines style 3, \\\n") - Output.write(" '' using 5:1 title 'XCB' axes x4y1 with lines style 4\n") - # Prepare second plot - Output.write("set output '%s'\n" % (self.path + 'stability.eps')) - Output.write("# X axis\n") - Output.write("set x2label '\\textit{Floating area} / $\\mathrm{m}^2$'\n") - Output.write("set x2tic\n") - Output.write("set x3label '$KB_{T}$ / $\\mathrm{m}$'\n") - Output.write("set x3tic\n") - Output.write("set x4label '$BM_{T}$ / $\\mathrm{m}$'\n") - Output.write("set x4tic\n") - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 2:1 title 'Draft' axes x1y1 with lines style 1, \\\n" % (self.dataFile)) - Output.write(" '' using 6:1 title 'Floating area' axes x2y1 with lines style 2, \\\n") - Output.write(" '' using 7:1 title '$KB_{T}$' axes x3y1 with lines style 3, \\\n") - Output.write(" '' using 8:1 title '$BM_{T}$' axes x4y1 with lines style 4\n") - # Prepare third plot - Output.write("set output '%s'\n" % (self.path + 'coeffs.eps')) - Output.write("# X axis\n") - Output.write("set x2label '$C_{B}$'\n") - Output.write("set x2tic\n") - Output.write("set x3label '$C_{F}$'\n") - Output.write("set x3tic\n") - Output.write("set x4label '$C_{M}$'\n") - Output.write("set x4tic\n") - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 2:1 title 'Draft' axes x1y1 with lines style 1, \\\n" % (self.dataFile)) - Output.write(" '' using 9:1 title '$C_{B}$' axes x2y1 with lines style 2, \\\n") - Output.write(" '' using 10:1 title '$C_{F}$' axes x3y1 with lines style 3, \\\n") - Output.write(" '' using 11:1 title '$C_{M}$' axes x4y1 with lines style 4\n") - # Close file - self.layoutFile = filename - Output.close() - return False - - def execute(self): - """ Calls pyxplot in order to plot an save an image. - @return True if error happens. - """ - # Plot - filename = self.path + 'volume' - comm = "pyxplot %s" % (self.layoutFile) - if os.system(comm): - msg = Translator.translate("Can't execute pyxplot. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Plot will not generated\n") - FreeCAD.Console.PrintError(msg) - return True - # Convert volume image - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - # Convert stability image - filename = self.path + 'stability' - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - # Convert coefficients image - filename = self.path + 'coeffs' - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - return False - - def lineFaceSection(self,line,surface): - """ Returns the point of section of a line with a face - @param line Line object, that can be a curve. - @param surface Surface object (must be a Part::Shape) - @return Section points array, [] if line don't cut surface - """ - # Get initial data - result = [] - vertexes = line.Vertexes - nVertex = len(vertexes) - # Perform the cut - section = line.cut(surface) - # Filter all old points - points = section.Vertexes - return points - - def externalFaces(self, shape): - """ Returns detected external faces. - @param shape Shape where external faces wanted. - @return List of external faces detected. - """ - result = [] - faces = shape.Faces - bbox = shape.BoundBox - L = bbox.XMax - bbox.XMin - B = bbox.YMax - bbox.YMin - T = bbox.ZMax - bbox.ZMin - dist = math.sqrt(L*L + B*B + T*T) - FreeCAD.Console.PrintMessage("Computing external faces...\n") - # Valid/unvalid faces detection loop - for i in range(0,len(faces)): - FreeCAD.Console.PrintMessage("\t%d / %d\n" % (i+1, len(faces))) - f = faces[i] - # Create a line normal to surface at middle point - u = 0.0 - v = 0.0 - try: - surf = f.Surface - u = 0.5*(surf.getUKnots()[0]+surf.getUKnots()[-1]) - v = 0.5*(surf.getVKnots()[0]+surf.getVKnots()[-1]) - except: - cog = f.CenterOfMass - [u,v] = f.Surface.parameter(cog) - p0 = f.valueAt(u,v) - try: - n = f.normalAt(u,v).normalize() - except: - continue - p1 = p0 + n.multiply(1.5*dist) - line = Part.makeLine(p0, p1) - # Look for faces in front of this - nPoints = 0 - for j in range(0,len(faces)): - f2 = faces[j] - section = self.lineFaceSection(line, f2) - if len(section) <= 2: - continue - # Add points discarding start and end - nPoints = nPoints + len(section) - 2 - # In order to avoid special directions we can modify line - # normal a little bit. - angle = 5 - line.rotate(p0,Vector(1,0,0),angle) - line.rotate(p0,Vector(0,1,0),angle) - line.rotate(p0,Vector(0,0,1),angle) - nPoints2 = 0 - for j in range(0,len(faces)): - if i == j: - continue - f2 = faces[j] - section = self.lineFaceSection(line, f2) - if len(section) <= 2: - continue - # Add points discarding start and end - nPoints2 = nPoints + len(section) - 2 - # If the number of intersection points is pair, is a - # external face. So if we found an odd points intersection, - # face must be discarded. - if (nPoints % 2) or (nPoints2 % 2): - continue - result.append(f) - return result diff --git a/src/Mod/Ship/shipHydrostatics/PlotAux.py b/src/Mod/Ship/shipHydrostatics/PlotAux.py new file mode 100644 index 0000000000..316bed13e6 --- /dev/null +++ b/src/Mod/Ship/shipHydrostatics/PlotAux.py @@ -0,0 +1,478 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import os +import math +# Qt library +from PyQt4 import QtGui,QtCore +# FreeCAD modules +import FreeCAD,FreeCADGui +from FreeCAD import Base, Vector +import Part, Image, ImageGui +# FreeCADShip modules +from shipUtils import Paths +import Tools + +header = """ ################################################################# + + ##### #### ### #### ##### # # ### #### + # # # # # # # # # # # # + # ## #### #### # # # # # # # # # # # + #### # # # # # # # ##### # # ## ## ##### # #### + # # #### #### # # # # # # # # # # + # # # # # # # # # # # # # # + # # #### #### ### # # #### ##### # # ### # + + ################################################################# +""" + +class Plot(object): + def __init__(self, ship, trim, drafts): + """ Constructor. performs plot and show it (Using pyxplot). + @param ship Selected ship instance + @param trim Trim in degrees. + @param drafts List of drafts to be performed. + """ + # Compute data + # Get external faces + faces = self.externalFaces(ship.Shape) + if len(faces) == 0: + msg = QtGui.QApplication.translate("ship_console", "Can't detect external faces from ship object", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + '\n') + return + else: + faces = Part.makeShell(faces) + # Print data + msg = QtGui.QApplication.translate("ship_console", "Computing hydrostatics", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '...\n') + self.points = [] + for i in range(0,len(drafts)): + FreeCAD.Console.PrintMessage("\t%d / %d\n" % (i+1, len(drafts))) + draft = drafts[i] + point = Tools.Point(ship,faces,draft,trim) + self.points.append(point) + # Try to plot + self.plotVolume() + self.plotStability() + self.plotCoeffs() + # Save data + if self.createDirectory(): + return + if self.saveData(ship, trim, drafts): + return + + def plotVolume(self): + """ Perform volumetric hydrostatics. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('Volume') + except ImportError: + msg = QtGui.QApplication.translate("ship_console", "Plot module is disabled, can't perform plot", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + '\n') + return True + # Generate sets of axes + Plot.grid(True) + for i in range(0,3): + ax = Plot.addNewAxes() + # Y axes can be moved to right + ax.yaxis.tick_right() + ax.spines['right'].set_color((0.0,0.0,0.0)) + ax.spines['left'].set_color('none') + ax.yaxis.set_ticks_position('right') + ax.yaxis.set_label_position('right') + # And X axes moved down with an offset + for loc, spine in ax.spines.iteritems(): + if loc in ['bottom', 'top']: + spine.set_position(('outward',(i+1)*35)) + Plot.grid(True) + # Setup data + disp = [] + draft = [] + warea = [] + t1cm = [] + xcb = [] + for i in range(0,len(self.points)): + disp.append(self.points[i].disp) + draft.append(self.points[i].draft) + warea.append(self.points[i].wet) + t1cm.append(self.points[i].mom) + xcb.append(self.points[i].xcb) + # Set plot size + axes = Plot.axesList() + for ax in axes: + ax.set_position([0.1, 0.2, 0.8, 0.75]) + # Plot curves + plt.axes = axes[0] + serie = Plot.plot(draft,disp,r'$T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,0.0)) + Plot.xlabel(r'$T \; \mathrm{m}$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[1] + serie = Plot.plot(warea,disp,r'Wetted area') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((1.0,0.0,0.0)) + Plot.xlabel(r'$Wetted \; area \; \mathrm{m}^2$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[2] + serie = Plot.plot(t1cm,disp,r'Moment to trim 1cm') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,1.0)) + Plot.xlabel(r'$Moment \; to \; trim \; 1 \mathrm{cm} \; \mathrm{tons} \; \times \; \mathrm{m}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[3] + serie = Plot.plot(xcb,disp,r'$XCB$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.2,0.8,0.2)) + Plot.xlabel(r'$XCB \; \mathrm{m}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + # Show legend + Plot.legend(True) + # End + plt.update() + return False + + def plotStability(self): + """ Perform stability hydrostatics. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('Stability') + except ImportError: + return True + # Generate sets of axes + Plot.grid(True) + for i in range(0,3): + ax = Plot.addNewAxes() + # Y axes can be moved to right + ax.yaxis.tick_right() + ax.spines['right'].set_color((0.0,0.0,0.0)) + ax.spines['left'].set_color('none') + ax.yaxis.set_ticks_position('right') + ax.yaxis.set_label_position('right') + # And X axes moved down with an offset + for loc, spine in ax.spines.iteritems(): + if loc in ['bottom', 'top']: + spine.set_position(('outward',(i+1)*35)) + Plot.grid(True) + # Setup data + disp = [] + draft = [] + farea = [] + kbt = [] + bmt = [] + for i in range(0,len(self.points)): + disp.append(self.points[i].disp) + draft.append(self.points[i].draft) + farea.append(self.points[i].farea) + kbt.append(self.points[i].KBt) + bmt.append(self.points[i].BMt) + # Set plot size + axes = Plot.axesList() + for ax in axes: + ax.set_position([0.1, 0.2, 0.8, 0.75]) + # Plot curves + plt.axes = axes[0] + serie = Plot.plot(draft,disp,r'$T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,0.0)) + Plot.xlabel(r'$T \; \mathrm{m}$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[1] + serie = Plot.plot(farea,disp,r'Floating area') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((1.0,0.0,0.0)) + Plot.xlabel(r'$Floating \; area \; \mathrm{m}^2$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[2] + serie = Plot.plot(kbt,disp,r'$KB_T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,1.0)) + Plot.xlabel(r'$KB_T \; \mathrm{m}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[3] + serie = Plot.plot(bmt,disp,r'$BM_T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.2,0.8,0.2)) + Plot.xlabel(r'$BM_T \; \mathrm{m}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + # Show legend + Plot.legend(True) + # End + plt.update() + return False + + def plotCoeffs(self): + """ Perform stability hydrostatics. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('Coefficients') + except ImportError: + return True + # Generate sets of axes + Plot.grid(True) + for i in range(0,3): + ax = Plot.addNewAxes() + # Y axes can be moved to right + ax.yaxis.tick_right() + ax.spines['right'].set_color((0.0,0.0,0.0)) + ax.spines['left'].set_color('none') + ax.yaxis.set_ticks_position('right') + ax.yaxis.set_label_position('right') + # And X axes moved down with an offset + for loc, spine in ax.spines.iteritems(): + if loc in ['bottom', 'top']: + spine.set_position(('outward',(i+1)*40)) + Plot.grid(True) + # Setup data + disp = [] + draft = [] + cb = [] + cf = [] + cm = [] + for i in range(0,len(self.points)): + disp.append(self.points[i].disp) + draft.append(self.points[i].draft) + cb.append(self.points[i].Cb) + cf.append(self.points[i].Cf) + cm.append(self.points[i].Cm) + # Set plot size + axes = Plot.axesList() + for ax in axes: + ax.set_position([0.1, 0.2, 0.8, 0.75]) + # Plot curves + plt.axes = axes[0] + serie = Plot.plot(draft,disp,r'$T$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,0.0)) + Plot.xlabel(r'$T \; \mathrm{m}$') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[1] + serie = Plot.plot(cb,disp,r'$Cb$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((1.0,0.0,0.0)) + Plot.xlabel(r'$Cb$ (Block coefficient)') + Plot.ylabel(r'$\bigtriangleup \; \mathrm{tons}$') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[2] + serie = Plot.plot(cf,disp,r'$Cf$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.0,0.0,1.0)) + Plot.xlabel(r'$Cf$ (floating area coefficient)') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + plt.axes = axes[3] + serie = Plot.plot(cm,disp,r'$Cm$') + serie.line.set_linestyle('-') + serie.line.set_linewidth(2.0) + serie.line.set_color((0.2,0.8,0.2)) + Plot.xlabel(r'$Cm$ (Main section coefficient)') + plt.axes.xaxis.label.set_fontsize(15) + plt.axes.yaxis.label.set_fontsize(15) + # Show legend + Plot.legend(True) + # End + plt.update() + return False + + def createDirectory(self): + """ Create needed folder to write data and scripts. + @return True if error happens. + """ + self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" + if not os.path.exists(self.path): + os.makedirs(self.path) + if not os.path.exists(self.path): + msg = QtGui.QApplication.translate("ship_console", "Can't create folder", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ self.path + "\'\n") + return False + + def saveData(self, ship, trim, drafts): + """ Write data file. + @param ship Selected ship instance + @param trim Trim in degrees. + @param drafts List of drafts to be performed. + @return True if error happens. + """ + # Open the file + filename = self.path + 'hydrostatics.dat' + try: + Output = open(filename, "w") + except IOError: + msg = QtGui.QApplication.translate("ship_console", "Can't write to file", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ filename + "\'\n") + return True + # Print header + Output.write(header) + Output.write(" #\n") + Output.write(" # File automatically exported by FreeCAD-Ship\n") + Output.write(" # This file contains transversal areas data, filled with following columns:\n") + Output.write(" # 1: Ship displacement [ton]\n") + Output.write(" # 2: Draft [m]\n") + Output.write(" # 3: Wetted surface [m2]\n") + Output.write(" # 4: 1cm triming ship moment [ton m]\n") + Output.write(" # 5: Bouyance center x coordinate\n") + Output.write(" # 6: Floating area\n") + Output.write(" # 7: KBt\n") + Output.write(" # 8: BMt\n") + Output.write(" # 9: Cb (block coefficient)\n") + Output.write(" # 10: Cf (Floating coefficient)\n") + Output.write(" # 11: Cm (Main frame coefficient)\n") + Output.write(" #\n") + Output.write(" #################################################################\n") + # Print data + for i in range(0,len(drafts)): + point = self.points[i] + string = "%f %f %f %f %f %f %f %f %f %f %f\n" % (point.disp, point.draft, point.wet, point.mom, point.xcb, point.farea, point.KBt, point.BMt, point.Cb, point.Cf, point.Cm) + Output.write(string) + # Close file + Output.close() + self.dataFile = filename + msg = QtGui.QApplication.translate("ship_console", "Data saved", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + ':\n\t' + "\'"+ self.dataFile + "\'\n") + return False + + def lineFaceSection(self,line,surface): + """ Returns the point of section of a line with a face + @param line Line object, that can be a curve. + @param surface Surface object (must be a Part::Shape) + @return Section points array, [] if line don't cut surface + """ + # Get initial data + result = [] + vertexes = line.Vertexes + nVertex = len(vertexes) + # Perform the cut + section = line.cut(surface) + # Filter all old points + points = section.Vertexes + return points + + def externalFaces(self, shape): + """ Returns detected external faces. + @param shape Shape where external faces wanted. + @return List of external faces detected. + """ + result = [] + faces = shape.Faces + bbox = shape.BoundBox + L = bbox.XMax - bbox.XMin + B = bbox.YMax - bbox.YMin + T = bbox.ZMax - bbox.ZMin + dist = math.sqrt(L*L + B*B + T*T) + msg = QtGui.QApplication.translate("ship_console", "Computing external faces", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '...\n') + # Valid/unvalid faces detection loop + for i in range(0,len(faces)): + FreeCAD.Console.PrintMessage("\t%d / %d\n" % (i+1, len(faces))) + f = faces[i] + # Create a line normal to surface at middle point + u = 0.0 + v = 0.0 + try: + surf = f.Surface + u = 0.5*(surf.getUKnots()[0]+surf.getUKnots()[-1]) + v = 0.5*(surf.getVKnots()[0]+surf.getVKnots()[-1]) + except: + cog = f.CenterOfMass + [u,v] = f.Surface.parameter(cog) + p0 = f.valueAt(u,v) + try: + n = f.normalAt(u,v).normalize() + except: + continue + p1 = p0 + n.multiply(1.5*dist) + line = Part.makeLine(p0, p1) + # Look for faces in front of this + nPoints = 0 + for j in range(0,len(faces)): + f2 = faces[j] + section = self.lineFaceSection(line, f2) + if len(section) <= 2: + continue + # Add points discarding start and end + nPoints = nPoints + len(section) - 2 + # In order to avoid special directions we can modify line + # normal a little bit. + angle = 5 + line.rotate(p0,Vector(1,0,0),angle) + line.rotate(p0,Vector(0,1,0),angle) + line.rotate(p0,Vector(0,0,1),angle) + nPoints2 = 0 + for j in range(0,len(faces)): + if i == j: + continue + f2 = faces[j] + section = self.lineFaceSection(line, f2) + if len(section) <= 2: + continue + # Add points discarding start and end + nPoints2 = nPoints + len(section) - 2 + # If the number of intersection points is pair, is a + # external face. So if we found an odd points intersection, + # face must be discarded. + if (nPoints % 2) or (nPoints2 % 2): + continue + result.append(f) + return result diff --git a/src/Mod/Ship/shipHydrostatics/TaskPanel.py b/src/Mod/Ship/shipHydrostatics/TaskPanel.py index b5398690eb..bc5e2d967f 100644 --- a/src/Mod/Ship/shipHydrostatics/TaskPanel.py +++ b/src/Mod/Ship/shipHydrostatics/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import math @@ -28,202 +28,217 @@ import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore # Module -import Plot +import PlotAux import Instance -from shipUtils import Paths, Translator +from shipUtils import Paths import Tools class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipHydrostatics/TaskPanel.ui" - self.ship = None + def __init__(self): + self.ui = Paths.modulePath() + "/shipHydrostatics/TaskPanel.ui" + self.ship = None - def accept(self): - if not self.ship: - return False - self.save() - draft = self.form.minDraft.value() - drafts = [draft] - dDraft = (self.form.maxDraft.value() - self.form.minDraft.value())/(self.form.nDraft.value()-1) - for i in range(1,self.form.nDraft.value()): - draft = draft + dDraft - drafts.append(draft) - Plot.Plot(self.ship, self.form.trim.value(), drafts) - return True + def accept(self): + if not self.ship: + return False + self.save() + draft = self.form.minDraft.value() + drafts = [draft] + dDraft = (self.form.maxDraft.value() - self.form.minDraft.value())/(self.form.nDraft.value()-1) + for i in range(1,self.form.nDraft.value()): + draft = draft + dDraft + drafts.append(draft) + PlotAux.Plot(self.ship, self.form.trim.value(), drafts) + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") - form.minDraft = form.findChild(QtGui.QDoubleSpinBox, "MinDraft") - form.maxDraft = form.findChild(QtGui.QDoubleSpinBox, "MaxDraft") - form.nDraft = form.findChild(QtGui.QSpinBox, "NDraft") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.trim, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.minDraft, QtCore.SIGNAL("valueChanged(double)"), self.onData) - QtCore.QObject.connect(form.maxDraft, QtCore.SIGNAL("valueChanged(double)"), self.onData) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") + form.minDraft = form.findChild(QtGui.QDoubleSpinBox, "MinDraft") + form.maxDraft = form.findChild(QtGui.QDoubleSpinBox, "MaxDraft") + form.nDraft = form.findChild(QtGui.QSpinBox, "NDraft") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.trim, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.minDraft, QtCore.SIGNAL("valueChanged(double)"), self.onData) + QtCore.QObject.connect(form.maxDraft, QtCore.SIGNAL("valueChanged(double)"), self.onData) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get bounds - bbox = self.ship.Shape.BoundBox - # Set trim - flag = True - try: - props.index("HydrostaticsTrim") - except ValueError: - flag = False - if flag: - self.form.trim.setValue(self.ship.HydrostaticsTrim) - # Set drafts - self.form.maxDraft.setValue(1.1*self.ship.Draft) - self.form.minDraft.setValue(0.9*self.ship.Draft) - # Try to use saved values - props = self.ship.PropertiesList - flag = True - try: - props.index("HydrostaticsMinDraft") - except ValueError: - flag = False - if flag: - self.form.minDraft.setValue(self.ship.HydrostaticsMinDraft) - flag = True - try: - props.index("HydrostaticsMaxDraft") - except ValueError: - flag = False - if flag: - self.form.maxDraft.setValue(self.ship.HydrostaticsMaxDraft) - self.form.maxDraft.setMaximum(bbox.ZMax) - self.form.minDraft.setMinimum(bbox.ZMin) - self.form.maxDraft.setMinimum(self.form.minDraft.value()) - self.form.minDraft.setMaximum(self.form.maxDraft.value()) - flag = True - try: - props.index("HydrostaticsNDraft") - except ValueError: - flag = False - if flag: - self.form.nDraft.setValue(self.ship.HydrostaticsNDraft) - # Update GUI - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", "Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get bounds + bbox = self.ship.Shape.BoundBox + # Set trim + flag = True + try: + props.index("HydrostaticsTrim") + except ValueError: + flag = False + if flag: + self.form.trim.setValue(self.ship.HydrostaticsTrim) + # Set drafts + self.form.maxDraft.setValue(1.1*self.ship.Draft) + self.form.minDraft.setValue(0.9*self.ship.Draft) + # Try to use saved values + props = self.ship.PropertiesList + flag = True + try: + props.index("HydrostaticsMinDraft") + except ValueError: + flag = False + if flag: + self.form.minDraft.setValue(self.ship.HydrostaticsMinDraft) + flag = True + try: + props.index("HydrostaticsMaxDraft") + except ValueError: + flag = False + if flag: + self.form.maxDraft.setValue(self.ship.HydrostaticsMaxDraft) + self.form.maxDraft.setMaximum(bbox.ZMax) + self.form.minDraft.setMinimum(bbox.ZMin) + self.form.maxDraft.setMinimum(self.form.minDraft.value()) + self.form.minDraft.setMaximum(self.form.maxDraft.value()) + flag = True + try: + props.index("HydrostaticsNDraft") + except ValueError: + flag = False + if flag: + self.form.nDraft.setValue(self.ship.HydrostaticsNDraft) + # Update GUI + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Plot hydrostatics")) - self.form.findChild(QtGui.QLabel, "TrimLabel").setText(Translator.translate("Trim")) - self.form.findChild(QtGui.QLabel, "MinDraftLabel").setText(Translator.translate("Minimum draft")) - self.form.findChild(QtGui.QLabel, "MaxDraftLabel").setText(Translator.translate("Maximum draft")) - self.form.findChild(QtGui.QLabel, "NDraftLabel").setText(Translator.translate("Number of points")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_hydrostatic","Plot hydrostatics", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "TrimLabel").setText(QtGui.QApplication.translate("ship_hydrostatic","Trim", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "MinDraftLabel").setText(QtGui.QApplication.translate("ship_hydrostatic","Minimum draft", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "MaxDraftLabel").setText(QtGui.QApplication.translate("ship_hydrostatic","Maximum draft", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "NDraftLabel").setText(QtGui.QApplication.translate("ship_hydrostatic","Number of points", + None,QtGui.QApplication.UnicodeUTF8)) - def onData(self, value): - """ Method called when input data is changed. - @param value Changed value. - """ - if not self.ship: - return - self.form.maxDraft.setMinimum(self.form.minDraft.value()) - self.form.minDraft.setMaximum(self.form.maxDraft.value()) + def onData(self, value): + """ Method called when input data is changed. + @param value Changed value. + """ + if not self.ship: + return + self.form.maxDraft.setMinimum(self.form.minDraft.value()) + self.form.minDraft.setMaximum(self.form.maxDraft.value()) - def save(self): - """ Saves data into ship instance. - """ - props = self.ship.PropertiesList - try: - props.index("HydrostaticsTrim") - except ValueError: - self.ship.addProperty("App::PropertyFloat","HydrostaticsTrim","Ship", str(Translator.translate("Hydrostatics trim selected [m]"))) - self.ship.HydrostaticsTrim = self.form.trim.value() - try: - props.index("HydrostaticsMinDraft") - except ValueError: - self.ship.addProperty("App::PropertyFloat","HydrostaticsMinDraft","Ship", str(Translator.translate("Hydrostatics minimum draft selected [m]"))) - self.ship.HydrostaticsMinDraft = self.form.minDraft.value() - try: - props.index("HydrostaticsMaxDraft") - except ValueError: - self.ship.addProperty("App::PropertyFloat","HydrostaticsMaxDraft","Ship", str(Translator.translate("Hydrostatics maximum draft selected [m]"))) - self.ship.HydrostaticsMaxDraft = self.form.maxDraft.value() - try: - props.index("HydrostaticsNDraft") - except ValueError: - self.ship.addProperty("App::PropertyInteger","HydrostaticsNDraft","Ship", str(Translator.translate("Hydrostatics number of points selected [m]"))) - self.ship.HydrostaticsNDraft = self.form.nDraft.value() + def save(self): + """ Saves data into ship instance. + """ + props = self.ship.PropertiesList + try: + props.index("HydrostaticsTrim") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_hydrostatic","Hydrostatics tool trim selected", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","HydrostaticsTrim","Ship", tooltip) + self.ship.HydrostaticsTrim = self.form.trim.value() + try: + props.index("HydrostaticsMinDraft") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_hydrostatic","Hydrostatics tool minimum draft selected [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","HydrostaticsMinDraft","Ship", tooltip) + self.ship.HydrostaticsMinDraft = self.form.minDraft.value() + try: + props.index("HydrostaticsMaxDraft") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_hydrostatic","Hydrostatics tool maximum draft selected [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloat","HydrostaticsMaxDraft","Ship", tooltip) + self.ship.HydrostaticsMaxDraft = self.form.maxDraft.value() + try: + props.index("HydrostaticsNDraft") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_hydrostatic","Hydrostatics tool number of points selected", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyInteger","HydrostaticsNDraft","Ship", tooltip) + self.ship.HydrostaticsNDraft = self.form.nDraft.value() def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipHydrostatics/TaskPanel.ui b/src/Mod/Ship/shipHydrostatics/TaskPanel.ui index 23367df691..8542a7ab1f 100644 --- a/src/Mod/Ship/shipHydrostatics/TaskPanel.ui +++ b/src/Mod/Ship/shipHydrostatics/TaskPanel.ui @@ -17,7 +17,7 @@ - Create new ship + Plot Hydrostatics @@ -25,7 +25,7 @@ - + 0 0 @@ -53,9 +53,15 @@ + + + 0 + 0 + + - 24 + 16777215 16777215 @@ -77,131 +83,125 @@ Drafts - - - - 9 - 19 - 231 - 181 - - - - - QLayout::SetDefaultConstraint - - - - - - 0 - 0 - - - - Minimum draft - - - - - - - 3 - - - 0.010000000000000 - - - - - - - - 0 - 0 - - - - Maximum draft - - - - - - - - 0 - 0 - - - - 3 - - - 0.010000000000000 - - - - - - - - 0 - 0 - - - - Number of points - - - - - - - - 0 - 0 - - - - m - - - - - - - - 0 - 0 - - - - m - - - - - - - - 0 - 0 - - - - 2 - - - 9999 - - - 11 - - - - - + + + + + QLayout::SetDefaultConstraint + + + + + + 0 + 0 + + + + m + + + + + + + + 0 + 0 + + + + Number of points + + + + + + + + 0 + 0 + + + + Minimum draft + + + + + + + + 0 + 0 + + + + m + + + + + + + + 0 + 0 + + + + 2 + + + 9999 + + + 11 + + + + + + + + 0 + 0 + + + + 3 + + + 0.010000000000000 + + + + + + + 3 + + + 0.010000000000000 + + + + + + + + 0 + 0 + + + + Maximum draft + + + + + + diff --git a/src/Mod/Ship/shipHydrostatics/Tools.py b/src/Mod/Ship/shipHydrostatics/Tools.py index a42c9b774b..8e4faab288 100644 --- a/src/Mod/Ship/shipHydrostatics/Tools.py +++ b/src/Mod/Ship/shipHydrostatics/Tools.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import math @@ -32,393 +32,393 @@ import Instance from shipUtils import Math def areas(ship, draft, roll=0.0, trim=0.0, yaw=0.0, n=30): - """ Compute ship transversal areas. - @param ship Ship instance. - @param draft Ship draft. - @param roll Ship roll angle. - @param trim Ship trim angle. - @param yaw Ship yaw angle. Ussually you don't want to use this - value. - @param n Number of sections to perform. - @return Transversal areas (every area value is composed by x - coordinate and computed area) - """ - if n < 2: - return [] - # We will take a duplicate of ship shape in order to place it - shape = ship.Shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - # Rotations composition is Roll->Trim->Yaw - shape.rotate(Vector(0.0,0.0,0.0), Vector(1.0,0.0,0.0), roll) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,0.0,1.0), yaw) - # Now we need to know the x range of values - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - dx = (xmax - xmin) / (n-1.0) - # First area is equal to zero. - areas = [[xmin, 0.0]] - # Since we need face entities, in order to compute sections we will - # create boxes with front face at transversal area position, - # compute solid common, divide by faces, and preserve only desired - # ones. - App.Console.PrintMessage("Computing transversal areas...\n") - App.Console.PrintMessage("Some Inventor representation errors can be shown, ignore it please.\n") - for i in range(1,n-1): - App.Console.PrintMessage("%d / %d\n" % (i, n-2)) - x = xmin + i*dx - area = 0.0 - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(1.5*L + x, 3.0*B, - bbox.ZMin + 1.0, p) - # Compute common part with ship - for s in shape.Solids: - # Get solids intersection - try: - common = box.common(s) - except: - continue - if common.Volume == 0.0: - continue - # Recompute object adding it to the scene, when we have - # computed desired data we can remove it. - try: - Part.show(common) - except: - continue - # Divide by faces and compute only section placed ones - faces = common.Faces - for f in faces: - faceBounds = f.BoundBox - # Orientation filter - if faceBounds.XMax - faceBounds.XMin > 0.00001: - continue - # Place filter - if abs(faceBounds.XMax - x) > 0.00001: - continue - # Valid face, compute area - area = area + f.Area - # Destroy last object generated - App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) - # Append transversal area - areas.append([x, area]) - # Last area is equal to zero - areas.append([xmax, 0.0]) - App.Console.PrintMessage("Done!\n") - return areas + """ Compute ship transversal areas. + @param ship Ship instance. + @param draft Ship draft. + @param roll Ship roll angle. + @param trim Ship trim angle. + @param yaw Ship yaw angle. Ussually you don't want to use this + value. + @param n Number of sections to perform. + @return Transversal areas (every area value is composed by x + coordinate and computed area) + """ + if n < 2: + return [] + # We will take a duplicate of ship shape in order to place it + shape = ship.Shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + # Rotations composition is Roll->Trim->Yaw + shape.rotate(Vector(0.0,0.0,0.0), Vector(1.0,0.0,0.0), roll) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,0.0,1.0), yaw) + # Now we need to know the x range of values + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + dx = (xmax - xmin) / (n-1.0) + # First area is equal to zero. + areas = [[xmin, 0.0]] + # Since we need face entities, in order to compute sections we will + # create boxes with front face at transversal area position, + # compute solid common, divide by faces, and preserve only desired + # ones. + App.Console.PrintMessage("Computing transversal areas...\n") + App.Console.PrintMessage("Some Inventor representation errors can be shown, ignore it please.\n") + for i in range(1,n-1): + App.Console.PrintMessage("%d / %d\n" % (i, n-2)) + x = xmin + i*dx + area = 0.0 + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(1.5*L + x, 3.0*B, - bbox.ZMin + 1.0, p) + # Compute common part with ship + for s in shape.Solids: + # Get solids intersection + try: + common = box.common(s) + except: + continue + if common.Volume == 0.0: + continue + # Recompute object adding it to the scene, when we have + # computed desired data we can remove it. + try: + Part.show(common) + except: + continue + # Divide by faces and compute only section placed ones + faces = common.Faces + for f in faces: + faceBounds = f.BoundBox + # Orientation filter + if faceBounds.XMax - faceBounds.XMin > 0.00001: + continue + # Place filter + if abs(faceBounds.XMax - x) > 0.00001: + continue + # Valid face, compute area + area = area + f.Area + # Destroy last object generated + App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) + # Append transversal area + areas.append([x, area]) + # Last area is equal to zero + areas.append([xmax, 0.0]) + App.Console.PrintMessage("Done!\n") + return areas def displacement(ship, draft, roll=0.0, trim=0.0, yaw=0.0): - """ Compute ship displacement. - @param ship Ship instance. - @param draft Ship draft. - @param roll Ship roll angle. - @param trim Ship trim angle. - @param yaw Ship yaw angle. Ussually you don't want to use this - value. - @return [disp, B, Cb], \n - disp = Ship displacement [ton]. - B = Bouyance center [m]. - Cb = Block coefficient. - @note Bouyance center will returned as FreeCAD.Vector class. - @note Returned Bouyance center is in non modified ship coordinates - """ - # We will take a duplicate of ship shape in order to place it - shape = ship.Shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - # Rotations composition is Roll->Trim->Yaw - shape.rotate(Vector(0.0,0.0,0.0), Vector(1.0,0.0,0.0), roll) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,0.0,1.0), yaw) - # Now we need to know box dimensions - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(3.0*L, 3.0*B, -bbox.ZMin + 1.0, p) - vol = 0.0 - cog = Vector() - for solid in shape.Solids: - # Compute common part with ship - try: - common = box.common(solid) - except: - continue - # Get data - vol = vol + common.Volume - for s in common.Solids: - sCoG = s.CenterOfMass - cog.x = cog.x + sCoG.x*s.Volume - cog.y = cog.y + sCoG.y*s.Volume - cog.z = cog.z + sCoG.z*s.Volume - cog.x = cog.x / vol - cog.y = cog.y / vol - cog.z = cog.z / vol - Vol = L*B*abs(bbox.ZMin) - # Undo transformations - B = Vector() - B.x = cog.x*math.cos(math.radians(-yaw)) - cog.y*math.sin(math.radians(-yaw)) - B.y = cog.x*math.sin(math.radians(-yaw)) + cog.y*math.cos(math.radians(-yaw)) - B.z = cog.z - cog.x = B.x*math.cos(math.radians(-trim)) - B.z*math.sin(math.radians(-trim)) - cog.y = B.y - cog.z = B.x*math.sin(math.radians(-trim)) + B.z*math.cos(math.radians(-trim)) - B.x = cog.x - B.y = cog.y*math.cos(math.radians(-roll)) - cog.z*math.sin(math.radians(-roll)) - B.z = cog.y*math.sin(math.radians(-roll)) + cog.z*math.cos(math.radians(-roll)) - B.z = B.z + draft - # Return data - dens = 1.025 # [tons/m3], salt water - return [dens*vol, B, vol/Vol] + """ Compute ship displacement. + @param ship Ship instance. + @param draft Ship draft. + @param roll Ship roll angle. + @param trim Ship trim angle. + @param yaw Ship yaw angle. Ussually you don't want to use this + value. + @return [disp, B, Cb], \n + disp = Ship displacement [ton]. + B = Bouyance center [m]. + Cb = Block coefficient. + @note Bouyance center will returned as FreeCAD.Vector class. + @note Returned Bouyance center is in non modified ship coordinates + """ + # We will take a duplicate of ship shape in order to place it + shape = ship.Shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + # Rotations composition is Roll->Trim->Yaw + shape.rotate(Vector(0.0,0.0,0.0), Vector(1.0,0.0,0.0), roll) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,0.0,1.0), yaw) + # Now we need to know box dimensions + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(3.0*L, 3.0*B, -bbox.ZMin + 1.0, p) + vol = 0.0 + cog = Vector() + for solid in shape.Solids: + # Compute common part with ship + try: + common = box.common(solid) + except: + continue + # Get data + vol = vol + common.Volume + for s in common.Solids: + sCoG = s.CenterOfMass + cog.x = cog.x + sCoG.x*s.Volume + cog.y = cog.y + sCoG.y*s.Volume + cog.z = cog.z + sCoG.z*s.Volume + cog.x = cog.x / vol + cog.y = cog.y / vol + cog.z = cog.z / vol + Vol = L*B*abs(bbox.ZMin) + # Undo transformations + B = Vector() + B.x = cog.x*math.cos(math.radians(-yaw)) - cog.y*math.sin(math.radians(-yaw)) + B.y = cog.x*math.sin(math.radians(-yaw)) + cog.y*math.cos(math.radians(-yaw)) + B.z = cog.z + cog.x = B.x*math.cos(math.radians(-trim)) - B.z*math.sin(math.radians(-trim)) + cog.y = B.y + cog.z = B.x*math.sin(math.radians(-trim)) + B.z*math.cos(math.radians(-trim)) + B.x = cog.x + B.y = cog.y*math.cos(math.radians(-roll)) - cog.z*math.sin(math.radians(-roll)) + B.z = cog.y*math.sin(math.radians(-roll)) + cog.z*math.cos(math.radians(-roll)) + B.z = B.z + draft + # Return data + dens = 1.025 # [tons/m3], salt water + return [dens*vol, B, vol/Vol] def wettedArea(shape, draft, trim): - """ Calculate wetted ship area. - @param shape Ship external faces instance. - @param draft Draft. - @param trim Trim in degrees. - @return Wetted ship area. - """ - area = 0.0 - nObjects = 0 - # We will take a duplicate of ship shape in order to place it - shape = shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) - # Now we need to know the x range of values - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(3.0*L, 3.0*B, - bbox.ZMin + 1.0, p) - # Compute common part with ship - for f in shape.Faces: - # Get solids intersection - try: - common = box.common(f) - except: - continue - area = area + common.Area - return area + """ Calculate wetted ship area. + @param shape Ship external faces instance. + @param draft Draft. + @param trim Trim in degrees. + @return Wetted ship area. + """ + area = 0.0 + nObjects = 0 + # We will take a duplicate of ship shape in order to place it + shape = shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) + # Now we need to know the x range of values + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(3.0*L, 3.0*B, - bbox.ZMin + 1.0, p) + # Compute common part with ship + for f in shape.Faces: + # Get solids intersection + try: + common = box.common(f) + except: + continue + area = area + common.Area + return area def moment(ship, draft, trim, disp, xcb): - """ Calculate triming 1cm ship moment. - @param ship Selected ship instance - @param draft Draft. - @param trim Trim in degrees. - @param disp Displacement at selected draft and trim. - @param xcb Bouyance center at selected draft and trim. - @return Moment to trim ship 1cm (ton m). - @note Moment is positive when produce positive trim. - """ - factor = 10.0 - angle = factor*math.degrees(math.atan2(0.01,0.5*ship.Length)) - newTrim = trim + angle - data = displacement(ship,draft,0.0,newTrim,0.0) - mom0 = -disp*xcb - mom1 = -data[0]*data[1].x - return (mom1 - mom0) / factor + """ Calculate triming 1cm ship moment. + @param ship Selected ship instance + @param draft Draft. + @param trim Trim in degrees. + @param disp Displacement at selected draft and trim. + @param xcb Bouyance center at selected draft and trim. + @return Moment to trim ship 1cm (ton m). + @note Moment is positive when produce positive trim. + """ + factor = 10.0 + angle = factor*math.degrees(math.atan2(0.01,0.5*ship.Length)) + newTrim = trim + angle + data = displacement(ship,draft,0.0,newTrim,0.0) + mom0 = -disp*xcb + mom1 = -data[0]*data[1].x + return (mom1 - mom0) / factor def FloatingArea(ship, draft, trim): - """ Calculate ship floating area. - @param ship Selected ship instance - @param draft Draft. - @param trim Trim in degrees. - @return Ship floating area, and floating coefficient. - """ - area = 0.0 - cf = 0.0 - maxX = 0.0 - minX = 0.0 - maxY = 0.0 - minY = 0.0 - # We will take a duplicate of ship shape in order to place it - shape = ship.Shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) - # Now we need to know the x range of values - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(3.0*L, 3.0*B, - bbox.ZMin + 1.0, p) - # Compute common part with ship - for s in shape.Solids: - # Get solids intersection - try: - common = box.common(s) - except: - continue - if common.Volume == 0.0: - continue - # Recompute object adding it to the scene, when we have - # computed desired data we can remove it. - try: - Part.show(common) - except: - continue - # Divide by faces and compute only section placed ones - faces = common.Faces - for f in faces: - faceBounds = f.BoundBox - # Orientation filter - if faceBounds.ZMax - faceBounds.ZMin > 0.00001: - continue - # Place filter - if abs(faceBounds.ZMax) > 0.00001: - continue - # Valid face, compute area - area = area + f.Area - maxX = max(maxX, faceBounds.XMax) - minX = min(minX, faceBounds.XMin) - maxY = max(maxY, faceBounds.YMax) - minY = min(minY, faceBounds.YMin) - # Destroy last object generated - App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) - dx = maxX - minX - dy = maxY - minY - if dx*dy > 0.0: - cf = area / (dx*dy) - return [area, cf] + """ Calculate ship floating area. + @param ship Selected ship instance + @param draft Draft. + @param trim Trim in degrees. + @return Ship floating area, and floating coefficient. + """ + area = 0.0 + cf = 0.0 + maxX = 0.0 + minX = 0.0 + maxY = 0.0 + minY = 0.0 + # We will take a duplicate of ship shape in order to place it + shape = ship.Shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + shape.rotate(Vector(0.0,0.0,0.0), Vector(0.0,-1.0,0.0), trim) + # Now we need to know the x range of values + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(3.0*L, 3.0*B, - bbox.ZMin + 1.0, p) + # Compute common part with ship + for s in shape.Solids: + # Get solids intersection + try: + common = box.common(s) + except: + continue + if common.Volume == 0.0: + continue + # Recompute object adding it to the scene, when we have + # computed desired data we can remove it. + try: + Part.show(common) + except: + continue + # Divide by faces and compute only section placed ones + faces = common.Faces + for f in faces: + faceBounds = f.BoundBox + # Orientation filter + if faceBounds.ZMax - faceBounds.ZMin > 0.00001: + continue + # Place filter + if abs(faceBounds.ZMax) > 0.00001: + continue + # Valid face, compute area + area = area + f.Area + maxX = max(maxX, faceBounds.XMax) + minX = min(minX, faceBounds.XMin) + maxY = max(maxY, faceBounds.YMax) + minY = min(minY, faceBounds.YMin) + # Destroy last object generated + App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) + dx = maxX - minX + dy = maxY - minY + if dx*dy > 0.0: + cf = area / (dx*dy) + return [area, cf] def BMT(ship, draft, trim=0.0): - """ Calculate ship Bouyance center transversal distance. - @param ship Ship instance. - @param draft Ship draft. - @param trim Ship trim angle. - @return BM Bouyance to metacenter height [m]. - """ - nRoll = 2 - maxRoll = 7.0 - B0 = displacement(ship,draft,0.0,trim,0.0)[1] - BM = 0.0 - for i in range(0,nRoll): - roll = (maxRoll/nRoll)*(i+1) - B1 = displacement(ship,draft,roll,trim,0.0)[1] - # * M - # / \ - # / \ BM ==|> BM = (BB/2) / sin(alpha/2) - # / \ - # *-------* - # BB - BB = [B1.y - B0.y, B1.z - B0.z] - BB = math.sqrt(BB[0]*BB[0] + BB[1]*BB[1]) - BM = BM + 0.5*BB/math.sin(math.radians(0.5*roll)) / nRoll # nRoll is the weight function - return BM + """ Calculate ship Bouyance center transversal distance. + @param ship Ship instance. + @param draft Ship draft. + @param trim Ship trim angle. + @return BM Bouyance to metacenter height [m]. + """ + nRoll = 2 + maxRoll = 7.0 + B0 = displacement(ship,draft,0.0,trim,0.0)[1] + BM = 0.0 + for i in range(0,nRoll): + roll = (maxRoll/nRoll)*(i+1) + B1 = displacement(ship,draft,roll,trim,0.0)[1] + # * M + # / \ + # / \ BM ==|> BM = (BB/2) / sin(alpha/2) + # / \ + # *-------* + # BB + BB = [B1.y - B0.y, B1.z - B0.z] + BB = math.sqrt(BB[0]*BB[0] + BB[1]*BB[1]) + BM = BM + 0.5*BB/math.sin(math.radians(0.5*roll)) / nRoll # nRoll is the weight function + return BM def mainFrameCoeff(ship, draft): - """ Calculate main frame coefficient. - @param ship Selected ship instance - @param draft Draft. - @return Main frame coefficient - """ - cm = 0.0 - maxY = 0.0 - minY = 0.0 - # We will take a duplicate of ship shape in order to place it - shape = ship.Shape.copy() - shape.translate(Vector(0.0,0.0,-draft)) - x = 0.0 - area = 0.0 - # Now we need to know the x range of values - bbox = shape.BoundBox - xmin = bbox.XMin - xmax = bbox.XMax - # Create the box - L = xmax - xmin - B = bbox.YMax - bbox.YMin - p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) - box = Part.makeBox(1.5*L + x, 3.0*B, - bbox.ZMin + 1.0, p) - # Compute common part with ship - for s in shape.Solids: - # Get solids intersection - try: - common = box.common(s) - except: - continue - if common.Volume == 0.0: - continue - # Recompute object adding it to the scene, when we have - # computed desired data we can remove it. - try: - Part.show(common) - except: - continue - # Divide by faces and compute only section placed ones - faces = common.Faces - for f in faces: - faceBounds = f.BoundBox - # Orientation filter - if faceBounds.XMax - faceBounds.XMin > 0.00001: - continue - # Place filter - if abs(faceBounds.XMax - x) > 0.00001: - continue - # Valid face, compute area - area = area + f.Area - maxY = max(maxY, faceBounds.YMax) - minY = max(minY, faceBounds.YMin) - # Destroy last object generated - App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) - dy = maxY - minY - if dy*draft > 0.0: - cm = area / (dy*draft) - return cm + """ Calculate main frame coefficient. + @param ship Selected ship instance + @param draft Draft. + @return Main frame coefficient + """ + cm = 0.0 + maxY = 0.0 + minY = 0.0 + # We will take a duplicate of ship shape in order to place it + shape = ship.Shape.copy() + shape.translate(Vector(0.0,0.0,-draft)) + x = 0.0 + area = 0.0 + # Now we need to know the x range of values + bbox = shape.BoundBox + xmin = bbox.XMin + xmax = bbox.XMax + # Create the box + L = xmax - xmin + B = bbox.YMax - bbox.YMin + p = Vector(-1.5*L, -1.5*B, bbox.ZMin - 1.0) + box = Part.makeBox(1.5*L + x, 3.0*B, - bbox.ZMin + 1.0, p) + # Compute common part with ship + for s in shape.Solids: + # Get solids intersection + try: + common = box.common(s) + except: + continue + if common.Volume == 0.0: + continue + # Recompute object adding it to the scene, when we have + # computed desired data we can remove it. + try: + Part.show(common) + except: + continue + # Divide by faces and compute only section placed ones + faces = common.Faces + for f in faces: + faceBounds = f.BoundBox + # Orientation filter + if faceBounds.XMax - faceBounds.XMin > 0.00001: + continue + # Place filter + if abs(faceBounds.XMax - x) > 0.00001: + continue + # Valid face, compute area + area = area + f.Area + maxY = max(maxY, faceBounds.YMax) + minY = max(minY, faceBounds.YMin) + # Destroy last object generated + App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) + dy = maxY - minY + if dy*draft > 0.0: + cm = area / (dy*draft) + return cm class Point: - """ Hydrostatics point, that conatins: \n - draft Ship draft [m]. \n - trim Ship trim [deg]. \n - disp Ship displacement [ton]. \n - xcb Bouyance center X coordinate [m]. - wet Wetted ship area [m2]. - mom Triming 1cm ship moment [ton m]. - farea Floating area [m2]. - KBt Transversal KB height [m]. - BMt Transversal BM height [m]. - Cb Block coefficient. - Cf Floating coefficient. - Cm Main frame coefficient. - @note Moment is positive when produce positive trim. - """ - def __init__(self, ship, faces, draft, trim): - """ Use all hydrostatics tools to define a hydrostatics - point. - @param ship Selected ship instance - @param faces Ship external faces - @param draft Draft. - @param trim Trim in degrees. - """ - # Hydrostatics computation - dispData = displacement(ship,draft,0.0,trim,0.0) - if not faces: - wet = 0.0 - else: - wet = wettedArea(faces,draft,trim) - mom = moment(ship,draft,trim,dispData[0],dispData[1].x) - farea = FloatingArea(ship,draft,trim) - bm = BMT(ship,draft,trim) - cm = mainFrameCoeff(ship,draft) - # Store final data - self.draft = draft - self.trim = trim - self.disp = dispData[0] - self.xcb = dispData[1].x - self.wet = wet - self.farea = farea[0] - self.mom = mom - self.KBt = dispData[1].z - self.BMt = bm - self.Cb = dispData[2] - self.Cf = farea[1] - self.Cm = cm + """ Hydrostatics point, that conatins: \n + draft Ship draft [m]. \n + trim Ship trim [deg]. \n + disp Ship displacement [ton]. \n + xcb Bouyance center X coordinate [m]. + wet Wetted ship area [m2]. + mom Triming 1cm ship moment [ton m]. + farea Floating area [m2]. + KBt Transversal KB height [m]. + BMt Transversal BM height [m]. + Cb Block coefficient. + Cf Floating coefficient. + Cm Main frame coefficient. + @note Moment is positive when produce positive trim. + """ + def __init__(self, ship, faces, draft, trim): + """ Use all hydrostatics tools to define a hydrostatics + point. + @param ship Selected ship instance + @param faces Ship external faces + @param draft Draft. + @param trim Trim in degrees. + """ + # Hydrostatics computation + dispData = displacement(ship,draft,0.0,trim,0.0) + if not faces: + wet = 0.0 + else: + wet = wettedArea(faces,draft,trim) + mom = moment(ship,draft,trim,dispData[0],dispData[1].x) + farea = FloatingArea(ship,draft,trim) + bm = BMT(ship,draft,trim) + cm = mainFrameCoeff(ship,draft) + # Store final data + self.draft = draft + self.trim = trim + self.disp = dispData[0] + self.xcb = dispData[1].x + self.wet = wet + self.farea = farea[0] + self.mom = mom + self.KBt = dispData[1].z + self.BMt = bm + self.Cb = dispData[2] + self.Cf = farea[1] + self.Cm = cm diff --git a/src/Mod/Ship/shipHydrostatics/__init__.py b/src/Mod/Ship/shipHydrostatics/__init__.py index 5b9a3c477c..50a43c8a65 100644 --- a/src/Mod/Ship/shipHydrostatics/__init__.py +++ b/src/Mod/Ship/shipHydrostatics/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** @@ -33,5 +33,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipLoadExample/TaskPanel.py b/src/Mod/Ship/shipLoadExample/TaskPanel.py index b325a92364..9c463c99b0 100644 --- a/src/Mod/Ship/shipLoadExample/TaskPanel.py +++ b/src/Mod/Ship/shipLoadExample/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -27,79 +27,82 @@ import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore # Module -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipLoadExample/TaskPanel.ui" + def __init__(self): + self.ui = Paths.modulePath() + "/shipLoadExample/TaskPanel.ui" - def accept(self): - path = Paths.modulePath() + "/Examples/" - if(self.form.ship.currentIndex() == 0): # s60 from Iowa University - App.open(path + "s60.fcstd") - elif(self.form.ship.currentIndex() == 1): # Wigley canonical ship - App.open(path + "wigley.fcstd") - elif(self.form.ship.currentIndex() == 2): # s60 (Katamaran) - App.open(path + "s60_katamaran.fcstd") - elif(self.form.ship.currentIndex() == 2): # Wigley (Katamaran) - App.open(path + "wigley_katamaran.fcstd") - return True + def accept(self): + path = Paths.modulePath() + "/resources/examples/" + if(self.form.ship.currentIndex() == 0): # s60 from Iowa University + App.open(path + "s60.fcstd") + elif(self.form.ship.currentIndex() == 1): # Wigley canonical ship + App.open(path + "wigley.fcstd") + elif(self.form.ship.currentIndex() == 2): # s60 (Katamaran) + App.open(path + "s60_katamaran.fcstd") + elif(self.form.ship.currentIndex() == 2): # Wigley (Katamaran) + App.open(path + "wigley_katamaran.fcstd") + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.ship = form.findChild(QtGui.QComboBox, "Ship") - form.mainLogo = form.findChild(QtGui.QLabel, "MainLogo") - iconPath = Paths.iconsPath() + "/Ico.xpm" - form.mainLogo.setPixmap(QtGui.QPixmap(iconPath)) - self.form = form - self.retranslateUi() + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.ship = form.findChild(QtGui.QComboBox, "Ship") + form.mainLogo = form.findChild(QtGui.QLabel, "MainLogo") + iconPath = Paths.iconsPath() + "/Ico.xpm" + form.mainLogo.setPixmap(QtGui.QPixmap(iconPath)) + self.form = form + self.retranslateUi() - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Load example ship")) - self.form.findChild(QtGui.QGroupBox, "ShipSelectionBox").setTitle(Translator.translate("Select ship example geometry")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_load","Load example ship", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "ShipSelectionBox").setTitle(QtGui.QApplication.translate("ship_load", + "Select ship example geometry", + None,QtGui.QApplication.UnicodeUTF8)) def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipLoadExample/TaskPanel.ui b/src/Mod/Ship/shipLoadExample/TaskPanel.ui index 19a2c8da9d..299c174fa9 100644 --- a/src/Mod/Ship/shipLoadExample/TaskPanel.ui +++ b/src/Mod/Ship/shipLoadExample/TaskPanel.ui @@ -62,58 +62,52 @@ Select ship example geometry - - - - 0 - 20 - 241 - 101 - - - - - - - - Series 60 from Iowa University + + + + + + + + Series 60 from Iowa University + + + + + Wigley canonical ship + + + + + Series 60 (Katamaran) + + + + + Wigley (Katamaran) + + + + + + + + Qt::Vertical - - - - Wigley canonical ship + + QSizePolicy::Fixed - - - - Series 60 (Katamaran) + + + 20 + 20 + - - - - Wigley (Katamaran) - - - - - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 20 - - - - - - + + + + + diff --git a/src/Mod/Ship/shipLoadExample/__init__.py b/src/Mod/Ship/shipLoadExample/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/shipLoadExample/__init__.py +++ b/src/Mod/Ship/shipLoadExample/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipOutlineDraw/Plot.py b/src/Mod/Ship/shipOutlineDraw/Plot.py index 7715540da2..919fc87206 100644 --- a/src/Mod/Ship/shipOutlineDraw/Plot.py +++ b/src/Mod/Ship/shipOutlineDraw/Plot.py @@ -1,124 +1,127 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** +# Qt library +from PyQt4 import QtGui,QtCore # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base, Vector import Part # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths def Plot(scale, sections, shape): - """ Creates the outline draw. - @param scale Plane scale (format 1:scale) - @param sections Sections computed. - @param shape Ship surfaces shell - @return plotted object (DocumentObject) - """ - msg = Translator.translate('Performing plot (Scale 1:%d)...\n' % (scale)) - FreeCAD.Console.PrintMessage(msg) - scale = 1000.0 / scale - # Take positions - bounds = [0.0, 0.0, 0.0] - bbox = shape.BoundBox - bounds[0] = bbox.XLength - bounds[1] = bbox.YLength - bounds[2] = bbox.ZLength - xTot = scale*bounds[1] + 32.0 + scale*bounds[0] - yTot = scale*bounds[2] + 32.0 + scale*bounds[1] - xMid = 210.0 - yMid = 185.0 - x0 = xMid - 0.5*xTot - y0 = 297.0 - yMid - 0.5*yTot # 297 = A3_width - # Get border - edges = getEdges([shape]) - border = edges[0] - for i in range(0,len(edges)): - border = border.oldFuse(edges[i]) # Only group objects, don't try to build more complex entities - border = border.oldFuse(edges[i].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0))) - # Fuse sections & borders - # obj = sections.oldFuse(border) - obj = border.oldFuse(sections) - # Send to 3D view - Part.show(obj) - objs = FreeCAD.ActiveDocument.Objects - obj = objs[len(objs)-1] - # Create a new plane - FreeCAD.ActiveDocument.addObject('Drawing::FeaturePage','OutlineDrawPlot') - FreeCAD.ActiveDocument.OutlineDrawPlot.Template = FreeCAD.getResourceDir()+'Mod/Drawing/Templates/A3_Landscape.svg' - # Side view - FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawSideView') - FreeCAD.ActiveDocument.OutlineDrawSideView.Source = obj - FreeCAD.ActiveDocument.OutlineDrawSideView.Direction = (1.0,0.0,0.0) - FreeCAD.ActiveDocument.OutlineDrawSideView.Rotation = -90.0 - FreeCAD.ActiveDocument.OutlineDrawSideView.Scale = scale - FreeCAD.ActiveDocument.OutlineDrawSideView.X = 420.0 - x0 - 0.5*scale*bounds[1] # 420 = A3_height - FreeCAD.ActiveDocument.OutlineDrawSideView.Y = y0 + 0.5*scale*bounds[2] - FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawSideView) - # Front view - FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawFrontView') - FreeCAD.ActiveDocument.OutlineDrawFrontView.Source = obj - FreeCAD.ActiveDocument.OutlineDrawFrontView.Direction = (0.0,1.0,0.0) - FreeCAD.ActiveDocument.OutlineDrawFrontView.Rotation = -90.0 - FreeCAD.ActiveDocument.OutlineDrawFrontView.Scale = scale - FreeCAD.ActiveDocument.OutlineDrawFrontView.X = 420.0 - x0 - scale*bounds[1] - 32 - 0.5*scale*bounds[0] - FreeCAD.ActiveDocument.OutlineDrawFrontView.Y = y0 + 0.5*scale*bounds[2] - FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawFrontView) - # Up view - FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawUpView') - FreeCAD.ActiveDocument.OutlineDrawUpView.Source = obj - FreeCAD.ActiveDocument.OutlineDrawUpView.Direction = (0.0,0.0,1.0) - FreeCAD.ActiveDocument.OutlineDrawUpView.Scale = scale - FreeCAD.ActiveDocument.OutlineDrawUpView.X = 420.0 - x0 - scale*bounds[1] - 32 - 0.5*scale*bounds[0] - FreeCAD.ActiveDocument.OutlineDrawUpView.Y = y0 + scale*bounds[2] + 32 - FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawUpView) - FreeCAD.ActiveDocument.recompute() - return obj + """ Creates the outline draw. + @param scale Plane scale (format 1:scale) + @param sections Sections computed. + @param shape Ship surfaces shell + @return plotted object (DocumentObject) + """ + msg = QtGui.QApplication.translate("ship_console", "Performing plot", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + ' (1:%d)...\n' % (scale)) + scale = 1000.0 / scale + # Take positions + bounds = [0.0, 0.0, 0.0] + bbox = shape.BoundBox + bounds[0] = bbox.XLength + bounds[1] = bbox.YLength + bounds[2] = bbox.ZLength + xTot = scale*bounds[1] + 32.0 + scale*bounds[0] + yTot = scale*bounds[2] + 32.0 + scale*bounds[1] + xMid = 210.0 + yMid = 185.0 + x0 = xMid - 0.5*xTot + y0 = 297.0 - yMid - 0.5*yTot # 297 = A3_width + # Get border + edges = getEdges([shape]) + border = edges[0] + for i in range(0,len(edges)): + border = border.oldFuse(edges[i]) # Only group objects, don't try to build more complex entities + border = border.oldFuse(edges[i].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0))) + # Fuse sections & borders + # obj = sections.oldFuse(border) + obj = border.oldFuse(sections) + # Send to 3D view + Part.show(obj) + objs = FreeCAD.ActiveDocument.Objects + obj = objs[len(objs)-1] + # Create a new plane + FreeCAD.ActiveDocument.addObject('Drawing::FeaturePage','OutlineDrawPlot') + FreeCAD.ActiveDocument.OutlineDrawPlot.Template = FreeCAD.getResourceDir()+'Mod/Drawing/Templates/A3_Landscape.svg' + # Side view + FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawSideView') + FreeCAD.ActiveDocument.OutlineDrawSideView.Source = obj + FreeCAD.ActiveDocument.OutlineDrawSideView.Direction = (1.0,0.0,0.0) + FreeCAD.ActiveDocument.OutlineDrawSideView.Rotation = -90.0 + FreeCAD.ActiveDocument.OutlineDrawSideView.Scale = scale + FreeCAD.ActiveDocument.OutlineDrawSideView.X = 420.0 - x0 - 0.5*scale*bounds[1] # 420 = A3_height + FreeCAD.ActiveDocument.OutlineDrawSideView.Y = y0 + 0.5*scale*bounds[2] + FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawSideView) + # Front view + FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawFrontView') + FreeCAD.ActiveDocument.OutlineDrawFrontView.Source = obj + FreeCAD.ActiveDocument.OutlineDrawFrontView.Direction = (0.0,1.0,0.0) + FreeCAD.ActiveDocument.OutlineDrawFrontView.Rotation = -90.0 + FreeCAD.ActiveDocument.OutlineDrawFrontView.Scale = scale + FreeCAD.ActiveDocument.OutlineDrawFrontView.X = 420.0 - x0 - scale*bounds[1] - 32 - 0.5*scale*bounds[0] + FreeCAD.ActiveDocument.OutlineDrawFrontView.Y = y0 + 0.5*scale*bounds[2] + FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawFrontView) + # Up view + FreeCAD.ActiveDocument.addObject('Drawing::FeatureViewPart','OutlineDrawUpView') + FreeCAD.ActiveDocument.OutlineDrawUpView.Source = obj + FreeCAD.ActiveDocument.OutlineDrawUpView.Direction = (0.0,0.0,1.0) + FreeCAD.ActiveDocument.OutlineDrawUpView.Scale = scale + FreeCAD.ActiveDocument.OutlineDrawUpView.X = 420.0 - x0 - scale*bounds[1] - 32 - 0.5*scale*bounds[0] + FreeCAD.ActiveDocument.OutlineDrawUpView.Y = y0 + scale*bounds[2] + 32 + FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawUpView) + FreeCAD.ActiveDocument.recompute() + return obj def getEdges(objs=None): - """ Returns object edges (list of them) - @param objs Object to get the faces, none if selected - object may used. - @return Selected edges. None if errors happens - """ - edges = [] - if not objs: - objs = FreeCADGui.Selection.getSelection() - if not objs: - return None - for i in range(0, len(objs)): - obj = objs[i] - if obj.isDerivedFrom('Part::Feature'): - # get shape - shape = obj.Shape - if not shape: - return None - obj = shape - if not obj.isDerivedFrom('Part::TopoShape'): - return None - objEdges = obj.Edges - if not objEdges: - continue - for j in range(0, len(objEdges)): - edges.append(objEdges[j]) - return edges + """ Returns object edges (list of them) + @param objs Object to get the faces, none if selected + object may used. + @return Selected edges. None if errors happens + """ + edges = [] + if not objs: + objs = FreeCADGui.Selection.getSelection() + if not objs: + return None + for i in range(0, len(objs)): + obj = objs[i] + if obj.isDerivedFrom('Part::Feature'): + # get shape + shape = obj.Shape + if not shape: + return None + obj = shape + if not obj.isDerivedFrom('Part::TopoShape'): + return None + objEdges = obj.Edges + if not objEdges: + continue + for j in range(0, len(objEdges)): + edges.append(objEdges[j]) + return edges diff --git a/src/Mod/Ship/shipOutlineDraw/Preview.py b/src/Mod/Ship/shipOutlineDraw/Preview.py index a1ccb20123..3897912b76 100644 --- a/src/Mod/Ship/shipOutlineDraw/Preview.py +++ b/src/Mod/Ship/shipOutlineDraw/Preview.py @@ -1,146 +1,151 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** +# Qt library +from PyQt4 import QtGui,QtCore # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base, Vector import Part # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths class Preview(object): - def __init__(self): - """ Constructor. - """ - self.obj = None - self.reinit() + def __init__(self): + """ Constructor. + """ + self.obj = None + self.reinit() - def reinit(self): - """ Reinitializate drawer. - """ - self.clean() + def reinit(self): + """ Reinitializate drawer. + """ + self.clean() - def update(self, L, B, T, sectionsL, sectionsB, sectionsT, shape): - """ Update the 3D view printing annotations. - @param L Ship Lpp. - @param B Ship beam. - @param T Ship draft. - @param sectionsL Transversal sections. - @param sectionsB Longitudinal sections. - @param sectionsT Water lines. - @param shape Ship surfaces shell - @return Sections object. None if errors happens. - """ - FreeCAD.Console.PrintMessage(Translator.translate('Computing sections...\n')) - # Destroy all previous entities - self.clean() - # Receive data - nL = len(sectionsL) - nB = len(sectionsB) - nT = len(sectionsT) - if not (nL or nB or nT): - return None - # Found sections - sections = [] - for i in range(0,nL): - pos = sectionsL[i] - # Cut ship - section = shape.slice(Vector(1.0,0.0,0.0), pos) - for j in range(0,len(section)): - edges = section[j].Edges - # We have 3 cases, - # * when section is before midship, then only starboard section will be considered - # * When section is midship, then all section must be preserved - # * When section is after midship, then only board will be considered - if pos > 0.01: - # Look for edges at the wrong side and delete it - for k in range(len(edges)-1,-1,-1): - edge = edges[k] - bbox = edge.BoundBox - if bbox.YMin < -0.001: - del edges[k] - elif pos < -0.01: - # Look for edges at the wrong side and delete it - for k in range(len(edges)-1,-1,-1): - edge = edges[k] - bbox = edge.BoundBox - if bbox.YMax > 0.001: - del edges[k] - sections.extend(edges) - for i in range(0,nB): - pos = sectionsB[i] - section = shape.slice(Vector(0.0,1.0,0.0), pos) - for j in range(0,len(section)): - edges = section[j].Edges - # Longitudinal sections will preserve board and starboard ever. Since we take from one side, - # we nned to mirror it. - section[j] = section[j].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0)) - edges2 = section[j].Edges - sections.extend(edges) - sections.extend(edges2) - for i in range(0,nT): - pos = sectionsT[i] - section = shape.slice(Vector(0.0,0.0,1.0), pos) - for j in range(0,len(section)): - edges = section[j].Edges - # We have 3 cases, - # * when section is below draft, then only board section will be considered - # * When section is draft, then all section must be preserved - # * When section is above draft, then only starboard will be considered - if pos > T + 0.01: - # Look for edges at the wrong side and delete it - for k in range(len(edges)-1,-1,-1): - edge = edges[k] - bbox = edge.BoundBox - if bbox.YMax > 0.001: - del edges[k] - elif pos < T - 0.01: - # Look for edges at the wrong side and delete it - for k in range(len(edges)-1,-1,-1): - edge = edges[k] - bbox = edge.BoundBox - if bbox.YMin < -0.001: - del edges[k] - sections.extend(edges) - # Convert all BSplines into a shape - if not sections: - msg = Translator.translate('Any valid ship section found') - FreeCAD.Console.PrintWarning(msg) - return - obj = sections[0] - for i in range(1,len(sections)): - obj = obj.oldFuse(sections[i]) # Only group the edges, don't try to build more complex entities - # Create the representable object - Part.show(obj) - objs = FreeCAD.ActiveDocument.Objects - self.obj = objs[len(objs)-1] - self.obj.Label = 'OutlineDraw' - return self.obj - - def clean(self): - """ Erase all annotations from screen. - """ - if not self.obj: - return - FreeCAD.ActiveDocument.removeObject(self.obj.Name) - self.obj = None + def update(self, L, B, T, sectionsL, sectionsB, sectionsT, shape): + """ Update the 3D view printing annotations. + @param L Ship Lpp. + @param B Ship beam. + @param T Ship draft. + @param sectionsL Transversal sections. + @param sectionsB Longitudinal sections. + @param sectionsT Water lines. + @param shape Ship surfaces shell + @return Sections object. None if errors happens. + """ + msg = QtGui.QApplication.translate("ship_console", "Computing sections", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + '...\n') + # Destroy all previous entities + self.clean() + # Receive data + nL = len(sectionsL) + nB = len(sectionsB) + nT = len(sectionsT) + if not (nL or nB or nT): + return None + # Found sections + sections = [] + for i in range(0,nL): + pos = sectionsL[i] + # Cut ship + section = shape.slice(Vector(1.0,0.0,0.0), pos) + for j in range(0,len(section)): + edges = section[j].Edges + # We have 3 cases, + # * when section is before midship, then only starboard section will be considered + # * When section is midship, then all section must be preserved + # * When section is after midship, then only board will be considered + if pos > 0.01: + # Look for edges at the wrong side and delete it + for k in range(len(edges)-1,-1,-1): + edge = edges[k] + bbox = edge.BoundBox + if bbox.YMin < -0.001: + del edges[k] + elif pos < -0.01: + # Look for edges at the wrong side and delete it + for k in range(len(edges)-1,-1,-1): + edge = edges[k] + bbox = edge.BoundBox + if bbox.YMax > 0.001: + del edges[k] + sections.extend(edges) + for i in range(0,nB): + pos = sectionsB[i] + section = shape.slice(Vector(0.0,1.0,0.0), pos) + for j in range(0,len(section)): + edges = section[j].Edges + # Longitudinal sections will preserve board and starboard ever. Since we take from one side, + # we nned to mirror it. + section[j] = section[j].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0)) + edges2 = section[j].Edges + sections.extend(edges) + sections.extend(edges2) + for i in range(0,nT): + pos = sectionsT[i] + section = shape.slice(Vector(0.0,0.0,1.0), pos) + for j in range(0,len(section)): + edges = section[j].Edges + # We have 3 cases, + # * when section is below draft, then only board section will be considered + # * When section is draft, then all section must be preserved + # * When section is above draft, then only starboard will be considered + if pos > T + 0.01: + # Look for edges at the wrong side and delete it + for k in range(len(edges)-1,-1,-1): + edge = edges[k] + bbox = edge.BoundBox + if bbox.YMax > 0.001: + del edges[k] + elif pos < T - 0.01: + # Look for edges at the wrong side and delete it + for k in range(len(edges)-1,-1,-1): + edge = edges[k] + bbox = edge.BoundBox + if bbox.YMin < -0.001: + del edges[k] + sections.extend(edges) + # Convert all BSplines into a shape + if not sections: + msg = QtGui.QApplication.translate("ship_console", "Any valid ship section found", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + '\n') + return + obj = sections[0] + for i in range(1,len(sections)): + obj = obj.oldFuse(sections[i]) # Only group the edges, don't try to build more complex entities + # Create the representable object + Part.show(obj) + objs = FreeCAD.ActiveDocument.Objects + self.obj = objs[len(objs)-1] + self.obj.Label = 'OutlineDraw' + return self.obj + + def clean(self): + """ Erase all annotations from screen. + """ + if not self.obj: + return + FreeCAD.ActiveDocument.removeObject(self.obj.Name) + self.obj = None diff --git a/src/Mod/Ship/shipOutlineDraw/TaskPanel.py b/src/Mod/Ship/shipOutlineDraw/TaskPanel.py index 393e11ea8c..239b21a00c 100644 --- a/src/Mod/Ship/shipOutlineDraw/TaskPanel.py +++ b/src/Mod/Ship/shipOutlineDraw/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -29,320 +29,345 @@ from PyQt4 import QtGui,QtCore # Module import Preview, Plot import Instance -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/shipOutlineDraw/TaskPanel.ui" - self.ship = None - self.skip = False - self.LSections = [] - self.BSections = [] - self.TSections = [] - self.obj = None - self.preview = Preview.Preview() + def __init__(self): + self.ui = Paths.modulePath() + "/shipOutlineDraw/TaskPanel.ui" + self.ship = None + self.skip = False + self.LSections = [] + self.BSections = [] + self.TSections = [] + self.obj = None + self.preview = Preview.Preview() - def accept(self): - self.saveSections() - self.obj = Plot.Plot(self.form.scale.value(), self.obj.Shape, self.ship.Shape) - self.preview.clean() - self.obj.Label = 'OutlineDraw' - return True + def accept(self): + self.saveSections() + self.obj = Plot.Plot(self.form.scale.value(), self.obj.Shape, self.ship.Shape) + self.preview.clean() + self.obj.Label = 'OutlineDraw' + return True - def reject(self): - self.preview.clean() - return True + def reject(self): + self.preview.clean() + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.sections = form.findChild(QtGui.QTableWidget, "Sections") - try: - form.sections.setInputMethodHints(QtCore.Qt.ImhFormattedNumbersOnly) - except: - msg = Translator.translate("QtCore.Qt.ImhFormattedNumbersOnly not supported, will not used.\n") - App.Console.PrintWarning(msg) - form.sectionType = form.findChild(QtGui.QComboBox, "SectionType") - form.deleteButton = form.findChild(QtGui.QPushButton, "DeleteButton") - form.nSections = form.findChild(QtGui.QSpinBox, "NSections") - form.createButton = form.findChild(QtGui.QPushButton, "CreateButton") - form.scale = form.findChild(QtGui.QSpinBox, "Scale") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) - # Connect Signals and Slots - QtCore.QObject.connect(form.sectionType,QtCore.SIGNAL("activated(QString)"),self.onSectionType) - QtCore.QObject.connect(form.sections,QtCore.SIGNAL("cellChanged(int,int)"),self.onTableItem); - QtCore.QObject.connect(form.deleteButton,QtCore.SIGNAL("pressed()"),self.onDeleteButton) - QtCore.QObject.connect(form.createButton,QtCore.SIGNAL("pressed()"),self.onCreateButton) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.sections = form.findChild(QtGui.QTableWidget, "Sections") + try: + form.sections.setInputMethodHints(QtCore.Qt.ImhFormattedNumbersOnly) + hasImhFormattedNumbersOnly = True + except: + hasImhFormattedNumbersOnly = False + form.sectionType = form.findChild(QtGui.QComboBox, "SectionType") + form.deleteButton = form.findChild(QtGui.QPushButton, "DeleteButton") + form.nSections = form.findChild(QtGui.QSpinBox, "NSections") + form.createButton = form.findChild(QtGui.QPushButton, "CreateButton") + form.scale = form.findChild(QtGui.QSpinBox, "Scale") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) + # Connect Signals and Slots + QtCore.QObject.connect(form.sectionType,QtCore.SIGNAL("activated(QString)"),self.onSectionType) + QtCore.QObject.connect(form.sections,QtCore.SIGNAL("cellChanged(int,int)"),self.onTableItem); + QtCore.QObject.connect(form.deleteButton,QtCore.SIGNAL("pressed()"),self.onDeleteButton) + QtCore.QObject.connect(form.createButton,QtCore.SIGNAL("pressed()"),self.onCreateButton) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get selected objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Load sections (if exist) - self.loadSections() - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get selected objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", + "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Load sections (if exist) + self.loadSections() + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Outline draw")) - self.form.findChild(QtGui.QGroupBox, "AutoCreateBox").setTitle(Translator.translate("Auto create")) - self.form.findChild(QtGui.QGroupBox, "ScaleBox").setTitle(Translator.translate("Scale")) - self.form.findChild(QtGui.QPushButton, "DeleteButton").setText(Translator.translate("Delete all sections")) - self.form.findChild(QtGui.QPushButton, "CreateButton").setText(Translator.translate("Create sections")) - self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(0, Translator.translate("Transversal")) - self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(1, Translator.translate("Longitudinal")) - self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(2, Translator.translate("Water lines")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("ship_outline","Outline draw", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "AutoCreateBox").setTitle(QtGui.QApplication.translate("ship_outline","Auto create", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "ScaleBox").setTitle(QtGui.QApplication.translate("ship_outline","Scale", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QPushButton, "DeleteButton").setText(QtGui.QApplication.translate("ship_outline", + "Delete all sections", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QPushButton, "CreateButton").setText(QtGui.QApplication.translate("ship_outline", + "Create sections", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(0, QtGui.QApplication.translate("ship_outline", + "Transversal", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(1, QtGui.QApplication.translate("ship_outline", + "Longitudinal", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QComboBox, "SectionType").setItemText(2, QtGui.QApplication.translate("ship_outline", + "Water lines", + None,QtGui.QApplication.UnicodeUTF8)) - def onSectionType(self): - """ Function called when the section type is changed. - """ - # Search section type - ID = self.form.sectionType.currentIndex() - self.setSectionType(ID) + def onSectionType(self): + """ Function called when the section type is changed. + """ + # Search section type + ID = self.form.sectionType.currentIndex() + self.setSectionType(ID) - def setSectionType(self, ID): - """ Function that set the type section related table. - @param ID Id of the section to set: \n - 0 = Transversal sections \n - 1 = Longitudinal sections \n - 2 = Water lines - """ - SectionList = [] - if ID == 0: - SectionList = self.LSections[:] - elif ID == 1: - SectionList = self.BSections[:] - elif ID == 2: - SectionList = self.TSections[:] - nRow = len(SectionList) - self.form.sections.clearContents() - self.form.sections.setRowCount(nRow+1) - if not nRow: - self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) - return - self.skip = True # Avoid recursive call to OnItem - for i in range(0,nRow): - if i == nRow-1: - self.skip = False - string = '%f' % (SectionList[i]) - item = QtGui.QTableWidgetItem(string) - self.form.sections.setItem(i,0,item) + def setSectionType(self, ID): + """ Function that set the type section related table. + @param ID Id of the section to set: \n + 0 = Transversal sections \n + 1 = Longitudinal sections \n + 2 = Water lines + """ + SectionList = [] + if ID == 0: + SectionList = self.LSections[:] + elif ID == 1: + SectionList = self.BSections[:] + elif ID == 2: + SectionList = self.TSections[:] + nRow = len(SectionList) + self.form.sections.clearContents() + self.form.sections.setRowCount(nRow+1) + if not nRow: + self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) + return + self.skip = True # Avoid recursive call to OnItem + for i in range(0,nRow): + if i == nRow-1: + self.skip = False + string = '%f' % (SectionList[i]) + item = QtGui.QTableWidgetItem(string) + self.form.sections.setItem(i,0,item) - def onTableItem(self, row, column): - """ Function called when an item of table is changed. - @param row Changed item row - @param column Changed item column - """ - if self.skip: - return - # Ensure that exist one empty item at least - nRow = self.form.sections.rowCount() - item = self.form.sections.item(nRow-1,0) - if item : - if(item.text() != ''): - self.form.sections.setRowCount(nRow+1) - # Ensure that new item is a number - ID = self.form.sectionType.currentIndex() - if ID == 0: - SectionList = self.LSections[:] - elif ID == 1: - SectionList = self.BSections[:] - elif ID == 2: - SectionList = self.TSections[:] - item = self.form.sections.item(row,column) - (number,flag) = item.text().toFloat() - if not flag: - if len(SectionList) > nRow-1: - number = SectionList[nRow-1] - else: - number = 0.0 - string = '%f' % (number) - item.setText(string) - # Regenerate the list - SectionList = [] - for i in range(0,nRow): - item = self.form.sections.item(i,0) - if item: - (number,flag) = item.text().toFloat() - SectionList.append(number) - # Paste it into the class list - ID = self.form.sectionType.currentIndex() - if ID == 0: - self.LSections = SectionList[:] - elif ID == 1: - self.BSections = SectionList[:] - elif ID == 2: - self.TSections = SectionList[:] - self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) - - def onDeleteButton(self): - """ Function called when the delete button is pressed. - All sections mustt be erased - """ - self.form.sections.clearContents() - self.form.sections.setRowCount(1) - # Clear active list - ID = self.form.sectionType.currentIndex() - if ID == 0: - self.LSections = [] - elif ID == 1: - self.BSections = [] - elif ID == 2: - self.TSections = [] - self.setSectionType(ID) - - def onCreateButton(self): - """ Function called when create button is pressed. - Several sections must be added to list - """ - # Recolect data - nSections = self.form.nSections.value() - SectionList = [] - L = 0.0 - ID = self.form.sectionType.currentIndex() - if ID == 0: - L = self.ship.Length - d = L / (nSections-1) # Distance between sections - start = - L/2.0 # Ship must have 0.0 at coordinates origin - elif ID == 1: - L = -0.5*self.ship.Beam # Ship must be in y<0.0 - d = L / (nSections+1.0) # Distance between sections - start = d - elif ID == 2: - L = self.ship.Draft - d = L / (nSections) # Distance between sections - start = d - # Calculate sections - for i in range(0,nSections): - sec = i*d + start - SectionList.append(sec) - # Paste into class table - if ID == 0: - self.LSections = SectionList[:] - elif ID == 1: - self.BSections = SectionList[:] - elif ID == 2: - self.TSections = SectionList[:] - # Print the table - self.setSectionType(ID) + def onTableItem(self, row, column): + """ Function called when an item of table is changed. + @param row Changed item row + @param column Changed item column + """ + if self.skip: + return + # Ensure that exist one empty item at least + nRow = self.form.sections.rowCount() + item = self.form.sections.item(nRow-1,0) + if item : + if(item.text() != ''): + self.form.sections.setRowCount(nRow+1) + # Ensure that new item is a number + ID = self.form.sectionType.currentIndex() + if ID == 0: + SectionList = self.LSections[:] + elif ID == 1: + SectionList = self.BSections[:] + elif ID == 2: + SectionList = self.TSections[:] + item = self.form.sections.item(row,column) + (number,flag) = item.text().toFloat() + if not flag: + if len(SectionList) > nRow-1: + number = SectionList[nRow-1] + else: + number = 0.0 + string = '%f' % (number) + item.setText(string) + # Regenerate the list + SectionList = [] + for i in range(0,nRow): + item = self.form.sections.item(i,0) + if item: + (number,flag) = item.text().toFloat() + SectionList.append(number) + # Paste it into the class list + ID = self.form.sectionType.currentIndex() + if ID == 0: + self.LSections = SectionList[:] + elif ID == 1: + self.BSections = SectionList[:] + elif ID == 2: + self.TSections = SectionList[:] + self.obj = self.preview.update(self.ship.Length, self.ship.Beam, self.ship.Draft, self.LSections,self.BSections,self.TSections, self.ship.Shape) + + def onDeleteButton(self): + """ Function called when the delete button is pressed. + All sections mustt be erased + """ + self.form.sections.clearContents() + self.form.sections.setRowCount(1) + # Clear active list + ID = self.form.sectionType.currentIndex() + if ID == 0: + self.LSections = [] + elif ID == 1: + self.BSections = [] + elif ID == 2: + self.TSections = [] + self.setSectionType(ID) + + def onCreateButton(self): + """ Function called when create button is pressed. + Several sections must be added to list + """ + # Recolect data + nSections = self.form.nSections.value() + SectionList = [] + L = 0.0 + ID = self.form.sectionType.currentIndex() + if ID == 0: + L = self.ship.Length + d = L / (nSections-1) # Distance between sections + start = - L/2.0 # Ship must have 0.0 at coordinates origin + elif ID == 1: + L = -0.5*self.ship.Beam # Ship must be in y<0.0 + d = L / (nSections+1.0) # Distance between sections + start = d + elif ID == 2: + L = self.ship.Draft + d = L / (nSections) # Distance between sections + start = d + # Calculate sections + for i in range(0,nSections): + sec = i*d + start + SectionList.append(sec) + # Paste into class table + if ID == 0: + self.LSections = SectionList[:] + elif ID == 1: + self.BSections = SectionList[:] + elif ID == 2: + self.TSections = SectionList[:] + # Print the table + self.setSectionType(ID) - def loadSections(self): - """ Loads from ship object previously selected sections. - """ - # Load sections - props = self.ship.PropertiesList - flag=True - try: - props.index("LSections") - except ValueError: - flag=False - if flag: - self.LSections = self.ship.LSections[:] - self.BSections = self.ship.BSections[:] - self.TSections = self.ship.TSections[:] - # Load scale too - flag=True - try: - props.index("PlotScale") - except ValueError: - flag=False - if flag: - self.form.scale.setValue(self.ship.PlotScale) - # Set UI - self.setSectionType(self.form.sectionType.currentIndex()) + def loadSections(self): + """ Loads from ship object previously selected sections. + """ + # Load sections + props = self.ship.PropertiesList + flag=True + try: + props.index("LSections") + except ValueError: + flag=False + if flag: + self.LSections = self.ship.LSections[:] + self.BSections = self.ship.BSections[:] + self.TSections = self.ship.TSections[:] + # Load scale too + flag=True + try: + props.index("PlotScale") + except ValueError: + flag=False + if flag: + self.form.scale.setValue(self.ship.PlotScale) + # Set UI + self.setSectionType(self.form.sectionType.currentIndex()) - def saveSections(self): - """ Save selected sections into ship object. - """ - # Test if previous section have been created - props = self.ship.PropertiesList - try: - props.index("LSections") - except ValueError: - # Create new sections list - self.ship.addProperty("App::PropertyFloatList","LSections","Ship", str(Translator.translate("Transversal sections position [m]"))).LSections=[] - self.ship.addProperty("App::PropertyFloatList","BSections","Ship", str(Translator.translate("Longitudinal sections position [m]"))).BSections=[] - self.ship.addProperty("App::PropertyFloatList","TSections","Ship", str(Translator.translate("Water lines position [m]"))).TSections=[] - # Save sections - self.ship.LSections = self.LSections[:] - self.ship.BSections = self.BSections[:] - self.ship.TSections = self.TSections[:] - # Save also scale - try: - props.index("PlotScale") - except ValueError: - self.ship.addProperty("App::PropertyInteger","PlotScale","Ship", str(Translator.translate("Plot scale (1:scale format)"))).PlotScale=250 - self.ship.PlotScale = self.form.scale.value() + def saveSections(self): + """ Save selected sections into ship object. + """ + # Test if previous section have been created + props = self.ship.PropertiesList + try: + props.index("LSections") + except ValueError: + # Create new sections list + tooltip = str(QtGui.QApplication.translate("ship_outline","Transversal sections position [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloatList","LSections","Ship", tooltip).LSections=[] + tooltip = str(QtGui.QApplication.translate("ship_outline","Longitudinal sections position [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloatList","BSections","Ship", tooltip).BSections=[] + tooltip = str(QtGui.QApplication.translate("ship_outline","Water lines position [m]", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyFloatList","TSections","Ship", tooltip).TSections=[] + # Save sections + self.ship.LSections = self.LSections[:] + self.ship.BSections = self.BSections[:] + self.ship.TSections = self.TSections[:] + # Save also scale + try: + props.index("PlotScale") + except ValueError: + tooltip = str(QtGui.QApplication.translate("ship_outline","Plot scale (1:scale format)", + None,QtGui.QApplication.UnicodeUTF8)) + self.ship.addProperty("App::PropertyInteger","PlotScale","Ship", tooltip).PlotScale=250 + self.ship.PlotScale = self.form.scale.value() def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/shipOutlineDraw/TaskPanel.ui b/src/Mod/Ship/shipOutlineDraw/TaskPanel.ui index 0d41cbda2e..9d6f67ad94 100644 --- a/src/Mod/Ship/shipOutlineDraw/TaskPanel.ui +++ b/src/Mod/Ship/shipOutlineDraw/TaskPanel.ui @@ -6,7 +6,7 @@ 0 0 - 298 + 316 402 @@ -20,10 +20,16 @@ 0 - QLayout::SetMinimumSize + QLayout::SetDefaultConstraint + + + 0 + 0 + + 142 @@ -32,7 +38,7 @@ - 160 + 16777215 32 @@ -61,6 +67,12 @@ + + + 0 + 0 + + 142 @@ -69,7 +81,7 @@ - 160 + 16777215 32 @@ -80,9 +92,15 @@ + + + 0 + 0 + + - 142 + 0 256 @@ -95,53 +113,71 @@ Auto create - - - - 0 - 30 - 142 - 27 - - - - - 142 - 24 - - - - - 160 - 32 - - - - - - - 0 - 70 - 142 - 27 - - - - - 142 - 24 - - - - - 160 - 32 - - - - Create sections - - + + + + + + 0 + 0 + + + + + 142 + 24 + + + + + 16777215 + 32 + + + + + + + + + 0 + 0 + + + + + 142 + 24 + + + + + 16777215 + 32 + + + + Create sections + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 140 + + + + + @@ -156,6 +192,12 @@ + + + 0 + 0 + + 128 @@ -164,7 +206,7 @@ - 128 + 16777215 16777215 @@ -199,75 +241,69 @@ - 128 + 0 72 - 256 + 16777215 96 Plane scale - - - - 0 - 30 - 251 - 41 - - - - - - - - 16 - 16 - - - - - 32 - 16777215 - - - - 1: - - - Qt::AlignCenter - - - - - - - - 0 - 16 - - - - 1 - - - 1000000 - - - 50 - - - 250 - - - - - + + + + + + + + 16 + 16 + + + + + 32 + 16777215 + + + + 1: + + + Qt::AlignCenter + + + + + + + + 0 + 16 + + + + 1 + + + 1000000 + + + 50 + + + 250 + + + + + + diff --git a/src/Mod/Ship/shipOutlineDraw/__init__.py b/src/Mod/Ship/shipOutlineDraw/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/shipOutlineDraw/__init__.py +++ b/src/Mod/Ship/shipOutlineDraw/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/shipUtils/Math.py b/src/Mod/Ship/shipUtils/Math.py index 018467c58f..6b89a5279a 100644 --- a/src/Mod/Ship/shipUtils/Math.py +++ b/src/Mod/Ship/shipUtils/Math.py @@ -1,57 +1,57 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** def isAprox(a,b,tol=0.000001): - """returns if a value is into (b-tol,b+tol) - @param a Value to compare. - @param b Center of valid interval - @param tol Radius of valid interval - @return True if a is into (b-tol,b+tol), False otherwise - """ - if (a < b+abs(tol)) and (a > b-abs(tol)): - return True - return False + """returns if a value is into (b-tol,b+tol) + @param a Value to compare. + @param b Center of valid interval + @param tol Radius of valid interval + @return True if a is into (b-tol,b+tol), False otherwise + """ + if (a < b+abs(tol)) and (a > b-abs(tol)): + return True + return False def isSamePoint(a,b,tol=0.000001): - """returns if two points are the same with a provided tolerance - @param a Point to compare. - @param b Reference point. - @param tol Radius of valid interval - @return True if twice point are the same, False otherwise - @note FreeCAD::Base::Vector types must be provided - """ - if isAprox(a.x,b.x,tol) and isAprox(a.y,b.y,tol) and isAprox(a.z,b.z,tol): - return True - return False + """returns if two points are the same with a provided tolerance + @param a Point to compare. + @param b Reference point. + @param tol Radius of valid interval + @return True if twice point are the same, False otherwise + @note FreeCAD::Base::Vector types must be provided + """ + if isAprox(a.x,b.x,tol) and isAprox(a.y,b.y,tol) and isAprox(a.z,b.z,tol): + return True + return False def isSameVertex(a,b,tol=0.0001): - """returns if two points are the same with a provided tolerance - @param a Point to compare. - @param b Reference point. - @param tol Radius of valid interval - @return True if twice point are the same, False otherwise - @note FreeCAD::Part::Vertex types must be provided - """ - if isAprox(a.X,b.X,tol) and isAprox(a.Y,b.Y,tol) and isAprox(a.Z,b.Z,tol): - return True - return False + """returns if two points are the same with a provided tolerance + @param a Point to compare. + @param b Reference point. + @param tol Radius of valid interval + @return True if twice point are the same, False otherwise + @note FreeCAD::Part::Vertex types must be provided + """ + if isAprox(a.X,b.X,tol) and isAprox(a.Y,b.Y,tol) and isAprox(a.Z,b.Z,tol): + return True + return False diff --git a/src/Mod/Ship/shipUtils/Paths.py b/src/Mod/Ship/shipUtils/Paths.py index 0ea1168ea0..e9798b50a8 100644 --- a/src/Mod/Ship/shipUtils/Paths.py +++ b/src/Mod/Ship/shipUtils/Paths.py @@ -1,55 +1,55 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import FreeCAD, FreeCADGui, os def modulePath(): - """returns the current Ship design module path - @return Module path""" - path1 = FreeCAD.ConfigGet("AppHomePath") + "Mod/Ship" - path2 = FreeCAD.ConfigGet("UserAppData") + "Mod/Ship" - if os.path.exists(path2): - return path2 - else: - return path1 + """returns the current Ship design module path + @return Module path""" + path1 = FreeCAD.ConfigGet("AppHomePath") + "Mod/Ship" + path2 = FreeCAD.ConfigGet("UserAppData") + "Mod/Ship" + if os.path.exists(path2): + return path2 + else: + return path1 def iconsPath(): - """returns the current Ship design module icons path - @return Icons path""" - path = modulePath() + "/Icons" - return path + """returns the current Ship design module icons path + @return Icons path""" + path = modulePath() + "/resources/icons" + return path def getPathFromFile(fileName): - """ Gets the directory path from a file name - @param fileName Name of the file - @return Directory path. - """ - if not fileName: - return '' - i = 1 - try: - while 1: - i = fileName.index("/", i+1) - except ValueError: - pass - return fileName[0:i+1] + """ Gets the directory path from a file name + @param fileName Name of the file + @return Directory path. + """ + if not fileName: + return '' + i = 1 + try: + while 1: + i = fileName.index("/", i+1) + except ValueError: + pass + return fileName[0:i+1] diff --git a/src/Mod/Ship/shipUtils/Translator.py b/src/Mod/Ship/shipUtils/Translator.py deleted file mode 100644 index 1fe7f61e8d..0000000000 --- a/src/Mod/Ship/shipUtils/Translator.py +++ /dev/null @@ -1,30 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import FreeCAD, FreeCADGui, os -from PyQt4 import QtCore,QtGui - -def translate(text,context="ship"): - "convenience function for Qt translator" - return QtGui.QApplication.translate(context, text, None, - QtGui.QApplication.UnicodeUTF8) diff --git a/src/Mod/Ship/simCreate/TaskPanel.py b/src/Mod/Ship/simCreate/TaskPanel.py index 38ea00b96a..7e200532b2 100644 --- a/src/Mod/Ship/simCreate/TaskPanel.py +++ b/src/Mod/Ship/simCreate/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -28,150 +28,158 @@ import FreeCADGui as Gui from PyQt4 import QtGui,QtCore # Module import SimInstance -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/simCreate/TaskPanel.ui" + def __init__(self): + self.ui = Paths.modulePath() + "/simCreate/TaskPanel.ui" - def accept(self): - form = self.form - # Read waves data - w = [] - for i in range(0,form.waves.rowCount() - 1): - item = form.waves.item(i,0) - A = item.text().toFloat()[0] - item = form.waves.item(i,1) - T = item.text().toFloat()[0] - item = form.waves.item(i,2) - phi = item.text().toFloat()[0] - item = form.waves.item(i,3) - head = item.text().toFloat()[0] - w.append([A,T,phi,head]) - obj = App.ActiveDocument.addObject("Part::FeaturePython","ShipSimulation") - sim = SimInstance.ShipSimulation(obj, - [form.length.value(), form.beam.value(), form.n.value()], - w) - SimInstance.ViewProviderShipSimulation(obj.ViewObject) - return True + def accept(self): + form = self.form + # Read waves data + w = [] + for i in range(0,form.waves.rowCount() - 1): + item = form.waves.item(i,0) + A = item.text().toFloat()[0] + item = form.waves.item(i,1) + T = item.text().toFloat()[0] + item = form.waves.item(i,2) + phi = item.text().toFloat()[0] + item = form.waves.item(i,3) + head = item.text().toFloat()[0] + w.append([A,T,phi,head]) + obj = App.ActiveDocument.addObject("Part::FeaturePython","ShipSimulation") + sim = SimInstance.ShipSimulation(obj, + [form.length.value(), form.beam.value(), form.n.value()], + w) + SimInstance.ViewProviderShipSimulation(obj.ViewObject) + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") - form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") - form.n = form.findChild(QtGui.QSpinBox, "N") - form.waves = form.findChild(QtGui.QTableWidget, "Waves") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onFS) - QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onFS) - QtCore.QObject.connect(form.n, QtCore.SIGNAL("valueChanged(int)"), self.onFS) - QtCore.QObject.connect(form.waves,QtCore.SIGNAL("cellChanged(int,int)"),self.onWaves); + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") + form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") + form.n = form.findChild(QtGui.QSpinBox, "N") + form.waves = form.findChild(QtGui.QTableWidget, "Waves") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onFS) + QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onFS) + QtCore.QObject.connect(form.n, QtCore.SIGNAL("valueChanged(int)"), self.onFS) + QtCore.QObject.connect(form.waves,QtCore.SIGNAL("cellChanged(int,int)"),self.onWaves); - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Create a new ship simulation")) - self.form.findChild(QtGui.QGroupBox, "FSDataBox").setTitle(Translator.translate("Free surface")) - self.form.findChild(QtGui.QLabel, "LengthLabel").setText(Translator.translate("Length")) - self.form.findChild(QtGui.QLabel, "BeamLabel").setText(Translator.translate("Beam")) - self.form.findChild(QtGui.QLabel, "NLabel").setText(Translator.translate("Number of points")) - self.form.findChild(QtGui.QGroupBox, "WavesDataBox").setTitle(Translator.translate("Waves")) - labels = [] - labels.append(Translator.translate("Amplitude") + " [m]") - labels.append(Translator.translate("Period") + " [s]") - labels.append(Translator.translate("Phase") + " [rad]") - labels.append(Translator.translate("Heading") + " [deg]") - self.form.waves.setHorizontalHeaderLabels(labels) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shipsim_create","Create a new ship simulation", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "FSDataBox").setTitle(QtGui.QApplication.translate("shipsim_create","Free surface", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "LengthLabel").setText(QtGui.QApplication.translate("shipsim_create","Length", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "BeamLabel").setText(QtGui.QApplication.translate("shipsim_create","Breadth", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "NLabel").setText(QtGui.QApplication.translate("shipsim_create","Number of points", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "WavesDataBox").setTitle(QtGui.QApplication.translate("shipsim_create","Waves", + None,QtGui.QApplication.UnicodeUTF8)) + labels = [] + labels.append(QtGui.QApplication.translate("shipsim_create","Amplitude", + None,QtGui.QApplication.UnicodeUTF8) + " [m]") + labels.append(QtGui.QApplication.translate("shipsim_create","Period", + None,QtGui.QApplication.UnicodeUTF8) + " [s]") + labels.append(QtGui.QApplication.translate("shipsim_create","Phase", + None,QtGui.QApplication.UnicodeUTF8) + " [rad]") + labels.append(QtGui.QApplication.translate("shipsim_create","Heading", + None,QtGui.QApplication.UnicodeUTF8) + " [deg]") + self.form.waves.setHorizontalHeaderLabels(labels) - def onFS(self, value): - """ Method called when free surface data is changed. - @param value Changed value. - """ - pass + def onFS(self, value): + """ Method called when free surface data is changed. + @param value Changed value. + """ + pass - def onWaves(self, row, column): - """ Method called when waves data is changed. - @param row Affected row. - @param col Affected column. - """ - item = self.form.waves.item(row,column) - # Row deletion - if column == 0: - if not item.text(): - self.form.waves.removeRow(row) - # Ensure that exist one empty item at the end - nRow = self.form.waves.rowCount() - if not nRow: - self.form.waves.setRowCount(1) - else: - last = self.form.waves.item(nRow-1,0) - if last: - if(last.text() != ''): - self.form.waves.setRowCount(nRow+1) - # Fields must be numbers - for i in range(0,self.form.waves.rowCount()-1): # Avoid last row - for j in range(0,self.form.waves.columnCount()): # Avoid name column - item = self.form.waves.item(i,j) - if not item: - item = QtGui.QTableWidgetItem('0.0') - self.form.waves.setItem(i,j,item) - continue - (number,flag) = item.text().toFloat() - if not flag: - item.setText('0.0') + def onWaves(self, row, column): + """ Method called when waves data is changed. + @param row Affected row. + @param col Affected column. + """ + item = self.form.waves.item(row,column) + # Row deletion + if column == 0: + if not item.text(): + self.form.waves.removeRow(row) + # Ensure that exist one empty item at the end + nRow = self.form.waves.rowCount() + if not nRow: + self.form.waves.setRowCount(1) + else: + last = self.form.waves.item(nRow-1,0) + if last: + if(last.text() != ''): + self.form.waves.setRowCount(nRow+1) + # Fields must be numbers + for i in range(0,self.form.waves.rowCount()-1): # Avoid last row + for j in range(0,self.form.waves.columnCount()): # Avoid name column + item = self.form.waves.item(i,j) + if not item: + item = QtGui.QTableWidgetItem('0.0') + self.form.waves.setItem(i,j,item) + continue + (number,flag) = item.text().toFloat() + if not flag: + item.setText('0.0') def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/simCreate/__init__.py b/src/Mod/Ship/simCreate/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/simCreate/__init__.py +++ b/src/Mod/Ship/simCreate/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/simPost/TaskPanel.py b/src/Mod/Ship/simPost/TaskPanel.py index 9c6ca53c33..a607c71472 100644 --- a/src/Mod/Ship/simPost/TaskPanel.py +++ b/src/Mod/Ship/simPost/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -30,127 +30,127 @@ from PyQt4 import QtGui,QtCore import pyopencl as cl # Module import SimInstance -from shipUtils import Paths, Translator +from shipUtils import Paths from simRun import Simulation Sim = Simulation.FreeCADShipSimulation -# from Simulation import FreeCADShipSimulation as Sim class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/simPost/TaskPanel.ui" + def __init__(self): + self.ui = Paths.modulePath() + "/simPost/TaskPanel.ui" - def accept(self): - return True + def accept(self): + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.time = form.findChild(QtGui.QLabel, "TimeLabel") - form.first = form.findChild(QtGui.QPushButton, "First") - form.prev = form.findChild(QtGui.QPushButton, "Prev") - form.now = form.findChild(QtGui.QPushButton, "Now") - form.next = form.findChild(QtGui.QPushButton, "Next") - form.last = form.findChild(QtGui.QPushButton, "Last") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.first, QtCore.SIGNAL("pressed()"), self.onFirst) - QtCore.QObject.connect(form.prev, QtCore.SIGNAL("pressed()"), self.onPrev) - QtCore.QObject.connect(form.now, QtCore.SIGNAL("pressed()"), self.onNow) - QtCore.QObject.connect(form.next, QtCore.SIGNAL("pressed()"), self.onNext) - QtCore.QObject.connect(form.last, QtCore.SIGNAL("pressed()"), self.onLast) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.time = form.findChild(QtGui.QLabel, "TimeLabel") + form.first = form.findChild(QtGui.QPushButton, "First") + form.prev = form.findChild(QtGui.QPushButton, "Prev") + form.now = form.findChild(QtGui.QPushButton, "Now") + form.next = form.findChild(QtGui.QPushButton, "Next") + form.last = form.findChild(QtGui.QPushButton, "Last") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.first, QtCore.SIGNAL("pressed()"), self.onFirst) + QtCore.QObject.connect(form.prev, QtCore.SIGNAL("pressed()"), self.onPrev) + QtCore.QObject.connect(form.now, QtCore.SIGNAL("pressed()"), self.onNow) + QtCore.QObject.connect(form.next, QtCore.SIGNAL("pressed()"), self.onNext) + QtCore.QObject.connect(form.last, QtCore.SIGNAL("pressed()"), self.onLast) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Track simulation")) - self.form.findChild(QtGui.QPushButton, "Now").setText(Translator.translate("Now")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shipsim_track","Track simulation", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QPushButton, "Now").setText(QtGui.QApplication.translate("shipsim_track","Now", + None,QtGui.QApplication.UnicodeUTF8)) - def onFirst(self): - """ Called when first frame button is pressed. - """ + def onFirst(self): + """ Called when first frame button is pressed. + """ - def onPrev(self): - """ Called when previous frame button is pressed. - """ + def onPrev(self): + """ Called when previous frame button is pressed. + """ - def onNow(self): - """ Called when actual frame button is pressed. - """ - sim = Sim() - pos = sim.sim.FS_Position[:] - nx = sim.FS['Nx'] - ny = sim.FS['Ny'] - for i in range(0, nx): - for j in range(0, ny): - pos[i*ny+j].z = float(sim.FS['pos'][i,j][2]) - sim.sim.FS_Position = pos[:] - App.ActiveDocument.recompute() - self.form.time.setText("t = %g s" % (sim.t)) + def onNow(self): + """ Called when actual frame button is pressed. + """ + sim = Sim() + pos = sim.sim.FS_Position[:] + nx = sim.FS['Nx'] + ny = sim.FS['Ny'] + for i in range(0, nx): + for j in range(0, ny): + pos[i*ny+j].z = float(sim.FS['pos'][i,j][2]) + sim.sim.FS_Position = pos[:] + App.ActiveDocument.recompute() + self.form.time.setText("t = %g s" % (sim.t)) - def onNext(self): - """ Called when next frame button is pressed. - """ + def onNext(self): + """ Called when next frame button is pressed. + """ - def onLast(self): - """ Called when last frame button is pressed. - """ + def onLast(self): + """ Called when last frame button is pressed. + """ def createTask(): - try: - simulator = Sim() - except: - msg = Translator.translate("Can't find any active simulation!\n") - App.Console.PrintError(msg) - return - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + try: + simulator = Sim() + except: + msg = QtGui.QApplication.translate("ship_console", "Can't find any active simulation", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/simPost/__init__.py b/src/Mod/Ship/simPost/__init__.py index 64c597c02c..b153dc051f 100644 --- a/src/Mod/Ship/simPost/__init__.py +++ b/src/Mod/Ship/simPost/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,9 +32,9 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() def stop(): - """ Stops the simulation """ - TaskPanel.stopSimulation() + """ Stops the simulation """ + TaskPanel.stopSimulation() diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index aa8373df89..06773fc4e1 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -1,29 +1,32 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** from math import * import threading +# Qt library +from PyQt4 import QtGui,QtCore + # pyOpenCL import pyopencl as cl import numpy as np @@ -34,96 +37,101 @@ from FreeCAD import Base, Vector import Part # Ship design module -from shipUtils import Paths, Translator, Math +from shipUtils import Paths, Math class Singleton(type): - def __init__(cls, name, bases, dct): - cls.__instance = None - type.__init__(cls, name, bases, dct) + def __init__(cls, name, bases, dct): + cls.__instance = None + type.__init__(cls, name, bases, dct) - def __call__(cls, *args, **kw): - if cls.__instance is None: - cls.__instance = type.__call__(cls, *args,**kw) - return cls.__instance + def __call__(cls, *args, **kw): + if cls.__instance is None: + cls.__instance = type.__call__(cls, *args,**kw) + return cls.__instance class FreeCADShipSimulation(threading.Thread): - __metaclass__ = Singleton - def __init__ (self, device, endTime, output, simInstance, FSmesh, waves): - """ Thread constructor. - @param device Device to use. - @param endTime Maximum simulation time. - @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. - @param simInstance Simulaation instance. - @param FSmesh Free surface mesh faces. - @param waves Waves parameters (A,T,phi,heading) - """ - threading.Thread.__init__(self) - # Setup as stopped - self.active = False - # Build OpenCL context and command queue - self.device = device - if self.device == None: # Can't use OpenCL - self.context = None - self.queue = None - else: - self.context = cl.Context(devices=[self.device]) - self.queue = cl.CommandQueue(self.context) - # Storage data - self.endTime = endTime - self.output = output - self.sim = simInstance - self.FSmesh = FSmesh - self.waves = waves - - def run(self): - """ Runs the simulation. - """ - self.active = True - # Simulation stuff - if self.device == None: - from Sim import * - else: - from clSim import * - msg = Translator.translate("\t[Sim]: Initializating...\n") - FreeCAD.Console.PrintMessage(msg) - init = simInitialization(self.FSmesh,self.waves,self.context,self.queue) - matGen = simMatrixGen(self.context,self.queue) - solver = simComputeSources(self.context,self.queue) - fsEvol = simFSEvolution(self.context,self.queue) - A = init.A - FS = init.fs - waves = init.waves - dt = init.dt - self.t = 0.0 - self.FS = FS - nx = FS['Nx'] - ny = FS['Ny'] - msg = Translator.translate("\t[Sim]: Iterating...\n") - FreeCAD.Console.PrintMessage(msg) - while self.active and self.t < self.endTime: - msg = Translator.translate("\t\t[Sim]: Generating linear system matrix...\n") - FreeCAD.Console.PrintMessage(msg) - matGen.execute(FS, A) - msg = Translator.translate("\t\t[Sim]: Solving linear systems...\n") - FreeCAD.Console.PrintMessage(msg) - solver.execute(FS, A) - msg = Translator.translate("\t\t[Sim]: Time integrating...\n") - FreeCAD.Console.PrintMessage(msg) - fsEvol.execute(FS, waves, dt, self.t) - self.t = self.t + dt - FreeCAD.Console.PrintMessage('t = %g s\n' % (self.t)) - # Set thread as stopped (and prepare it to restarting) - self.active = False - threading.Event().set() - threading.Thread.__init__(self) + __metaclass__ = Singleton + def __init__ (self, device, endTime, output, simInstance, FSmesh, waves): + """ Thread constructor. + @param device Device to use. + @param endTime Maximum simulation time. + @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. + @param simInstance Simulaation instance. + @param FSmesh Free surface mesh faces. + @param waves Waves parameters (A,T,phi,heading) + """ + threading.Thread.__init__(self) + # Setup as stopped + self.active = False + # Build OpenCL context and command queue + self.device = device + if self.device == None: # Can't use OpenCL + self.context = None + self.queue = None + else: + self.context = cl.Context(devices=[self.device]) + self.queue = cl.CommandQueue(self.context) + # Storage data + self.endTime = endTime + self.output = output + self.sim = simInstance + self.FSmesh = FSmesh + self.waves = waves + + def run(self): + """ Runs the simulation. + """ + self.active = True + # Simulation stuff + if self.device == None: + from Sim import * + else: + from clSim import * + msg = QtGui.QApplication.translate("ship_console","Initializating", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t[Sim]: " + msg + "...\n") + init = simInitialization(self.FSmesh,self.waves,self.context,self.queue) + matGen = simMatrixGen(self.context,self.queue) + solver = simComputeSources(self.context,self.queue) + fsEvol = simFSEvolution(self.context,self.queue) + A = init.A + FS = init.fs + waves = init.waves + dt = init.dt + self.t = 0.0 + self.FS = FS + nx = FS['Nx'] + ny = FS['Ny'] + msg = QtGui.QApplication.translate("ship_console","Iterating", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t[Sim]: " + msg + "...\n") + while self.active and self.t < self.endTime: + msg = QtGui.QApplication.translate("ship_console","Generating linear system matrix", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t\t[Sim]: " + msg + "...\n") + matGen.execute(FS, A) + msg = QtGui.QApplication.translate("ship_console","Solving linear systems", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t\t[Sim]: " + msg + "...\n") + solver.execute(FS, A) + msg = QtGui.QApplication.translate("ship_console","Time integrating", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage("\t\t[Sim]: " + msg + "...\n") + fsEvol.execute(FS, waves, dt, self.t) + self.t = self.t + dt + FreeCAD.Console.PrintMessage('\t[Sim]: t = %g s\n' % (self.t)) + # Set thread as stopped (and prepare it to restarting) + self.active = False + threading.Event().set() + threading.Thread.__init__(self) - def stop(self): - """ Call to stop execution. - """ - self.active = False - - def isRunning(self): - """ Report thread state - @return True if thread is running, False otherwise. - """ - return self.active + def stop(self): + """ Call to stop execution. + """ + self.active = False + + def isRunning(self): + """ Report thread state + @return True if thread is running, False otherwise. + """ + return self.active diff --git a/src/Mod/Ship/simRun/TaskPanel.py b/src/Mod/Ship/simRun/TaskPanel.py index 58faa2b2d5..628347458e 100644 --- a/src/Mod/Ship/simRun/TaskPanel.py +++ b/src/Mod/Ship/simRun/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -30,175 +30,189 @@ from PyQt4 import QtGui,QtCore import pyopencl as cl # Module import SimInstance -from shipUtils import Paths, Translator +from shipUtils import Paths from Simulation import FreeCADShipSimulation as Sim import time class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/simRun/TaskPanel.ui" - self.sim = False + def __init__(self): + self.ui = Paths.modulePath() + "/simRun/TaskPanel.ui" + self.sim = False - def accept(self): - msg = Translator.translate("Building data...\n") - App.Console.PrintMessage(msg) - # Get GUI data - endTime = self.form.time.value() - output = [] - output.append(self.form.output.value()) - output.append(self.form.outputType.currentIndex()) - devId = self.form.device.currentIndex() - 1 # First is not OpenCL - # Get OpenCL device - device = None - count = 0 - platforms = cl.get_platforms() - for p in platforms: - devs = p.get_devices() - for d in devs: - if count == devId: - device = d - count = count + 1 - # Get free surfaces data - FSMesh = SimInstance.FSMesh(self.sim) - wData = self.sim.Waves - wDir = self.sim.Waves_Dir - waves = [] - for i in range(0,len(wData)): - waves.append([wData[i].x, wData[i].y, wData[i].z, wDir[i]]) - msg = Translator.translate("Launching simulation...\n") - App.Console.PrintMessage(msg) - # Build simulation thread - simulator = Sim(device, endTime, output, self.sim, FSMesh, waves) - simulator.start() - msg = Translator.translate("Done!\n") - App.Console.PrintMessage(msg) - return True + def accept(self): + msg = QtGui.QApplication.translate("ship_console","Building data", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + "...\n") + # Get GUI data + endTime = self.form.time.value() + output = [] + output.append(self.form.output.value()) + output.append(self.form.outputType.currentIndex()) + devId = self.form.device.currentIndex() - 1 # First is not OpenCL + # Get OpenCL device + device = None + count = 0 + platforms = cl.get_platforms() + for p in platforms: + devs = p.get_devices() + for d in devs: + if count == devId: + device = d + count = count + 1 + # Get free surfaces data + FSMesh = SimInstance.FSMesh(self.sim) + wData = self.sim.Waves + wDir = self.sim.Waves_Dir + waves = [] + for i in range(0,len(wData)): + waves.append([wData[i].x, wData[i].y, wData[i].z, wDir[i]]) + msg = QtGui.QApplication.translate("ship_console","Launching simulation", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + "...\n") + # Build simulation thread + simulator = Sim(device, endTime, output, self.sim, FSMesh, waves) + simulator.start() + msg = QtGui.QApplication.translate("ship_console","Done", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + "!\n") + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.time = form.findChild(QtGui.QDoubleSpinBox, "SimTime") - form.output = form.findChild(QtGui.QDoubleSpinBox, "Output") - form.outputType = form.findChild(QtGui.QComboBox, "OutputType") - form.device = form.findChild(QtGui.QComboBox, "Device") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - # QtCore.QObject.connect(form.time, QtCore.SIGNAL("valueChanged(double)"), self.onData) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.time = form.findChild(QtGui.QDoubleSpinBox, "SimTime") + form.output = form.findChild(QtGui.QDoubleSpinBox, "Output") + form.outputType = form.findChild(QtGui.QComboBox, "OutputType") + form.device = form.findChild(QtGui.QComboBox, "Device") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + # QtCore.QObject.connect(form.time, QtCore.SIGNAL("valueChanged(double)"), self.onData) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Set initial values for fields - """ - # Get objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship simulation instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShipSimulation") - except ValueError: - continue - if obj.IsShipSimulation: - # Test if another ship already selected - if self.sim: - msg = Translator.translate("More than one ship simulation selected (extra simulations will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.sim = obj - # Test if any valid ship was selected - if not self.sim: - msg = Translator.translate("Ship simulation instance must be selected (no valid simulation found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get the list of devices - self.form.device.addItem("CPU based version (No OpenCL)") - devices = [] - platforms = cl.get_platforms() - for p in platforms: - devs = p.get_devices() - for d in devs: - devices.append([p,d]) - dname = d.get_info(cl.device_info.NAME) - pname = p.get_info(cl.platform_info.NAME) - self.form.device.addItem(dname + " (" + pname + ")") - if not len(devices): - msg = Translator.translate("Can't find OpenCL devices\n") - App.Console.PrintWarning(msg) - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Set initial values for fields + """ + # Get objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", "Ship simulation instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShipSimulation") + except ValueError: + continue + if obj.IsShipSimulation: + # Test if another ship already selected + if self.sim: + msg = QtGui.QApplication.translate("ship_console", + "More than one ship simulation selected (extra simulations will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.sim = obj + # Test if any valid ship was selected + if not self.sim: + msg = QtGui.QApplication.translate("ship_console", + "Ship simulation instance must be selected (no valid simulation found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get the list of devices + self.form.device.addItem("CPU based version (No OpenCL)") + devices = [] + platforms = cl.get_platforms() + for p in platforms: + devs = p.get_devices() + for d in devs: + devices.append([p,d]) + dname = d.get_info(cl.device_info.NAME) + pname = p.get_info(cl.platform_info.NAME) + self.form.device.addItem(dname + " (" + pname + ")") + if not len(devices): + msg = QtGui.QApplication.translate("ship_console", "Can't find OpenCL devices", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Run the simulation")) - self.form.findChild(QtGui.QLabel, "SimTimeLabel").setText(Translator.translate("Simulation time")) - self.form.findChild(QtGui.QLabel, "OutputLabel").setText(Translator.translate("Output")) - self.form.findChild(QtGui.QLabel, "DeviceLabel").setText(Translator.translate("OpenCL device")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shipsim_stop","Run the simulation", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "SimTimeLabel").setText(QtGui.QApplication.translate("shipsim_stop","Simulation time", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "OutputLabel").setText(QtGui.QApplication.translate("shipsim_stop","Output", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "DeviceLabel").setText(QtGui.QApplication.translate("shipsim_stop","OpenCL device", + None,QtGui.QApplication.UnicodeUTF8)) def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel def stopSimulation(): - try: - simulator = Sim() - if not simulator.isRunning(): - msg = Translator.translate("Simulation already stopped\n") - App.Console.PrintWarning(msg) - return - except: - msg = Translator.translate("Any active simulation to stop!\n") - App.Console.PrintError(msg) - return - simulator.stop() - msg = Translator.translate("Simulation will stop at the end of actual iteration\n") - App.Console.PrintMessage(msg) + try: + simulator = Sim() + if not simulator.isRunning(): + msg = QtGui.QApplication.translate("ship_console", "Simulation already stopped", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + return + except: + msg = QtGui.QApplication.translate("ship_console", "Any active simulation to stop", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return + simulator.stop() + msg = QtGui.QApplication.translate("ship_console", "Simulation will stop at the end of actual iteration", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + '\n') diff --git a/src/Mod/Ship/simRun/__init__.py b/src/Mod/Ship/simRun/__init__.py index 64c597c02c..b153dc051f 100644 --- a/src/Mod/Ship/simRun/__init__.py +++ b/src/Mod/Ship/simRun/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,9 +32,9 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() def stop(): - """ Stops the simulation """ - TaskPanel.stopSimulation() + """ Stops the simulation """ + TaskPanel.stopSimulation() diff --git a/src/Mod/Ship/tankCreateTank/TaskPanel.py b/src/Mod/Ship/tankCreateTank/TaskPanel.py index 15305ca901..e03f897d9b 100644 --- a/src/Mod/Ship/tankCreateTank/TaskPanel.py +++ b/src/Mod/Ship/tankCreateTank/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -29,140 +29,148 @@ import Part from PyQt4 import QtGui,QtCore # Module from TankInstance import * -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/tankCreateTank/TaskPanel.ui" + def __init__(self): + self.ui = Paths.modulePath() + "/tankCreateTank/TaskPanel.ui" - def accept(self): - # Create new ship instance - obj = App.ActiveDocument.addObject("Part::FeaturePython","Tank") - ShipTank(obj, self.solid, self.form.level.value(), self.form.dens.value()) - if not obj.IsShipTank: - msg = Translator.translate("Tank has not been created.\n") - App.Console.PrintError(msg) - ViewProviderShipTank(obj.ViewObject) - App.ActiveDocument.recompute() - return True + def accept(self): + # Create new ship instance + obj = App.ActiveDocument.addObject("Part::FeaturePython","Tank") + ShipTank(obj, self.solid, self.form.level.value(), self.form.dens.value()) + if not obj.IsShipTank: + msg = QtGui.QApplication.translate("ship_console", "Tank has not been created", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + ViewProviderShipTank(obj.ViewObject) + App.ActiveDocument.recompute() + return True - def reject(self): - return True + def reject(self): + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.level = form.findChild(QtGui.QDoubleSpinBox, "Level") - form.dens = form.findChild(QtGui.QDoubleSpinBox, "Density") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.level, QtCore.SIGNAL("valueChanged(double)"), self.onLevel) - QtCore.QObject.connect(form.dens , QtCore.SIGNAL("valueChanged(double)"), self.onDens) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.level = form.findChild(QtGui.QDoubleSpinBox, "Level") + form.dens = form.findChild(QtGui.QDoubleSpinBox, "Density") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.level, QtCore.SIGNAL("valueChanged(double)"), self.onLevel) + QtCore.QObject.connect(form.dens , QtCore.SIGNAL("valueChanged(double)"), self.onDens) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Get selected geometry. - @return False if sucessfully find valid geometry. - """ - self.solid = None - solids = [] - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Tank objects can only be created on top of structure geometry (no object selected).\n") - App.Console.PrintError(msg) - msg = Translator.translate("Please create a tank geometry before using this tool.\n") - App.Console.PrintError(msg) - return True - for i in range(0, len(selObjs)): - solid = selObjs[i] - if solid.isDerivedFrom('Part::Feature'): - # Get shape - shape = solid.Shape - if not shape: - continue - solid = shape - if not solid.isDerivedFrom('Part::TopoShape'): - return None - # Get shells - shells = solid.Shells - if not shells: - continue - # Build solids - for s in shells: - solids.append(Part.Solid(s)) - if not solids: - msg = Translator.translate("Ship objects can only be created on top of structure geometry (no solids can't be computed).\n") - App.Console.PrintError(msg) - msg = Translator.translate("Please create or download a tank geometry before using this tool\n") - App.Console.PrintError(msg) - return True - self.solid = Part.CompSolid(solids) - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Get selected geometry. + @return False if sucessfully find valid geometry. + """ + self.solid = None + solids = [] + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", + "Tank objects can only be created on top of structure geometry (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + msg = QtGui.QApplication.translate("ship_console", + "Please create a tank geometry before using this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0, len(selObjs)): + solid = selObjs[i] + if solid.isDerivedFrom('Part::Feature'): + # Get shape + shape = solid.Shape + if not shape: + continue + solid = shape + if not solid.isDerivedFrom('Part::TopoShape'): + return None + # Get shells + shells = solid.Shells + if not shells: + continue + # Build solids + for s in shells: + solids.append(Part.Solid(s)) + if not solids: + msg = QtGui.QApplication.translate("ship_console", + "Tank objects can only be created on top of structure geometry (no solids can't be computed)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + msg = QtGui.QApplication.translate("ship_console", + "Please create a tank geometry before using this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + self.solid = Part.CompSolid(solids) + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Create a new tank")) - name = Translator.translate("Filling level") + " (%)" - self.form.findChild(QtGui.QLabel, "LevelLabel").setText(name) - name = '\n' - name = name + Translator.translate("Density") - name = name + '(kg/m3)' - self.form.findChild(QtGui.QLabel, "DensityLabel").setText(name) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shiptank_create","Create a new tank", + None,QtGui.QApplication.UnicodeUTF8)) + name = QtGui.QApplication.translate("shiptank_create","Filling level", None,QtGui.QApplication.UnicodeUTF8) + " (%)" + self.form.findChild(QtGui.QLabel, "LevelLabel").setText(name) + name = '\n' + name = name + QtGui.QApplication.translate("shiptank_create","Fluid density", None,QtGui.QApplication.UnicodeUTF8) + name = name + '(kg/m3)' + self.form.findChild(QtGui.QLabel, "DensityLabel").setText(name) - def onLevel(self, value): - """ Method called when tank filling level has been modified. - @param value Changed value. - """ - pass + def onLevel(self, value): + """ Method called when tank filling level has been modified. + @param value Changed value. + """ + pass - def onDens(self, value): - """ Method called when fluid density has been modified. - @param value Changed value. - """ - pass + def onDens(self, value): + """ Method called when fluid density has been modified. + @param value Changed value. + """ + pass def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/tankCreateTank/TaskPanel.ui b/src/Mod/Ship/tankCreateTank/TaskPanel.ui index 635af00900..a5c246863b 100644 --- a/src/Mod/Ship/tankCreateTank/TaskPanel.ui +++ b/src/Mod/Ship/tankCreateTank/TaskPanel.ui @@ -15,124 +15,114 @@ - - - - - - 240 - 160 - - - - Fluid - - - false - - - - - 0 - 20 - 241 - 141 - + + + + 240 + 160 + + + + Fluid + + + false + + + + + + 6 - - - 6 - - - QLayout::SetDefaultConstraint - - - - - QLayout::SetDefaultConstraint - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Filling level (%) - - - - - - - 1 - - - 100.000000000000000 - - - 1.000000000000000 - - - - - - - - - 10 - - - 0 - - - 10 - - - 0 - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + + QLayout::SetDefaultConstraint + + + + + QLayout::SetDefaultConstraint + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Filling level (%) + + + + + + + 1 + + + 100.000000000000000 + + + 1.000000000000000 + + + + + + + + + 10 + + + 0 + + + 10 + + + 0 + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Density (kg/m<span style=" vertical-align:super;">3</span>)</p></body></html> - - - - - - - 1 - - - 1000000.000000000000000 - - - 10.000000000000000 - - - 998.000000000000000 - - - - - - - - - - + + + + + + + 1 + + + 1000000.000000000000000 + + + 10.000000000000000 + + + 998.000000000000000 + + + + + + + + + diff --git a/src/Mod/Ship/tankCreateTank/__init__.py b/src/Mod/Ship/tankCreateTank/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/tankCreateTank/__init__.py +++ b/src/Mod/Ship/tankCreateTank/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/tankGZ/Plot.py b/src/Mod/Ship/tankGZ/Plot.py deleted file mode 100644 index 320f201854..0000000000 --- a/src/Mod/Ship/tankGZ/Plot.py +++ /dev/null @@ -1,186 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import os -# FreeCAD modules -import FreeCAD,FreeCADGui -from FreeCAD import Base -import Part, Image, ImageGui -# FreeCADShip modules -from shipUtils import Paths, Translator - -header = """ ################################################################# - - ##### #### ### #### ##### # # ### #### - # # # # # # # # # # # # - # ## #### #### # # # # # # # # # # # - #### # # # # # # # ##### # # ## ## ##### # #### - # # #### #### # # # # # # # # # # - # # # # # # # # # # # # # # - # # #### #### ### # # #### ##### # # ### # - - ################################################################# -""" - -class Plot(object): - def __init__(self, x, y, disp, draft, trim): - """ Constructor. performs plot and show it (Using pyxplot). - @param x Roll angles [deg]. - @param y GZ value [m]. - @param disp Ship displacement [tons]. - @param draft Ship draft [m]. - @param trim Ship trim angle [deg]. - """ - if self.createDirectory(): - return - if self.saveData(x,y): - return - if self.saveLayout(x,y, disp, draft, trim): - return - if self.execute(): - return - ImageGui.open(self.path + 'gz.png') - - def createDirectory(self): - """ Create needed folder to write data and scripts. - @return True if error happens. - """ - self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" - if not os.path.exists(self.path): - os.makedirs(self.path) - if not os.path.exists(self.path): - msg = Translator.translate("Can't create '" + self.path + "' folder.\n") - FreeCAD.Console.PrintError(msg) - return False - - def saveData(self,x,y): - """ Write data file. - @param x Roll angles. - @param y GZ value. - @return True if error happens. - """ - # Open the file - filename = self.path + 'gz.dat' - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Print header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains transversal GZ stability parameter, filled with following columns:\n") - Output.write(" # 1: Roll angles [deg]\n") - Output.write(" # 2: GZ [m]\n") - Output.write(" #\n") - Output.write(" #################################################################\n") - # Print data - if len(x) < 2: - msg = Translator.translate("Not enough data to plot.\n") - FreeCAD.Console.PrintError(msg) - return True - for i in range(0, len(x)): - string = "%f %f\n" % (x[i], y[i]) - Output.write(string) - # Close file - Output.close() - self.dataFile = filename - msg = Translator.translate("Data saved at '" + self.dataFile + "'.\n") - FreeCAD.Console.PrintMessage(msg) - return False - - def saveLayout(self, x, y, disp, draft, trim): - """ Prints the data output. - @param x Roll angles. - @param y GZ value. - @param disp Ship displacement. - @param draft Ship draft. - @param trim Ship trim angle. - @return True if error happens. - """ - filename = self.path + 'gz.pyxplot' - # Open the file - try: - Output = open(filename, "w") - except IOError: - msg = Translator.translate("Can't write '" + filename + "' file.\n") - FreeCAD.Console.PrintError(msg) - return True - # Write header - Output.write(header) - Output.write(" #\n") - Output.write(" # File automatically exported by FreeCAD-Ship\n") - Output.write(" # This file contains a script to plot transversal GZ stability parameter.\n") - Output.write(" # To use it execute:\n") - Output.write(" #\n") - Output.write(" # pyxplot %s\n" % (filename)) - Output.write(" #\n") - Output.write(" #################################################################\n") - # Write general options for hydrostatics - Output.write("set numeric display latex\n") - Output.write("set output '%s'\n" % (self.path + 'gz.eps')) - Output.write("set nokey\n") - Output.write("set grid\n") - Output.write("# X axis\n") - Output.write("set xlabel '$roll$ / degrees'\n") - Output.write("set xtic\n") - Output.write("# Y axis\n") - Output.write("set ylabel '$GZ$ / m'\n") - Output.write("set ytic\n") - Output.write("# Line styles\n") - Output.write("set style 1 line linetype 1 linewidth 2 colour rgb (0):(0):(0)\n") - # Additional data - Output.write("# Additional data\n") - Output.write("set label (1) '$\\Delta = %g \\mathrm{tons}$' %f,%f\n" % (disp, x[0] + 0.65*(x[-1] - x[0]), min(y) + 0.95*(max(y)-min(y)))) - Output.write("set label (2) '$T = %g \\mathrm{m}$' %f,%f\n" % (draft, x[0] + 0.65*(x[-1] - x[0]), min(y) + 0.85*(max(y)-min(y)))) - Output.write("set label (3) '$Trim = %g^\\circ$' %f,%f\n" % (trim, x[0] + 0.65*(x[-1] - x[0]), min(y) + 0.75*(max(y)-min(y)))) - # Write plot call - Output.write("# Plot\n") - Output.write("plot '%s' using 1:2 title 'GZ' axes x1y1 with lines style 1\n" % (self.dataFile)) - # Close file - self.layoutFile = filename - Output.close() - return False - - def execute(self): - """ Calls pyxplot in order to plot an save an image. - @return True if error happens. - """ - filename = self.path + 'gz' - comm = "pyxplot %s" % (self.layoutFile) - if os.system(comm): - msg = Translator.translate("Can't execute pyxplot. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Plot will not generated\n") - FreeCAD.Console.PrintError(msg) - return True - comm = "gs -r300 -dEPSCrop -dTextAlphaBits=4 -sDEVICE=png16m -sOutputFile=%s.png -dBATCH -dNOPAUSE %s.eps" % (filename,filename) - if os.system(comm): - msg = Translator.translate("Can't execute ghostscript. Maybe is not installed?\n") - FreeCAD.Console.PrintError(msg) - msg = Translator.translate("Generated image will not converted to png\n") - FreeCAD.Console.PrintError(msg) - return True - return False diff --git a/src/Mod/Ship/tankGZ/PlotAux.py b/src/Mod/Ship/tankGZ/PlotAux.py new file mode 100644 index 0000000000..e74a8375f3 --- /dev/null +++ b/src/Mod/Ship/tankGZ/PlotAux.py @@ -0,0 +1,154 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import os +# Qt library +from PyQt4 import QtGui,QtCore +# FreeCAD modules +import FreeCAD,FreeCADGui +from FreeCAD import Base +import Part, Image, ImageGui +# FreeCADShip modules +from shipUtils import Paths + +header = """ ################################################################# + + ##### #### ### #### ##### # # ### #### + # # # # # # # # # # # # + # ## #### #### # # # # # # # # # # # + #### # # # # # # # ##### # # ## ## ##### # #### + # # #### #### # # # # # # # # # # + # # # # # # # # # # # # # # + # # #### #### ### # # #### ##### # # ### # + + ################################################################# +""" + +class Plot(object): + def __init__(self, x, y, disp, draft, trim): + """ Constructor. performs plot and show it (Using pyxplot). + @param x Roll angles [deg]. + @param y GZ value [m]. + @param disp Ship displacement [tons]. + @param draft Ship draft [m]. + @param trim Ship trim angle [deg]. + """ + # Try to plot + self.plot(x,y,disp,draft,trim) + # Save data + if self.createDirectory(): + return + if self.saveData(x,y): + return + + def plot(self, x, y, disp, draft, trim): + """ Perform GZ stability plot. + @param x X coordinates. + @param y Transversal areas. + @param disp Ship displacement [tons]. + @param draft Ship draft [m]. + @param trim Ship trim angle [deg]. + @return True if error happens. + """ + # Create plot + try: + import Plot + plt = Plot.figure('GZ') + except ImportError: + msg = QtGui.QApplication.translate("ship_console", "Plot module is disabled, can't perform plot", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintWarning(msg + '\n') + return True + # Plot areas curve + gz = Plot.plot(x,y,r'GZ') + gz.line.set_linestyle('-') + gz.line.set_linewidth(3.0) + gz.line.set_color((0.0, 0.0, 0.0)) + # Add some additional data + ax = Plot.axes() + addInfo = r"""$\bigtriangleup = %g \; \mathrm{tons}$ +$T = %g \; \mathrm{m}$ +$Trim = %g^\circ$""" % (disp, draft, trim) + ax.text(x[-1] - 0.001*(x[-1] - x[0]), max(y) - 0.01*(max(y)-min(y)), addInfo, + verticalalignment='top',horizontalalignment='right', fontsize=20) + # Write axes titles + Plot.xlabel(r'$x \; \mathrm{m}$') + Plot.ylabel(r'$GZ \; \mathrm{m}$') + ax.xaxis.label.set_fontsize(20) + ax.yaxis.label.set_fontsize(20) + # Show grid + Plot.grid(True) + # End + plt.update() + return False + + def createDirectory(self): + """ Create needed folder to write data and scripts. + @return True if error happens. + """ + self.path = FreeCAD.ConfigGet("UserAppData") + "ShipOutput/" + if not os.path.exists(self.path): + os.makedirs(self.path) + if not os.path.exists(self.path): + msg = QtGui.QApplication.translate("ship_console", "Can't create folder", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ self.path + "\'\n") + return True + return False + + def saveData(self,x,y): + """ Write data file. + @param x Roll angles. + @param y GZ value. + @return True if error happens. + """ + # Open the file + filename = self.path + 'gz.dat' + try: + Output = open(filename, "w") + except IOError: + msg = QtGui.QApplication.translate("ship_console", "Can't write to file", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintError(msg + ':\n\t' + "\'"+ filename + "\'\n") + return True + # Print header + Output.write(header) + Output.write(" #\n") + Output.write(" # File automatically exported by FreeCAD-Ship\n") + Output.write(" # This file contains transversal GZ stability parameter, filled with following columns:\n") + Output.write(" # 1: Roll angles [deg]\n") + Output.write(" # 2: GZ [m]\n") + Output.write(" #\n") + Output.write(" #################################################################\n") + # Print data + for i in range(0, len(x)): + string = "%f %f\n" % (x[i], y[i]) + Output.write(string) + # Close file + Output.close() + self.dataFile = filename + msg = QtGui.QApplication.translate("ship_console", "Data saved", + None,QtGui.QApplication.UnicodeUTF8) + FreeCAD.Console.PrintMessage(msg + ':\n\t' + "\'"+ self.dataFile + "\'\n") + return False + diff --git a/src/Mod/Ship/tankGZ/TaskPanel.py b/src/Mod/Ship/tankGZ/TaskPanel.py index a27b5a0331..ce7943139e 100644 --- a/src/Mod/Ship/tankGZ/TaskPanel.py +++ b/src/Mod/Ship/tankGZ/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** import math @@ -28,350 +28,377 @@ import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore # Module -from Plot import * +import PlotAux from Instance import * from TankInstance import * -from shipUtils import Paths, Translator +from shipUtils import Paths from shipHydrostatics import Tools as Hydrostatics class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/tankGZ/TaskPanel.ui" - self.ship = None - self.tanks = {} + def __init__(self): + self.ui = Paths.modulePath() + "/tankGZ/TaskPanel.ui" + self.ship = None + self.tanks = {} - def accept(self): - if not self.ship: - return False - # Get general data - disp = self.computeDisplacement() - draft = self.computeDraft(disp[0], self.form.trim.value()) - trim = self.form.trim.value() - # Get roll angles - roll0 = self.form.roll0.value() - roll1 = self.form.roll1.value() - nRoll = self.form.nRoll.value() - dRoll = (roll1 - roll0) / (nRoll - 1) - roll = [] - GZ = [] - msg = Translator.translate("Computing GZ...\n") - App.Console.PrintMessage(msg) - for i in range(0, nRoll): - App.Console.PrintMessage("\t%d/%d\n" % (i+1,nRoll)) - roll.append(i*dRoll) - GZ.append(self.computeGZ(draft[0], trim, roll[-1])) - Plot(roll, GZ, disp[0]/1000.0, draft[0], trim) - return True + def accept(self): + if not self.ship: + return False + # Get general data + disp = self.computeDisplacement() + draft = self.computeDraft(disp[0], self.form.trim.value()) + trim = self.form.trim.value() + # Get roll angles + roll0 = self.form.roll0.value() + roll1 = self.form.roll1.value() + nRoll = self.form.nRoll.value() + dRoll = (roll1 - roll0) / (nRoll - 1) + roll = [] + GZ = [] + msg = QtGui.QApplication.translate("ship_console","Computing GZ", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintMessage(msg + "...\n") + for i in range(0, nRoll): + App.Console.PrintMessage("\t%d/%d\n" % (i+1,nRoll)) + roll.append(i*dRoll) + GZ.append(self.computeGZ(draft[0], trim, roll[-1])) + PlotAux.Plot(roll, GZ, disp[0]/1000.0, draft[0], trim) + return True - def reject(self): - if not self.ship: - return False - return True + def reject(self): + if not self.ship: + return False + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.tanks = form.findChild(QtGui.QListWidget, "Tanks") - form.disp = form.findChild(QtGui.QLabel, "DisplacementLabel") - form.draft = form.findChild(QtGui.QLabel, "DraftLabel") - form.update = form.findChild(QtGui.QPushButton, "UpdateData") - form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") - form.autoTrim = form.findChild(QtGui.QPushButton, "TrimAutoCompute") - form.roll0 = form.findChild(QtGui.QDoubleSpinBox, "StartAngle") - form.roll1 = form.findChild(QtGui.QDoubleSpinBox, "EndAngle") - form.nRoll = form.findChild(QtGui.QSpinBox, "NAngle") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.tanks,QtCore.SIGNAL("itemSelectionChanged()"),self.onTanksSelection) - QtCore.QObject.connect(form.update,QtCore.SIGNAL("pressed()"),self.onUpdate) - QtCore.QObject.connect(form.trim,QtCore.SIGNAL("valueChanged(double)"),self.onTrim) - QtCore.QObject.connect(form.autoTrim,QtCore.SIGNAL("pressed()"),self.onAutoTrim) - QtCore.QObject.connect(form.roll0,QtCore.SIGNAL("valueChanged(double)"),self.onRoll) - QtCore.QObject.connect(form.roll1,QtCore.SIGNAL("valueChanged(double)"),self.onRoll) - QtCore.QObject.connect(form.nRoll,QtCore.SIGNAL("valueChanged(int)"),self.onRoll) - return False + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.tanks = form.findChild(QtGui.QListWidget, "Tanks") + form.disp = form.findChild(QtGui.QLabel, "DisplacementLabel") + form.draft = form.findChild(QtGui.QLabel, "DraftLabel") + form.update = form.findChild(QtGui.QPushButton, "UpdateData") + form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") + form.autoTrim = form.findChild(QtGui.QPushButton, "TrimAutoCompute") + form.roll0 = form.findChild(QtGui.QDoubleSpinBox, "StartAngle") + form.roll1 = form.findChild(QtGui.QDoubleSpinBox, "EndAngle") + form.nRoll = form.findChild(QtGui.QSpinBox, "NAngle") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.tanks,QtCore.SIGNAL("itemSelectionChanged()"),self.onTanksSelection) + QtCore.QObject.connect(form.update,QtCore.SIGNAL("pressed()"),self.onUpdate) + QtCore.QObject.connect(form.trim,QtCore.SIGNAL("valueChanged(double)"),self.onTrim) + QtCore.QObject.connect(form.autoTrim,QtCore.SIGNAL("pressed()"),self.onAutoTrim) + QtCore.QObject.connect(form.roll0,QtCore.SIGNAL("valueChanged(double)"),self.onRoll) + QtCore.QObject.connect(form.roll1,QtCore.SIGNAL("valueChanged(double)"),self.onRoll) + QtCore.QObject.connect(form.nRoll,QtCore.SIGNAL("valueChanged(int)"),self.onRoll) + return False - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Get selected geometry. - @return False if sucessfully values initialized. - """ - # Get selected objects - selObjs = FreeCADGui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - props = self.ship.PropertiesList - try: - props.index("WeightNames") - except: - msg = Translator.translate("Ship weights has not been set. You need to set weights before use this tool.\n") - App.Console.PrintError(msg) - return True - # Setup available tanks list - objs = App.ActiveDocument.Objects - iconPath = Paths.iconsPath() + "/Tank.xpm" - icon = QtGui.QIcon(QtGui.QPixmap(iconPath)) - for obj in objs: - # Try to get valid tank property - props = obj.PropertiesList - try: - props.index("IsShipTank") - except ValueError: - continue - if not obj.IsShipTank: - continue - # Add tank to list - name = obj.Name - label = obj.Label - tag = label + ' (' + name + ')' - self.tanks[tag] = name - # self.tanks.append([name, tag]) - item = QtGui.QListWidgetItem(tag) - item.setIcon(icon) - self.form.tanks.addItem(item) - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Get selected geometry. + @return False if sucessfully values initialized. + """ + # Get selected objects + selObjs = FreeCADGui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console","Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg) + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", + "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + props = self.ship.PropertiesList + try: + props.index("WeightNames") + except: + msg = QtGui.QApplication.translate("ship_console", + "Ship weights has not been set. You need to set weights before use this tool", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Setup available tanks list + objs = App.ActiveDocument.Objects + iconPath = Paths.iconsPath() + "/Tank.xpm" + icon = QtGui.QIcon(QtGui.QPixmap(iconPath)) + for obj in objs: + # Try to get valid tank property + props = obj.PropertiesList + try: + props.index("IsShipTank") + except ValueError: + continue + if not obj.IsShipTank: + continue + # Add tank to list + name = obj.Name + label = obj.Label + tag = label + ' (' + name + ')' + self.tanks[tag] = name + # self.tanks.append([name, tag]) + item = QtGui.QListWidgetItem(tag) + item.setIcon(icon) + self.form.tanks.addItem(item) + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("GZ curve computation")) - self.form.findChild(QtGui.QGroupBox, "LoadConditionGroup").setTitle(Translator.translate("Loading condition.")) - self.form.findChild(QtGui.QGroupBox, "AnglesGroup").setTitle(Translator.translate("Roll angles.")) - self.form.findChild(QtGui.QLabel, "TrimLabel").setText(Translator.translate("Trim") + " [deg]") - self.form.findChild(QtGui.QLabel, "StartAngleLabel").setText(Translator.translate("Start") + " [deg]") - self.form.findChild(QtGui.QLabel, "EndAngleLabel").setText(Translator.translate("End") + " [deg]") - self.form.findChild(QtGui.QLabel, "NAngleLabel").setText(Translator.translate("Number of points")) - self.form.disp.setText(Translator.translate("Displacement = Press update to compute")) - self.form.draft.setText(Translator.translate("Draft = Press update to compute")) - self.form.update.setText(Translator.translate("Update displacement and draft")) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.findChild(QtGui.QLabel, "DraftLabel").setText(QtGui.QApplication.translate("shiptank_gz","Draft", + None,QtGui.QApplication.UnicodeUTF8)) - def onTanksSelection(self): - """ Called when tanks are selected or deselected. - """ - pass - - def onUpdate(self): - """ Called when update displacement and draft is requested. - """ - # Set displacement label - disp = self.computeDisplacement() - self.form.disp.setText(Translator.translate("Displacement") + ' = %g [kg]' % (disp[0])) - # Set draft label - draft = self.computeDraft(disp[0], self.form.trim.value()) - self.form.draft.setText(Translator.translate("Draft") + ' = %g [m]' % (draft[0])) - def onTrim(self, trim): - """ Called when trim angle value is changed. - @param trim Selected trim angle. - """ - self.onTanksSelection() - - def onAutoTrim(self): - """ Called when trim angle must be auto computed. - """ - # Start at null trim angle - trim = 0.0 - # Get center of gravity - disp = self.computeDisplacement(trim) - G = [disp[1], disp[2], disp[3]] - disp = disp[0] - # Get bouyancy center - draft = self.computeDraft(disp) - B = [draft[1].x, draft[1].y, draft[1].z] - draft = draft[0] - # Get stability initial condition - BG = [G[0]-B[0], G[1]-B[1], G[2]-B[2]] - x = BG[0]*math.cos(math.radians(trim)) - BG[2]*math.sin(math.radians(trim)) - y = BG[1] - z = BG[0]*math.sin(math.radians(trim)) + BG[2]*math.cos(math.radians(trim)) - var = math.degrees(math.atan2(x,z)) - # Iterate looking stability point - dVar = math.copysign(0.01, var) - while True: - if (dVar*var < 0.0) or (abs(var) < 0.1): - break - trim = trim - math.copysign(max(dVar, abs(var)/200.0), var) - # Get center of gravity - disp = self.computeDisplacement(trim) - G = [disp[1], disp[2], disp[3]] - disp = disp[0] - # Get bouyancy center - draft = self.computeDraft(disp, trim) - B = [draft[1].x, draft[1].y, draft[1].z] - draft = draft[0] - # Get stability initial condition - BG = [G[0]-B[0], G[1]-B[1], G[2]-B[2]] - x = BG[0]*math.cos(math.radians(trim)) - BG[2]*math.sin(math.radians(trim)) - y = BG[1] - z = BG[0]*math.sin(math.radians(trim)) + BG[2]*math.cos(math.radians(trim)) - var = math.degrees(math.atan2(x,z)) - self.form.trim.setValue(trim) + self.form.setWindowTitle(QtGui.QApplication.translate("shiptank_gz","GZ curve computation", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "LoadConditionGroup").setTitle(QtGui.QApplication.translate("shiptank_gz", + "Loading condition", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QGroupBox, "AnglesGroup").setTitle(QtGui.QApplication.translate("shiptank_gz","Roll angles", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.findChild(QtGui.QLabel, "TrimLabel").setText(QtGui.QApplication.translate("shiptank_gz","Trim", + None,QtGui.QApplication.UnicodeUTF8) + " [deg]") + self.form.findChild(QtGui.QLabel, "StartAngleLabel").setText(QtGui.QApplication.translate("shiptank_gz","Start", + None,QtGui.QApplication.UnicodeUTF8) + " [deg]") + self.form.findChild(QtGui.QLabel, "EndAngleLabel").setText(QtGui.QApplication.translate("shiptank_gz","End", + None,QtGui.QApplication.UnicodeUTF8) + " [deg]") + self.form.findChild(QtGui.QLabel, "NAngleLabel").setText(QtGui.QApplication.translate("shiptank_gz","Number of points", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.disp.setText(QtGui.QApplication.translate("shiptank_gz","Displacement", + None,QtGui.QApplication.UnicodeUTF8) + ' = ' + \ + QtGui.QApplication.translate("shiptank_gz","Press update to compute", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.draft.setText(QtGui.QApplication.translate("shiptank_gz","Draft", + None,QtGui.QApplication.UnicodeUTF8) + ' = ' + \ + QtGui.QApplication.translate("shiptank_gz","Press update to compute", + None,QtGui.QApplication.UnicodeUTF8)) + self.form.update.setText(QtGui.QApplication.translate("shiptank_gz","Update displacement and draft", + None,QtGui.QApplication.UnicodeUTF8)) - def onRoll(self, value): - """ Called when roll angles options are modified. - @param value Dummy changed value. - """ - roll0 = self.form.roll0.value() - self.form.roll1.setMinimum(roll0) - roll1 = self.form.roll1.value() - self.form.roll0.setMaximum(roll1) + def onTanksSelection(self): + """ Called when tanks are selected or deselected. + """ + pass + + def onUpdate(self): + """ Called when update displacement and draft is requested. + """ + # Set displacement label + disp = self.computeDisplacement() + self.form.disp.setText(QtGui.QApplication.translate("shiptank_gz","Displacement", + None,QtGui.QApplication.UnicodeUTF8) + ' = %g [kg]' % (disp[0])) + # Set draft label + draft = self.computeDraft(disp[0], self.form.trim.value()) + self.form.draft.setText(QtGui.QApplication.translate("shiptank_gz","Draft", + None,QtGui.QApplication.UnicodeUTF8) + ' = %g [m]' % (draft[0])) - def getTanks(self): - """ Get the selected tanks objects list. - @return Selected tanks list. - """ - items = self.form.tanks.selectedItems() - tanks = [] - for item in items: - tag = str(item.text()) - name = self.tanks[tag] - t = App.ActiveDocument.getObject(name) - if not t: - continue - tanks.append(t) - return tanks + def onTrim(self, trim): + """ Called when trim angle value is changed. + @param trim Selected trim angle. + """ + self.onTanksSelection() + + def onAutoTrim(self): + """ Called when trim angle must be auto computed. + """ + # Start at null trim angle + trim = 0.0 + # Get center of gravity + disp = self.computeDisplacement(trim) + G = [disp[1], disp[2], disp[3]] + disp = disp[0] + # Get bouyancy center + draft = self.computeDraft(disp) + B = [draft[1].x, draft[1].y, draft[1].z] + draft = draft[0] + # Get stability initial condition + BG = [G[0]-B[0], G[1]-B[1], G[2]-B[2]] + x = BG[0]*math.cos(math.radians(trim)) - BG[2]*math.sin(math.radians(trim)) + y = BG[1] + z = BG[0]*math.sin(math.radians(trim)) + BG[2]*math.cos(math.radians(trim)) + var = math.degrees(math.atan2(x,z)) + # Iterate looking stability point + dVar = math.copysign(0.01, var) + while True: + if (dVar*var < 0.0) or (abs(var) < 0.1): + break + trim = trim - math.copysign(max(dVar, abs(var)/200.0), var) + # Get center of gravity + disp = self.computeDisplacement(trim) + G = [disp[1], disp[2], disp[3]] + disp = disp[0] + # Get bouyancy center + draft = self.computeDraft(disp, trim) + B = [draft[1].x, draft[1].y, draft[1].z] + draft = draft[0] + # Get stability initial condition + BG = [G[0]-B[0], G[1]-B[1], G[2]-B[2]] + x = BG[0]*math.cos(math.radians(trim)) - BG[2]*math.sin(math.radians(trim)) + y = BG[1] + z = BG[0]*math.sin(math.radians(trim)) + BG[2]*math.cos(math.radians(trim)) + var = math.degrees(math.atan2(x,z)) + self.form.trim.setValue(trim) - def computeDisplacement(self, trim=0.0, roll=0.0): - """ Computes ship displacement. - @param trim Trim angle [degrees]. - @return Ship displacement and center of gravity. None if errors - detected. - @note Returned center of gravity is refered to ship attached - axis coordinates. - """ - if not self.ship: - return None - # Get ship structure weights - W = [0.0, 0.0, 0.0, 0.0] - sWeights = weights(self.ship) - for w in sWeights: - W[0] = W[0] + w[1] - W[1] = W[1] + w[1]*w[2][0] - W[2] = W[2] + w[1]*w[2][1] - W[3] = W[3] + w[1]*w[2][2] - # Get selected tanks weights - tanks = self.getTanks() - for t in tanks: - w = tankWeight(t, App.Base.Vector(roll,-trim,0.0)) - # Unrotate center of gravity - x = w[1]*math.cos(math.radians(-trim)) - w[3]*math.sin(math.radians(-trim)) - y = w[2] - z = w[1]*math.sin(math.radians(-trim)) + w[3]*math.cos(math.radians(-trim)) - w[1] = x - w[2] = y*math.cos(math.radians(-roll)) - z*math.sin(math.radians(-roll)) - w[3] = y*math.sin(math.radians(-roll)) + z*math.cos(math.radians(-roll)) - W[0] = W[0] + w[0] - W[1] = W[1] + w[0]*w[1] - W[2] = W[2] + w[0]*w[2] - W[3] = W[3] + w[0]*w[3] - return [W[0], W[1]/W[0], W[2]/W[0], W[3]/W[0]] + def onRoll(self, value): + """ Called when roll angles options are modified. + @param value Dummy changed value. + """ + roll0 = self.form.roll0.value() + self.form.roll1.setMinimum(roll0) + roll1 = self.form.roll1.value() + self.form.roll0.setMaximum(roll1) - def computeDraft(self, disp, trim=0.0): - """ Computes ship draft. - @param disp Ship displacement. - @param trim Trim angle [degrees]. - @return Ship draft, and bouyance center position. None if errors detected. - """ - if not self.ship: - return None - # Initial condition - dens = 1025 - bbox = self.ship.Shape.BoundBox - draft = bbox.ZMin - dx = bbox.XMax - bbox.XMin - dy = bbox.YMax - bbox.YMin - w = 0.0 - xcb = 0.0 - while(abs(disp - w)/disp > 0.01): - draft = draft + (disp - w) / (dens*dx*dy) - ww = Hydrostatics.displacement(self.ship, draft, 0.0, trim, 0.0) - w = 1000.0*ww[0] - B = ww[1] - return [draft,B] + def getTanks(self): + """ Get the selected tanks objects list. + @return Selected tanks list. + """ + items = self.form.tanks.selectedItems() + tanks = [] + for item in items: + tag = str(item.text()) + name = self.tanks[tag] + t = App.ActiveDocument.getObject(name) + if not t: + continue + tanks.append(t) + return tanks - def computeGZ(self, draft, trim, roll): - """ Compute GZ value. - @param draft Ship draft. - @param trim Ship trim angle [degrees]. - @param roll Ship roll angle [degrees]. - @return GZ value [m]. - """ - # Get center of gravity (x coordinate not relevant) - disp = self.computeDisplacement(trim, roll) - G = [disp[2], disp[3]] - disp = disp[0] - # Get bouyancy center (x coordinate not relevant) - disp = Hydrostatics.displacement(self.ship, draft, roll, trim, 0.0) - B = [disp[1].y, disp[1].z] - # GZ computation - BG = [G[0] - B[0], G[1] - B[1]] - y = BG[0]*math.cos(math.radians(roll)) - BG[1]*math.sin(math.radians(roll)) - z = BG[0]*math.sin(math.radians(roll)) + BG[1]*math.cos(math.radians(roll)) - return y + def computeDisplacement(self, trim=0.0, roll=0.0): + """ Computes ship displacement. + @param trim Trim angle [degrees]. + @return Ship displacement and center of gravity. None if errors + detected. + @note Returned center of gravity is refered to ship attached + axis coordinates. + """ + if not self.ship: + return None + # Get ship structure weights + W = [0.0, 0.0, 0.0, 0.0] + sWeights = weights(self.ship) + for w in sWeights: + W[0] = W[0] + w[1] + W[1] = W[1] + w[1]*w[2][0] + W[2] = W[2] + w[1]*w[2][1] + W[3] = W[3] + w[1]*w[2][2] + # Get selected tanks weights + tanks = self.getTanks() + for t in tanks: + w = tankWeight(t, App.Base.Vector(roll,-trim,0.0)) + # Unrotate center of gravity + x = w[1]*math.cos(math.radians(-trim)) - w[3]*math.sin(math.radians(-trim)) + y = w[2] + z = w[1]*math.sin(math.radians(-trim)) + w[3]*math.cos(math.radians(-trim)) + w[1] = x + w[2] = y*math.cos(math.radians(-roll)) - z*math.sin(math.radians(-roll)) + w[3] = y*math.sin(math.radians(-roll)) + z*math.cos(math.radians(-roll)) + W[0] = W[0] + w[0] + W[1] = W[1] + w[0]*w[1] + W[2] = W[2] + w[0]*w[2] + W[3] = W[3] + w[0]*w[3] + return [W[0], W[1]/W[0], W[2]/W[0], W[3]/W[0]] + + def computeDraft(self, disp, trim=0.0): + """ Computes ship draft. + @param disp Ship displacement. + @param trim Trim angle [degrees]. + @return Ship draft, and bouyance center position. None if errors detected. + """ + if not self.ship: + return None + # Initial condition + dens = 1025 + bbox = self.ship.Shape.BoundBox + draft = bbox.ZMin + dx = bbox.XMax - bbox.XMin + dy = bbox.YMax - bbox.YMin + w = 0.0 + xcb = 0.0 + while(abs(disp - w)/disp > 0.01): + draft = draft + (disp - w) / (dens*dx*dy) + ww = Hydrostatics.displacement(self.ship, draft, 0.0, trim, 0.0) + w = 1000.0*ww[0] + B = ww[1] + return [draft,B] + + def computeGZ(self, draft, trim, roll): + """ Compute GZ value. + @param draft Ship draft. + @param trim Ship trim angle [degrees]. + @param roll Ship roll angle [degrees]. + @return GZ value [m]. + """ + # Get center of gravity (x coordinate not relevant) + disp = self.computeDisplacement(trim, roll) + G = [disp[2], disp[3]] + disp = disp[0] + # Get bouyancy center (x coordinate not relevant) + disp = Hydrostatics.displacement(self.ship, draft, roll, trim, 0.0) + B = [disp[1].y, disp[1].z] + # GZ computation + BG = [G[0] - B[0], G[1] - B[1]] + y = BG[0]*math.cos(math.radians(roll)) - BG[1]*math.sin(math.radians(roll)) + z = BG[0]*math.sin(math.radians(roll)) + BG[1]*math.cos(math.radians(roll)) + return y def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/tankGZ/TaskPanel.ui b/src/Mod/Ship/tankGZ/TaskPanel.ui index 6f2da22e24..49dfa031d8 100644 --- a/src/Mod/Ship/tankGZ/TaskPanel.ui +++ b/src/Mod/Ship/tankGZ/TaskPanel.ui @@ -37,98 +37,92 @@ Loading condition - - - - 0 - 20 - 231 - 231 - - - - - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::MultiSelection - - - - - - - Displacement = 0 [kg] - - - - - - - Draft = 0 [m] - - - - - - - Update displacement and draft - - - - - - - - - - 3 - 0 - - - - Trim [deg] - - - - - - - - 3 - 0 - - - - -45.000000000000000 - - - 45.000000000000000 - - - 0.100000000000000 - - - - - - - - 1 - 0 - - - - Auto - - - - - - - + + + + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::MultiSelection + + + + + + + Displacement = 0 [kg] + + + + + + + Draft = 0 [m] + + + + + + + Update displacement and draft + + + + + + + + + + 3 + 0 + + + + Trim [deg] + + + + + + + + 3 + 0 + + + + -45.000000000000000 + + + 45.000000000000000 + + + 0.100000000000000 + + + + + + + + 1 + 0 + + + + Auto + + + + + + + + @@ -142,75 +136,69 @@ Roll angles - - - - 0 - 20 - 231 - 101 - - - - - QLayout::SetMinimumSize - - - - - Start [deg] - - - - - - - End [deg] - - - - - - - Number of points - - - - - - - 0.000000000000000 - - - 90.000000000000000 - - - - - - - 180.000000000000000 - - - 45.000000000000000 - - - - - - - 2 - - - 10000 - - - 46 - - - - - + + + + + QLayout::SetMinimumSize + + + + + Start [deg] + + + + + + + End [deg] + + + + + + + Number of points + + + + + + + 0.000000000000000 + + + 90.000000000000000 + + + + + + + 180.000000000000000 + + + 45.000000000000000 + + + + + + + 2 + + + 10000 + + + 46 + + + + + + diff --git a/src/Mod/Ship/tankGZ/__init__.py b/src/Mod/Ship/tankGZ/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/tankGZ/__init__.py +++ b/src/Mod/Ship/tankGZ/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/Mod/Ship/tankWeights/Preview.py b/src/Mod/Ship/tankWeights/Preview.py index 23bb7fae6c..4a5b59fcaa 100644 --- a/src/Mod/Ship/tankWeights/Preview.py +++ b/src/Mod/Ship/tankWeights/Preview.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -26,81 +26,81 @@ import FreeCAD,FreeCADGui from FreeCAD import Base import Part # FreeCADShip modules -from shipUtils import Paths, Translator +from shipUtils import Paths class Preview(object): - def __init__(self): - """ Constructor. - """ - self.objects = [] + def __init__(self): + """ Constructor. + """ + self.objects = [] - def reinit(self): - """ Reinitializate drawer. - """ - self.clean() + def reinit(self): + """ Reinitializate drawer. + """ + self.clean() - def update(self, names, pos): - """ Update the 3D view printing annotations. - @param names Weight names. - @param pos Weight positions (FreeCAD::Base::Vector). - """ - # Destroy all previous entities - self.clean() - for i in range(0, len(names)): - # Draw gravity line - line = Part.makeLine((pos[i].x,pos[i].y,pos[i].z),(pos[i].x,pos[i].y,pos[i].z - 9.81)) - Part.show(line) - objs = FreeCAD.ActiveDocument.Objects - self.objects.append(objs[-1]) - objs[-1].Label = names[i] + 'Line' - # Draw circles - circle = Part.makeCircle(0.5, pos[i], Base.Vector(1.0,0.0,0.0)) - Part.show(circle) - objs = FreeCAD.ActiveDocument.Objects - self.objects.append(objs[-1]) - objs[-1].Label = names[i] + 'CircleX' - circle = Part.makeCircle(0.5, pos[i], Base.Vector(0.0,1.0,0.0)) - Part.show(circle) - objs = FreeCAD.ActiveDocument.Objects - self.objects.append(objs[-1]) - objs[-1].Label = names[i] + 'CircleY' - circle = Part.makeCircle(0.5, pos[i], Base.Vector(0.0,0.0,1.0)) - Part.show(circle) - objs = FreeCAD.ActiveDocument.Objects - self.objects.append(objs[-1]) - objs[-1].Label = names[i] + 'CircleZ' - # Draw annotation - self.objects.append(DrawText(names[i] + 'Text', names[i], Base.Vector(pos[i].x+1.0,pos[i].y,pos[i].z))) - - def clean(self): - """ Erase all annotations from screen. - """ - for i in range(0,len(self.objects)): - if not FreeCAD.ActiveDocument.getObject(self.objects[i].Name): - continue - FreeCAD.ActiveDocument.removeObject(self.objects[i].Name) - self.objects = [] + def update(self, names, pos): + """ Update the 3D view printing annotations. + @param names Weight names. + @param pos Weight positions (FreeCAD::Base::Vector). + """ + # Destroy all previous entities + self.clean() + for i in range(0, len(names)): + # Draw gravity line + line = Part.makeLine((pos[i].x,pos[i].y,pos[i].z),(pos[i].x,pos[i].y,pos[i].z - 9.81)) + Part.show(line) + objs = FreeCAD.ActiveDocument.Objects + self.objects.append(objs[-1]) + objs[-1].Label = names[i] + 'Line' + # Draw circles + circle = Part.makeCircle(0.5, pos[i], Base.Vector(1.0,0.0,0.0)) + Part.show(circle) + objs = FreeCAD.ActiveDocument.Objects + self.objects.append(objs[-1]) + objs[-1].Label = names[i] + 'CircleX' + circle = Part.makeCircle(0.5, pos[i], Base.Vector(0.0,1.0,0.0)) + Part.show(circle) + objs = FreeCAD.ActiveDocument.Objects + self.objects.append(objs[-1]) + objs[-1].Label = names[i] + 'CircleY' + circle = Part.makeCircle(0.5, pos[i], Base.Vector(0.0,0.0,1.0)) + Part.show(circle) + objs = FreeCAD.ActiveDocument.Objects + self.objects.append(objs[-1]) + objs[-1].Label = names[i] + 'CircleZ' + # Draw annotation + self.objects.append(DrawText(names[i] + 'Text', names[i], Base.Vector(pos[i].x+1.0,pos[i].y,pos[i].z))) + + def clean(self): + """ Erase all annotations from screen. + """ + for i in range(0,len(self.objects)): + if not FreeCAD.ActiveDocument.getObject(self.objects[i].Name): + continue + FreeCAD.ActiveDocument.removeObject(self.objects[i].Name) + self.objects = [] def DrawText(name, string, position, displayMode="Screen", angle=0.0, justification="Left", colour=(0.00,0.00,0.00), size=12): - """ Draws a text in a desired position. - @param name Name of the object - @param string Text to draw (recommended format u'') - @param position Point to draw the text - @param angle Counter clockwise rotation of text - @param justification Alignement of the text ("Left", "Right" or "Center") - @param colour Colour of the text - @param size Font size - @return FreeCAD annotation object - """ - # Create the object - text = FreeCAD.ActiveDocument.addObject("App::Annotation",name) - # Set the text - text.LabelText = [string, u''] - # Set the options - text.Position = position - FreeCADGui.ActiveDocument.getObject(text.Name).Rotation = angle - FreeCADGui.ActiveDocument.getObject(text.Name).Justification = justification - FreeCADGui.ActiveDocument.getObject(text.Name).FontSize = size - FreeCADGui.ActiveDocument.getObject(text.Name).TextColor = colour - FreeCADGui.ActiveDocument.getObject(text.Name).DisplayMode = displayMode - return FreeCAD.ActiveDocument.getObject(text.Name) + """ Draws a text in a desired position. + @param name Name of the object + @param string Text to draw (recommended format u'') + @param position Point to draw the text + @param angle Counter clockwise rotation of text + @param justification Alignement of the text ("Left", "Right" or "Center") + @param colour Colour of the text + @param size Font size + @return FreeCAD annotation object + """ + # Create the object + text = FreeCAD.ActiveDocument.addObject("App::Annotation",name) + # Set the text + text.LabelText = [string, u''] + # Set the options + text.Position = position + FreeCADGui.ActiveDocument.getObject(text.Name).Rotation = angle + FreeCADGui.ActiveDocument.getObject(text.Name).Justification = justification + FreeCADGui.ActiveDocument.getObject(text.Name).FontSize = size + FreeCADGui.ActiveDocument.getObject(text.Name).TextColor = colour + FreeCADGui.ActiveDocument.getObject(text.Name).DisplayMode = displayMode + return FreeCAD.ActiveDocument.getObject(text.Name) diff --git a/src/Mod/Ship/tankWeights/TaskPanel.py b/src/Mod/Ship/tankWeights/TaskPanel.py index a01f7c73c2..7a336bfffc 100644 --- a/src/Mod/Ship/tankWeights/TaskPanel.py +++ b/src/Mod/Ship/tankWeights/TaskPanel.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -29,218 +29,224 @@ from PyQt4 import QtGui,QtCore # Module import Preview from Instance import * -from shipUtils import Paths, Translator +from shipUtils import Paths class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/tankWeights/TaskPanel.ui" - self.ship = None - self.preview = Preview.Preview() + def __init__(self): + self.ui = Paths.modulePath() + "/tankWeights/TaskPanel.ui" + self.ship = None + self.preview = Preview.Preview() - def accept(self): - self.preview.clean() - if not self.ship: - return False - # Setup lists - name = [] - mass = [] - pos = [] - for i in range(0,self.form.weights.rowCount() - 1): - item = self.form.weights.item(i,0) - name.append(item.text().__str__()) - item = self.form.weights.item(i,1) - mass.append(item.text().toFloat()[0]) - vec = [] - item = self.form.weights.item(i,2) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,3) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,4) - vec.append(item.text().toFloat()[0]) - pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) - # Send to ship - self.ship.WeightNames = name[:] - self.ship.WeightMass = mass[:] - self.ship.WeightPos = pos[:] - return True + def accept(self): + self.preview.clean() + if not self.ship: + return False + # Setup lists + name = [] + mass = [] + pos = [] + for i in range(0,self.form.weights.rowCount() - 1): + item = self.form.weights.item(i,0) + name.append(item.text().__str__()) + item = self.form.weights.item(i,1) + mass.append(item.text().toFloat()[0]) + vec = [] + item = self.form.weights.item(i,2) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,3) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,4) + vec.append(item.text().toFloat()[0]) + pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) + # Send to ship + self.ship.WeightNames = name[:] + self.ship.WeightMass = mass[:] + self.ship.WeightPos = pos[:] + return True - def reject(self): - self.preview.clean() - if not self.ship: - return False - return True + def reject(self): + self.preview.clean() + if not self.ship: + return False + return True - def clicked(self, index): - pass + def clicked(self, index): + pass - def open(self): - pass + def open(self): + pass - def needsFullSpace(self): - return True + def needsFullSpace(self): + return True - def isAllowedAlterSelection(self): - return False + def isAllowedAlterSelection(self): + return False - def isAllowedAlterView(self): - return True + def isAllowedAlterView(self): + return True - def isAllowedAlterDocument(self): - return False + def isAllowedAlterDocument(self): + return False - def helpRequested(self): - pass + def helpRequested(self): + pass - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.weights = form.findChild(QtGui.QTableWidget, "Weights") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.weights,QtCore.SIGNAL("cellChanged(int,int)"),self.onTableItem); - # Update screen - name = [] - pos = [] - for i in range(0,self.form.weights.rowCount() - 1): - item = self.form.weights.item(i,0) - name.append(item.text().__str__()) - vec = [] - item = self.form.weights.item(i,2) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,3) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,4) - vec.append(item.text().toFloat()[0]) - pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) - self.preview.update(name, pos) + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.weights = form.findChild(QtGui.QTableWidget, "Weights") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.weights,QtCore.SIGNAL("cellChanged(int,int)"),self.onTableItem); + # Update screen + name = [] + pos = [] + for i in range(0,self.form.weights.rowCount() - 1): + item = self.form.weights.item(i,0) + name.append(item.text().__str__()) + vec = [] + item = self.form.weights.item(i,2) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,3) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,4) + vec.append(item.text().toFloat()[0]) + pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) + self.preview.update(name, pos) - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") - def initValues(self): - """ Get selected geometry. - @return False if sucessfully values initialized. - """ - # Get selected objects - selObjs = FreeCADGui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShip") - except ValueError: - continue - if obj.IsShip: - # Test if another ship already selected - if self.ship: - msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.ship = obj - # Test if any valid ship was selected - if not self.ship: - msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get weights - w = weights(self.ship) - # Set the items - self.form.weights.setRowCount(len(w)+1) - for i in range(0,len(w)): - item = QtGui.QTableWidgetItem(w[i][0]) - self.form.weights.setItem(i,0,item) - string = '%g' % (w[i][1]) - item = QtGui.QTableWidgetItem(string) - self.form.weights.setItem(i,1,item) - string = '%g' % (w[i][2].x) - item = QtGui.QTableWidgetItem(string) - self.form.weights.setItem(i,2,item) - string = '%g' % (w[i][2].y) - item = QtGui.QTableWidgetItem(string) - self.form.weights.setItem(i,3,item) - string = '%g' % (w[i][2].z) - item = QtGui.QTableWidgetItem(string) - self.form.weights.setItem(i,4,item) - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False + def initValues(self): + """ Get selected geometry. + @return False if sucessfully values initialized. + """ + # Get selected objects + selObjs = FreeCADGui.Selection.getSelection() + if not selObjs: + msg = QtGui.QApplication.translate("ship_console", "Ship instance must be selected (no object selected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShip") + except ValueError: + continue + if obj.IsShip: + # Test if another ship already selected + if self.ship: + msg = QtGui.QApplication.translate("ship_console", + "More than one ship selected (extra ships will be neglected)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintWarning(msg + '\n') + break + self.ship = obj + # Test if any valid ship was selected + if not self.ship: + msg = QtGui.QApplication.translate("ship_console", + "Ship instance must be selected (no valid ship found at selected objects)", + None,QtGui.QApplication.UnicodeUTF8) + App.Console.PrintError(msg + '\n') + return True + # Get weights + w = weights(self.ship) + # Set the items + self.form.weights.setRowCount(len(w)+1) + for i in range(0,len(w)): + item = QtGui.QTableWidgetItem(w[i][0]) + self.form.weights.setItem(i,0,item) + string = '%g' % (w[i][1]) + item = QtGui.QTableWidgetItem(string) + self.form.weights.setItem(i,1,item) + string = '%g' % (w[i][2].x) + item = QtGui.QTableWidgetItem(string) + self.form.weights.setItem(i,2,item) + string = '%g' % (w[i][2].y) + item = QtGui.QTableWidgetItem(string) + self.form.weights.setItem(i,3,item) + string = '%g' % (w[i][2].z) + item = QtGui.QTableWidgetItem(string) + self.form.weights.setItem(i,4,item) + return False - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Set weights")) - labels = [] - labels.append(Translator.translate("Name")) - labels.append(Translator.translate("Mass") + " [kg]") - labels.append(QtCore.QString("g.x [m]")) - labels.append(QtCore.QString("g.y [m]")) - labels.append(QtCore.QString("g.z [m]")) - self.form.weights.setHorizontalHeaderLabels(labels) + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(QtGui.QApplication.translate("shiptank_weights","Set weights", + None,QtGui.QApplication.UnicodeUTF8)) + labels = [] + labels.append(QtGui.QApplication.translate("shiptank_weights","Name", + None,QtGui.QApplication.UnicodeUTF8)) + labels.append(QtGui.QApplication.translate("shiptank_weights","Mass", + None,QtGui.QApplication.UnicodeUTF8) + " [kg]") + labels.append(QtCore.QString("g.x [m]")) + labels.append(QtCore.QString("g.y [m]")) + labels.append(QtCore.QString("g.z [m]")) + self.form.weights.setHorizontalHeaderLabels(labels) - def onTableItem(self, row, column): - """ Function called when an item of table is changed. - @param row Changed item row - @param column Changed item column - """ - item = self.form.weights.item(row,column) - # Row deletion - if column == 0: - if not item.text(): - self.form.weights.removeRow(row) - # Ensure that exist one empty item at the end - nRow = self.form.weights.rowCount() - last = self.form.weights.item(nRow-1,0) - if last: - if(last.text() != ''): - self.form.weights.setRowCount(nRow+1) - # Fields must be numbers - for i in range(0,self.form.weights.rowCount()-1): # Avoid last row - for j in range(1,self.form.weights.columnCount()): # Avoid name column - item = self.form.weights.item(i,j) - if not item: - item = QtGui.QTableWidgetItem('0.0') - self.form.weights.setItem(i,j,item) - continue - (number,flag) = item.text().toFloat() - if not flag: - item.setText('0.0') - # Update screen annotations - name = [] - pos = [] - for i in range(0,self.form.weights.rowCount() - 1): - item = self.form.weights.item(i,0) - name.append(item.text().__str__()) - vec = [] - item = self.form.weights.item(i,2) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,3) - vec.append(item.text().toFloat()[0]) - item = self.form.weights.item(i,4) - vec.append(item.text().toFloat()[0]) - pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) - self.preview.update(name, pos) + def onTableItem(self, row, column): + """ Function called when an item of table is changed. + @param row Changed item row + @param column Changed item column + """ + item = self.form.weights.item(row,column) + # Row deletion + if column == 0: + if not item.text(): + self.form.weights.removeRow(row) + # Ensure that exist one empty item at the end + nRow = self.form.weights.rowCount() + last = self.form.weights.item(nRow-1,0) + if last: + if(last.text() != ''): + self.form.weights.setRowCount(nRow+1) + # Fields must be numbers + for i in range(0,self.form.weights.rowCount()-1): # Avoid last row + for j in range(1,self.form.weights.columnCount()): # Avoid name column + item = self.form.weights.item(i,j) + if not item: + item = QtGui.QTableWidgetItem('0.0') + self.form.weights.setItem(i,j,item) + continue + (number,flag) = item.text().toFloat() + if not flag: + item.setText('0.0') + # Update screen annotations + name = [] + pos = [] + for i in range(0,self.form.weights.rowCount() - 1): + item = self.form.weights.item(i,0) + name.append(item.text().__str__()) + vec = [] + item = self.form.weights.item(i,2) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,3) + vec.append(item.text().toFloat()[0]) + item = self.form.weights.item(i,4) + vec.append(item.text().toFloat()[0]) + pos.append(App.Base.Vector(vec[0],vec[1],vec[2])) + self.preview.update(name, pos) def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/tankWeights/TaskPanel.ui b/src/Mod/Ship/tankWeights/TaskPanel.ui index 23dc4ff1bb..5123b44cab 100644 --- a/src/Mod/Ship/tankWeights/TaskPanel.ui +++ b/src/Mod/Ship/tankWeights/TaskPanel.ui @@ -11,7 +11,7 @@ - Set wieghts + Set weights diff --git a/src/Mod/Ship/tankWeights/__init__.py b/src/Mod/Ship/tankWeights/__init__.py index cbfb57d75d..0213909409 100644 --- a/src/Mod/Ship/tankWeights/__init__.py +++ b/src/Mod/Ship/tankWeights/__init__.py @@ -1,24 +1,24 @@ #*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * #* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * #* License along with this program; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * +#* USA * +#* * #*************************************************************************** # FreeCAD modules @@ -32,5 +32,5 @@ from PyQt4 import QtGui,QtCore import TaskPanel def load(): - """ Loads the tool """ - TaskPanel.createTask() + """ Loads the tool """ + TaskPanel.createTask() diff --git a/src/WindowsInstaller/FreeCAD.wxs b/src/WindowsInstaller/FreeCAD.wxs index 3194e5c57e..4cb65dfd12 100644 --- a/src/WindowsInstaller/FreeCAD.wxs +++ b/src/WindowsInstaller/FreeCAD.wxs @@ -163,8 +163,10 @@ + + diff --git a/src/WindowsInstaller/ModShip.wxi b/src/WindowsInstaller/ModShip.wxi index 029fe06c32..17cff640b7 100644 --- a/src/WindowsInstaller/ModShip.wxi +++ b/src/WindowsInstaller/ModShip.wxi @@ -29,38 +29,94 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -77,7 +133,7 @@ - + @@ -155,7 +211,7 @@ - + From 845d73c403ba236bef61eeec6d3bee86f63e9d04 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Fri, 16 Nov 2012 20:06:58 +0100 Subject: [PATCH 12/16] Removed unused resources stuff from windows installer --- src/WindowsInstaller/ModShip.wxi | 69 +------------------------------- 1 file changed, 1 insertion(+), 68 deletions(-) diff --git a/src/WindowsInstaller/ModShip.wxi b/src/WindowsInstaller/ModShip.wxi index 17cff640b7..31027995a4 100644 --- a/src/WindowsInstaller/ModShip.wxi +++ b/src/WindowsInstaller/ModShip.wxi @@ -32,9 +32,6 @@ - - - @@ -45,71 +42,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + From 1ca8f9562dff7783717a4b841d2e23f9459623e4 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Fri, 16 Nov 2012 20:17:14 +0100 Subject: [PATCH 13/16] Fixed bad icon selection on windows installer --- src/WindowsInstaller/ModShip.wxi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WindowsInstaller/ModShip.wxi b/src/WindowsInstaller/ModShip.wxi index 31027995a4..4938ba5d3a 100644 --- a/src/WindowsInstaller/ModShip.wxi +++ b/src/WindowsInstaller/ModShip.wxi @@ -42,7 +42,7 @@ - + From 52ef22584282b5858f68332eb126fe9d3d215743 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 17 Nov 2012 04:23:34 +0100 Subject: [PATCH 14/16] Fix WiX script --- src/WindowsInstaller/FreeCAD.wxs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/WindowsInstaller/FreeCAD.wxs b/src/WindowsInstaller/FreeCAD.wxs index 4cb65dfd12..bd2d427f5c 100644 --- a/src/WindowsInstaller/FreeCAD.wxs +++ b/src/WindowsInstaller/FreeCAD.wxs @@ -163,10 +163,8 @@ - - @@ -185,8 +183,6 @@ - - From 18ab30cddae74933b58bf271504d4b345e46024a Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sat, 17 Nov 2012 12:48:37 -0200 Subject: [PATCH 15/16] Draft: small bugfix --- src/Mod/Draft/DraftTools.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 0866139b21..f9e84fb008 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -1741,9 +1741,9 @@ class Move(Modifier): else: last = self.node[-1] if self.ui.isCopy.isChecked(): - self.move(point.sub(last),True) + self.move(self.point.sub(last),True) else: - self.move(point.sub(last)) + self.move(self.point.sub(last)) self.finish() From 906a6efb300425e4638a1fbf71b3d2856eb1644a Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sat, 17 Nov 2012 12:59:07 -0200 Subject: [PATCH 16/16] Added Arch example file --- data/examples/ArchDetail.FCStd | Bin 0 -> 187754 bytes data/examples/CMakeLists.txt | 1 + data/examples/Makefile.am | 3 ++- src/Mod/Start/Gui/CMakeLists.txt | 1 + src/Mod/Start/StartPage/CMakeLists.txt | 1 + src/Mod/Start/StartPage/LoadArchExample.py | 3 +++ src/Mod/Start/StartPage/Makefile.am | 1 + src/Mod/Start/StartPage/StartPage.py | 2 ++ src/WindowsInstaller/FreeCADData.wxs | 2 ++ 9 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 data/examples/ArchDetail.FCStd create mode 100644 src/Mod/Start/StartPage/LoadArchExample.py diff --git a/data/examples/ArchDetail.FCStd b/data/examples/ArchDetail.FCStd new file mode 100644 index 0000000000000000000000000000000000000000..aedb763098d3ba5465e10892b2657775b5b2b032 GIT binary patch literal 187754 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�fX{E`B9fjKd=v9t6EiYEJaX=e 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≤t$s8WRFSo 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 literal 0 HcmV?d00001 diff --git a/data/examples/CMakeLists.txt b/data/examples/CMakeLists.txt index 9308e5728e..eb0e2f991f 100644 --- a/data/examples/CMakeLists.txt +++ b/data/examples/CMakeLists.txt @@ -5,6 +5,7 @@ SET(Examples_Files EngineBlock.FCStd PartDesignExample.FCStd RobotExample.FCStd + ArchDetail.FCStd ) ADD_CUSTOM_TARGET(Example_data ALL diff --git a/data/examples/Makefile.am b/data/examples/Makefile.am index 7eab3ded9a..d94f45eca8 100644 --- a/data/examples/Makefile.am +++ b/data/examples/Makefile.am @@ -6,7 +6,8 @@ data_DATA = \ EngineBlock.FCStd \ PartDesignExample.FCStd \ RobotExample.FCStd \ - Schenkel.stp + Schenkel.stp \ + ArchDetail.FCStd EXTRA_DIST = \ $(data_DATA) \ diff --git a/src/Mod/Start/Gui/CMakeLists.txt b/src/Mod/Start/Gui/CMakeLists.txt index b3f9a98363..322752436a 100644 --- a/src/Mod/Start/Gui/CMakeLists.txt +++ b/src/Mod/Start/Gui/CMakeLists.txt @@ -42,6 +42,7 @@ SET(StartPage_Resources StartPage/LoadPartDesignExample.py StartPage/LoadDrawingExample.py StartPage/LoadRobotExample.py + StartPage/LoadArchExample.py StartPage/Background.jpg StartPage/FreeCAD.png StartPage/ArchDesign.png diff --git a/src/Mod/Start/StartPage/CMakeLists.txt b/src/Mod/Start/StartPage/CMakeLists.txt index b4233676a9..e2313cb935 100644 --- a/src/Mod/Start/StartPage/CMakeLists.txt +++ b/src/Mod/Start/StartPage/CMakeLists.txt @@ -13,6 +13,7 @@ SET(StartPage_DATA LoadMRU0.py LoadMRU1.py LoadMRU2.py + LoadArchExample.py Mesh.py PartDesign.py Background.jpg diff --git a/src/Mod/Start/StartPage/LoadArchExample.py b/src/Mod/Start/StartPage/LoadArchExample.py new file mode 100644 index 0000000000..ed3a5be411 --- /dev/null +++ b/src/Mod/Start/StartPage/LoadArchExample.py @@ -0,0 +1,3 @@ +import FreeCAD,FreeCADGui +FreeCAD.open(FreeCAD.getResourceDir()+"examples/ArchDetail.FCStd") +FreeCADGui.activeDocument().sendMsgToViews("ViewFit") diff --git a/src/Mod/Start/StartPage/Makefile.am b/src/Mod/Start/StartPage/Makefile.am index c23b289a92..0f6151dcb0 100644 --- a/src/Mod/Start/StartPage/Makefile.am +++ b/src/Mod/Start/StartPage/Makefile.am @@ -18,6 +18,7 @@ data_DATA = \ LoadMRU0.py \ LoadMRU1.py \ LoadMRU2.py \ + LoadArchExample.py \ Mesh.py \ PartDesign.py \ Background.jpg \ diff --git a/src/Mod/Start/StartPage/StartPage.py b/src/Mod/Start/StartPage/StartPage.py index 015aeda6af..117cca2955 100644 --- a/src/Mod/Start/StartPage/StartPage.py +++ b/src/Mod/Start/StartPage/StartPage.py @@ -76,6 +76,7 @@ text51 = translate("StartPage","http://sourceforge.net/apps/mediawiki/free-cad/i text52 = translate("StartPage","Ship Design") text53 = translate("StartPage","Designing and calculating ships") text54 = translate("StartPage","The Ship Design module offers several tools to help ship designers to view, model and calculate profiles and other specific properties of ship hulls.") +text55 = translate("StartPage","Load an Architectural example model") # here is the html page skeleton @@ -319,6 +320,7 @@ def getExamples():

  •  """ + text12 + """
  •  """ + text13 + """
  • +
  •  """ + text55 + """
  • """ def getLinks(): diff --git a/src/WindowsInstaller/FreeCADData.wxs b/src/WindowsInstaller/FreeCADData.wxs index 2f52bf207b..2f12ae7db1 100644 --- a/src/WindowsInstaller/FreeCADData.wxs +++ b/src/WindowsInstaller/FreeCADData.wxs @@ -39,6 +39,7 @@ + @@ -95,6 +96,7 @@ +
  •  """ + text11 + """