From 7e9c8c0fa5ebb48f0a6e723d069f384083bc409a Mon Sep 17 00:00:00 2001 From: pryo <2012213057@bupt.edu.cn> Date: Thu, 29 Jun 2017 11:55:14 -0400 Subject: [PATCH 01/10] getrawfitspath() will return url; TODO listed. --- py3/SciServer/SkyServer.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/py3/SciServer/SkyServer.py b/py3/SciServer/SkyServer.py index a664723..30612f0 100644 --- a/py3/SciServer/SkyServer.py +++ b/py3/SciServer/SkyServer.py @@ -6,8 +6,9 @@ from io import StringIO from io import BytesIO - +from astropy.io import fits from SciServer import Authentication, Config +from SciServer import CasJobs def sqlSearch(sql, dataRelease=None): """ @@ -340,3 +341,25 @@ def objectSearch(objId=None, specObjId=None, apogee_id=None, apstar_id=None, ra= #r = json.loads(response.content.decode()) #return pandas.read_csv(StringIO(r), comment='#') return r; + + # TODO: get a list of FITS path given a list of object ID and + # TODO: make a new function that return a hdu object from FITS file after solve the fits.open() warning problem + +def getRawFITSPath(specObjId, context=None, URL = True): + def PathAlter(url):#TODO: turn https address to local path on DAS package + localPath = url + return localPath + sql = "select dbo.fGetUrlFitsSpectrum(%d)" % specObjId + if(context): + pass + else: + context = 'dr13' + dataFrame = CasJobs.executeQuery(sql, context=context, format='pandas') + dataInCSV = dataFrame.to_CSV() + url = dataInCSV['Colunm1'][0] + if(URL): + return url + else: + localPath = PathAlter(url) + return localPath + From 1387257e1ccf7797dba1b461390b588299ce6196 Mon Sep 17 00:00:00 2001 From: pryo <2012213057@bupt.edu.cn> Date: Thu, 13 Jul 2017 15:37:37 -0400 Subject: [PATCH 02/10] get fits raw path from DAS done --- py3/SciServer/SkyServer.py | 46 +++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/py3/SciServer/SkyServer.py b/py3/SciServer/SkyServer.py index 30612f0..ebef399 100644 --- a/py3/SciServer/SkyServer.py +++ b/py3/SciServer/SkyServer.py @@ -7,8 +7,9 @@ from io import StringIO from io import BytesIO from astropy.io import fits -from SciServer import Authentication, Config -from SciServer import CasJobs +from py3.SciServer import Authentication, Config +from py3.SciServer import CasJobs +from urllib.parse import urlparse def sqlSearch(sql, dataRelease=None): """ @@ -344,22 +345,25 @@ def objectSearch(objId=None, specObjId=None, apogee_id=None, apstar_id=None, ra= # TODO: get a list of FITS path given a list of object ID and # TODO: make a new function that return a hdu object from FITS file after solve the fits.open() warning problem - -def getRawFITSPath(specObjId, context=None, URL = True): - def PathAlter(url):#TODO: turn https address to local path on DAS package - localPath = url - return localPath - sql = "select dbo.fGetUrlFitsSpectrum(%d)" % specObjId - if(context): - pass - else: - context = 'dr13' - dataFrame = CasJobs.executeQuery(sql, context=context, format='pandas') - dataInCSV = dataFrame.to_CSV() - url = dataInCSV['Colunm1'][0] - if(URL): - return url - else: - localPath = PathAlter(url) - return localPath - +#1: use casjobs to query for the specobjid by the coordinate +#2: use dr7.fgeturlfitsspectrum(specobjid) to have the http url: +# like this http://das.sdss.org/spectro/1d_26/1472/1d/spSpec-52913-1472-269.fit +# then append sdss_das/das2/ in the front + + +def getSpecObjID(ra, dec, width, height, context=None, URL=True): + leftBoundry = ra - width / 2 + rightBoundry = ra + width / 2 + upperBoundry = dec + height / 2 + lowerBoundry = dec - height / 2 + sqlQuery = 'select specObjID from dr7.specobjall Where (ra >' + str(leftBoundry) + ' and ra<' + str( + rightBoundry) + ') and (dec>' + str(lowerBoundry) + ' and dec<' + str(upperBoundry) + ')' + return CasJobs.executeQuery(sqlQuery, context='dr7', format='pandas') +def getRawFITSPathInDAS(SpecObjID): + sqlQuery = 'select dr7.fGetUrlFitsSpectrum('+SpecObjID+')' + response = CasJobs.executeQuery(sqlQuery, context='dr7', format='pandas') + url= response['Column1'][0] + parseResult = urlparse(url) + prefix = '/home/idies/workspace/sdss_das/das2' + path = prefix+parseResult.path + return path \ No newline at end of file From d5dcd1661dae509115b80ef32c638729bb6416f3 Mon Sep 17 00:00:00 2001 From: pryo <2012213057@bupt.edu.cn> Date: Sun, 29 Oct 2017 17:41:27 -0400 Subject: [PATCH 03/10] spectrum viewer v1 the first prototype of spectrum viewer as part of sciserver. need to config together with sciserver --- SpectrumViewer/CoaddObj.py | 17 ++ SpectrumViewer/InlineViewer.py | 0 SpectrumViewer/SDSSDriver.py | 52 +++++ SpectrumViewer/SpecUtil.py | 131 +++++++++++ SpectrumViewer/WindowViewer.py | 137 +++++++++++ SpectrumViewer/ZObj.py | 9 + SpectrumViewer/__init__.py | 0 SpectrumViewer/example.py | 6 + SpectrumViewer/example_lite.fits | 218 ++++++++++++++++++ SpectrumViewer/test.py | 9 + .../viewer screenshot/emission line only.PNG | Bin 0 -> 33844 bytes .../flux and model fit only.PNG | Bin 0 -> 39757 bytes SpectrumViewer/viewer screenshot/showall.PNG | Bin 0 -> 55227 bytes 13 files changed, 579 insertions(+) create mode 100644 SpectrumViewer/CoaddObj.py create mode 100644 SpectrumViewer/InlineViewer.py create mode 100644 SpectrumViewer/SDSSDriver.py create mode 100644 SpectrumViewer/SpecUtil.py create mode 100644 SpectrumViewer/WindowViewer.py create mode 100644 SpectrumViewer/ZObj.py create mode 100644 SpectrumViewer/__init__.py create mode 100644 SpectrumViewer/example.py create mode 100644 SpectrumViewer/example_lite.fits create mode 100644 SpectrumViewer/test.py create mode 100644 SpectrumViewer/viewer screenshot/emission line only.PNG create mode 100644 SpectrumViewer/viewer screenshot/flux and model fit only.PNG create mode 100644 SpectrumViewer/viewer screenshot/showall.PNG diff --git a/SpectrumViewer/CoaddObj.py b/SpectrumViewer/CoaddObj.py new file mode 100644 index 0000000..fdb2987 --- /dev/null +++ b/SpectrumViewer/CoaddObj.py @@ -0,0 +1,17 @@ +# This class init with a fits file in the directory and store all the data in the RAM +import numpy as np +class CoaddObj: + def __init__(self,flux,loglam=None,ivar=None,andMask=None,orMask=None + ,wdisp=None,sky=None,model=None):#type can be pfs + self.flux = flux + self.loglam = loglam + self.ivar =ivar + self.andMask =andMask + self.orMask = orMask + self.wdisp = wdisp + self.sky =sky + self.model = model + self.lam = np.power(10,self.loglam) + + + diff --git a/SpectrumViewer/InlineViewer.py b/SpectrumViewer/InlineViewer.py new file mode 100644 index 0000000..e69de29 diff --git a/SpectrumViewer/SDSSDriver.py b/SpectrumViewer/SDSSDriver.py new file mode 100644 index 0000000..12bcf6e --- /dev/null +++ b/SpectrumViewer/SDSSDriver.py @@ -0,0 +1,52 @@ +#load SDSS into workable object +from astropy.io import fits +from py3.SciServer import Authentication, Config +from py3.SciServer import CasJobs +from urllib.parse import urlparse +import SpectrumViewer.CoaddObj as Coadd +import SpectrumViewer.ZObj as Z +def getSpecObjID(ra, dec, width, height, context=None, URL=True): + leftBoundry = ra - width / 2 + rightBoundry = ra + width / 2 + upperBoundry = dec + height / 2 + lowerBoundry = dec - height / 2 + sqlQuery = 'select specObjID from dr7.specobjall Where (ra >' + str(leftBoundry) + ' and ra<' + str( + rightBoundry) + ') and (dec>' + str(lowerBoundry) + ' and dec<' + str(upperBoundry) + ')' + return CasJobs.executeQuery(sqlQuery, context='dr7', format='pandas') +def getRawFITSPathInDAS(SpecObjID): + sqlQuery = 'select dr7.fGetUrlFitsSpectrum('+SpecObjID+')' + response = CasJobs.executeQuery(sqlQuery, context='dr7', format='pandas') + url= response['Column1'][0] + parseResult = urlparse(url) + prefix = '/home/idies/workspace/sdss_das/das2' + path = prefix+parseResult.path + return path + +def loadFITS(filename,fileSource): + + if fileSource=='SDSS': + coaddData =1 + zData =3 + hdulist = fits.open(filename) + c=hdulist[coaddData].data + z=hdulist[zData].data + coaddObj = Coadd.CoaddObj( + flux=c['flux'], + loglam=c['loglam'], + ivar=c['ivar'], + andMask=c['and_Mask'], + orMask=c['or_Mask'], + wdisp=c['wdisp'], + sky = c['sky'], + model=c['model']) + zObj = Z.ZObj( + LINENAME=z['LINENAME'], + LINEWAVE=z['LINEWAVE'], + LINEZ=z['LINEZ'], + LINEEW=z['LINEEW'], + LINEZ_ERR=z['LINEZ_ERR'], + LINEEW_ERR=z['LINEEW_ERR']) + return coaddObj,zObj + + else: + print('Sorry, we are loyal to SDSS ONLY, for the time being. ') \ No newline at end of file diff --git a/SpectrumViewer/SpecUtil.py b/SpectrumViewer/SpecUtil.py new file mode 100644 index 0000000..0309f4e --- /dev/null +++ b/SpectrumViewer/SpecUtil.py @@ -0,0 +1,131 @@ +# this file hold utility functions that generate the plot and actual data +import matplotlib.pyplot as plt +from matplotlib.figure import Figure +import numpy as np +class SpecUtil: + def __init__(self,coaddObj,zObj): + self.coaddObj = coaddObj + self.zObj=zObj + # self.totalFig = plt.figure() + # self.shownFig = plt.figure() + #self.totalFig = Figure(figsize=(5, 4), dpi=100) + self.shownFig = Figure(figsize=(5, 4), dpi=100) + self.shownFig = plt.figure() + self.plotDict = {0: True, + 1: True, + 2: True, + 3: True, + 4: True} + #0 flux 1 skyline 2 emission 3 absorb 4 model + #self.totalAx = self.totalFig.add_subplot(111) + #fluxLine,=self.totalAx.plot(self.coaddObj.lam,self.coaddObj.flux) + #skyLine, = self.totalAx.plot(self.coaddObj.lam,self.coaddObj.sky) + + self.shownAx = self.shownFig.add_subplot(111) + self.shownAx.set_xlabel('lambda/Å') + self.shownAx.set_ylabel('10-17 ergs/s/cm2/Å') + + for key in self.plotDict.keys(): + if self.plotDict[key]: + try: + self.plotLines(self.shownAx, key) + except IndexError: # dict is longer than plot numbers in totalax + pass + self.shownAx.legend() + #self.shownAx = self.totalAx + def updateFig(self): + #self.shownAx.lines=[] + self.shownAx.clear() + self.shownAx.set_xlabel('lambda/Å') + self.shownAx.set_ylabel('10-17 ergs/s/cm2/Å') + for key in self.plotDict.keys(): + if self.plotDict[key]: + try: + self.plotLines(self.shownAx,key) + except IndexError: + pass + #line1, = ax.plot(x, y, 'b-') + self.shownAx.legend() + #for phase in np.linspace(0, 10 * np.pi, 100): + # line1.set_ydata(np.sin(0.5 * x + phase)) + # fig.canvas.draw() + def addFlux(self): + self.plotDict[0]=True + self.updateFig() + def removeFlux(self): + self.plotDict[0] = False + self.updateFig() + + def addSkyline(self): + self.plotDict[1] = True + self.updateFig() + def removeSkyline(self): + self.plotDict[1] = False + self.updateFig() + def addEmissionLine(self): + self.plotDict[2] = True + self.updateFig() + def removeEmissionLine(self): + self.plotDict[2] = False + self.updateFig() + def addAbsorbLine(self): + self.plotDict[3] = True + self.updateFig() + def removeAbsorbLine(self): + self.plotDict[3] = False + self.updateFig() + def addModel(self): + self.plotDict[4] = True + self.updateFig() + def removeModel(self): + self.plotDict[4] = False + self.updateFig() + def plotLines(self,axes,actionIndex): + if actionIndex==0: + axes.plot(self.coaddObj.lam, self.coaddObj.flux,'C0',label='flux') + elif actionIndex==1: + axes.plot(self.coaddObj.lam, self.coaddObj.sky,'C1',label='skyline') + elif actionIndex==2: + #plot emission line + self.plotSegment(axes,actionIndex) + + elif actionIndex ==3: + #plot absorption line + self.plotSegment(axes,actionIndex) + + + elif actionIndex ==4: + + #plot best fit model + axes.plot(self.coaddObj.lam, self.coaddObj.model, 'C3', label='best fit model') + else: + + pass + def plotSegment(self,axes,actionIndex): + + # read e/a line from zobj and plot it on axes with function from axhspan + if actionIndex==2:#emissiaon line + for lineIndex in range(0,len(self.zObj.LINENAME)): + + width = self.zObj.LINEEW[lineIndex] + if width >0: + #print(width) + position = self.zObj.LINEWAVE[lineIndex] + startPostition = position-width/2 + endPostition = position + width / 2 + name= self.zObj.LINENAME[lineIndex] + #print(name) + axes.axvspan(xmin=startPostition,xmax=endPostition, facecolor='C4') + axes.text(position,0,name , rotation=90) + elif actionIndex==3:#absorption line + for lineIndex in range(0,len(self.zObj.LINENAME)): + width = self.zObj.LINEEW[lineIndex] + if width >0: + #print(width) + position = self.zObj.LINEWAVE[lineIndex] + startPostition = position-width/2 + endPostition = position + width / 2 + name= self.zObj.LINENAME[lineIndex] + #print(name) + axes.axvspan(xmin=startPostition,xmax=endPostition, facecolor='C4') + axes.text(position,0,name , rotation=90) diff --git a/SpectrumViewer/WindowViewer.py b/SpectrumViewer/WindowViewer.py new file mode 100644 index 0000000..557c4b3 --- /dev/null +++ b/SpectrumViewer/WindowViewer.py @@ -0,0 +1,137 @@ +# show plotting result in a new window interactively +# this is actual user interface all the object are hide away from user +import SpectrumViewer.ZObj as ZObj +import SpectrumViewer.CoaddObj as CoaddObj +import matplotlib +matplotlib.use("TkAgg") +import SpectrumViewer.SDSSDriver as driver +import SpectrumViewer.SpecUtil as specutil +from matplotlib.figure import Figure +from numpy import arange, sin, pi +from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg +# implement the default mpl key bindings +from matplotlib.backend_bases import key_press_handler +import tkinter as Tk + + +def view(fileName,fileSource): + coaddObj, zObj = driver.loadFITS(fileName, fileSource) + #construn tk window and all components + + + root = Tk.Tk() + root.wm_title("Embedding in TK") + app = SpecController(root,coaddObj,zObj) + root.mainloop() + +class SpecController: + #take objs to construct specmodel and specview + def __init__(self,root,coaddObj,zObj): + self.model = SpecModel(coaddObj,zObj) + self.view = SpecView(root,self.model.specUtilObj.shownFig) + self.view.sidepanel.fluxTogg.bind("');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import SpectrumViewer.InlineViewer as inline\n", + "%matplotlib notebook\n", + "fileName = 'SpectrumViewer/example_lite.fits'\n", + "fileSource = 'SDSS'\n", + "inline.view(fileName, fileSource)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From 0f04e0b1cc79b040f2d5d473ff61b8368090db8e Mon Sep 17 00:00:00 2001 From: pryo <2012213057@bupt.edu.cn> Date: Thu, 18 Jan 2018 14:09:17 -0500 Subject: [PATCH 05/10] changed segment to line, added redshift table --- .../inline viewer demo 2-checkpoint.ipynb | 879 ++++++++++++++++++ .../demo 1-checkpoint.ipynb | 6 + .../demo 2-checkpoint.ipynb | 62 ++ SpectrumViewer - Copy/CoaddObj.py | 17 + SpectrumViewer - Copy/InlineViewer.py | 6 + SpectrumViewer - Copy/SDSSDriver.py | 52 ++ SpectrumViewer - Copy/SpecUtil.py | 131 +++ SpectrumViewer - Copy/SpecUtil_inline.py | 170 ++++ SpectrumViewer - Copy/SpecUtil_interactive.py | 142 +++ SpectrumViewer - Copy/WindowViewer.py | 132 +++ SpectrumViewer - Copy/ZObj.py | 10 + SpectrumViewer - Copy/__init__.py | 0 .../__pycache__/CoaddObj.cpython-36.pyc | Bin 0 -> 643 bytes .../__pycache__/InlineViewer.cpython-36.pyc | Bin 0 -> 495 bytes .../__pycache__/SDSSDriver.cpython-36.pyc | Bin 0 -> 1020 bytes .../__pycache__/SpecUtil.cpython-36.pyc | Bin 0 -> 3941 bytes .../SpecUtil_inline.cpython-36.pyc | Bin 0 -> 5467 bytes .../SpecUtil_interactive.cpython-36.pyc | Bin 0 -> 4357 bytes .../__pycache__/WindowViewer.cpython-36.pyc | Bin 0 -> 5281 bytes .../__pycache__/ZObj.cpython-36.pyc | Bin 0 -> 545 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 149 bytes SpectrumViewer - Copy/debug.py | 176 ++++ SpectrumViewer - Copy/demo 1.ipynb | 843 +++++++++++++++++ SpectrumViewer - Copy/example.py | 6 + SpectrumViewer - Copy/example_lite.fits | 218 +++++ SpectrumViewer - Copy/test.py | 10 + .../emission line only.PNG | Bin 0 -> 33844 bytes .../flux and model fit only.PNG | Bin 0 -> 39757 bytes .../window viewer screenshot/showall.PNG | Bin 0 -> 55227 bytes .../Untitled-checkpoint.ipynb | 6 + SpectrumViewer/SDSSDriver.py | 1 + SpectrumViewer/SpecUtil_inline.py | 86 +- SpectrumViewer/Untitled.ipynb | 62 ++ .../__pycache__/SDSSDriver.cpython-36.pyc | Bin 1020 -> 1021 bytes .../SpecUtil_inline.cpython-36.pyc | Bin 5467 -> 7068 bytes SpectrumViewer/demo 1.ipynb | 799 +--------------- inline viewer demo 2.ipynb | 133 ++- 37 files changed, 3147 insertions(+), 800 deletions(-) create mode 100644 .ipynb_checkpoints/inline viewer demo 2-checkpoint.ipynb create mode 100644 SpectrumViewer - Copy/.ipynb_checkpoints/demo 1-checkpoint.ipynb create mode 100644 SpectrumViewer - Copy/.ipynb_checkpoints/demo 2-checkpoint.ipynb create mode 100644 SpectrumViewer - Copy/CoaddObj.py create mode 100644 SpectrumViewer - Copy/InlineViewer.py create mode 100644 SpectrumViewer - Copy/SDSSDriver.py create mode 100644 SpectrumViewer - Copy/SpecUtil.py create mode 100644 SpectrumViewer - Copy/SpecUtil_inline.py create mode 100644 SpectrumViewer - Copy/SpecUtil_interactive.py create mode 100644 SpectrumViewer - Copy/WindowViewer.py create mode 100644 SpectrumViewer - Copy/ZObj.py create mode 100644 SpectrumViewer - Copy/__init__.py create mode 100644 SpectrumViewer - Copy/__pycache__/CoaddObj.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/__pycache__/InlineViewer.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/__pycache__/SDSSDriver.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/__pycache__/SpecUtil.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/__pycache__/SpecUtil_inline.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/__pycache__/SpecUtil_interactive.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/__pycache__/WindowViewer.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/__pycache__/ZObj.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/__pycache__/__init__.cpython-36.pyc create mode 100644 SpectrumViewer - Copy/debug.py create mode 100644 SpectrumViewer - Copy/demo 1.ipynb create mode 100644 SpectrumViewer - Copy/example.py create mode 100644 SpectrumViewer - Copy/example_lite.fits create mode 100644 SpectrumViewer - Copy/test.py create mode 100644 SpectrumViewer - Copy/window viewer screenshot/emission line only.PNG create mode 100644 SpectrumViewer - Copy/window viewer screenshot/flux and model fit only.PNG create mode 100644 SpectrumViewer - Copy/window viewer screenshot/showall.PNG create mode 100644 SpectrumViewer/.ipynb_checkpoints/Untitled-checkpoint.ipynb create mode 100644 SpectrumViewer/Untitled.ipynb diff --git a/.ipynb_checkpoints/inline viewer demo 2-checkpoint.ipynb b/.ipynb_checkpoints/inline viewer demo 2-checkpoint.ipynb new file mode 100644 index 0000000..e5c98e3 --- /dev/null +++ b/.ipynb_checkpoints/inline viewer demo 2-checkpoint.ipynb @@ -0,0 +1,879 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import SpecUtil_inline as inline\n", + "\n", + "import SDSSDriver as driver\n", + "%matplotlib notebook\n", + "fileName = 'example_lite.fits'\n", + "fileSource = 'SDSS'\n", + "coaddObj, zObj = driver.loadFITS(fileName, fileSource)\n", + "spec=inline.SpecUtil(fileName, coaddObj, zObj)\n", + "spec.showfig()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/SpectrumViewer - Copy/example.py b/SpectrumViewer - Copy/example.py new file mode 100644 index 0000000..000f747 --- /dev/null +++ b/SpectrumViewer - Copy/example.py @@ -0,0 +1,6 @@ +import SciServer.SepctrumViewer.SDSSDriver as driver +import SciServer.SepctrumViewer.WindowViewer as viewer +objID= 'please replace this with an objID from SDSS DR7' +filesource='SDSS' +path=driver.getRawFITSPathInDAS(objID) +viewer.view(path,filesource) diff --git a/SpectrumViewer - Copy/example_lite.fits b/SpectrumViewer - Copy/example_lite.fits new file mode 100644 index 0000000..5347b30 --- /dev/null +++ b/SpectrumViewer - Copy/example_lite.fits @@ -0,0 +1,218 @@ +SIMPLE = T / conforms to FITS standard BITPIX = 8 / array data type NAXIS = 0 / number of array dimensions EXTEND = T TAI = 4510856565.27 / 1st row - Number of seconds since Nov 17 1858 RA = 34.081409 / 1st row - Right ascension of telescope boresighDEC = -0.015930 / 1st row - Declination of telescope boresight (dEQUINOX = 2000.00 / RADECSYS= 'FK5 ' / TAIHMS = '09:39:25.74' / 1st row - TAI time (HH:MM:SS.SS) (TAI-UT = apprTIMESYS = 'tai ' / TAI, not UTC MJD = 52209 / MJD of observation MJDLIST = '52208 52209' / VERSION = 'NOCVS:v3_58_2:/p/iop/v3_58_2' / version of IOP CAMVER = 'SPEC1 v4_7' / Camera code version OBSERVER= 'snedden ' OBSCOMM = 'science ' TELESCOP= 'SDSS 2.5-M' / Sloan Digital Sky Survey BESTEXP = 11592 / NEXP_B1 = 5 / b1 camera number of exposures NEXP_R1 = 5 / r1 camera number of exposures EXPT_B1 = 6004.00 / b1 camera exposure time (seconds) EXPT_R1 = 6004.00 / r1 camera exposure time (seconds) EXPTIME = 6004.00 / Minimum of exposure times for all cameras SPCOADD = 'Tue Feb 26 00:42:17 2008' / SPCOADD finished FLAVOR = 'science ' / Flavor of this sequence (e.g., dome flat, etc.)QUALITY = 'excellent' / night/image quality RADEG = 3.40813400000000E+01 / Right Ascension. (degrees) DECDEG = -1.6159310000000E-02 / Declination. (degrees) PLATEID = 703 / Plate Id TILEID = 471 / Tile Id CARTID = 6 /Cartridge used in this plugging REDDEN = '0.1276 0.0939 0.0681 0.0516 0.0366' / Median reddening vector for plaMAPID = 5220601 / Map Id NAME = '0703-52206-01' / Name of target; PlateId-MJD-Mapper ReRun COLBIN = 1 / Binning factor perpendicular to the columns ROWBIN = 1 / Binning factor perpendicular to the rows PROGRAM = 'binning 1 1 ' / Identifying name for CCD program SECFOCUS= -1.2000000000000E+02 / Secondary Mirror Position as reported by TCC GUIDEIMG= '/data/spectro/guider/gimg0701.fits' / Last archived guider image WTIME = 1004139555.20 / weatherData(timeStamp) AIRTEMP = 9.40000000000 / weatherData(airtemp) DEWPOINT= -5.72000000000 / weatherData(dewpoint) DEWDEP = 15.1200000000 / weatherData(dewpointDep) DUSTA = 23922.4000000 / weatherData(dusta) DUSTB = 692.600000000 / weatherData(dustb) DUSTC = 33007.0000000 / weatherData(dustc) DUSTD = 1029.40000000 / weatherData(dustd) GUSTD = 1.80000000000000E+02 / weatherData(gustd) GUSTS = 5.52000000000 / weatherData(gusts) HUMIDITY= 34.1200000000 / weatherData(humidity) HUMIDOUT= 33.8000000000 / weatherData(humidout) PRESSURE= 21.7240000000 / weatherData(pressure) WINDD = 184.600000000 / weatherData(windd) WINDS = 3.56000000000 / weatherData(winds) TEMP01 = -93.9840000000 / CCD 01 Temperature TEMP02 = -93.5160000000 / CCD 02 Temperature TEMP03 = -92.6580000000 / CCD 03 Temperature TEMP04 = -93.0480000000 / CCD 04 Temperature VERSIDL = '6.3 ' / Version of IDL VERSUTIL= 'v5_3_0 ' / Version of idlutils VERSREAD= 'v5_3_12 ' / Version of idlspec2d for pre-processing raw datVERS2D = 'v5_3_12 ' / Version of idlspec2d for 2D reduction VERSCOMB= 'v5_3_12 ' / Version of idlspec2d for combining multiple speVERSLOG = 'fermi-CVS 02/25/08' / Version of SPECLOG product VERSFLAT= 'v1_7 ' / Version of SPECFLAT product OPBC = 'opBC-51813.par' / OPCONFIG= 'opConfig-50000.par' / OPECALIB= 'opECalib-51577.par' / PLUGFILE= 'plPlugMapM-0703-52206-01.par' / HELIO_RV= 1.55079685031 / Heliocentric correction (added to velocities) VACUUM = T / Wavelengths are in vacuum SFLATTEN= T / Superflat has been applied PSFSKY = 3 / Order of PSF skysubtraction SKYCHI2 = 1.22384130844 / Mean chi^2 of sky-subtraction SCHI2MIN= 1.06626973255 / SCHI2MAX= 1.49250118624 / PREJECT = 0.200000 / Profile area rejection threshold SPEC1_G = 23.2480 /(S/N)^2 for spec 1 at mag 20.20 SPEC1_R = 24.7649 /(S/N)^2 for spec 1 at mag 20.25 SPEC1_I = 23.1359 /(S/N)^2 for spec 1 at mag 19.90 SPEC2_G = 32.4262 /(S/N)^2 for spec 2 at mag 20.20 SPEC2_R = 32.4642 /(S/N)^2 for spec 2 at mag 20.25 SPEC2_I = 27.2296 /(S/N)^2 for spec 2 at mag 19.90 NSTD = 16 / Number of (good) std stars GOFFSTD = 0.0268574 / Spectrophoto offset for std stars in G-band GRMSSTD = 0.0683525 / Spectrophoto RMS for std stars in G-band ROFFSTD = 0.0235081 / Spectrophoto offset for std stars in R-band RRMSSTD = 0.0559933 / Spectrophoto RMS for std stars in R-band IOFFSTD = 0.0508566 / Spectrophoto offset for std stars in I-band IRMSSTD = 0.0564636 / Spectrophoto RMS for std stars in I-band GROFFSTD= 0.0197706 / Spectrophoto offset for std stars in (GR) GRRMSSTD= 0.0564266 / Spectrophoto RMS for std stars in (GR) RIOFFSTD= -0.0232182 / Spectrophoto offset for std stars in (RI) RIRMSSTD= 0.0238882 / Spectrophoto RMS for std stars in (RI) NGAL = 64 / Number of (good) main galaxies GOFFGAL = 0.0610857 / Spectrophoto offset for main galaxies in G-bandGRMSGAL = 0.132475 / Spectrophoto RMS for main galaxies in G-band ROFFGAL = 0.0628061 / Spectrophoto offset for main galaxies in R-bandRRMSGAL = 0.0622986 / Spectrophoto RMS for main galaxies in R-band IOFFGAL = 0.0700979 / Spectrophoto offset for main galaxies in I-bandIRMSGAL = 0.0636804 / Spectrophoto RMS for main galaxies in I-band GROFFGAL= 0.0133495 / Spectrophoto offset for main galaxies in (GR) GRRMSGAL= 0.0472521 / Spectrophoto RMS for main galaxies in (GR) RIOFFGAL= -0.0103455 / Spectrophoto offset for main galaxies in (RI) RIRMSGAL= 0.0216159 / Spectrophoto RMS for main galaxies in (RI) LOWREJ = 5 / Extraction: low rejection HIGHREJ = 8 / Extraction: high rejection SCATPOLY= 0 / Extraction: Order of scattered light polynomialPROFTYPE= 3 / Extraction profile: 1=Gaussian NFITPOLY= 1 / Extraction: Number of parameters in each profilXCHI2 = 1.44428 / Extraction: Mean chi^2 XCHI2MIN= 1.15894 / XCHI2MAX= 1.77136 / SHIFTGUE= -0.000812781513105 / SHIFT = -0.000812781513105 /Angstroms, at 4000AA SHIFTERR= -0.000812781513105 / NWORDER = 2 / Linear-log10 coefficients WFITTYPE= 'LOG-LINEAR' / Linear-log10 dispersion COEFF0 = 3.57930000000 / Central wavelength (log10) of first pixel COEFF1 = 0.000100000000000 / Log10 dispersion per pixel FBADPIX = 0.0754441 / Fraction of bad pixels FBADPIX1= 0.0759304 / Fraction of bad pixels on spectro-1 FBADPIX2= 0.0749579 / Fraction of bad pixels on spectro-2 WAT0_001= 'system=linear' / WAT1_001= 'wtype=linear label=Wavelength units=Angstroms' / DC-FLAG = 1 / Log-linear flag BUNIT = '1E-17 erg/cm^2/s/Ang' / NEXP = 10 / Number of individual exposures EXPID01 = 'b1-00011558-00011561-00011562' EXPID02 = 'b1-00011559-00011561-00011562' EXPID03 = 'b1-00011591-00011596-00011597' EXPID04 = 'b1-00011592-00011596-00011597' EXPID05 = 'b1-00011593-00011596-00011597' EXPID06 = 'r1-00011558-00011561-00011562' EXPID07 = 'r1-00011559-00011561-00011562' EXPID08 = 'r1-00011591-00011596-00011597' EXPID09 = 'r1-00011592-00011596-00011597' EXPID10 = 'r1-00011593-00011596-00011597' PLUG_RA = 34.928021 / RA of object [deg] PLUG_DEC= -1.1370997 / dec of object [deg] SPEC_ID = ' 791507946449168384' / Unique object identifier FIBERID = 1 / Fiber number (1-640) END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 32 / length of dimension 1 NAXIS2 = 3830 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 8 / number of table fields TTYPE1 = 'flux ' TFORM1 = 'E ' TTYPE2 = 'loglam ' TFORM2 = 'E ' TTYPE3 = 'ivar ' TFORM3 = 'E ' TTYPE4 = 'and_mask' TFORM4 = 'J ' TTYPE5 = 'or_mask ' TFORM5 = 'J ' TTYPE6 = 'wdisp ' TFORM6 = 'E ' TTYPE7 = 'sky ' TFORM7 = 'E ' TTYPE8 = 'model ' TFORM8 = 'E ' EXTNAME = 'COADD ' COMMENT Coadded spectrum END @@e8=w?5A2@,$@@e:>?3A@0> w@e<6> .?ڻAF@@@AY@e=>(?FA8@t@\@e?}> ?Ap@eA @eA >D?FA +O@ˠo@?@eB>?pAV@t@g@eDg>?!A_@KA>@eF >?fAY@@u@eG>?D9A@>@@eIR>?>wA@~3@eJ>*?hAt +@&@"/@eL>(?NAg@@1@eN<>?rA~*@?~@I@eO>t??Z\A+@@g @& +@eQ>?+%AĜ@ +@V@eS&> g?A@k@ >@eT>? ?ACP@@i@eVm>n?A?@z.@eX>?9A@+3?v@eY>w?cA1@?5@`I@e[W>?As@oA @e\>??3Au@\@@e^>+y? +A@bM@,@e`B>*bn? A@@6@ea>+N?wAX@@@ec>-=? +AW'@@ UJ@ee,>9?A`@IJ@rh@ef>?A@QA+@ehs>|?y=A@@&@ej>_?ZA[@T@}@ek>)?A"d@t\@Z@em]>4m?A'@:k@@eo>9?GAI@tA(@ep>+ +?AJ@`@@erG>+[?lyA{@?@es>E?=WAV@;@}@eu>L^?TQA@E@V@ew2>C?zA6@@@ex>=)j?{)A-@@/Վ@ezx>I6?Ab@yu@@e|>@?nA@p@_@e}>8X?BA-@ri@@ec>E)?MAvH@Q@Ѣ@e>J ?aAy]^@@A@e>Pna?&A݇@2j? g@eM>m|g?A|=@1@F@e>wV=? ?Ae@@5@e>w?AL@9@ba@e7>?ܘAB@0@F@e>#?AK@r@'@e~>v*?A_^@Aw@e">e?Aqx@@@e>dj?Ay @_@X@eh>_T?ƱAtZ@n@@e >bq?A/ +@=;@ |@e>g֗?A{d@t.Ai@eS>]?ɯAm@l~A @e>e5I?fA[@[@i=@e>x/?A],`@?>d@e=>U?Ai #@L@/R@e>?w^Aa@|J}@i@e>?WAOe@E@,@e'>X?bAB@9@VP@e>V??fAA@'Y@};@en>?HsAU@l@>@e>t?3Ap@>G@i@e>v/Q?A @v@j@eX>h1n?Ao7@7@A@e>h?An@ln@ݢ@e>p2?ݤAQI@?W@eC>K?SAA@@/@e>"$? A4`@@@e>^?A0 @@a&@e->A? A-@O@Ȧ@e>O?A5@@@et>??TA;f=@@uK@e>U?A5~@e@˷@e>{(?A(@d@m@e^>Y ?WA<@n@@e>:?*A 4@c@#@e>|?A@v@i@eH>?p=A#2~@2g@GB@e>\?mA;@j+@F@e>7?AG"@_@@e3>e?vtAG@JA@e>S@?AD@mA @ez>6N?ttAE@p@Ĺd@e>x ?AXe@d1@`E@e>r&?RAx=j@{f@ed>vb?2A@8?}@e>j?P-AM@e2ԺH@eϫ>o?XA@;@D@eN>h?OA @>x@k1@e>k?n?A$\@x5@@e9>lI?AR@K@@e>|?AuW@z@Ê@e>u8?#Ax@@@e#>s?bA@CO@z@e>tT?A@eA7@ej>e?ŻA+@@~@e >h.?*Aԥ@`@@e>o%?EA7@C1@2@eT>p?jA_@@x@e>tL?A@s@ϾZ@e>f?k`A@Ao@e>>ZQ?hA@g@.w@e>Y#?yA @Z@2@e>eV%?lA@@@e)>wW?XA@{@@e>|t?QRA@p?@@eo>8?DAO@` @`@e>hj?/A@|@@e>?A}@@y@eZ> ?A@@2 <@e>?Ab@@m`@e>5?tA @@@eD>R?~At2T@s-@l@e>??QA_x@q@@e>?AYu@@ё@e.>?AZ>@?`@f>C?A]{@m@@fu>?AW!"@@@f>2?FAP @@2@f> 9?AV'e@[vI?D@f_>S?͆A_@?@f >1x?0ART@@@f +>?A8,@@=@f J>"'?A$A@@oq@f >6?ؑA@b@ >@f>3?ʊA9@5A x@f4>)?$AT@aN@U @f>?~A?@$@ط@f{>%?Aj@wAh@f>z?`A/@/@W@f>^?>Au|@`@"@fe>̐.?A'@c@=@f >k`?!AJ7@@`@f>?Al"j@mB@?@fO>?lAMD@:@{@f>?dA@?@@f!>A?UAH.@о@‰p@f#:>m4?DA@3@^h@f$>xг?jA&@@[o@f&>x ?hfA{@U@Wi@f($>?ШA@@oL@f)>?=AJ@m@ @f+k>?PAc@{@h@f->]?*A@D@՗@f.>?Ah@Ǣ@Fb@f0U>?ͧA@os@O@f1>L?ѣAY@?۳@f3>.?A O@@@f5?>v?Aw@@K@f6>9?Ac@@sy@f8>>R?+A3@/B@B@f:*>S?A!f@,@'@f;>?A@@5@f=q>B? A}@?A@f?>?|At@n?ϥ@f@>͒?lA{I@m@ +@fB[>b?A@A A@fC>R-??Am@V@\@fE>I?AM9@T@r@fGE>>?A37@@"@fH> +?סA.5k@p@S-@fJ>?^A2$@a@iT@fL0>?A*A@u@nL@fM>?A@@UIA@fOv>3?@ƛ@@@fQ>?M@'@c@Zf@fR>Ș ?@籋@9@?@fTa>K?`\@@+@@fV>?/A mc@?K@fW>q?TA/@~2@@fYK>r?NAC>@-@ @fZ>?bAZy@:+@e@f\>?8Ab@!@@f^5>f?XA_@}w@L@f_>=?|A\If@h%@@fa|>?Ah@@@J@fc >6?Ao@ +y@-@fd>+?* A|Zl@tEt@@fff>)?4:A@@ @fh +>?)UA @?N@fi>e?/A@Q3@@fkQ>g?A0@R@v@fl>?Az@@@fn> +?Ap@s^@dA@fp;>?Ak@@-@fq>?:A_ @ƻ@Uu@fs>?Ae*@4@Ã@fu%>v?Au@v@@fv>'? +A @{@d@fxl>٦?[A~ݝ@r?2>@fz>? ArdK@@{@f{>{?Ay@D@@f}V>F?!A/@9@wl@f~>?1A.@ +6@(@f>1C?nAyi@@[}@fA>,"?Anq@ @H@f>,?AhcU@_@s@f>?pAkB@?@@f+>~?Ap@+@H@f>?@A@em@-@fr>YZ?A@?@f>cI? Ap@w-@@f>T?AA @p@e@f\>?A@"@}@f>?AW@{@@f>0?Au@vo@$@fF>?VA?B@l@G@f>y/?VzA$b@@@f>eS?"Ag@D@@f1>? +AyX@qv?>,@f>?%A9@pz@p@fx>"c? A@/@@f>Nj2?@8A@ h?@f>Ԙ?^A<@@{@fb>̷(??A5@Ц@JK@f>;?"A%@H?_@f>`-?(A7@@ !@fL>~~?͢AI@ @] +@f>G?A @`@@f>?`A9@9@@f6>?A@e@@f>G?$At@@x@f}>L?Ai@|@5@f!>;??Ao@@ܘ@f>?NA @i@ɥ@fh>?HA-@R>͟t@f >?H=Ag@@~L%@f>z?kIAh@#_@@fR>&F?vAT@ @O@f>ۖ?A@)&@@f> ?@A@x:@0@f<>hL?AT@F@o@f>?A@l@@f>?A&@[F@r@f'>~?qjA;@Q@~i@f>勉?3At.@<@p@fm>?+AjV@͹@5@f>d?=Aw!Y@{h@j@fȴ>? +Ac@_U@ie@fX>UP? A}@4@@f>?A@Jl@:@f͟>?A@Xk@f@fB>yy? /AK@)@+v@f>;?N?N*A@TkF@f,>qL?`A@i@@f>h?Ac@Q@'@fs>q?#AN@A5@f>?xA@yAո@fں>]+?<^Aia@|@m@f]>y?TB!@@Z@f>?HBY@t@<.@fߤ>PC?0Ar@['/@@fH>B?A'@i@Q@f>0?As@]@@f>?A@G@@f2>ဝ?A P@p@{@f>w1?AUe@,@?@fy>?A^c@+'@@f>4?Ab@\L@[@f>?A"L@v/?~@fc?O?]oAr@gS@Xe@f>?EqA@qy@@f>?A7@ +'@7@fM>A?AY@@@f>?KAL@~@@f>x?AuA@@\U@f8>`h?A@&@M@f>-?NCA =@>@: +@f>κ>?jAj@}?@ս@f">ΕZ?#A +@e@@gi>إ?#A`@j@8@g > g?jA"@M2eA @g>ћJ?eAoH@ֱ@@gS>ڔ?AD@@@g>&?“An@?P@g> ?AgL@@ߍ@g +=>?AB@1R@o1@g >?A?@<.?uAG@V=@@g(>FH?&AB@@>@g>?ԁAW@+@@go>j?FA@Y@|@g>护?Aa@@L@g>tF?Ah@]@K^@gY>S?c@A\@$?g@g>?>KA߷@b@ٚ@g>?KA]@|X@ݡ@gC>4?A6A3$@@a#@g>w?.A‚@Y@9@g>? A@B@,@g!->?ATV@@@g"?h?RA@)@q@g$t?M? +A@K@T@g&>_?9AG&@)@6@g'>z?A@8@YJ@g)_>-?aA˼@D{@u'@g+?A?A@gHF@O@g,? )?A2@@@g.I?0?/A(@l@@g/? m?A@[@틼@g1??ΙA@n6@@g33?w?qAvs@@[G@g4?h?(AA@)@w@g6z?+??׏A@@|@g8?4?A6@V?x@g9?"?5A:@_*@XO@g;d?=I?6ArA@9@@g=??3A^@@C@g>?B?}rAYv@P@@g@O?j?zdA\@@@gA? ?NlAZP@{&@ш@gC??+Ah @s@@gE9?Y?Ax@P@;@gF?X?At@@@gH?o?A@ ?Kd@gJ#? +m?"Ah@t@ul@gK?t?\A@)@\?@gMj??hA{D@us@*H@gO? j?(iAj@f@ @gP?;?,An$@@qP@gRT? ?AY @@7@gS? +u?*AoU@wV@@gU??A@z_$@@gW?? "?͗Aw2@/ @33w@gX? ?{Az@w@h/@gZ?2?+A +@/@D@g\)?=Y?At@^d@`B@g]?3?ƋA|?@aL@K@g_p??A@P@B@@ga?-?7A@@)zF@gb? G?zA@@@gdZ??JAU5@o@m@ge? F?S`A88@~ d@&@gg?#?9AFL@i@-E@giD?L?J!Ao@Ji@ +k@gj>?C0A@Mx@P@gl??UjAw@I@@gn/?@&?2A@UK@y @go?G?+A@@r@gqv?oR?D3AZ@@-@gs??PAG\@j@J@gt?u?&ZA @H@@gv`?@Y?3A@J@HO@gx?C?+A~@Sl@9@gy?}?AJ@9@@g{J?7.? Ay@H@ê@g|?J?AA@eU@@g~? A?)A@}t@zz@g4?r?Ar@@ŭ@g?%^?A@w@rg@g{?$?Aq̎@J@Uv@g? +9?AKtM@an@@g>ӑ?AH۱@v@n@gf?/?BApN@!@,@g ??VAo'@@@g?z9?gAn@[@l@gP?h?IA|#@W@<@g??0Ag@&@?@g??=Agè@JA3@g:?3?Al@~@v@g?S?)Ay}@@@g?'MH?wA$@ @-@g$?$:?]hA1@A@@g?X?IA1@<@/@gk?? A@A7@@g>[0?kAͱ@r@jf@g>?u'Ata@_@@gV??{-Aa@$,@G@g?g +?AQ@@.,@g?S@?A@2@K9g@g@?T?9A@>@,@g??ņA@4@]@g?:?A.M@q_@@g*?Z? A5@A@N@g?Y?Afd@; @{ @gq??A@%@@g??A@@n@g?*?HA@J@w8@g[?C?0A%@:@η@g?0?JA@/ٙ@@@g??N!A@C@<@gF??6A@w@2@g? ?E^A*@&i?@g??֡A3@{@of@g0?[?A7@@.@g???pA@mt@@gw??ZvAN@`@@g?!?8A0F@)@~@g?1?wA)@pC@!LN@ga?CA?fSA:'@R'@h@g?:7'?A@X@@gƨ?<?^A7G@@>@gK?9\?QA@lU@E@g?6M?FAp|@G@u3@g˒?3?9nAr@@@"@g6?:7?ZuA@@&{@@g??.?~AI@B@*@g}?6?nAnG@@@g ?/k?W$Au@W@U1@g?,?2dAh-@oj@q@gg?.a4?AP@k@{@g +?6[?Aa@h\,@X@gخ?? u?AU@D[@ƶ@gQ?FL?A@@)@g?G?A{>W@4'@da@gݘ?J, +?AqM@QՒ@ '@g;?Ly?_AlÂ@y@T=@g?Ze ?ɾAbz@C@@g?WWL?AaN@aX@@g&?To?A`P@@@g?Ol?UA^@?@@gm?F?AUy@N@O@g?V?cAEV@@:b@g?@B?AR@|@@gW?>.W?9A\@F@m@g?BW? Aj@y@+@g?F?A@L@U@gA?J?oA(k@~@mڂ@g?Nc?tAB@@t@g?R?UnA@ua@^,@g+?Iq?2A`2@@@g?5?9`AeP@W@o@gr?0)?\Au@!@@g?2lp?kAo@@u@g?;^?qA@A6@[?@g]?4A+?Aq@:@O +@h?2Ք?C.AVM@R@J6@h?!?*WASm@V@0@hG?"?AQ.@=@@h?/?^AV@`@w@h?EA?A`c~@Y@rn@h1?O ?Ab@3@@h ?Y?Ak@+}@L@h x?:2?kAq@t@@h ?BW\?KSAg@e@i@h?g?AP@@@hb?h?A>|@Cb@@h?t?A.8=@@(@h?kI?A3g@1V@ou@hM?l|?oAFQ@@d@h?J2?XAbh@f]@y@h?H$?}Ai@ u@JR@h7???uAeKn@j..@j@h?HbD?JVA]@@ړ@h~?Z?YAkM7@@j@h!?Y'?CAc@j@+@h ?^,?SAWV@R@44@h"h?V`?I,AZԹ@8@E@h$ ?[? AW@{@c @h%?c?0AG @`@K@h'R?[? +AFg@Ud@@h(?Yݠ?%nAHZ@k@w/@h*?_A?AI@~s@{;@h,=?W?AUB@|ӷ@@m@h-?\P?A\c@@@h/?U?Ai@yd@@h1'?GH?BAv@`@b`@h2?J:?rA@o@5]@h4n?Tx??TA0@uڿ@G@h6?^?2A@@S#@h7?c?A}@@h@2@h9X?V?0oA6@DP@@h:?C6?vA&@z@@hB?(C?A{E@z%E@s@h??+'M?kcAh3@Cm@y@hA?/ ?JA[>+@{@@hC-?2%?AA^i@-3@ @hD?3r?sAxm@fke@v@hFt?:n?A"@y@9@hH?I?OA{H@G@R3@hI?`LJ?EAmk@C@z@hK^?k?pAO@ِ@v@hM?t^?dAV0@@<@hN?o?IAgX@3@@hPH?e?EAh^@ɛ@BA@hQ?P?MDAl(@@ނ@hS?:J?LAR@N@8Ӄ@hU2?<?GA@w z@|P@hV?GI ?XA@I?ޯ@hXy?_?vAI@($@@hZ?_6?dAv@PA@m@h[?]?AAam@fD?ʟ@h]d?K1G?;Ag@y@ȳ4@h_?+S?)A^@ur@6!@h`?33?AS@Y^@2 ;@hbN?J[?5AT@x@(S@hc?RR?HAZ1@~E@[@he?Zʹ?A_|V@3@@hg8?c0?]Ae|@;@f@hh?_/?ZAh@E@X@4?@hj?f?*AV@m]@2@hl"?Z=?D^AV@a<@u@hm?aձ?9}A[@@@hoi?kö?u?Ac@{@z@hq ?lU?Ahy@R @s@hr?\?9Aq}@Ml@2@htT?^s?ώA,@Y@ @hu?U=?gAmq@<@<@hw?W,?A]@M@͓@hy>?Y%?uA\&U@y@@hz?lg?C +AR@2B@V@h|?s?@WAQ;@@@h~(?w?AYy@@*m@h?|?Ab@U@{e@ho?w?$BAi +@<C@@h?r?"Aq@bt@1_@h?m?/wAmmf@[Z@+@hY?c?$$Ac)&@,@~o^@h?Vj?עASH@i@ p@h?Re?AJT@.@D@hD?U?WAAHA@@6@h?r?+AW@7@2a@h$?{k[?hAX@8@]T@h?[?uA]H@z@e@hj??AqI@A2@$@h?~(?)A{^b@S@f@h?D?kAxϿ@}@! @hU?yO?x0Ay1@V@b@h?|1>?w6AqB@<@X@hĜ?o ?YAl@;@xO@h??f?QAh@6 +;@h?sy%??OAxq@s@s@hɆ?y+?bqASe@[@c@h)?C&?Als@V@@h?X]?ȣANZ@^i@DA@hp?(%?A;:@,@'i@h?i?AA1@@T@hѷ?H?;AZC@b @a@h[?*?2;A]9 +@kL}@ۈ@h?Mr? Av@p@@h֡?M?Ag@@@hE?O}?A5@ .@y@h?nU ?AA@a.T@9@hی?rY8?%A@t@jN@h/?m? A;@)"@:X@h?K?Ab;@Ik@Y@hv?+? A{ :@[@mg@h?*?'Ag@п@9~@h?\!?&A\aC@iH=@@h`?$?A`@q@@h?R?A{b@@J@h?C4?}A\@@@hK?A?9B@}mM@@h>|0?LBK9@BAg@h>Ԝ4?ABN +9@+@lh@h5?Tz?BH4@@/@h?FG?}A;2@@@h|?aY?AF@Ϻ@@h?gi?A[@@@h?m>?YA5@g?@}@hf?u)? A@l@QK@h ?xL?Ai@@i@h?~[?tA@sL@ؘ@hP?dž?2Ax@e@q9@h??A{ @@n_N@h?Y9?Ara@@ƈ@i;?J?KAs_@ [@@i?]?_Ay4@th@n@i?Q?^HAuZ@0@p@i%??JAz@} @z@i?y"8?3UAb@@@i l?y?#A^@w@(@i ?u9?EA@ݳ@h1@i ?h?LA@W@P @iV?o5?,A@_@Zm@i?z: ?A @s@6@i?M/?Az?@_3.@@i@?A-?Aa@U@@i?}?/AIP@@&@h~@i??9ANҗ@ɜ@(n@i+?k?vA`ү@_J@WG@i?}?Anץ@:@Za@iq??gAo<@vV@u@i??Ai@@@i??AbH7@@S@i \??Amr@0@w6@i!?1?|AvY@_B@G@i#?0?{Ai@?o@@i%F??] A^L@0@)@i&??fIAp4@r@J@i(?m6Z?}An@'@@i*0?p?w0Al@@@n@i+?q?HAAx@P@0@i-w??3A@@C@i/?l?BBA|'@k$Z@mT#@i0??HA5h@iC @:@i2a?n?|qAF@@<@i4?{A?_AxAV5@@i5?xRo?8CA @v@g@i7L?u?'A4@@@`@i8?u?A@kw@d@i:?uo;?A?@W@@i<6?vJ?N]A@?@c}7@i=?v?A'A0@@:@i?}?T? ACs@{g@x@iA ?v?A@y@R@iB?Q?tA@:@f@iDg?d?tA@@s@iF ?}4?sA@6@)C +@iG?g?MAo@\@@iIR?Zm?A)@4Y@z@iJ?f?CA@H{6@VJ@iL?}+'?їA@b@@iN@B@^%@iQ??cA@@@iS&??qAb@@2+@iT?R?U&A7@p@zљ@iVm??R-A'@g@@iX??7cA @y@]>@iY?,?6zA@Qq@F;@i[W?wD?,A?i=@@i\??A*@)@7@i^??UAg@@5@i`B??VA@f>@5L@ia??A@v@d*@ic??A@@|-@@ie,??AB?i@1@if?=?AE@._@[}@ihs?QW?Ar@@@ij?+?^AnF@85@@ik??¢AW@@˼e@im]??TA@@@io?Ѿ?AY@w\@ۋ@ip?i?Ai-@$@d9@irG?\?Aܙ@qK@;~@is?O?A@?@ݽ@iu?K?Aq@@U8@iw2?o%?AmP@E@6@ix?7y?aA@x~@rd@izx?C?A˟@Y@@i|?5?x/A@} K@@i}??zA@~'@@ic??pA}@IJy@@i??HAv @`@@i?)? vA +h@@0@iM?$?IA|):@@p@i??,Ah]@60@@i?q?6AbS@|'@s@i7??/HAbv@=B@@i??IZAY@L@Ɔ @i~??>A\o@A@U@i"?V?7AoK@N@%@i?@? UAc@jq@!@ih?K?AQX@s@@i ?@?AQC@@{Y@i?y?1AV@zm@5'@iS?8P?šATF@zp@L@i? m?Aat@q@$@i?*!?:Ah@H\@7@i=?ҁ?Ar)@"@@i?4?wAmB@@jd@i?M? +Am<@%8@@i'?_M?AT@4H2@_%@i?nP?AU8@~@P@in???iAj@W@@i??gA^"@D@}x@i??ZQAt`@B%@@iX?{?LVAtz@}0@@i?3E?RAf@W~@y@i?uq?IAl^@4@cp@iC??-Af2 @Ngg@@i?J?AY0@U-@D@i??>AO@g@F~@i-??ALJ@@@i??:XAX"@b@Tz@it?l3?A[w@?@)@i?@?QAa@w@h@i??KA&@X@l@i^?w?HA1@2@^r@i??'CA?@@HT@i??&A@{5@@iH??VA|F@kŷ@fNg@i?&?A|"@t@x@i??Axh@c5@!@i3??wAtZ_@/@F@i?D??Atc@;@1L@iz????)A~@@2@i?9?9AzH@/@-f@i??AaB;@FO@0@i)?=?AfQ@f3i@`@i?+?OAfv@t)@?@io??Alm@n@C@i?K?)Ao@u@@i?s?6Au@9@e@iZ??~Axr@I@h@i?i?Az@@@i??0Aq@3@@iD?Z?A|(@@@i??Au@\j@'@i?6?A*@@܊@@i.?|?/A@w@|M@j?E?A@p@,@ju?$a?A@0C @wʉ@j?:!?A @l@4@j?M?ΩAw?@z@\@j_?֏?A@h@@j ?kH?A @Z@@j +??]Af@I@\@j J??dAt@+@ @j ?'?GA8@@ @@j??_AVN@@@j4?D?dA@@o@j??MIA@r@2@j{??$HA@t@b@j?Y]?A@y"@G@j?Sl?Aq@`@T@je?GL?A@ @@j ??oA+@0#6@@j?V?A@t@S@k/y@jO??Aܤ@@U@j?I?A@\@@j!?A@?A,@bQ@}@j#:?&2?PAm@S@/{@j$?~?uAF>@af@l@j&?3$?pAn@MR@^<@j($?L?Aig@ @o0@j)?$?{,A~,N@`@"@j+k??A!f@@s@j-??^AU@@`@j.?+?kAt@J@@j0U??^A^:@^s@5)@j1??\oAj@ +ȧ@@j3?K?BAb@ @~]@j5??? Ak@l)p@@j6?p? Af'A@@D@j8??BW@p@j?_?`Afe@p@s@j?Sy?8Aor@c@0@jL? 4?-Ai@#\N@K@j??Ab@*cF@=@j??Ac!@g@^@j6?AF?Ad;@@@j?j?QAjV@#?٤@j}? ?3Aj@t@#!@j!?"D?eAbjB@e@@j?L? AV@5@@jh?Z?OAPϡ?.@%0@j ??aAU[@(1@`)@j??MA_@!@{@jR??kAe^k@0@@j? ?UAi4@&@=@j?-?5Af=@m@M@@jAs@@+@k"??!AjG@S@@k$t?Ł?9An@j~@@k&?ȐT?+Ak@"@q@k'?.?8Ae;k@$A@fʎ@k)_??[Aqs@i@ @k+?l?CAuI@G(@"@k,?2\?͛AfJ@4@@k.I?1x?YAYr^@v@0@k/?ļp?ŲA^@z@@k1?Q?ϮAc@o@t@k33?qf?AY@@mh@k4?ʘ?A[՝@@J@k6z?I?AiP @~S@C?@k8??AsP@@o@k9?aT?sAs@@~@k;d?M?$Ap9@@vw@k=?˘?Avx@@<@k>??A;@@@k@O?;?A+@4@@kA??A@@{@kC?}?CA[@s@!@kE9?@?OTAxf@c@b@kF?ð?I#A @m@@kH?\?dA@zO@uaB@kJ#? G?sA@C@S@kK?gr?WAvО@B@@kMj?Y?!Ap>@E@tG@kO??Ae#@@N-@kP??bAc@o@]?@kRT?U??As?Q@e/@w@kS?`?[At@B@8@kU?C?Asi@T@`l@kW??F?Al@A3@s@kX?N?A`m@@}v@kZ?ܩ=?']AbE@b@z@k\)?ґ?Ap.@ @@k]?̥?AnsX@uf@@k_p?BZ?A\w@]@@ka??|AZ4@du@N7@kb?C|?A[-@5@@kdZ??GAcO@$(@}(@ke?ܡ?NAdD5@*@:@kg??pAb}@@@kiD??TAV9@.@Y@kj@?AT+@Z@>4@kl??A]?@]uC@y@kn/?D?Ac9A@F@@ko??A`@@j@kqv?Ӫa?Aa6@wj@[M@ks?X?kjAa +@e@m@kt??CwAW@x0@@kv`??9ARH@p@@kx?*?eAc\@@4@ky?)?sAk܅@g@!^@k{J?{D?g}A^@S@|@k|?N?BOAh@@gDO@k~?+?4{A_`@U@N@k4?+?'AW/I@@@k?h?6>A_@3@` @k{?,?T?Aj@}@@k?߿?RjAdT@l@m@k??AZ@ +@b@kf?7?*A`@@Ul@k ?g?xAaa@)@n@k?WX?A]}@sG@@kP??6EA\@j "@=@k?\?AV@@@k?t?BAV@N@<^@k:?ߐ?/Ab5@@?@k?)?7AX@@'@k?g?qjAJ@@l@k$?Ղ~?JAI3@@`@k?♒?GAS)@sZ@L6&@kk??@k@'@z@k˒?&?TA{l@f"@@k6?Y?)~A,@@7@k??]A@&@b@k}?Ȓ.?!A{@@>@@k ?F?sLAO@9@@k?e?fQA@d@{@kg??EA|n@t@@k +?K?Ay4@"y@u@kخ?o?Aq@t@@kQ?2?yA@X@\@k??dA7@Q@^9@kݘ?(?3A`@ʶ@ @k;?ƪh?0A;@@Z@k?\|?3A;ACA@k?Q?F:A{HA~B@k&?/?oAq\B)JB`F@k>,?}A~)BX Bf,@km>C?j +A/Bn0B6@k>š??ABYB@k>?O/ABSB3@kW>v??AnLBpMB/@k?$?%A^B$A@k?? +XA`AdžA^@kA?G?AZ A65r@ǯ@k?5\?ۑABA@7@k??A<@@6@k+?B?AHYn@5@@k?1?ARA@@x@kr?X}?AW@+@LE@k?%?Ac@@O-@k? ?AdZW@@@k]??AY9@@Z1b@l??8Aa@@J,@l??eAea@[R@EYN@lG?jc?*AI+@V@@l?~?(A@@@3q@l??iPAU@نl@`@l1??U)A`α@2f@@l ?+?5A`SI@T?vR@l x?^4?KA1D@b@{@l ??Ax@@@l??0At@lj@$@lb??M:AzK@@ @l??GAuZ@},3@@l?/?HA}_@@!D@lM?ť?'Ay@ʯ@4@l?N%?Ax@@r@l?ڢ??Ab@@Kz@l7?Ԑk?A^x@;_@gd@l?s$?Adu@@u@l~? ?Ae.@@i?@l!??RAfP@@@l ?v?"AYZ@X@'@l"h?~?FAT@@@l$ ?C?kAK*d@@@l%?S?:AP@N@o@l'R?E?1EA_,@+H@3U@l(?0?j*Anw4@@f@l*?؀?hAs@k@<$@l,=?|o?Aka@bE@T@l-??bHAe:@8@2@l/?-:?Ah@ @P7@l1'??sAfK@*@4[@l2?D?}Af@4@G@l4n?9?mAj-@.@qL@l6?1?wkAuV8@s{@N@l7@ +x?)_Ab@@G@l9X?ka?'\AXX@i@]@l:?؀?-Aa@og@s@l<@p?.AaUB@@[6@l>B@7B?:xA]%@E@{S+@l???6A_"@@@lA?%7? |Ac*=@Y@p+@lC-?㏞?7WAn@F@=@lD?y?@@lPH??OAIL%@כ@ *@lQ??AVp@ډ@@lS??AW3@u@@lU2?ď?XAS@ί@!@lV?Ӕk?~BA<\@6@v@@lXy?n\?~1A:N@@^@@lZ@ +J?5/A`z}@ a@~@l[@V?Ait^@/@w@l]d?SO?cbAp@ @g@@l_??EA[@Fk@@l`??~AYԲ@ @p^@lbN?2?~6A_ @I@x$@lc?,?~mAd@&@ [S@le?xP?~`A^B@~9@Ge@lg8?^?~AR$@/@.^@lh?ف?~eAO_@(@[@lj?S?~A]@@@ll"?b?~EAh@<@ʬ@lm@H?~YyAk:@>@w|@loi@ ?~MAb@س@@lq @?~ AKre@U@0@lr@ϔ?}AV@}?@[|@ltT@b?},A`@@ @lu???} A\b@6@:@lw?5?}A_@@}@ly>?,g?~0At@y@@lz?d?~)2A|OO@>@'A@l|?$?}-Asj@@L@-@l~(?̩g?}AmK@2@@l?-2?}A`@"k@@lo?!?}xA`_@#@@l?M?}K+Ak@.L@p@l??|A[mW@[@{@lY?*_?|xAT@^{@@l?)?}cXAf@v@Li@l?RQ?}ArP @bd@ @lD??}ߠAl@@b@l??}=A}@m@nnN@l?މ??|SA{<@g@@l.? b?|vkAyQ@@#@l??|:Aq*@T@o@lu?(?|Axʻ@@ԍ@l??|AF@7z@a@l?>j?|?Ap@׌e@Įh@l_?8?|A|U@@E@l?t?|NA{#@~@8@l?҃?|4A@]@c@lI?}?|hA@4@@l?b?|hZA@@k@+@l?ӎ~?|ZA@O@N@l4?.?|A/m@@c@l?W?|AH@U@t@lz??|{A+@@!@l??|LA{@y@@l?T?|Ay@@V@le?͉F?|cA7@E@>^@l?a?|uA;@]@d @l?d?{A%@j^@8WE@lO?o?{A@@Y@l?H?{|A?@8J@U @l?e?{A[@@Ɓ{@l9?)?{Aם@@@l@?{dA{[*@R@t@l@?{5A|,@&@I@l$@?{A|@ @-@l@AE?{Ay0@3@Y@lj?G?{mAa@_@6f@l??{ Akd@g>@v@l?M?{Aj@@w@lU??{)Ah@@r@l@G?zAqH@ a@@lĜ@ e?zA\~@Kn@g8@l?@.*?zAUk@g_@@l??{Ab @^ @C@lɆ?˿-?{AoV/@c@]@l)?Ѿ(?{tAsI@M@@l@BJ?zQA`@&@g@lp@ ?zP~AO@1@@l@?z+CA<9@ @v@lѷ??y,A@ @@8@l[?!5?yAO}@@j@l@j?z3A^&@@gw@l֡@?zvA^Q@)@7@lE?h?zAYD@Ք@c|@l??zkAb˽@ڗm@!!@lی?s?zVAa@B[@²@l/@?yAVM@.k@v@l@ ?yyAX*@@XN@lv@?y AZ@@@6@l@p?y{AU@@¶@l@?yoqAD@@ᤧ@l`@?yALo@\@&@l@?yzzAX@׷@@l@?yAb`@ۭ@l@lK?_?yւAq@,@=@l?!?yǚAu`A +tl@@l?&d?ylAc AA@l5?~?ycAS3pAiAGK@l??y*ALxACvA9iu@l|?t?xATAB$AQ%@l?w ?xA[m A@W+@l??xAK"@G@߷@lf@ +?xXA>@w +@\@l @?xADP@Ø@?@l@ +*?xAS@y@@lP?6?xA]#g@E@\@l?{?xoKAc@@{@l?ò?xAi@j8@x@m;@?xA[z@X@z@m@ D?xFpAI@@@m@ ?x(|AK@-@Kv@m%@Gi?x@@m@?xA=h@o@@m l@ ?w+AP@@l$@m @ ?wKAV@@_@m @)?w&AV @X@{@mV@?wrAV@i@r@m@h?wӖA`l?@=@mT=@m@2?wtA]@‡@,j@m@@/?w"AZ@A@m?:?w4AYJ7A=iA?@m?ӣ_?w\\A_ZA;ǰAN@m+??wM|AZA# @5~@m@ [?w]DA\@AB@I@mq@{?wdGAWW@+@!@m@?w0]AW@u@Ѽ@m@R?w A`Q@@i@m \@ "?vAi@s@}@m!@`{?vAl@3@l@m#@o?vӂAYO@@@m%F@G{?vAL\@#@z @m&@?vtAO9w@@M@m(@ ?w +A[@@}r@m*0@ $?vA_1@@@m+@?w$A_?@ڰ@{`S@m-w@ ?w +#Aa@}@@m/@?vAkt@?@@m0?I?w6qApQ@C]@@m2a?!D?wA@*K@@m4??v A:@ T@4@m5??vIAr8@y@Qi@m7L??v?A{]=@ʠX@ @m8@1?v As@m@o@m:@ V,?vAi~@@@$@m<6@ ?v.Ak+o@9@N@m=@K?v Ao@@/@m?}@&?uAaV@@eZ@mA @?uAcB@8@o@mB@ 2?uAar)@@H@mDg@ ?uBA`6@ģ@@mF @ +?uAZ@٠@ӏ@mG?%M?uAYLt@פ2@?@mIR@&?uAVb@k@@mJ??uXA^@vm@@mL? ?u:A_@1@}@mN<@ 9?uAWJ@w@M@mO@ ?unAX@@@mQ@ +?uA\@•?@a@mS&@ +:?ukAXe-@@ZN@mT@?u*ARx@@@mVm@QD?u)AR@Т@@mX@w)?t|AO@k@@mY@ q?txAS@#@@m[W@ ?tXAWT@H@ .@m\@ b?tf"AT:@0\@h@m^@g?tAI6@@D@m`B@?tAT 0@ @@Gc@ma@ ,?t=AY;@@x@mc@J?tjAZ@p@@me,@?t} AZ8@]\@y@mf@$?tfAT$@@\Z@mhs@ ?t[A])@fc@ )@mj@x?t AO@@@mk@ j?t2AG @@b=@mm]@֑?sھA?sA67@@4@mp@0H?sA@fG@*@#@mrG@ ?s AT@`d@ce@ms@1?t AXs?@ k@p@mu@|0?tA\Y@Ъ?@@mw2@?t9uAkg@@T @mx? ?tAi@5@o@mzx??tjAx&@}@:@m|?TJ?sAj@1@Ť@m}?6#?r&A>g@@@mc?j?riA;+@n@ @m@ ?sQAZ<@ʓ@#@m@ ?s)A]@l@'X@mM?5?s Aa0@:Z@P@m?=?sA^@kV@̓@m?S?sAd@ @@m7@?sAgp@܅@˯@m@ ?rAa@K@%@m~@d?rA_@@o@m"@q?r"Ak%@³J@V]@m??rAn@-@]@mh?"?rAq.@@e@m ?/?rbAy@@@m@E?rbA~@@/@mS@>?rA|!@U!@B@m@?riAz!@m@O@m@?r-KAp]@@8s@m=@l ?rlAm r@@@m@ ?rcMAk@@ @m@ V#?rRFAka@`?@q@m'@ ߊ?r0sAmiI@^,@@m@?qA_i@}@@mn@ +@?q`A]4@}@R@m@ +x?qA\d@sA.@m@d?qAH@A B@mX@z?r2A5^@A(n@m@r?qAAA@&@m@ (-?qhAEb@@@mC@7?q=A/[@$@J@m@%?qXmA&@x@@=@m@&?qwvA8@@Sm0@m-@(^r?qIAP@V,@jo@m@"3?qQA^.@}@n@mt@?pA[NO@Y@+@m@ }?pGAX0@@D@m@?qBAQ@ @_@m^@9?qOeATU@@m@ ?pHA0C@ə@<@m@0?pAK=(@|@@m3@ b?pAa$@Ⱦ/@@m@ d?pgAk:@6 @@mz@p?puAY@@ֽT@m@?pALI@9@8@m@O?pAJu@i@˅@md@(?pAR @s,@@m?]O?qc A_q@H@潞@mϫ??qEAbۄ@Ֆ@K@mN?Sc?pAut@qf@r@m??oA5@@'@mԕ??oЁAX@@@m9@+?p4Aw@܂@O@m?\?pcA$@2@@m?O?pXA_@8/@@m#@ +^?p+A`̫@T@V@m@m?ovAH@@/@mj@%;?o>AG6@@@m @?o}hAN'@Z@â%@m@??o~dAY@<@>@mT@?o4AXW@Ѯ@@m@o?n@ +?n,AMo@*@3@m@?nغAP-@@R@m@l?nAY;@Ĩ,@#@m)@?nיAiK4@ђ@Ji@m?m|?nAubM@@k@mo?EI?mAz)@O@֢@m?s?mIAnqT@?@d@m?'=?m-Ak|@1@O@mZ@ {a?n"Ae@K$@@m@?nA^ ++@I@@m@ ?nTAM"@@[@mD@ _?nʈAF[@A@@m@?npAKA @ſ@IJ@m@-a?n!HARw2@==@@m.@ I?mAX"t@ؿ@@n@R?n'AUۧ@^@ @nu@?n!7AHn@@t@n@?maAEF@@@@n@?mAQ@@n@n_@?mAn­@vM@@n ?+|?mA:@@@n +@]?m!Ad@ȍ@}@n J@@?mQAf9@@C@n @F?mPA_@8K@( +@n@?m{1AS@@V@n4@<?mAQc@r@@n@ ?mDaAJ@U*@"!@n{@?m'AA@^@5@n@ H(?mA=E[@*@,@n@ l?lAEAR@خ@z@ne@%?lAN/@ե@>&@n ??n*Aznw@U%@ހ@n?P?nI"A|6@@@nO@U?l]AYJ@X@7@n@/?l&An@@@n!??lAy}@ƙ@΃@n#:?M?lArf@,@Q@n$?r?lðAj@M@ @n&?ź?lAXD@@@n($@=?l݀AN @65@R@n)@.e?luAI@1@@n+k@4;?luAH@YQ@J@n-@ 4Y?liA<@ˤ@@n.@"nP?ltA1Ƣ@5B@@n0U@ ?l]A=/@̈́l@+@n1@+?l2AD,@Q@l<@n3@X?l9A8@d@@n5?@:f?l A9@E@%T@n6@n_?lAI@CJ@5@n8@uy?l&AQ@@@n:*@}?lA]T@ȑ@{:@n;@3?lAq/9@@9@n=q@ f?kSAct@ V@@n?@?kAAX@ @D)@n@?D?jլA;N@Õ@@nB[?N?j{A-#@)@ׇn@nC@d?k0A?@@te@nE@?kdAE;g@o@ȹS@nGE@ ?kAM@&@xI@nH@?k`AW@@@nJ@?ktAY@ĵ@@nL0@?k `AM@3I@:@nM@;?jAO@n@@nOv@ v?kA`D.@@]@nQ@5 +?k2AaB3@y@@nR@ ?kWA[@% +@@nTa@?jA] +1@D@M@nV@?jAa7@A 2@nW@ +N?j0APH@2@@nYK@GA?jTAN +T@ @*@nZ@ O`?jA`t+@Y@@n\?R?j3A^>@#a@,F@n^5@J?jkAV(@(@3@n_@P?jPA]@n@~h@na|?$?k$AePj@p@@nc ?>?jɒAgJ@­@Ŭ@nd??j7YAW>@ײ?@lY@nff@8?iAT'@\@O@nh +@C?j6AXr@@@ni@0?jAXk@n@2@nkQ@!?iAcV@@It@nl@2L?iAo6@@@nn@ge?i,Am@C@@np;@?9?iAbE@@.@nq??jAbA@LN@Ҽ@ns??iqAh@p@@nu%@?i{CAi!@x@%@nv@?iXxAbr@'@8$@nxl@ L?iAfx@(n@@nz@ e?iAsQ@nt@@n{@ ?iNAkH@I@@n}V@x@?i؝AjH@2D@@n~@p?irAl0@H*@Js@n@?i=A^@@\@nA@$<?i8AT@@2@@n@}0?i:@A`A@c@@n@+?iAy}@x&@@n+@0F?hWAt@<@q@n@N?hA\ @@_(@nr@?hAd-@l@@n@k?hNjAh@2@4+@n@ +˚?hAkp@Ap@n\??hAt6rA6AW0@n?N?hAj]AKAU +@n?@n1@T?hoAV+@0@Z@n@X.?g[AO)@:@t9@nx@?g!AY@f@o1@n@?hAl@@8@n@>?h1Ar@7z@wY@nb@k?goAe>@V@@n@sQ?gAYm!@=@@n@?gqAd5%@s@@nL@?gǽAjN@S@.@n@o?gAf @@@n@r?g{Ae2@D@@n6@q|?g}AY4@*@qX@n@ ?gA[p@@ @n}@at?gAX@;@c +@n!@ i?g`AT-@d@{t{@n@)6?gQAXY@>@|A@nh@&?gR$A]A@l@W@n @!\?g[Ad@X@@n@?gQAb@@@nR@?g7A\{@ @@n@?g$AW @@@n@?gARz@M@Ÿ@n<@4?g4A^J@@N?@n@m?gAx%E@@Z@n@?g2A$@R@@n'@ +?g@R?bDAk@H@Y:@o@O@W?aAt@O@M@oA@?aIAvT@@.ͷ@oC@ʸ?aAwi@@@oE9?&?a9AW@4@ϕ@oF?(?a:AI>@p$@P;@oH@Z?akAkA@@@oJ#@<3?aAguV@kJ@*@oK@v?arAw!"@4@ v@oMj@p?aAN@@@oO@ֽ?a^Ar@]@P@oP@{ ?aA<@@2@oRT@?a_mAs1@@=@oS@ +T?ac*Ai!@@M@oU@,?aH_Ai<,@#@c@oW?@3?a%Ai@p@Xj@oX?{?aAh +!@0h@X@oZ?˗?`Ai +@v-@zMF@o\)@)?aAt΅@ @V@o]@v?`5Ap܎@g@$m@o_p@q?aAx|Z@D@@oa@0?a/A@R@@ob?:?`A?@_@\@odZ@D?`A@@@oe@'?`Ay @Zw@n+@og@ Cp?`>A|MJ@ 0@|@oiD@?`A,?@lm@΄@oj@?`FAsn@@y@ol@W?`Ax@@R@on/@&?`oAwˮ@@1@oo@?`JrAu@@{@oqv@ +?`AuV@@'@os@??_Ag@.@@= @ot?*?`sAxI&@8@%@ov`@Fh?`WA9@5@a@ox@?`A}V@|U@{@oy@j?_A|0&@@j{@o{J@4?_fAp=I@v@_@o|?枿?_naA@6@C@o~?.?_=>Aqi@e@ƌ@o4@ +ڏ?_A@H,@P@o@ +Y?_A~{@@]@o{??_Az @y@\#@o?+?_Axc{@m@ύ@o? +&?_zAw @D@@of@&?_mAqy@Z@@o @(}?_dFAmq@YP@@o@!?_|Au.@k@5D@oP@j?_iAt˸@|@@o??_ŶAj/@@$@o?N?_ZARB@@b%@o:?S?^!A`) @w@P@o@ ?_ Ao\@@4@o@ :?_+7Avm@Y@p{u@o$@8?_ A}n@@M@o?D?^fA@@p1@ok?f?^A~@@-@o?!V?^A>@f@@o?,3?^#Am@@!@oV??^SA @@9@o@a?^AAvp@y@@o@N?^OA:@@@o@@ 5?^ A@4@@o@\<?^QiA@$@xtf@o@ /e?^C?]GIB3p@4A`-@o=MnB?\C@\B@oƨ<6P?]!D|̉@_l@oK@o ?1?]A]½@P@@o@9?]Ac@+@ZZ@og??]A^@@@o +?S?\>A{@y@c@oخ??\iAy@@S@oQ?3?\}Ae@1m@ @o@ ?\u5Aq-~@0@^@oݘ@%?\UArR@<@@o;@Y?\JoAo@@@o@bL?\VAuU@%@E@o@ +?\\Ay@˄@l9@o&@?\hAz@8@tz@o@?\-Av(@i:@z8@om@(~?\!As@@Y@o@y?\2A|@@@o??[FA@|a@<@oW?r?[A@@@o@?[mA@e"@@o@ I?[Atu@9@<@oA@ ?[Ao-*@@ @o@ ?[{Ao_Q@L@)`@o@?[pRA#@a@k@o+@?[AwY@׍@@o@}?[An4@c@t @or@?[yAv@t@r@o@ ?[GAV@l@[@o@ +?[)A+@c +@N@o]@?[CAx@m.!@@p?F?[ AVa@0@Sl@p?}?[#A@}X@@pG@?[ A@@E@p@?[ +}A@`@@p@?Z?A}-`@fS@u@p1@.#?ZA}@x\@@p @ɺ?ZAuF@s@T@p x@?ZHAx@xh@07@p ?^?[eFAT2@@p@p?k?[apA@5@+@pb@ +?ZZAw@@x@p@?ZjAu@_@@p?2 ?ZAȀ@@]@pM? ?Z[Aa@j]@@p@ ?Z?A@G@0w@p@o?Z*AL@n^@ns@p7??ZAz>@c@cS@p?؆?Z7PAv@{@FQ@p~?؋O?YA­@@{0@p!?5}?Y!AN@}@S@p ?t?YA9SAA5@p"h?Π?Y͌AvQA%Ag@p$ ?X?YARAA@p%??YAAA*t@p'R?]&?YfAF A)v@L@p(@S?YGA@&@V+@p*@w?YAZ+@}@f@p,=@ ?YA%@d~@t@p-@hE?YA`@r@;W@p/??YNiA@r8A@Wk@p1'@;?YHAs@@z@p2@ ?Y]WA&@@@p4n@:?YQAD@@XY@p6@ &?YRA@|E@3@p7@?YHA7@z8<@V6@p9X@R?Y6AI<@)@P[@p:??YA)@@n@pB?T?YAs@67@8 +@p??vO?Y$A@@Ot@pA?/H?YDA@@@@pC-?8?XPAߟ@is@@pD??XTA@@@v6@pFt??XA@@@pH?qz?XA@R|@T'@pI??XEAO@@@pK^??X"A @'@P@pM?D.?XA@@W@pN??X6Ad@@U@pPH?+`?XwAб@2@K@pQ?y?XGA5@@^7@pS?ՠ?XzA.@ZN@b@pU2?M9?XwAI@oA@]y@pV?.?XA@@=@pXy?j?XAJ@@{o;@pZ??X*AAT@g1@V@p[?ǰ?X%A@H@b;J@p]d?#i?XcAJC@@@p_?~?WAo@j@f@p`??W5A&-@|@C@pbN?h?W3AӐ@K@v@pc?V'?WȋA.@@@pe?P?WA@@[@pg8?,9?WXA/@UK@@ph?1M?WAY@v@#@pj@?WSAR@o(@/@pl"??WpA@A@κy@pm?ҥ>?WkA@@@poi?ʐ?WqA@n&@=@pq ?ߟ?WTA@jS@[@pr?rG?W&FA9@+@B@ptT??W+A@@>@pu?$?WA@@MA@pw? =?WA@o@@py>??VA`@u,@zS@pz@w?VhAB@@/@p|@?VvA@o@t@p~(?Q +?VAe +@h@9@p??VA@@@po?bV?VA$@mp@|@p@?VA-@b!@@p@ ?VA@L@6@pY?W?VAU@Z@`@p??VWA@ @.@p? ?V~A@t@m@pD@P?V7 Ax@C@t4@p?D?VLjA@@0@p??VGA$@@@p.@3?V/AS@͎@T@p@s?VAw@w@@pu??V5AM@@@p?l?V":A@{@^@p??VC(AR@&@@p_?ޭ?V A[@h@@p? ?UAY@y@U@p@?UA@2@y6@pI@?UAo@'@@p@%?UA@{@~@p@?UAEA@g@q?@p4@n?UkARL@@8E{@p@*?UgA@s@p@pz@I?UhFAf@o+@@p??U[*A@ +k@ +@p??URA@l@'@pe@?U@:A̽@@{ +@p?@?UzAP@@r@p?+?UiAY@s@uӣ@pO???U\Au@OP@U`@p?b?UMA*e@ u@ @p?ӱb?T۝A@@6q@p9?ҤN?TQAcf@tt@g@p?Ƿ?U!AƦ@wC @~@p?-?U7Ay@`@R@p$?W?TA@g@a'@p?}?TwAɠ@):@h@pj??TsAQ@@|@p??Tk/A@)@@p?*?TAX@@@pU?ނ?Tf?AJ@ˎ@U@p?b?T^Ah@s/@h@pĜ@S?TuA~@ @`-@p???TfA.@t@8@p?܀G?T/KA@A@whH@pɆ?R?TRA#@{@@p)?D?T*A@{@v@p?ԑ?T.A@@g|@@pp?ؾq?T)A/ +@v,@vs@p??SeA4o@\@uĨ@pѷ? +?TAC@@@p[??T#A.@~))@s@p?Q?SA@NP@n0@p֡??SAK#@@@pE?}^?SA @@@p??SvA; @5@Z@pی? ?SA@@t2@p/?ɥ?S~1A@\@e@p??SsA>@@k@pv?c?SLA;~@}X1@p@p??SqA @֭@@p?ˡ?S!A@g@@p`??S"AM@@@p?gG?S;A@@:@p?܆u?S@Al@c@!@pK?\y?S8]Ah@@D@p?Ԛ?SAZ[@[@g@p??SAb6@*@h@p5??SA^c@{@@p?l?S A@@@p|??R!A^S@:D@@p?b(?RSA@l@l@p? +;?R^Ab@#:@@pf??RAJ@@ƅ@p ?úL?RA>@%@M@p?ɋ?RA@t@yK@pP??R A@ǡ@m@p??RcA_@{)x@@p?+?R[|A@+@ 6@q;? ?RbA@ @@q??RA:@_@|O@q?0)?RAnz@@8.@q%??RA@ @ڥ@q??SA%@@~@q l?l?S A@@Q֋@q ??SCA@"@ /@q ?Y?TA!W@ '@i.@qV?!?T=Av@z@@q?Y?TTnAh@o]@@q?΁?T)A @-@@q@?O?TAq@@@q?/ ?USA@ @U@q??UA|Q@@@q+?<\?VHA@@l@q??VjA@m@J@qq??VAx@Q@ʿ@q?Y?WKMA@\K@@q?5?WPAH@ޝ@wH.@q \??WA@@@q!?c?Wt5A=\@|@}@q#?rh?WyYA;@@8@q%F?C?WA],@V@sZ@q&?2?XAhC@N@R@q(??XAA/@@r$@q*0?d?XA@@k@q+??X`A9x@Wg@dc@q-w? ?YX +AP@6@/@q/??YB@I@.u@IY^@q0??YA@:@ ^@q2a??ZAӌT@@7@q4?Q%?\A@Z@"@q5??[A@@N@q7L?Tp?\AAB=@@@q8??\$A:K@@l+@q:??[Aja@{@@q<6?U?[mA@@@q=?O?\*AT@@@q?}? ?]A3 @.@~@qA ?R4?^+A@:1@@qB? ?^FAu@4@|L@qDg??^~Aٶ@#@@qF ?]?^Aw@A{4@qG?Ia@?\sB @aA:*@qIR>n?[B@@-@qJ>*?^BC:@v@qՂ@qL>Zq?\xC @o!Au@qN<>{H?ZLsB@@@qO??\VB\ @@o@qQ>>?a }B@ѯ@#@qS&>x>?aUCl@j]@HD@qT? +!?^VBjy@|@@qVm?V?aB4O@@X@qX?i?edA{@d@@qY?g?e>A3@|@h~@q[W?ň?eAn@@@q\?tF?eA@E@@q^??d&A'@I@Q@q`B?o?d5AƗ@_h@f@qa?ҫ?d-A@=@@qc??dA=@\@@qe,?4?dA;n@@{i@qf??cA@J@4@qhs?'?djAՐ@o@@qj??eA@@H@qk??etA-@#@>@qm]?ߧ?fjAE@@@qo?+U?eA@L@-@qp?z?dA(@WO@f@qrG?z?dA-*@B@@qs?mc?fA@f@#;@qu?;?hPA-@@u@qw2?5?gAG@٘@@qx?̟y?g/yA@M@#s@qzx?B?g6A+ @'s@?B@q|?™?fv Aю@j@Ɋ@q}?x?gKAd@{@ɷ1@qc?'?hBl@c@b(@q?)?iAm@T@R@q?鴐?it4A#@@\@qM?l?hA@$@@q?C ?h5A7/@@@q?3#?gA'5@@Z۝@q7@xO?g+A@@d@q?o?hAO@vK@ŎA@q~??h4A@@@q"??g +AY*@@`@q??gA H@@^@qh?&?iFA_@@@q ?4?jA@O@ľ@q??jeA'@@<@qS?<?iAf@۬@@q?>?l`B@@N@q?l?l95A븽@@ا@q=?ѩ?i#Aˆ@s@%@q?%.?i76AJ@Z@*@q??iwA@F@Q@@q'?o?j3AK@l@@q?P?j A=@8@@qn@?ibA@-@h@q@R?i<A`@K@w:@q@ E?hA7@@8@qX@4?iLA@Z)@A@q@'?jPLAO9@/@@q@s?jAʨ@@b@qC@nN?jAC@q@U@q@ +}?i A,@:@ٺ@q@ D1?jA۾@@@q-@՝?l AVR@,@s@q@ji?lAhe@@,@qt?i?n,A +@{@@q@d?jcA +@@πt@q@?jSA @x}i@@q^@+?iAx@i@,@q@"?i$A}@l@@q@ k?ktA(@̒@yQ@qH@ +?j~AR@@%@q@4?iӘAw@,@"@q@_?j(AN@ä@@q3@L?iA@@a@q@ K?jˢA@@A@qz@?jA@@(@q?p?fLA/<@L@44E@q@F?g)Af@@@qd@?hA @V@N@q?[?fђAsQ@U@9@qϫ??f'oA@JB@б@qN@N?gAmq@@Ӛ@q@]?g8A@@r@qԕ@R?hA@$@u@q9@ځ?i A@@C@q@ I?hA @l@@q@0?fy)A@u@ H@q#@;?fAڍ@J@RA@q@?gA@@@qj@#?iA @F@7@q @&?jMAm@1W@@q@$*?jXA @@@qT@(?iA@ @"@q@&at?j1A,z@v@f@q@*?jPA#9@@@q>@%[~?j=@f@r!@$?mbAq-@6@|Z@r#:@0>?n)A+@@n@r$@>?p[A8@24@ƺ@r&@AAd?plA@w@5@r($@@I?pAH@{@@r)@1ǩ?p0Av@@P'@r+k@*?pyA"@p@@r-@)?qFFA@@b@K@r.@/k?qP{AWj@@k@r0U@8;?qkA@@_@r1@-?qyANx@@c@r3@1?pA@U@U@r5?@-?qA@=c@ly@r6@/?qIA@@ÿ@r8@5O?rg3Au@X@9@r:*@A?r(A@G@g@r;@C)?s0AX*@C@y@r=q@A&?sVAO@@s@r?@F?sA@@Ղ@r@@L?t7A@SJ@@rB[@B?t(AR@o7@?@rC@?9>?tN{A@@@rE@<|t?tR7AI4@J@V@rGE@Di2?tyhA?@tR@]T@rH@Ph?tA6@7@=@rJ@K(?tVZAe;@ @{@rL0@F?tLA@Ϋ@.a@rM@Cr?tA<@ݽ@@rOv@M1?u;A@@@@rQ@U?uAz@,@@rR@]2?uA@@q@rTa@j"?ugA@@)@rV@x?uA@@@rW@p?uA@cF@ @rYK@\ ?uA!@@@rZ@-4?vA3@ +@e@r\@2f?vcA3@@s@r^5@q}?ueA}@eA@Q@r_@jt?u8Awr@bV@@ra|@n=n?ukA|9@d@@rc @o}?ueA@@e@rd@wO?uSA@6`@`@rff@u ?v7A@t9c@@rh +@i?v4A}{@~@&P@ri@}c?u-AwU@t@b8!@rkQ@W3?uA|)#@z@Eq@rl@uR?v2At@o@Ԩ@rn@\?vwA@@!@rp;@+x?vAY@g@s@rq@7?v%A0@p@?gD@rs@e?u!A@,@,@ru%@oE?uKA@e@rv@rv@vR?u0AL@@@rxl@X?ukA[@@;@rz@^P?uF7AK@@v@r{@q?uAbA +@@@r}V@?udAvK@S@]@r~@??u} Av@@]!@r@OU?uY!A@@@rA@h?uAl@1@l@r@ZjA?u~Au;@z@W@r@^?vGA@9@sE@r+@R?u A@1@@r@Y[?uvA(@Y@]@rr@WB?uAG@@@r@N6?uc:Aip@!@H@r@a?uNA@~@@r\@r<?uIAr@:@@r@{?tAN@3@@r@pOo?thA{&@ҵ@ϭ@rF@C?u AV@@@r@>C?uA@z@sN@r@S?tW AE@@i@r1@B +[?t!bA&s@EQ@@r@:?tA@yn@9@rx@J?t1A@@L@r@Z?tA@Vn@h@r@g0?t9A{@@@`b@rb@]Ҳ?sA} +@@@r@e?sA~P@9@@r@gF?sAT@3@w@rL@i?tFXA֘@ +w@y`@r@k+S?tGAv@W:@x@r@h5S?s%A{@@_Z@r6@k|?sòAΦ@i@U)@r@m1?s3A6@@%@r}@U?tA@,@i@r!@G,?sA@@@1@r@OC?sfAC@@@rh@\?s>A>@ @l@r @Y?sdiA|@/@@r@O?svA}aV@@rq@rR@O?s@Ah@u@՗@r@T<?s;A-@@q@r@PbE?rAT@L@@r<@OV?rǗA@@E@r@T2?rA#<@@d'@r@ZB?r_GAx@@@r'@]<?rAx@}s@@r@h?r~nA~E@@#@rm@Ip?rUAg@=@o @r@9?s{A# @tF@u@rȴ@;?r>A@|@@@rX@E?rA|@U@\@r@WV?rAuzH@= @|I,@r͟@cF?rAs@2g@)@rB@XI?r~pA7@@//@r@G?rYA@g=@@r҉@K9?r +RAI@j @\@r,@W?qRA@q;@t@r@`r?q AwJ@{@P@rs@`x?q]ApW"@C=@0'B@r@o?qAw@i@m@rں@p?r Az2Y@|@aJ5@r]@aX4?qA@v@@r@0 ?qnA@P@@rߤ?%?rAz@@(@rH?M?r: B C@j@!@r@Z?q%B@h@G@r@-u?qOA +@om@QV@r2@;o9?qmA@~n@ @r@>M+?qOhA@7@ +@ry@V7?q>zA_@^e@#@r@kb?pA@3@@r@sq?pAZn@Q@@rc@q?qA@]@T@r@v?qF^A@ H@ @r@li?qAt@@w@rM@~1?qzAdM@$@e@r@SS?o٧Ao@g@G@r@[h?oƴA}@C@~#@r8@Tn?pAA77@z@@r@p?p~A@f@@r@?pSB.@^@u9@r"@0?pAk@@@r@X7?pAc@n@=@si@Z?pUA@N@O@s @>?oAa@x@6y@s@Ar+?oaAH@p`B@`@sS@k}?oAmR@`@@s@P?oA@@Z@s@?oA2@ @x#@s +=@?oLA@ +S@`u@s @?onA`@jA@6@s @|U?oppA?@̘@@s(@#?oZA!@;@&r@s@A?oČA4@r9@~@so@z?otA)@Ӕ@jg@s@k?oGAz@@(B@s@?o2vAqM@@@sY@l?oANAv@]@2@s@?o)A@+@<@s@M8?oAB@_f@@sC@3?ouAM=@h@ڝ@s@3?nA@yb/@&@s@`?m +ACp@?@h-@s!-@xy?nckA}Q4@;@U@s"@;V?oEAy@h@nT@s$t@}?o/dAxe@@w@s&@n?nA@|@0@s'??mBj@*p@@s)_?Wh" +?oBI@xV@#@s+?e[ +?ocBFY@Q'_@@s,?W_(?nB}bj@n@&@s.I@0?n{A׊j@e@U@s/@;e?mWAE@?@s1@?n +Bs@@@s33@&?ne%B`@w*@n3@s4@y[?nyA;@r@;@s6z@?mALP@y9B@n@s8@?nEAv@da@ze@s9@[X?n!Av@a1@o5@s;d@K?mlApx@n!@N@s=@?n)@+a?nJAr[^@o@yr(@s@O@?nPA@~@F@sA@>?n-A5$@p@,@sC@C?mA@@,@sE9@?m-AO@fA-}!@sF@k??mVA|VA(cAR@sH@H?mA+Au>B&Ip@sJ#?u?mAgB"B.@sK??mYAfB>AӴ@sMj?ڪ?mR`AA;A6f@sO@[ҡ?mRMA#Aq>@H@sP@8*?mAn+\@z;@q@sRT@ ?mAfG@mC@US@sS@?m3AicA@[@u@sU@?mG6Aqop@`@a@sW?@ ?mAr>@|5@{@sX@H>?lҴAm@_@W@sZ@?lڃAx4@[G@o@s\)@?lWAq#@r/C@u¦@s]@vt7?kAvV@@J@s_p@f/?k%A@}1@|@sa@p?lA@H@Q@sb@?lЪAe!@Hq@{a@sdZ@?lͅABA@[Y@@se@?lqA|@bv@ǂ@sg@?l7vA p@n@h@siD@hH?lb^Au@d@t0@sj@e{?l,A f@B@[@sl@!e?lMHA@My@W@sn/@?lA:2@~o@m@so@ch?l.A@@O@sqv@ nl?lyBN@Wv@@ss?ɓ?lr6B)@d<@@st@={$?lxA@p4@f@sv`@|r?kA~@a@@sx@X?kAb=@f|@x@sy@e?kkAcQ@f#@K@s{J@1?kAfg@@y*f@s|@?ktAi@@zs@s~@j?kAm@@@@s4@?k@Ao@]@<@s@-?kGAC@@2@s{@?k_Av@n)@q@s@<?k A3@sd^@S@s@O?kqhA.@h@̦@sf@S?kAe@lBu@c\@s @|5?k27A@Y6@[_@s@y֯?k\A@f v@sc@sP@?jA[@r@n@s@1x?jAz@gx@}@s@?jAd@s+i@k@s:@=w?jAdx@@&@s@?jDAh-~@:@ap@s@BO?j\DA`q?@oX@~v@s$@t?jyA`@qo@g@s@@?jAc,r@@ۅ@sk@ K?jA_0@I@C@s@?j^Acw@pô@a@s@9?jd.Aj@v@@sV@C6?jCAf@s@fr@s@?j#A^ߜ@p @N@s@?iA\I@Y@c@s@@?iAWC0@g@:@s@?i_A];@4a@ee@@s@?jAm@bó@@s*@K?i\Au@T@@s@O?iAn{@@N<@sq@i?i?Ab=@'@c7@s@Bq?iAb)@o>@u a@s@fJ?ikA{3@v@@s[@?iiA9@@[@s@?iQgAq-@k2@a@s@m?i2AY=@d]@@sF@?h AP@+@@G @s@?i"eAV@u @@s@>=?ieAO@a@'@s0@?i+AK=@~@@s@ ?hAPqj@8@@sw@?hAQX(@C@=@s@o?hAAV7@W7@@s@ +?hAV~@}h@4@sa@?iAQ/@$.@>@s@2?iARy@?,@^@sƨ@?i;AT@{@:v@sK@-?iAS@@"@s@+?hA\ @@S>m@s˒@ d?hA_D@˜@xv@s6@?hMA]L@6@&s@s@Q?h9]A[i@@!@s}@?gKA[e@rA@D@s @+?gmA\@2@O@s@|s?h+AjSZ@/ApϠ@sg@J?hAjcAP)A꼢@s +@G?hAeAĦB=@sخ?װ?h1gAf/AA-/@sQ@?h XAqAAd =@s@l<?gsAn]A{@@sݘ@9?gAfY@*g@H@s;@?h A+@\@@s@W?hAR @T@v@s@l?hA@#@/@s&@m?gbAT@f@@s@?gIAK@,d@_;@sm@V?genA9@k@۱@s@_?g@A@|O@@s@?gAat@|á@x||@sW@C?hAo@p@9@s@w?g;A^]@~B @@s@?gvAt.,@z@`0@sA@?gArL@d@i@s@ćz?gEAb;U@x@v1@s@r?glAN@lj6@2@s+@{?fbAFu@}"@%@s@Է?fګAAJ@uTk@@sr@?fMAH@c@jS@s@Q?fAG@@O@s@?fAEC@J@*@s]@f?fAGKA@KW@@t@dD?fAEh@-@@t@͑?fpAN@s|@*@tG@kK?gA]5B@e"6@@t@>?gDA@yĪ@H@t@Q?fAyT@s@_@t1@WZ?foA@iR@@t @?fA;y?eAM3gB=:BeǴ@t!?fS?e=AeA&AHf@t @iR?e^AA`A)D@t"h@h|?eyjAx@ۼ@ŷ@t$ @e?eEAgʁ@@ @t%@?e6AX!@p@G@t'R@?eaAP6G@@@t(@\?eATF@@O@t*@?e)A6@Z@lm@t,=@\?ezhAzx@@@t-@Dc}?dCAŝ@X@Zp@t/@+=?drA/@w"@@t1'@e?dSAIO1@#k@d@t2@P1?dAQ@y@@t4n@?dmAX)@zL@oa@t6@x?d`As>@A@@t7@g?cA@U@т@t9X@bZD?cdAw<@@Z~@t:@e?d@A@x@Z@t<@ľ?dWUAW+@!@^@t>B@?d}2AN[@C@Q@t?@c?d{FAoe@p@b7@tA@mV?dA<@@&R@tC-@Fޟ?dAp@@I@tD@a]?dAN@@@tFt@]?d{Az\@cKZ@y@tH@?dbAC0@j}@)!@tI@ ?dA>@T-@.@tK^@V?dAGK@/@0{@tM@?dTAK¸@)@@tN@W?cAG@cn9@+@tPH@i?c7ANs@dB@rQs@tQ@A?cAr@nH@S@tS@H?cSA@]h@<@tU2@G?c6A @a@f@tV@y?c&A`@@^z4@tXy@ ?cAO_@g]@XĨ@tZ@m?cLA@\@Sҫ@t[@e?cAL@ @,@t]d@BY?c:A͆@@`Q@t_@?blA}@s=@C@t`@?c/A\@pf@L@tbN@-?c[AHG@@` @tc@~?cXAH@@h@te@ݟ?c"AK@@@tg8@k?bȧAGk<@@ @th@W?bAG@{@%V@tj@=?bAI@z@@tl"@-?bAO]@lB@@tm@J?cAGF*@|MM@}@toi@?b@AQ^@{Pi@3o@tq @{P&?b8mAk*@x#@=@tr@)?b$A{E@k2@@ttT@?b;Aa@EY@@tu@j?bA[@r @V1@tw@~?bIA6@m)r@Ml@ty>@v?bAA`@@V@tz@?bA@Q@d@t|@u?bRAv[5@@CX@t~(@O?bD{AH1@@m)@t@?bmAJF2@1A@@to@w?bA@@:@@t@?bA=c@e͓@n@t@?aĂAA@y ~@Pɵ@tY@ːP?aAI@@@t@H?a8AA@nz@O@t@9?a"9AC"@@_WB@tD@?a0AF>@f@kF@t@ ?`6A?@|J@@t@3?avA?L@kL@@t.@n?amANA@;# @@t@q?avA[@C@ @tu@?aJAc@]z6@@t@e?a}AUb +@q@@t@?a;ALF@qr@э@t_@TK?aAe@sB@I@t@?aEYAxt@b@_@t@?`An@@{}@tI@h/?`APvc@`A@@t@Z$?` A>M@`D@`@t@/|?`w A?m@vH@@t4@x?`A@i@S"@"@t@4?`]8A@m@3w@2@tz@ʼn?`.A= @R@e{@t@?`1A?\@`&@@t@¸?`6AC.c@I`@l@te@?`RAF@oб@k@t@s?`MAJ@2@\@t@?`AL)@U@@tO@͢^?`iACA@oW@(@t@ǔ?`$"AE@5@@t@W?`>LALZO@Mm@@t9@(?`AG@eq-@f@t@Hc?`3uAP3@>@4@t@ ?_qAO @n@@t$@ԁ?_sAO@8@@t@?_[ALe@~Ea@g@tj@?_&A[@{6@,@t@́?_!A_@@@t@ ?_nAO@@@B@tU@>?_j'AF@P@ykd@t@G?_g]A>N@n@D@tĜ@?_;^A@@U"@]S@t?@b?_7AC@f@@t@?_nA?@@@tɆ@ڐ?_ZA<@po@9P@t)@n3?_ /A;=@L@st@t@6 ?^{A?@s7@K@tp@v?_A?Y@c@]@t@?_AFq@g2@Mxw@tѷ@?^AHJ@X@OM@t[@1?^ +ACQ@{@L@t@z?_ABO@V@gϪ@t֡@4r?_'ABI@ih@y@tE@U?_ ABҢ@}I@^J @t@?^AD@[4@u@tی@ƐB?^iALp@b)@n@t/@us?^IuAP#@@,@t@ ?^|HAS@}!@@tv@?^AU@S_@>@t@?^AY@~F@e@t@3?^lAQ!@1@@t`@j?^dAX6@v@@t@(?^A]b@pr(@y @t@Ʌ?^;Ab/@O@d6@tK@]?^pAX@5ŝ@{]g@t@?^3APO@pH@@t@?^AJ=@@@@t5@?] AI@@@t@x?]ǃAI@@@t|@D?]8AJ +@rLY@W@t@% ?]AK%@nE@"@t@5?]כAFR@R+@j@tf@+?]ALٕ@[@yt@t @L?]iaAJP@m@zt_@t@%?]nAEW@X^@w@tP@}?]rA@d@.G@iF@t@e?]WA?<3@+@@t@\?]qACl@8~@JA@u;@?\chAD5@> @@*@u@S]?\DA@@B@@u@땜?\LAAK@G@u@u%@i?\A;v@CK@mj@u@ʛ?\A@@@KoQ@s#@u l@?]QAN"@T2@:@u @~?]SALi@O@2@u @L?]7AJw@V@{@uV@?]`AG'@a^@`m`@u@uW?\ASg@K@6jW@u@k_?\AN"w@u'@m@u@@G?\jA=0@3q@;@u@?\o0A9o@@@RN@u@Q ?\tAA@gI@`Ju@u+@K?\ADt@V@@u@?\aAE$@Ob!@pE@uq@?\A?G@A@uL@?ZA77@@@uN<@m6?Z˜A4}@\@<@uO@oF?ZA1@hU@S@uQ@ g?ZA7@l @0@uS&@_?ZA=@@.@uT@ꏗ?Z2=A4Y@m@@uVm@p?YrA/O@@\@uX@΃?YYA7@l&@9U@uY@?YZA:@@4S@u[W@۽?Y֭A; #@yЍ@@u\@M?Z +A=)@(@@u^@?YA6j@@{@u`B@u?YA6F@i<@d @ua@C?YjA9C@ @@uc@?Z0BA] +@@@ue,@o?ZYYAk@vt@~@uf@$ą?ZB@dd@b@uhs?+\?YB+@o"@+@uj@1?YB ֈ@{@J@uk@%j?Y|B@ e@t0@um]@L<?Z4B@y0@xE@uo@E?YB.@XU@.c^@up@}*?XPlA/@Kj@@urG@?XAO@g@@&^@us@D?YxA@nJ@@uu@_?YAiq@TW@_C@uw2@Oh?Z)A1@e@@ux@oy?Y6Akɏ@k@@uzx@[$?XaA/@@@u|@޲?XZA4tU@x@j@u}@6?XAA$@@5@uc@!{?XAAS@q@~G@u@?XWA9g@7@O@u@q?XA6C@@z @uM@D#?X΁A78@t!@k*@u@Ь?XA9@ן@sH@u@ ?X0A=t@zK@ @u7@|m]?X"A@G\@.@u@ ?Xx)B#%@ay@w}@u~?a?XLBX@@e@u"?~?XB,g@b@q@u@SUi?X>TA/@[PM@O @uh@w?XCDAf:t@@8b@u @j ?X3AB@~,@[s@u@#?XPA +@hl@@uS@W?XAQ@t@u@u@_?XrA)2@[@@u@S?WoA#˖@@hN@u=@&q?WlA=G@T@dK@u@pp?XAD@}v7@Cd@u@?XA@r@lO@u'@??W#A}@|>p@gz@u@C?W'AMv@.Z@@un@ťf?W[AUR@f@u@u@?WGA&@ @͂@u@Vc?X9ASz@J<@*~@uX@Hm?X^A @4@{tq@u@m?W9Ab-@yV@s@u@@W?VTA;O@oh@T@uC@tZ?VwA1:@oy@P@u@?W'jA= +@׸@@u@H?W$A}@f{g@qf@u-@(?WBA/@} +@@u@?WvA@z@T@ut@?WQAd-@kk@`@u@W?WA6@{q@Ze@u@r?VA4X@W@X@u^@i?V4A5f@3@@u@@?VqAu@8^@@u@g?WhA!@-@@uH@_ɩ?WTA09@+@C@u@?WHiA @<@ @u@Bx?VA?'@{1@+@u3@qY?VA7]@|@z +@u@#?VzAD@X>@lk@uz@;?UA@W@@u@ T?UBU@DQ@w@u@5{?V[B@@e@ud@T?VsAg@ @p_@u@%Z?V%AH*@0@B@uϫ@L?VA9&@m{@@uN@$?Vj A2b@Ĭ@@u@-B?VIA*9|@{@d@uԕAo&?VA/w@ǫ@N@u9@~?UA5&@b@Q=@u@?V>A}@mʓ@\H@u@8?WA'@)@1@u#@2D?WpA@/@}%@u@S?V=Aa@sz@ұ@uj@?UՍA>@d@@u @?UA?x+@|B@^_@u@d;?U@AO@@@uT@?V%B8@|l@(|@u@r?VWB@l@gK@u@L$?VA3@@h[@u>@?UՈAVp@{@zȚ@u@\3?UAJ@pC@ @u@$Y?UsAM>l@ @Z@u)@?UFAL@.@@u@?c?TAA@@t@uo@cw?TKAD1@D@T~@u@&?U2A?f@Z@c@u@a?U,5AE*@@`Ɔ@uZ@?TAS*@@q@u@l}?TeA|]@dK^@@u@p?TޢA5@z@rt@uD@A?T݀A 8@0@vg`@u@?TҠA~~@.@S@u@Nj?TlAGhj@7@;@u.@?TXAx@f@pO@v@cB?TAeM@@,@vu@O?UA@s@#@z5@v@]?T>A@@gՏ@v@p?T6AW/@Kb@P@v_@~h?TAAa@,@WB@@v @C?T AGU@P@ @v +@ؕ?TAG@Y@~)@v J@H?T@AF$@ v@h@v @s ?T\xA@ ~@B.@a'@v@|&?TsA@@@@v4@?T2A9Z@z?@y7@v@F?T AB ?@@G{@v{@ ?T5AL@Ŕ@à@v@6?TJAGS?@g@r@v@8?TLAE@@g@ve@9?SAZˉ@@@:@v @q?SBA@@zj@v@u?SߏA!@y@JJ6@vO@Ío?SA\{@{* @d@v@фc?SA>@w@+@v!@y?SYA{u@@Ԑ@v#:@`?SAT@z`@G @v$@/?SA @t@iQ@v&@t?SyA\@@o@v($@\6?SA,6 @i@9@v)@?SeA.h@@Q@v+k@{J?Sr|A3f@@/+@v-@k ?S4A55@m@~j@v.@*<?S7#A/M@ +@CI@v0U@J?S2A.@K@ɪ@v1@K?RlA,4@ @hZ@v3@] ?R A/@?@.@v5?@r?RnA5K@b@Y Z@v6@ ?SGA93m@4@V@v8@V?SA8+@b@x0V@v:*@?RA8~@n@X[{@v;@4?RJA2A@w0@k@v=q@-?RA/I@}zP@[@v?@۴?RA9&@F7@kB/@v@@[?RAY@@@vB[@?RdAb@~@\@vC@E?R5AZN@|4@t[@vE@?RAmL@@w@vGE@jZ?RA(@v@#@vH@<?RAw-@i@-@vJ@/?RAs@$@l@vL0@a?RT!A;@uh@!@vM@?Q Af X@zZ@'@vOv@?QAT@@p*@vQ@ͺ?R=AHw@6@;@vR@X?R)AA@@qi@vTa@?Q1AFP@ @^@vV@3?QAQS@@b @vW@?QAZ@``@j@vYK@Z?Q Abު@@a@vZ@̉?QmA_@+@zz@v\@?QKA\@u@@v^5@l?QbAO@rY@{@v_@?QoARo@K@]@va|@ő{?Q>AU@ @iN@vc @V?Q +AX8@ +@m@vd@!$?Q AL@t3@TI@vff@?QMARM@o@s@vh +@_?QpHAU@u5@q}l@vi@:B?QtAb@a@@vkQ@^?QhtAk>c@p@J@vl@2H?QhA`H@s@GQ@vn@ ?Q_AXf@/@ @vp;@$?Q5)As @@ij@vq@f?QnA}&@|X@dt@vs@O?QAu\@kT@su@vu%@AL?QYFAV6&@|@ml5@vv@ ?QA@$@i@@vxl@䶿?PiA5@@P@vz@v?PA:*@@D@Z̵@v{@?PA7@@}W@v}V@谯?PA7?a@hf@y@v~@:9?P@A9@r@K@v@k:?PA:=@-@z@@vA@v?P3A8l@zԩ@Y/@v@?P.A:@u@k@v@=H?PA:@u=@y1a@v+@ռ?PNA8L@p҉@=@v@Ȫ?PA>C@ZA@n6@vr@Ə?PA><@w@@v@(2?P$YA4v^@ @gD@v@W?P A9@+@[ @v\Av?P!A:@o@gݠ@vA/?P-A3y@R@Ol@v@Ձ?OA=<@)@S@vF@Ͷ?OfA:3@y@@@v@l?O5AC@ @@v@Ѷ?OAU@}@+h@v1@p?OÃA^S@q @W@v@E?OFAE@u@d@vx@ic?OAMG@X@e?@v@k~?OeAO @z_e@b@v@k?OzAJ@y@^@vb@}P?OLA6z@ݶ@l5>@v@?OA5x@^@p&@v@)L?OmAB@q@@@vL@б9?OAbvr@vZ@8@v@?O A]t@ @hC;@v@?OA0@@T/@v6@u?OA1@~@S@v@?OSAj @U@xؗ@v}@4?O4AZ +@S@Ay@v!@0?O09APF@@rU@v@?O9#AEF@@k@vh@s?O5A?@%@N@v @!?O ABl@@b@v@Y?NAI$D@@k@vR@w{?NfASW@~@@v@W?NAU@*@8!@v@ %?N4AXN@@cԑ@v<@?NiAO@@k@v@ф?NAPhE@1q@P@v@?Nq\AXF@jr@I@v'@Q/?NVAO.\@@@v@ʀ?NAH@t@2#@vm@u?N=AHa!@c@3Ci@v@͹?NATC@hC@Q@vȴ@?NrARf@~@1@vX@5?NMAP-@@mN@v@Ѡ?N/AO*@u@u`@v͟@г?N!ARuG@@M*~@vB@?N)AK@}.@@v@Т"?N"A@O@{@@v҉@?NQA3@@@@v,@?NEA6M@u@tqP@v@?MA6A@_@A@vs@?MA/g@@Sa@v@?M+A.I@d#@P-@vں@脗?MBA)@~Ad@e@v]@?MsA$`@4A@[('@v@2?M)A+X"@@w+@vߤ@ղq?M:A/%u@@wJ@vH@Fr?NA8@@2_@v@M?N A7@@u:#@v@T?MA2y@~@T@v2@}?MbA*@ @@v@L%?MA!M@&@@vy@κ?MOA(@}@@v@?MA,@}o@u*@vAKs?MA'X@@p4@vc@X?MwA,u@׊@nCg@v@e?MNA-^@@j@v@?MLA,0@@g@vM@?M9Z@@y @v@D?LA;@<@og-@v"@}K?LrAHZ4@o$@c +@v@z?LAGJ[@s@;@wi@!?LAK@JZ@T5@w @M?LvAT@@-z@!@w@aJ?LA7@s@(j@wS@?L(Bvq@@lE@w??M3?Ba@2o@8@w?ih?M0B @@'@w +=?q|?L[B]@wz@y@w ?N@Y?L!B@} +@q@w ?d?Mu$B @/"?@w(@?LBJ@ 1@k~@w@?LymA d@{@@wo@%?LXVA@@#C@w@D?LMGA53@:@o@w@6?LSA3@f@e@wY@?L?Ag@Zp@dsD@w@?L)A@x0]@? @w@B?L ATI@qG!@P@wC@5?KoAG@JQ@1@w@^?KALDL@lz_@c}@w@^?KAPy@,@yS7@w!-@O?KA^T@ @̦@w"@?KA}E@@|@w$t@6w?KSA R@J@so@w&@u?K"A{+@V@a@w'@-l?KwnA,N@@@@w)_??KcBh@~p@Ų@w+? Ų?L B(@@Ӕ@w,?"r?LZB +@zk?@w.I? +?K:B'a)@@Ҕ@w/@?JAN@g@@w1@0?KuBb@8@c@w33?L?KɜBD @{K@p|@w4?E!?KB.@mA@t-@w6z@kk&?K4AN@ř@FF#@w8@mr?K5AX@in@WdX@w9@F?K:AZs@@@w;d@(?K%\AaG@LV@h'@w=@ ?K&mA-n@s@qß@w>@ls?K0A5@% @qZ@w@O@U?K?@wRT?$q?K+B@j?@wS?b C?K Bp@p@KCq@wU@M?JA<@~@n6@wW?@?J?A4@@ 7@wX@N?J5A1@Q@K@wZ@?JJjA7@Z@)@w\)@r?JA@c&@s@w]?O?JșB@ @|@w_p?r?J`B@E@I@g#a@wa@?JA{M@“@'H@wb@}?J`bAw[@@r>@wdZ@s?J7AC @I@@we@_?IAN=@@@wg?k?JMA@ @@wiD???JBEV@xC@@wj>4?JFZBLM@cN@1@wl?$?IYBeV@nk@@@wn/@_Y?IA@c~q@&@wo@Ȓ?IIA]F]@pB@i@wqv@P?IuA\D@k@_@ws@d\?IIAeY@s@5Ć@wt@?IAwn@^@t{@wv`@2\?IAl@pM@g@wx@-?IAr(@~~*@i@wy@T?IEAR<@"@Q@w{J? ?IB3`@@}@w|@ ?I@B^@~cq@(H@w~@a(?I}A9@}7@OG@w4@pJ?I{Ae@xvu@]o@w@Y?ICAy:@vGV@|@w{@?I"B 0@@Hs@w?i?IiB@N @-1@w?D3?ILBp@@n?z@wf@ e$?I[ABC@M@6i@w @w?ILAmX@wl@x6@w@T?HAAZ@u @lf8@wP@ń?HyAKz@Bc@@w@ó?HAF;"@|w@dl@w@?HJAF'@p&@J@w:@?H#AA@d@`@w@ T?H|ABl@9@z +=@w@i?HxA@h@@~K@w$@{?HmAE+ @I<@VG@w@/?H A~@@@wk@P?HAh@w@@w@c?I B@x@e1@w@Q?GA @@Ọ@wV@߲?GA]@[9@ +a@w@ ?G +A;\q@R@kZ@w@Mi:?HA@L"@M}@w@?:H?H,BC@`@+@w?nK?H Bgg@@@!MX@w?D?H_B@u@q@w*@ь?GdASw@@@w@?G$A(@t@N@wq@$?GkA1w@w@]@w@)?H AJ@w@8y@w@#?GAW@uͧ@U@w[@cd?HAS3@|s"@x@w@ ?G)ABT@@0K@w@?GܣA:jL@d@-@wF@#?GA85@7@i@w@q?G93A2~0@\@@w@?G"A7@@er@w0@h?G~A6ڔ@@To@w@ +?G%AL#@H@Q&o@ww@?GA^@y@Cع@w@hw?GA@]@TbW@w@V?G{oA@w@sx0@wa@?G}A@r@znQ@bH@w@vW?GxAQ4T@*@@wƨ@A?G\A/@z@t@wK@Ut?GB @X@U@w@CJ?GA:@v2@s@w˒@O?G?)Atg@@M!@w6@g?G*A;}z@/@p@w@?G1A3@5@ei@w}@?G A6@B@6@w @B$?FA.@yg@X@w@?FA0@P@n @wg@җO?FA1 #@@_@w +@ٽl?FA6@VD@[@wخ@ ?FA7>@@p@wQ@ax?G ;A6M@@d@w@L?G CA=G@sw1@r@wݘ@C?F@kAgt@@ލ@w;@Q'?FRA0G@@.<@w@U?FrAJ@@[@w@܃?F[A@{@9@w&@?FȴA@@b7@w@?F|A@R@@wm@b7?FRANJ@ov@R@w@V?FHA@@~@w@;?EˇAL@@@wW@`Q?EgAg@i@~@w@dO:?F[{AF@fc@eA@w@IJB?FA{K@ @M@wA@Se?FU.A D@@z,@w@\$?F +Aw@@Xat@w@?EAӃ@|@T@w+@?E/Azh@@@w@?EAL8@Z@[@wr@`?FA@D@8@@w@O?E{A]J@@^C@w@?E)A.@@H@w]@)r?EAsV +@Fh@@X@x@?EAE@9#@@@x@6?F/oA2v@p;@t@xG@?FA4R.@@~.@x@,?EJA;?@I@@x@?EA2@l@g?@x1@?E(A(~@@v @x @o?EA23@~U@vߌ@x x@?EA+:@]@Yk@x @ ?F4A:xv@@@@x@h2?FA4@lF@Ub@xb@}w?EA>>@*@q$@x@"?EAeg@@K@@x@5>?EA6@u@e@xM@\?E]eA6@~s@R@x@"?DEA@/@n@x@r$?E^B>@l?ǽ@x7?ٟ?E9*Bd[e@f?@x@?E0B @^>H@&@x~@_Z?E"Ab@c@Rm @x!@c-?DA(C@i @٪@x @VN?DA@k@@O@x"h@TS?E),A}#k@}ß@U@x$ @?EA99@V(@c@x%@?DA<@k@S@x'R@T?D%AUb@7@M(@x(@!t?D_Az#@@;;@x*@K?D#Ak!W@H@@x,=@?DAAb@x@x@x-@?DA8E@@f@x/@Ż?DߒA5@j7@zH?@x1'@y?DA/YY@@ev@x2@g?DwA9O@|8Q@Cv@x4n@,?D"ALw@w +6@-"f@x6@s?D AP@1}@jWi@x7@j?DMAN@B@zx@x9X@za?DFA@J@)@x:@?D:wA@wR@A=@x<@ ?D,-AP"H@i@i[@x>B@su?D;>A:F@t@{'@x?@?DB&A>@@lؐ@xA@?DGAh@/@߶@xC-@$?D@?CB@k|@Ww@xI@b?CnA1B@@F@xK^@Z?CYAX@@Y$ +@xM@Ot?CsA.)@V@bq @xN@;?CܬA.0@Ũ@l^@xPH@?C,A1@c@$6@xQ@)?CAz@@@xS@N?CA~@1@[Q|@xU2@VO?CSAʊ@|@\@xV@ϙ?CAqӏ@|X@jT@xXy@ ?CA;0@0@8J@xZ@̻}?CA;@|@u`@x[@`?CNA3e@| @G/{@x]d@I?CұA@b@@x_?q?CFB@:@@x`?1;?CB)@jJ?gr@xbN?26?CAN@v@@xc?56&?CA#@r@`@xe?*p?CY[A@y@j@xg8?Ov?CTWA@u@D@xh?,!?CoA@|YT?@xj?Z?CxA=@y\@b@xl"? ?CVVA`c@@+G@xm@?CBAif@5.@V!@xoi@@^?C0Ar@~-@l@xq @W7?C8A#@x@c8<@xr@^?BAf@u,@b> @xtT@Mk?B$AV @hmM@Z@xu@*G?BA@oū@@xw?E?B/AT@o<@[g@xy>?,?BA @z@R@xz?z?CB@[&@þ@x|?d2?C#B@Z@t@x~(??BAǛ @ll@d[@x@?B Ad@tV@fe@xo@.?B݌AV?@{@Xv>@x@5_?BIAM@3j@6Ql@x@L?BnAP@v)@LW@xY@Ar?BAV*@y@c@x@Vn?BGAYfG@U@jr@x@k6?BAW8@B@Q@xD@\Q?BAAL-}@w@̓@x@y>G?BAD:@/Aa@x@[H?Bo1ALW@%@|@x.@?5?BOdAdOA@X@x@K?BBAJ@; @zq@xu@gL?B=A @@J@x@?B5SAn@f֩@XP@x@?BA7@r@r@x_@?B$AQa@Wd@/@x@8x?B&?A@@@B#@x@;z*?B!oAb@2 +@M@xI@|P?BpA@@@@@x@ ?BAC? @H(@x@Q?A)A/n?cp@DA@x4@5?AA4? @&FY@x@b?AA4i?cp@F@xz@A?AA.?,@aB@x@|?AA+ϫ?k@;@x@?AA*?A@xC@xe@Y?AA,d?;@B@x@?A}AJX@@?@x@a?AVA[@(@NP@xO@ϟ?AAS(@I?3@Ur@x@[?ACAb@c@]@x@U?AAxD_@cy@b3@x9@?AAj@Yq@Jb@x@?AAU@l@`@x@w}?AbA@O@wP@;@x$@{?APAm}@ka@l"S@x@?A^Ak @`"@fYy@xj@?AjA_@aO@q@x@X?AakA=@j@w@x@Y%?AtA@w+@Z@xU@l?APA\v@oY@RrJ@x@?AmAC +@m;@r]'@xĜ@y?A)A=@n#=@@x?@Qb?AAC@m@L܇@x?Kj?A.BK@n@s@xɆ?O&?AQVB@qՀ@@x)?C]<?A`Bԝc@c%#?4Q@x?o?@BE@_;@@xp?"r?@֌BsU@i?@x??@0BiQ@C@H@xѷ@Z?@yA@Y@n@x[@1k?@A@m@|@x@ -?@BȄ@j@`ͪ@x֡@ +(#?@B@|@F%@xE@U?@NA-@lP(@CX,@x@?@AiDF@\N3@TT@xی@0?@A^@k@kO@x/@?@A{@k@F@x@?@Ac@k@I&@xv@?@A@P@Yae@x@'?@yAg@xnp@@x@?@dAgn@eX@RG@x`@?@hDAR&@X@b +@x@?@KOAT@;@r@x@'7?@.sA@pc@(@xK?%?@PtBC@}@I@x>?@tB/@\fG@x>S?@Cb@`a@x5?T??Bk@"@M@x@N??HA>B@ui@@@x|@;?@)A̻@xy@]@x??@hB, @vX?{@x?ڥ?@TB`O@z=@)@xf@$?@2B@s +@hz@x @?@%A^J@Xȣ@i@x@j?@,A5^E@c@|Ow@xP@?@#A?Y@E@L|@x@?@ AW/@@7w@x@7??8A@g[@d@y;@Lh??OAj@d@Y@y@g??A(@w1@ipq@y@??AG@i@@y%@.S??A5@d@y@y@Z??B!iH@U8@Ԋ@y l@$ +??B@zDD@Lq@y @??]At}@_@nt@y @??Aoa@o2@@eg@yV@??Aw!@q7@M @y@w0??A@]j@S@y@ 9p??ЊAD@ew@n6@y@?]??UB1@q@];Y@y>i??}B@o*`=@y???B"@b@fp@y+@??u%A/@[?@Rv]@y@??uAF(@k@]!@yq@??P4A6!@+@ #@y@M??1AI~@s!@@y@x??96AH@k@ŕ@y \@3??^QB@eo@@y!?t1??bBZ@rv?Ƌ@y#@C0??0B @i@)z@y%F@??9A@K@\@y&@p??Ao[@]@Fk@y(@O*?>A@v.@@y*0@9)?>A@kdl@0@y+??2??BRu@x@r@y-w> ?>C@Q*2@HC@y/?$?>8Ḇz@vd?i\@y0@7ɴ?>A@}O@j@y2a@/??2Ad@c@[I@y4@}?>@Ai@d"@t@y5@7?>A[^@g@e+J@y7L@J?>ANw@fR@Ȏ@y8@?>IAN@oX@N@y:@K?>MAI@l1Z@$@y<6@@4?>Ad08@h@0@y=@1V?> B +J@qI@4@y?}?"?>BQe@p??@yA ?v\?>B(7@cz@S`@yB@`V?>>Ay@u@Wi@yDg@%?>Af?@/T@G@yF @(?>kAa@l@y@yG?t?>+B1@kq@ +@yJ>ƩU?>\xC +"@k ?An@yL?2&?>LB@~h@A!y@yNB M@y4@yt@yO??>PnBT)@e@{@yQ?o?>ABd@l]@#@yS&@4t?>5Bp@ƣ@m@yT@?>0tA@~,@Kn@yVm@E?>fAD@zD@@yX?8?=B2G@"@Pb@yY?t:?=By@?@y[W?J1?=]BLzP@@!T@y\@?q?>$.Az7 @t?@m!@y`B?Oq?=B G@fJ@yc@ya?΁?=BL\@??-}@yc?9?=)BG@;@@ye,@ &?=QB @@TI@yf@<`?=qAl@}:@@yhs@ -?=A?@@~@yj?5\?=BZ@v0@@yk?E?=B-k@g*?e@ym]?Q?>+BOʾ@g";@"k@yo@/3>?>-A}@yh$@FH@yp@s?=̌A{@[@h@yrG@?=Ae'l@~MY@u @ys@s +?=GAOD@q~?@~`@yu@`?=AIo@v. @N9@yw2@NS?=wAU @H@x@yx@C?=YAb@ǭ@s%Z@yzx@v?=vfAet@mDc@R@y|@m6L?=A|p@@@y}??=8Ak@a@xG@yc> +?=B@I@@y>( +?=HCC@j)T@y>?=B@Y+"@Q@yM?v?@y??=G BW@MK@Vb@yn@CE?<ЯA@_4@77Z@y@?Y ?]?<OB)@e?ь@y>b?;sB@mk@J@y?x?;tB6@M'@]+@yd@0Z?@y>@5Y?;rAM@8*@4S@@y@\?;~A/=@0@-@y@*?;gA\J@;G@t@y)@'9?;d9AP@G?@X@y@!o?;UA<@F@{M@yo@m?;QA@C@Cp@J("@y@ ?;ZADm@\{d@6@y@y?;azAC}@X=@r@yZ@?;JA(n@MP@AL@y@?;1QA'~@F@@y@?;UA@@5@@yD@^?;~cAf@ ˬ@@y@ޗ?;TgBCe@k@gBB@y@3?;5A>@]@ !@y.@9?;KAww@=J?@z@+?:|AO4@=@'@zu@=?:A@MVw@,@z??;B0B&@_?W@z?h?;)B\(@Y?@z_@"?;QBR@6%J@@z @?;AK@;bS@?$X@z +@AX?:e:A3@]͘@ef@z J@Fp?:EA*]@b@`@z @*?:A9I@Dz@s0D@z@B?:0A<d@:`@^@z4@Ϣ?:AF_&@:@8I@z@*?:A]@7@*4L@z{@?:AGhi@7@6K@z@1?:5A9@?[@E@z@?:?:A@@A?߄@z.@3?:rAFK@Y@Ug@z3@l?:OA,@@:w@KQ@z5?@5,?:N8A'@N@|}@z6@?:YXA"n\@9ԗ@T@z8@2?:e/A$ճ@:\@i;@z:*@h?:WA+@K.@&UP@z;@X?:FA+@RV@{@z=q@T1?:25A5@Dn@^-@z?@M?:,7A9@0@UW@z@@jQ?:12A=6i@7f@O@@zB[@?:>;A@1 @W1d@zE@??:=AU@*@Wd@zGE@6?:OhA@9Mz@Vs@zH@? q?9AR@/?h@zJ@%?: AD@0\@:A@zL0@?:,A=%?9AG@<@Z@zQ@[(O?9A@EC@)@zR@:?9A5@Hs@B@zTa@i#?9lA&@=@3G@zV@:?9A',v@Gb@]r.@zW@T?9A"-t@G@;Y@zYK@?9A/:@=7@I&@zZ@u?9A28@7@?`@z\@@?9A,G@-@ @z^5@w?9 +A-#@OT@.@z_@p9?9A/@I@Q%@za|@`;?9TA,:@.@?@K@zff@?9 AH@12 @`@zh +@(?9AI@%@3k@zi@ef?9AE9@=@G|@zkQ@{b?9ŴATi@0,@@@zl@mE?9UAxʰ@_@Z@zn@xN?9͜Af@(d@YM@zp;@pm?9ʆA@${|@0E@zq@P?9OA1{@8@#@zs@6??9MA@^%?v1@zu%@C ?9A @i@\@zv@c?9A@\y@q @zxl@W?9A&@W@1@zz@3g3?9GAdC@n/@~SH@z{@.?9eA"@@W@z}V?g?91A@@@z~@W?9[A|G@S@@z@>?9xPAr@%k@-@zA@?9=Azͳ@n@ҳ@z@QM ?9ZA{@&@;@z@k?9bnAi@R`@lo @z+@?9m1AG;@A@]@z@?9_`A::@K@[C@zr@C?9\ABS.@]@m#@z@U?9OmAI1@b@82@z@(N?9HDA;1@T@Eg@z\@V?98A2+b@@/@z1@ݝ?9:A Oc@LG@pg@z@?9=A@X<@?:@zx@ ?9A!,@N{@l@z@?8A>@:0@\J@z@?8A'x=@=O@9MQ@zb@V?8AAh@fO@>@z@w+?8AB(<@a@jW@z@)?8-A0>@nX@+@zL@G?8AGØ@c@4s@z@#?8ARa@B@7E@z@+?8FA9@:@6@z6@?8\A,@H@Mv@z@ ?8EA.V@[ @Z@z}@?8ƈA'@\@h@z!@*p?8A@M|@X@z@?8^AY@C<@R@zh@D?8A @F/@i`L@z @?8āA@Dg@#N-@z@s?8mA#h0@K@$@zR@΃?8FA#@@7o$@\'@z@C?8A!rZ@8:d@%@z@@?8A%z@C@fMj@z<@XQQ?8A'Q@=@;@z@4x#?8~A;@K'@u@z?Q?82BA@I&@;/@z'?mk?8Bn@G|0@%@z?.l?8B+@b@o@zm?\e?87B@@ @z?u?8CcB>@sh@z@zȴ?D| ?8iB@vZ@%@zX>]?8BZ@\?@z?Fe;?8BQ@D@`j@z͟@?8A!@I@z҉>?8IBN@g @@z,?%V?8B@T-@^ny@z?g?8B@A.@s@zs@#?8 +Aw7@E(@?@z@g?8WAJu/@Td@`@zں@02?8uA@@TLI@o@z]?"[?8vfBZ@F@\ @z??8YB8-/@Ka?ДL@zߤ@9*?8iAC@O<@R(Q@zH@b?8_A)|@M*@@z@w ?8>RAR)t@C&@U@z@p΍?83AWQ7@9@+@z2@{?83ZA3@D2@7@z@?80A@D@t @zy@?8^A@1%@Uj +@z@.?8 A @=@+@z@S?8"QA @HH@m@zc@?8"A @/ؚ@sW3@z@(^?85Au@;B@;eJ@z@o?8A @#|@^@zM@m?8A;<@K@0@z@3?8 Aeg9@O;3@@z??7A*@;@p@z8>u{?8Bed@RcD@q@z=t +?8HCb?P@QquC@z=h?8$DC= @Mw?@z"?Wm?8BFi@C_?@z??7Bi@*O@@{i?$a?7Bb>@'oĽZ@{ ?,Y?8BBt@Gu@:@{?>)?7¡B@I@Nf@{S@aM)?7-A4~@Y4@/@{@Y?7Al@3.@y @{@#D?7AV@;@z@{ +=?h?8 B[@d@Q @{ ? ?8EB/w@_L8@H@{ @1?7gA)k@Q3 @p @{(@A?7ϔA5FY@/ +@S@{@??7ύA4k@=nO@eN@{o@b-?7?At@GT@L0\@{@<?7An@>Q@@{@*#Y?7rA-@E@=@{Y?p?7Ap\@a@@{?i?7BJ%@MQ@-@{?Dȃ?7ZB@[5?P@{C?,?76B3G@J!@P@{@S!?7sPAJo@=@.E@{@c?7 A7m@^X@V@{!-@~@?7AC'?@Jl]@u1!@{"@v%?7A@@I@5@{$t?;|?7A>/y@J8@@{&>?7CB>@B?I@+%{@{'=Z?7'C@AK@{)_=`)?7C++@Lr?@{+>9?7B@@@z@{,?箥?7OA&A@?M @P@{.I@Za?7A[@2@T@{/@s ?7A I@7=@8@{1@R:?7mbA\@K^@@{33@ ?7dAFW@]?@{4?#zo?7sBdt@l@}@{6z> ?7BV@C@wB7@{8?oV?7B<@;<@.@{9@8i?7LAL@S@&@{;d@?7Z;A/{@X@8C@{=@m?7oA\@4@H@{>?Z?7dgA@+<@KLw@{@O?J?7YBz;@P/A5@{A> ?7"C9@z6@@{C>/?7gCO@Y+-@)6@{E9?Q m?7DlBC@$}?%@{F@ ?75oAy@-)@2@{H@Zd?7L|A+~@5c@ <@{J#@Uq?70PA]@AP@btT@{K@Z?70AO@P[@2@{Mj@Ħ?70A@F @5F@{O@}%?7(1A ~@E~@1z@{P@H?75A6D@V@Z@{RT?u?7tAyK@%@`m@{S?=w?7BC@"@w@{U> +?7CBH@95@Y{@{W??c@?6JBB@()@l$*@{X@Qy?6SAC@@@{Z@\?7BxA/@%Z|@}@{\)@ <>?7/AHh@&"@V@{]?!?6"B*q@'C?/1@{_p>@Pi?6C W@8] A;@{a=-?71YC$z@. @{b>֗?7L^B>@'L@R @{dZ?B?7&yA7e@7@:%@{e@e?6YA'B@y@P@{g@?6ҟAA@WB@7 +@{iD@Mk?6A9m@SY@@{j@0?6A'@0@>I@{l@CD?6?A@6r@?@{n/@D?6BA>@Y5i@@@{o@Eo/?6)A @>Dd@uX@{qv@i?7*A@ @:A@{s@n=M?7 A@;4H@\ @{t@A?6A@\@^v@bf@{v`?N?7 Bh@8v!@@{x?Su?7/2BbO[@F4@ @{y?v?7B@RDg@J@{{J@S?7gA`@2e@z@{|? ?6AGx@(!@x!@{~?7\?6A@<-?И@{4>"?6By@4K@}@{>ó?7{@-@{$@p|?6A@@*O@{@|7?6A b@@A@{k@s?6-AT@ @(@{@r?6AM@ޑA6@{?+?7 A pAtd'BA!@{V? ~?6AB(%By@{>?6A)BBy-@{>?6 AJFBB@{@>f ?6Ac*BAЍ@{??6!BX'BA tK@{?^?7B-SkA55l@D@{*@1?64A-@Zu@@{@96 +?6FA$ @9@@uz@{q@Z(?6A +]@S|@I@{@?6Aun@m.s@:@{@?6S@ȯ@@D@{[@{@?6@/@@!Q@{@yS?6ƮA@s@g@{@S?6/AA̳A| +@{F@ ?6VA AAĘ@{?}?6AAAIA*@{??6A0J=AAQf@{0@ +?6A79BA@@{@8t?6A8?6iB@9@V@{>2?6bB[@=@?fi@{W?&?6B@:2@k@{?S?6uB`@2_@J>U@{?1[?6B@:)@$3@{A?N|?7B[t@?%@6"@{?L?7B!~@&d?`\@{?D?6A]@$?@U@{+??6kA@A@@{?VV?7 B41 +@P@@{r>>B?6ܓB͋@;@O@{>{?6vB5@?@@{>~F?6jB@5@o3@{]>?6B^@#s@@|>?7^BǑ@%)?@|>wZ?6B#@2J@w @|G>ŁW?6B3@@^e@|?Q?6B@/@j@|>0=?6YBo@:x=@O@|1?Λ?6B+@ s@ <@|7??6SBA@<(@*@|@?6A{@^/@@|~?t?6AN@uM@@|!@c?6Awb@@x@| @ ?6|A~u@Q+@h@|"h?v?6B@I?6I@z@P:@\@|?@K?6PAX@l{@a@|A@3?6NpA@~@@|C-@y?66A+c@A=Gw@|D??6. A+XAzAXu@|Ft? j?6.A%AHA@|H??66,A A>:Aݛ@|I@}?6JtA}\AX\@ڎ@|K^@e+?6YkAH@@-@[@|M@&`?6]AU@:@LJ@|N@)_?6ZYA x"@y@@|PH?b?6tA@]@H@|Q?&?6fBi V@;-A@|S>{[?6EC PAAk@|U2>q?6C+ղA0ANXw@|V>_hX?6CaBٓ*A@@|Xy>}??6jCAa*f@|Z>3^?6^CE@-@y@|[>Ϣ?6>BF@@|@|]d??635A(@QW@=m@|_?F<?6RB,}@1+Z@o)@|`>;?6@C@ @}3V=?6C +_@_'@|e?Y|?6/An4@n@2@|g8??62A,@ +@qv%@|h@?6,:A @6 @@|j? ?6A@՗Z?6>B6@"{@Z@|m>=?6IBt@"'~?@|oi?Ji?6;#A臾@Q@5@|q ?b?6 l@V@6p@_|@|r@?6@ g@6z@9e@|tT@#R?6@[@9ڿ@h6@|u@;S?6M@f@;@@=O@|w@"8?6r@:@'k@x5m@|y>@1Ts?6@2@2S@xw8@|z@~?6ALU@+ @kk@||@?6sAk@Bb@n/@|~(@?6NQA@1@HN@@|@" /?6S@@3~@@ں@|o@*?6$@>@4@1@|@&?6@@S$e@ +@|@/?6d A 54@)G@!\@|Y?F?6 A˻*@@!@|> =?6XZC@"h>Ū@|=(?6?C5@3((@|D=&?6JC@$Ff@|>M?6yB@$5A5P@|?;FY?6cB(@!i0@|.>?6Bپ@(@s@|=Ƃ?6Ch@*@ @|u>?7pBl@,*@:@|?q?6WAa0@ ͖@@|@7?6A@PL]@uh@|_@MG?6WAN@>Y?D@|??6!Ad@3@0@|?#?6ӐBD@GE3@zN@|I>t?6BQ)\@Q&@ |@|?z?6mA@A +f@o0@|@ J6?6xAx@K?@@|4@'/?6A@Y3&@x@|@!,F?6qA@@d @|z?\?6T Aw@"r@@|?D?6A'q@X@m@:@|??7BL>@=@D@|e>0i?7B)a@C@7@|>f?6ћB/@2?@|?1?6A@C@>@|O@?6A @T+@~@|@+v?6u@<@>@r#@|@"?6@`@xr@S@|9?Ą?6ϙA<@6?@CR@|?U*|?6QA&9@2@|> ?6|/B\#@17KE@|$=3?6zC@8j@|=$?6QCQ @2@|@|j?4K?6W2BR@"v@$@|??6kA.@+@ W@|?߀0?6;A@ U@P@|U?Q?6yxAJs@4X@>@|??6AD`@*@N@|Ĝ?Y( ?6.Aޡ.@ -0M@|?>C?6ZrB@;@s{@|=S_?7 C@/? @|Ɇ?Q?7-BFLC@+,@\L@|)??6LAn@GB@Q@|?[?6W~Adl-@7@K@|p?y?6A@C@|M@|? +?7 ANU@cJ@@|ѷ>g +?7B^s@+ yh?,@|[=^l?7?Cm{@A @7"@|=?6OC]@($>K@|֡>*ͫ +?6|Bc@3|@k@|E?2 +?6Ai<@G@À@|??7GA|V@&w@ @|ی??6A}@)Ev@t@|/?M;?6ADt@p@#@|??6pA @@%@|v@Bo?6A4L@(@]@|@?6A;@2@ԁ@|?ɾ}?6SAPxm@ @:\@|`>E?6|BM@>?R@|>?7;B1@?/@|>?7nwB(@Y@yN1@|K??7YAE@c @Ξ@|@?7G@@@&I@|??7 A @ aA l!@|5?{?69AKi@J P?@|>s\?6BO@=\E@||=t?7]Cq@!SWGy@|=?77CSi@"Y+@a@|> +?63BQD@5@s@|f?pg?6BA +7@4@i@| @5?6]@X@r@2@|@ _'?7i@V@-@k@|P?\?7:gA-F@/~@@|?R?6A=cb@0Ř@@|@,]?6RA@=&x@O'c@};@Fc?6A@I:/@s@}@Z?79QA-[@I)@yu@}?Y(?7>Af?@&@!.:@}%?;?6A@6ـ@@}??6'A@=z@t@} l>$?6eBj@$*@6@} >>?7CBH@"@v @} >?7=B~Y@H@@}V?)?7+A @:@@}?ⵌ?7#a?79B@@@$@}=F̌?7eC;h@-CA7!@}=P?7>2CPX@|? @}+>?7 cA>@O@@}?tp?7@ ;@/.@O? @}q??7"@*w@!D@y@}@~?7a@N@2@?@}@'?7@R@)2)@f@} \@?6@e@#pP@C$@}!@|?6@;@W 7@4:@}#@B?7;A +@w|@.@}%F@ ?7A@ @@}&?S?76@@>@1@}(??7 At@3*@[@}*0??7/'A, :@8@3+@}+?멝?7/A/t?N@g@}-w?;?7 Ai@ z@{@}/? +?7qA:@#@m@}0?$z?7E4B @!lM@a`@}2a>v?7rBb@o@h,@}4?_{?7{7A|@@@}5?Ѫ?7JA0:@@q@}7L?Q?7OAAF@&r@{@}8?'?7UA2@vQ@}:>?7ŖB@5@ҏ@}<6>YX?7B# @+?r@}=?i,?7h@A֭@1@WC@}?}?*{?7{6A +g@@?@}A @D?7~:A$ +@ V@z @}B@?7TA@"@C}@}Dg@f?7@}S&@?7f`@x@z@2F}@}T?쌬?7e@f @P@Fr@}Vm?0?7lAA@ +h@PR@}X?`b?7Abk@@k0@}Y??7@%@F]?ږ@}[W??8 "AG@)@_@}\?)0?7?A$@Y&B?j@}^?'?7eAuB@#f@@}`B?S"?7XtA@Qs@\@}a?L8?7JQA=@}?7BCv@@@}e,>?7@}?I?8xAp+@.3@hN_@}S??7@@=@6y$@}?p?80*@@%@k.l@}??7J@ f@;O@L@}=??7C@H@< ?Ym@}?q?7@(@ @@}?ɐh?7.@@D@$@}'?۫w?7վ@@6mx@aH@}?0l?7@:?@CF@;ff@}n??7Q@s[@9 @.@}?3?8A@f@9@R@}?τ?8@b@@`r@}X?Ϋ?8"@7@@Zff@}?,?8M;@/?b@@}?h"?8p|@}@z;@: +@}C?CM?8@׉@.0@@}?z?8@d@B h@@}??8@U@:ɐ@X@}-?3?9J@G@3 @uY@}?:U?9@|,@@H\@}t? ?9@>@%?LX@}?߿ ?9A@/@0@}?) ?9Aޘ@l>g@}^?x ?:A!(@&l@XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 1068 / length of dimension 1 NAXIS2 = 1 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 126 / number of table fields TTYPE1 = 'SURVEY ' TFORM1 = '6A ' TTYPE2 = 'INSTRUMENT' TFORM2 = '4A ' TTYPE3 = 'CHUNK ' TFORM3 = '16A ' TTYPE4 = 'PROGRAMNAME' TFORM4 = '23A ' TTYPE5 = 'PLATERUN' TFORM5 = '16A ' TTYPE6 = 'PLATEQUALITY' TFORM6 = '8A ' TTYPE7 = 'PLATESN2' TFORM7 = 'E ' TTYPE8 = 'DEREDSN2' TFORM8 = 'E ' TTYPE9 = 'LAMBDA_EFF' TFORM9 = 'E ' TTYPE10 = 'BLUEFIBER' TFORM10 = 'J ' TTYPE11 = 'ZOFFSET ' TFORM11 = 'E ' TTYPE12 = 'SNTURNOFF' TFORM12 = 'E ' TTYPE13 = 'NTURNOFF' TFORM13 = 'J ' TTYPE14 = 'SPECPRIMARY' TFORM14 = 'B ' TTYPE15 = 'SPECLEGACY' TFORM15 = 'B ' TTYPE16 = 'SPECSEGUE' TFORM16 = 'B ' TTYPE17 = 'SPECSEGUE1' TFORM17 = 'B ' TTYPE18 = 'SPECSEGUE2' TFORM18 = 'B ' TTYPE19 = 'SPECBOSS' TFORM19 = 'B ' TTYPE20 = 'BOSS_SPECOBJ_ID' TFORM20 = 'J ' TTYPE21 = 'SPECOBJID' TFORM21 = '22A ' TTYPE22 = 'FLUXOBJID' TFORM22 = '19A ' TTYPE23 = 'BESTOBJID' TFORM23 = '19A ' TTYPE24 = 'TARGETOBJID' TFORM24 = '22A ' TTYPE25 = 'PLATEID ' TFORM25 = '19A ' TTYPE26 = 'NSPECOBS' TFORM26 = 'I ' TTYPE27 = 'FIRSTRELEASE' TFORM27 = '3A ' TTYPE28 = 'RUN2D ' TFORM28 = '3A ' TTYPE29 = 'RUN1D ' TFORM29 = '1A ' TTYPE30 = 'DESIGNID' TFORM30 = 'J ' TTYPE31 = 'CX ' TFORM31 = 'D ' TTYPE32 = 'CY ' TFORM32 = 'D ' TTYPE33 = 'CZ ' TFORM33 = 'D ' TTYPE34 = 'XFOCAL ' TFORM34 = 'E ' TTYPE35 = 'YFOCAL ' TFORM35 = 'E ' TTYPE36 = 'SOURCETYPE' TFORM36 = '19A ' TTYPE37 = 'TARGETTYPE' TFORM37 = '8A ' TTYPE38 = 'PRIMTARGET' TFORM38 = 'J ' TTYPE39 = 'SECTARGET' TFORM39 = 'J ' TTYPE40 = 'LEGACY_TARGET1' TFORM40 = 'J ' TTYPE41 = 'LEGACY_TARGET2' TFORM41 = 'J ' TTYPE42 = 'SPECIAL_TARGET1' TFORM42 = 'K ' TTYPE43 = 'SPECIAL_TARGET2' TFORM43 = 'K ' TTYPE44 = 'SEGUE1_TARGET1' TFORM44 = 'J ' TTYPE45 = 'SEGUE1_TARGET2' TFORM45 = 'J ' TTYPE46 = 'SEGUE2_TARGET1' TFORM46 = 'J ' TTYPE47 = 'SEGUE2_TARGET2' TFORM47 = 'J ' TTYPE48 = 'MARVELS_TARGET1' TFORM48 = 'J ' TTYPE49 = 'MARVELS_TARGET2' TFORM49 = 'J ' TTYPE50 = 'BOSS_TARGET1' TFORM50 = 'K ' TTYPE51 = 'BOSS_TARGET2' TFORM51 = 'K ' TTYPE52 = 'ANCILLARY_TARGET1' TFORM52 = 'K ' TTYPE53 = 'ANCILLARY_TARGET2' TFORM53 = 'K ' TTYPE54 = 'SPECTROGRAPHID' TFORM54 = 'I ' TTYPE55 = 'PLATE ' TFORM55 = 'J ' TTYPE56 = 'TILE ' TFORM56 = 'J ' TTYPE57 = 'MJD ' TFORM57 = 'J ' TTYPE58 = 'FIBERID ' TFORM58 = 'J ' TTYPE59 = 'OBJID ' TFORM59 = '5J ' TTYPE60 = 'PLUG_RA ' TFORM60 = 'D ' TTYPE61 = 'PLUG_DEC' TFORM61 = 'D ' TTYPE62 = 'CLASS ' TFORM62 = '6A ' TTYPE63 = 'SUBCLASS' TFORM63 = '21A ' TTYPE64 = 'Z ' TFORM64 = 'E ' TTYPE65 = 'Z_ERR ' TFORM65 = 'E ' TTYPE66 = 'RCHI2 ' TFORM66 = 'E ' TTYPE67 = 'DOF ' TFORM67 = 'J ' TTYPE68 = 'RCHI2DIFF' TFORM68 = 'E ' TTYPE69 = 'TFILE ' TFORM69 = '24A ' TTYPE70 = 'TCOLUMN ' TFORM70 = '10J ' TTYPE71 = 'NPOLY ' TFORM71 = 'J ' TTYPE72 = 'THETA ' TFORM72 = '10E ' TTYPE73 = 'VDISP ' TFORM73 = 'E ' TTYPE74 = 'VDISP_ERR' TFORM74 = 'E ' TTYPE75 = 'VDISPZ ' TFORM75 = 'E ' TTYPE76 = 'VDISPZ_ERR' TFORM76 = 'E ' TTYPE77 = 'VDISPCHI2' TFORM77 = 'E ' TTYPE78 = 'VDISPNPIX' TFORM78 = 'E ' TTYPE79 = 'VDISPDOF' TFORM79 = 'J ' TTYPE80 = 'WAVEMIN ' TFORM80 = 'E ' TTYPE81 = 'WAVEMAX ' TFORM81 = 'E ' TTYPE82 = 'WCOVERAGE' TFORM82 = 'E ' TTYPE83 = 'ZWARNING' TFORM83 = 'J ' TTYPE84 = 'SN_MEDIAN_ALL' TFORM84 = 'E ' TTYPE85 = 'SN_MEDIAN' TFORM85 = '5E ' TTYPE86 = 'CHI68P ' TFORM86 = 'E ' TTYPE87 = 'FRACNSIGMA' TFORM87 = '10E ' TTYPE88 = 'FRACNSIGHI' TFORM88 = '10E ' TTYPE89 = 'FRACNSIGLO' TFORM89 = '10E ' TTYPE90 = 'SPECTROFLUX' TFORM90 = '5E ' TTYPE91 = 'SPECTROFLUX_IVAR' TFORM91 = '5E ' TTYPE92 = 'SPECTROSYNFLUX' TFORM92 = '5E ' TTYPE93 = 'SPECTROSYNFLUX_IVAR' TFORM93 = '5E ' TTYPE94 = 'SPECTROSKYFLUX' TFORM94 = '5E ' TTYPE95 = 'ANYANDMASK' TFORM95 = 'J ' TTYPE96 = 'ANYORMASK' TFORM96 = 'J ' TTYPE97 = 'SPEC1_G ' TFORM97 = 'E ' TTYPE98 = 'SPEC1_R ' TFORM98 = 'E ' TTYPE99 = 'SPEC1_I ' TFORM99 = 'E ' TTYPE100= 'SPEC2_G ' TFORM100= 'E ' TTYPE101= 'SPEC2_R ' TFORM101= 'E ' TTYPE102= 'SPEC2_I ' TFORM102= 'E ' TTYPE103= 'ELODIE_FILENAME' TFORM103= '25A ' TTYPE104= 'ELODIE_OBJECT' TFORM104= '21A ' TTYPE105= 'ELODIE_SPTYPE' TFORM105= '10A ' TTYPE106= 'ELODIE_BV' TFORM106= 'E ' TTYPE107= 'ELODIE_TEFF' TFORM107= 'E ' TTYPE108= 'ELODIE_LOGG' TFORM108= 'E ' TTYPE109= 'ELODIE_FEH' TFORM109= 'E ' TTYPE110= 'ELODIE_Z' TFORM110= 'E ' TTYPE111= 'ELODIE_Z_ERR' TFORM111= 'E ' TTYPE112= 'ELODIE_Z_MODELERR' TFORM112= 'E ' TTYPE113= 'ELODIE_RCHI2' TFORM113= 'E ' TTYPE114= 'ELODIE_DOF' TFORM114= 'J ' TTYPE115= 'Z_NOQSO ' TFORM115= 'E ' TTYPE116= 'Z_ERR_NOQSO' TFORM116= 'E ' TTYPE117= 'ZWARNING_NOQSO' TFORM117= 'J ' TTYPE118= 'CLASS_NOQSO' TFORM118= '1A ' TTYPE119= 'SUBCLASS_NOQSO' TFORM119= '1A ' TTYPE120= 'RCHI2DIFF_NOQSO' TFORM120= 'E ' TTYPE121= 'Z_PERSON' TFORM121= 'E ' TTYPE122= 'CLASS_PERSON' TFORM122= 'J ' TTYPE123= 'Z_CONF_PERSON' TFORM123= 'J ' TTYPE124= 'COMMENTS_PERSON' TFORM124= '1A ' TTYPE125= 'CALIBFLUX' TFORM125= '5E ' TTYPE126= 'CALIBFLUX_IVAR' TFORM126= '5E ' EXTNAME = 'SPECOBJ ' COMMENT Metadata from specObj row END sdss SDSSchunk22 southern dr2001.8.2 marginalASE@< 79150794644916838412376637826020803741237663782602080374 7538244386924791507671571261440 dr726 ?;!?QaoOeR4%C8WtcDNONLEGACY SCIENCE al@Avdb(1t|GALAXYSTARBURST >r6x4@zsU AspEigenGal-53724.fits :3A YK6#qCBE<ħEEEn~Fɂ>@ϲ?(@gpA@@H?*?>K[=Ò<A1=V= 2z`=`}= <3E;t;9::]::@]A)/AhADbB@6?w!@'?V?T?z0@A-+AA/A@5&@'|??/?#AǏ8AByy3B8ICI AAASBnBWA9 @U8AAAAFAjA"B AzA*A-?XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 89 / length of dimension 1 NAXIS2 = 29 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 19 / number of table fields TTYPE1 = 'PLATE ' TFORM1 = 'J ' TTYPE2 = 'MJD ' TFORM2 = 'J ' TTYPE3 = 'FIBERID ' TFORM3 = 'J ' TTYPE4 = 'LINENAME' TFORM4 = '13A ' TTYPE5 = 'LINEWAVE' TFORM5 = 'D ' TTYPE6 = 'LINEZ ' TFORM6 = 'E ' TTYPE7 = 'LINEZ_ERR' TFORM7 = 'E ' TTYPE8 = 'LINESIGMA' TFORM8 = 'E ' TTYPE9 = 'LINESIGMA_ERR' TFORM9 = 'E ' TTYPE10 = 'LINEAREA' TFORM10 = 'E ' TTYPE11 = 'LINEAREA_ERR' TFORM11 = 'E ' TTYPE12 = 'LINEEW ' TFORM12 = 'E ' TTYPE13 = 'LINEEW_ERR' TFORM13 = 'E ' TTYPE14 = 'LINECONTLEVEL' TFORM14 = 'E ' TTYPE15 = 'LINECONTLEVEL_ERR' TFORM15 = 'E ' TTYPE16 = 'LINENPIXLEFT' TFORM16 = 'J ' TTYPE17 = 'LINENPIXRIGHT' TFORM17 = 'J ' TTYPE18 = 'LINEDOF ' TFORM18 = 'E ' TTYPE19 = 'LINECHI2' TFORM19 = 'E ' EXTNAME = 'SPZLINE ' COMMENT Line fits from spZline END Ly_alpha @zHN_V 1240 @c=p +C_IV 1549 @5RHe_II 1640 @zHC_III] 1908 @-Mg_II 2799 @_[O_II] 3725 @.Л >6Bh?!+CM^@jMB=R6@=T@ĆBR[O_II] 3727 @#:J>6Bh?!+C}L@{]Bj@F\=@ĆB)[Ne_III] 3868@; L>6Bh?!+Ate?c@~> @)=Ĝ@ĆA yH_epsilon @dMZXk>6B?B AE?@k>!@L=a@֋AM[Ne_III] 3970@?dF>6Bh?!+A?@W >ٽ@X=@ĆAH_delta @A>6B?B Bs@@>@=@֋Ad;H_gamma @/!>6Bh?!+B @!GAj.&>搽@6Bh?!+?М@_>r>@ϐ6Bh?!+?3?4>K>"@fV6B?B CC>@.2B4?>@Ν6Bh?!+C?!B >(@l6Bh?!+Cާ@XB+X>u@26Bh?!+@,?ä?/7A>ŧ@|< 6Bh?!+B?RT=>'@to<6T@ĆASi[O_I] 6300 @ X]Q>6Bh?!+A0v@,p@6?U@H-<@ĆAA[S_III] 6312 @7g>6Bh?!+>[O?]=?@Or<v@ĆA[O_I] 6363 @݉A>6Bh?!+A1dz@ +@b?-e@Hɍ<@9 >ү[N_II] 6548 @ɞ>6Bh?!+B,+@WAY?54@Js<6@ĆAbH_alpha @(-Ԩ>6B?B DC A b@Ck@"k@" ;0@֋BN[N_II] 6583 @Dq>6Bh?!+C@MB#?X@T/N<{@ĆA[S_II] 6716 @>KQ9>6Bh?!+B @VA8?ZU?@e@F<+;@ĆA[S_II] 6730 @Li.>6Bh?!+BEA=A!@ @qF<4@ĆA[Ar_III] 7135@ц.R \ No newline at end of file diff --git a/SpectrumViewer - Copy/test.py b/SpectrumViewer - Copy/test.py new file mode 100644 index 0000000..546d82b --- /dev/null +++ b/SpectrumViewer - Copy/test.py @@ -0,0 +1,10 @@ +import SpectrumViewer.SpecUtil_inline as inline + +import SpectrumViewer.SDSSDriver as driver +fileName = 'example_lite.fits' +fileSource = 'SDSS' +coaddObj, zObj = driver.loadFITS(fileName, fileSource) +spec=inline.SpecUtil(coaddObj, zObj) +spec.showfig() + + diff --git a/SpectrumViewer - Copy/window viewer screenshot/emission line only.PNG b/SpectrumViewer - Copy/window viewer screenshot/emission line only.PNG new file mode 100644 index 0000000000000000000000000000000000000000..2a1b6c4306f176ba84395f8f692b389e11961019 GIT binary patch literal 33844 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�Ri^+eFk}`OasYnm1gkGRf?Srj!Q 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 GMgJc#&jdOE literal 0 HcmV?d00001 diff --git a/SpectrumViewer - Copy/window viewer screenshot/flux and model fit only.PNG b/SpectrumViewer - Copy/window viewer screenshot/flux and model fit only.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ae750635c62f19281965676bf982e2fd61411961 GIT binary patch literal 39757 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 literal 0 HcmV?d00001 diff --git a/SpectrumViewer - Copy/window viewer screenshot/showall.PNG b/SpectrumViewer - Copy/window viewer screenshot/showall.PNG new file mode 100644 index 0000000000000000000000000000000000000000..aa36e95601b70f50a38e1774f508df3fc8a8ca43 GIT binary patch literal 55227 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: + #print(width) + position = self.zObj.LINEWAVE[lineIndex] + # startPostition = position-width/2 + # endPostition = position + width / 2 + name= self.zObj.LINENAME[lineIndex] + #print(name) + #axes.axvspan(xmin=startPostition,xmax=endPostition, facecolor='C4') + axes.axvline(position,c='b') + axes.text(position-5,5,name , rotation=90) + elif actionIndex==3:#absorption line + for lineIndex in range(0,len(self.zObj.LINENAME)): + width = self.zObj.LINEEW[lineIndex] + if width >0: + #print(width) + position = self.zObj.LINEWAVE[lineIndex] + #startPostition = position-width/2 + #endPostition = position + width / 2 + name= self.zObj.LINENAME[lineIndex] + #print(name) + axes.axvline(position,c='b') + #axes.axvspan(xmin=startPostition,xmax=endPostition, facecolor='C4') + axes.text(position,0,name , rotation=90) + def plotSegment(self,axes,actionIndex): # read e/a line from zobj and plot it on axes with function from axhspan diff --git a/SpectrumViewer/Untitled.ipynb b/SpectrumViewer/Untitled.ipynb new file mode 100644 index 0000000..7db7bb1 --- /dev/null +++ b/SpectrumViewer/Untitled.ipynb @@ -0,0 +1,62 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'SpectrumViewer'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mSpecUtil_inline\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0minline\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mSDSSDriver\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mdriver\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'matplotlib notebook'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mfileName\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'example_lite.fits'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Users\\wzuo\\Developer\\SciScript-Python\\SpectrumViewer\\SDSSDriver.py\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m#from py3.SciServer import CasJobs\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0murllib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mparse\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0murlparse\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mSpectrumViewer\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mCoaddObj\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mCoadd\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 7\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mSpectrumViewer\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mZObj\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mZ\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;31m# def getSpecObjID(ra, dec, width, height, context=None, URL=True):\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'SpectrumViewer'" + ] + } + ], + "source": [ + "import SpecUtil_inline as inline\n", + "\n", + "import SDSSDriver as driver\n", + "%matplotlib notebook\n", + "fileName = 'example_lite.fits'\n", + "fileSource = 'SDSS'\n", + "coaddObj, zObj = driver.loadFITS(fileName, fileSource)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/SpectrumViewer/__pycache__/SDSSDriver.cpython-36.pyc b/SpectrumViewer/__pycache__/SDSSDriver.cpython-36.pyc index 10ea6206127f1667ab9447ca6b60490f1161f1f6..d2b354aae9b330b4cf818b2385a637ba60b3f430 100644 GIT binary patch delta 70 zcmeyv{+FH8n3tEUN+~?**hbD%Oq#CFRxzQ)sYS&x>x)7=i!* diff --git a/SpectrumViewer/__pycache__/SpecUtil_inline.cpython-36.pyc b/SpectrumViewer/__pycache__/SpecUtil_inline.cpython-36.pyc index 12d8e1e4bfdeefeceb86c887838d2e5ed9a61a2f..3e30e49771d155f22700101f8f8458346b15ad89 100644 GIT binary patch literal 7068 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 F^dBh@i>Uwr diff --git a/SpectrumViewer/demo 1.ipynb b/SpectrumViewer/demo 1.ipynb index 32152f3..68979a6 100644 --- a/SpectrumViewer/demo 1.ipynb +++ b/SpectrumViewer/demo 1.ipynb @@ -2,799 +2,22 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [ { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " this.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('