From 675f9641457938add442dcfd6885a9c13ff533a3 Mon Sep 17 00:00:00 2001 From: Tom LAVEILLE Date: Tue, 22 Oct 2024 14:23:20 +0200 Subject: [PATCH] =?UTF-8?q?R=C3=A9organisiont=20du=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CenRa_AUTOMAP/__init__.py | 4 +- CenRa_AUTOMAP/canvas_editor.py | 2 + CenRa_FLUX/FluxCEN.py | 4 +- CenRa_Metabase/editor.py | 2 + CenRa_PAGERENDER/canvas_editor.py | 45 +- CenRa_PAGERENDER/metadata.txt | 2 +- CenRa_PAGERENDER/tools/icons/icon.png | Bin 292634 -> 45060 bytes CenRa_POSTGIS/CenRa_Postgis.py | 114 +++ CenRa_POSTGIS/Makefile | 119 --- CenRa_POSTGIS/README.html | 32 - CenRa_POSTGIS/__init__.py | 29 +- CenRa_POSTGIS/__init__.py.bak | 27 - CenRa_POSTGIS/{forms => }/about_form.py | 10 +- CenRa_POSTGIS/cenra.py | 940 ------------------ CenRa_POSTGIS/cenra.py.bak | 798 --------------- CenRa_POSTGIS/cenradialog.py | 37 - CenRa_POSTGIS/cenradialog.py.bak | 36 - CenRa_POSTGIS/help/Makefile | 130 --- CenRa_POSTGIS/help/make.bat | 155 --- CenRa_POSTGIS/help/source/conf.py | 216 ---- CenRa_POSTGIS/help/source/index.rst | 20 - CenRa_POSTGIS/{cenra.png => icon.png} | Bin CenRa_POSTGIS/issues.py | 89 ++ CenRa_POSTGIS/metadata.txt | 6 +- CenRa_POSTGIS/postgis_creator.py | 432 ++++++++ CenRa_POSTGIS/postgis_editor.py | 449 +++++++++ CenRa_POSTGIS/resources_rc.py | 914 ----------------- CenRa_POSTGIS/resources_rc.py.bak | 892 ----------------- CenRa_POSTGIS/resources_rc.qrc | 11 - CenRa_POSTGIS/table_postgisdialog.py | 34 - CenRa_POSTGIS/table_postgisdialog.py.bak | 33 - CenRa_POSTGIS/tools/icons/CEN_RA.png | Bin 0 -> 8893 bytes CenRa_POSTGIS/{ => tools/icons}/help.png | Bin CenRa_POSTGIS/tools/icons/icon.png | Bin 0 -> 4977 bytes .../{ => tools/icons}/page_ajout.png | Bin CenRa_POSTGIS/{ => tools/icons}/page_new.png | Bin CenRa_POSTGIS/tools/resources.py | 2 +- CenRa_POSTGIS/tools/ui/CenRa_IssuesSend.ui | 332 +++++++ .../ui/CenRa_PostgisTable_base.ui} | 0 .../ui/CenRa_Postgis_base.ui} | 0 .../ui/CenRa_about_form.ui} | 2 +- CenRa_POSTGIS/ui_cenra.py | 350 ------- CenRa_POSTGIS/ui_cenra.py.bak | 345 ------- CenRa_POSTGIS/ui_table_postgis.py | 234 ----- CenRa_POSTGIS/ui_table_postgis.py.bak | 230 ----- 45 files changed, 1461 insertions(+), 5616 deletions(-) create mode 100644 CenRa_POSTGIS/CenRa_Postgis.py delete mode 100644 CenRa_POSTGIS/Makefile delete mode 100644 CenRa_POSTGIS/README.html delete mode 100644 CenRa_POSTGIS/__init__.py.bak rename CenRa_POSTGIS/{forms => }/about_form.py (79%) delete mode 100644 CenRa_POSTGIS/cenra.py delete mode 100644 CenRa_POSTGIS/cenra.py.bak delete mode 100644 CenRa_POSTGIS/cenradialog.py delete mode 100644 CenRa_POSTGIS/cenradialog.py.bak delete mode 100644 CenRa_POSTGIS/help/Makefile delete mode 100644 CenRa_POSTGIS/help/make.bat delete mode 100644 CenRa_POSTGIS/help/source/conf.py delete mode 100644 CenRa_POSTGIS/help/source/index.rst rename CenRa_POSTGIS/{cenra.png => icon.png} (100%) create mode 100644 CenRa_POSTGIS/issues.py create mode 100644 CenRa_POSTGIS/postgis_creator.py create mode 100644 CenRa_POSTGIS/postgis_editor.py delete mode 100644 CenRa_POSTGIS/resources_rc.py delete mode 100644 CenRa_POSTGIS/resources_rc.py.bak delete mode 100644 CenRa_POSTGIS/resources_rc.qrc delete mode 100644 CenRa_POSTGIS/table_postgisdialog.py delete mode 100644 CenRa_POSTGIS/table_postgisdialog.py.bak create mode 100644 CenRa_POSTGIS/tools/icons/CEN_RA.png rename CenRa_POSTGIS/{ => tools/icons}/help.png (100%) create mode 100644 CenRa_POSTGIS/tools/icons/icon.png rename CenRa_POSTGIS/{ => tools/icons}/page_ajout.png (100%) rename CenRa_POSTGIS/{ => tools/icons}/page_new.png (100%) create mode 100644 CenRa_POSTGIS/tools/ui/CenRa_IssuesSend.ui rename CenRa_POSTGIS/{ui_table_postgis.ui => tools/ui/CenRa_PostgisTable_base.ui} (100%) rename CenRa_POSTGIS/{ui_cenra.ui => tools/ui/CenRa_Postgis_base.ui} (100%) rename CenRa_POSTGIS/{forms/postgis_about_form.ui => tools/ui/CenRa_about_form.ui} (98%) delete mode 100644 CenRa_POSTGIS/ui_cenra.py delete mode 100644 CenRa_POSTGIS/ui_cenra.py.bak delete mode 100644 CenRa_POSTGIS/ui_table_postgis.py delete mode 100644 CenRa_POSTGIS/ui_table_postgis.py.bak diff --git a/CenRa_AUTOMAP/__init__.py b/CenRa_AUTOMAP/__init__.py index 037523af..f0ed4329 100644 --- a/CenRa_AUTOMAP/__init__.py +++ b/CenRa_AUTOMAP/__init__.py @@ -1,10 +1,10 @@ +# -*- coding: utf-8 -*- __copyright__ = "Copyright 2021, 3Liz" __license__ = "GPL version 3" __email__ = "info@3liz.org" -# noinspection PyPep8Naming -def classFactory(iface): # pylint: disable=invalid-name +def classFactory(iface): _ = iface from CenRa_AUTOMAP.CenRa_AutoMap import PgAutoMap return PgAutoMap() diff --git a/CenRa_AUTOMAP/canvas_editor.py b/CenRa_AUTOMAP/canvas_editor.py index 707cd06a..887c30af 100644 --- a/CenRa_AUTOMAP/canvas_editor.py +++ b/CenRa_AUTOMAP/canvas_editor.py @@ -57,6 +57,7 @@ from qgis.PyQt.QtWidgets import ( QTableWidgetItem, QVBoxLayout, ) +from PyQt5 import QtGui from qgis.PyQt.QtXml import QDomDocument from qgis.utils import iface import glob @@ -114,6 +115,7 @@ class AutoMap_Editor(QDialog, EDITOR_CLASS): self.setupUi(self) self.settings = QgsSettings() self.s = QSettings() + self.setWindowIcon(QtGui.QIcon(resources_path('icons','icon.png'))) path = '' ix = 0 diff --git a/CenRa_FLUX/FluxCEN.py b/CenRa_FLUX/FluxCEN.py index b01ef815..88aa50d0 100644 --- a/CenRa_FLUX/FluxCEN.py +++ b/CenRa_FLUX/FluxCEN.py @@ -55,7 +55,7 @@ import requests import base64 ssl._create_default_https_context = ssl._create_unverified_context - +from PyQt5 import QtGui from .tools.resources import maj_verif from .tools.PythonSQL import * first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password) @@ -137,7 +137,6 @@ class FluxCEN: self.plugin_dir, 'i18n', 'FluxCEN_{}.qm'.format(locale)) - version = qgis.utils.pluginMetadata('CenRa_FLUX','version') # Display About window on first use s = QSettings() @@ -155,7 +154,6 @@ class FluxCEN: self.actions = [] self.menu = self.tr(u'&FluxCEN') self.dlg = FluxCENDialog() - self.plugin_path = os.path.dirname(__file__) # Check if plugin was started the first time in current QGIS session diff --git a/CenRa_Metabase/editor.py b/CenRa_Metabase/editor.py index 0ca8913d..1d496b9e 100644 --- a/CenRa_Metabase/editor.py +++ b/CenRa_Metabase/editor.py @@ -20,6 +20,7 @@ from qgis.core import ( QgsGeometry, QgsWkbTypes, ) +from PyQt5 import QtGui from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime from qgis.PyQt.QtGui import QDesktopServices, QIcon from qgis.PyQt.QtPrintSupport import QPrinter @@ -55,6 +56,7 @@ class Metabase_Editor(QDialog, EDITOR_CLASS): super().__init__() self.setupUi(self) self.settings = QgsSettings() + self.setWindowIcon(QtGui.QIcon(resources_path('icons','icon.png'))) self.import_xml.setAutoRaise(True) self.import_xml.setText('') self.import_xml.setIcon(QIcon(QgsApplication.iconPath('mActionAddHtml.svg'))) diff --git a/CenRa_PAGERENDER/canvas_editor.py b/CenRa_PAGERENDER/canvas_editor.py index 2a6e7a54..caf32334 100644 --- a/CenRa_PAGERENDER/canvas_editor.py +++ b/CenRa_PAGERENDER/canvas_editor.py @@ -108,6 +108,7 @@ class PageRender_Editor(QDialog, EDITOR_CLASS): self.setupUi(self) self.settings = QgsSettings() self.s = QSettings() + self.setWindowIcon(QtGui.QIcon(resources_path('icons','icon.png'))) self.varLandscape = {} self.varPortrait = {} @@ -202,16 +203,14 @@ class PageRender_Editor(QDialog, EDITOR_CLASS): else: Lrotate = float((find_it[find_it[:].find('=')+2:]).split(',')[0]) #print('sh',Psize_h,',sw',Psize_w,',lh',Plocals_h,',lw',Plocals_w,',r',Protate) - match Lrotate: - case 90|270: - old = Lsize_w - Lsize_w = Lsize_h - Lsize_h = old - match Protate: - case 90|270: - old = Psize_w - Psize_w = Psize_h - Psize_h = old + if Lrotate == 90 or Lrotate == 270: + old = Lsize_w + Lsize_w = Lsize_h + Lsize_h = old + if Protate == 90 or Protate == 270: + old = Psize_w + Psize_w = Psize_h + Psize_h = old if self.toolButton_2.text() == 'Landscape': children.resize(round(Lsize_h),round(Lsize_w)) children.move(round(Llocals_h),round(Llocals_w)) @@ -273,13 +272,12 @@ def fletch_canvas(self): selection = children if page_type == 'Portrait': item_rotate_object=self.varPortrait[selection.objectName()+'_rotate'][0] - match item_rotate_object: - case 0|180: - sw = 0 - sh = 1 - case 90|270: - sw = 1 - sh = 0 + if item_rotate_object == 0 or item_rotate_object == 180: + sw = 0 + sh = 1 + if item_rotate_object == 90 or item_rotate_object == 270: + sw = 1 + sh = 0 if page_size == 'A3': size_w = (round((self.varPortrait[selection.objectName()+'_size'][sw]/3.5)*1.41)) size_h = (round((self.varPortrait[selection.objectName()+'_size'][sh]/3.5)*1.41)) @@ -292,13 +290,12 @@ def fletch_canvas(self): locals_h = (round(self.varPortrait[selection.objectName()+'_locals'][0]/3.5)) if page_type == 'Landscape': item_rotate_object=self.varLandscape[selection.objectName()+'_rotate'][0] - match item_rotate_object: - case 0|180: - sw = 0 - sh = 1 - case 90|270: - sw = 1 - sh = 0 + if item_rotate_object == 0 or item_rotate_object == 180: + sw = 0 + sh = 1 + if item_rotate_object == 90 or item_rotate_object == 270: + sw = 1 + sh = 0 if page_size == 'A3': size_w = (round((self.varLandscape[selection.objectName()+'_size'][sw]/3.5)*1.41)) size_h = (round((self.varLandscape[selection.objectName()+'_size'][sh]/3.5)*1.41)) diff --git a/CenRa_PAGERENDER/metadata.txt b/CenRa_PAGERENDER/metadata.txt index 1e03763c..e39108e8 100644 --- a/CenRa_PAGERENDER/metadata.txt +++ b/CenRa_PAGERENDER/metadata.txt @@ -21,7 +21,7 @@ tracker=https://gitea.cenra-outils.org/api/v1/repos/CEN-RA/Plugin_QGIS/issues hasProcessingProvider=no # Uncomment the following line and add your changelog: -changelog=

CenRa_PageRender:


21/10/2024 - Version 1.1:

- Bouton de scroll et adaptation portrait.


09/10/2024 - Version 1.0:

- Création.

+changelog=

CenRa_PageRender:


21/10/2024 - Version 1.1:

- Les match en if.
- Bouton de scroll et adaptation portrait.


09/10/2024 - Version 1.0:

- Création.

# Tags are comma separated with spaces allowed tags=python diff --git a/CenRa_PAGERENDER/tools/icons/icon.png b/CenRa_PAGERENDER/tools/icons/icon.png index a0b6c4a9e4a83fa58cb9fbb4cc6c8e16069e715c..63569ff1341213be87e81a3265877e25b7031aa0 100644 GIT binary patch literal 45060 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 literal 292634 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
^Q*|nOLYiqO}6+*Imi)-l1HD@q67d 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�s+9X4{9X25BX0*7q%~}QEr4jjZ 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 + +import os +from .tools.resources import ( + plugin_path, + resources_path, + maj_verif, +) +from .postgis_editor import Postgis_Editor +from .postgis_creator import Postgis_Creator +from .about_form import PostgisAboutDialog + +from PyQt5.QtCore import * + +class PgPostgis: + def __init__(self): + """ Constructor. """ + self.action_editor = None + self.action_creator = None +# self.issues = None + self.provider = None + self.locator_filter = None + self.dock_action = None + self.help_action = None + plugin_dir = os.path.dirname(__file__) + end_find = plugin_dir.rfind('\\')+1 + global NAME + NAME = plugin_dir[end_find:] + maj_verif(NAME) + + # Display About window on first use + version = qgis.utils.pluginMetadata('CenRa_POSTGIS','version') + s = QSettings() + versionUse = s.value("postgis/version", 1, type=str) + if str(versionUse) != str(version) : + s.setValue("postgis/version", str(version)) + print(versionUse,version) + self.open_about_dialog() + + def initGui(self): + """ Build the plugin GUI. """ + + self.toolBar = iface.addToolBar("CenRa_Postgis") + self.toolBar.setObjectName("CenRa_Postgis") + + icon = QIcon(resources_path('icons', 'page_new.png')) + icon2 = QIcon(resources_path('icons', 'page_ajout.png')) + + # Open the online help + self.help_action = QAction(icon, "CenRa_Postgis", iface.mainWindow()) + iface.pluginHelpMenu().addAction(self.help_action) + self.help_action.triggered.connect(self.open_help) + if not self.action_creator: + self.action_creator = Postgis_Creator() + + self.postgis_creator = QAction(icon, 'dossier_creator',None) + self.toolBar.addAction(self.postgis_creator) + self.postgis_creator.triggered.connect(self.open_creator) + if not self.action_editor: + self.action_editor = Postgis_Editor() + + self.postgis_editor = QAction(icon2, 'dossier_editor',None) + self.toolBar.addAction(self.postgis_editor) + self.postgis_editor.triggered.connect(self.open_editor) + + def open_about_dialog(self): + """ + About dialog + """ + dialog = PostgisAboutDialog(iface) + dialog.exec_() + def open_help(): + """ Open the online help. """ + QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/')) + + def open_editor(self): + self.action_editor.show() + self.action_editor.raise_() + + def open_creator(self): + self.action_creator.show() + self.action_creator.raise_() + + def unload(self): + """ Unload the plugin. """ + if self.action_editor: + iface.removePluginMenu('CenRa_Postgis',self.postgis_editor) + if self.action_creator: + iface.removePluginMenu('CenRa_Postgis',self.postgis_creator) + + if self.provider: + QgsApplication.processingRegistry().removeProvider(self.provider) + del self.provider + + if self.locator_filter: + iface.deregisterLocatorFilter(self.locator_filter) + del self.locator_filter + + if self.help_action: + iface.pluginHelpMenu().removeAction(self.help_action) + del self.help_action diff --git a/CenRa_POSTGIS/Makefile b/CenRa_POSTGIS/Makefile deleted file mode 100644 index ff1a50bd..00000000 --- a/CenRa_POSTGIS/Makefile +++ /dev/null @@ -1,119 +0,0 @@ -#/*************************************************************************** -# CenRa -# -# Conservatoire d'Espaces Naturels de Rhône-Alpes -# ------------------- -# begin : 2014-03-27 -# copyright : (C) 2014 by Conservatoire d'Espaces Naturels de Rhône-Alpes -# email : guillaume.costes@espaces-naturels.fr -# ***************************************************************************/ -# -#/*************************************************************************** -# * * -# * This program is free software; you can redistribute it and/or modify * -# * it under the terms of the GNU General Public License as published by * -# * the Free Software Foundation; either version 2 of the License, or * -# * (at your option) any later version. * -# * * -# ***************************************************************************/ - -# CONFIGURATION -PLUGIN_UPLOAD = $(CURDIR)/plugin_upload.py - -QGISDIR=.qgis2 - -# Makefile for a PyQGIS plugin - -# translation -SOURCES = cenra.py ui_cenra.py __init__.py cenradialog.py -#TRANSLATIONS = i18n/cenra_en.ts -TRANSLATIONS = - -# global - -PLUGINNAME = cenra - -PY_FILES = cenra.py cenradialog.py __init__.py - -EXTRAS = cenra.png metadata.txt - -UI_FILES = ui_cenra.py - -RESOURCE_FILES = resources_rc.py - -HELP = help/build/html - -default: compile - -compile: $(UI_FILES) $(RESOURCE_FILES) - -%_rc.py : %.qrc - pyrcc4 -o $*_rc.py $< - -%.py : %.ui - pyuic4 -o $@ $< - -%.qm : %.ts - lrelease $< - -# The deploy target only works on unix like operating system where -# the Python plugin directory is located at: -# $HOME/$(QGISDIR)/python/plugins -deploy: compile doc transcompile - mkdir -p $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) - cp -vf $(PY_FILES) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) - cp -vf $(UI_FILES) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) - cp -vf $(RESOURCE_FILES) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) - cp -vf $(EXTRAS) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) - cp -vfr i18n $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) - cp -vfr $(HELP) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME)/help - -# The dclean target removes compiled python files from plugin directory -# also delets any .svn entry -dclean: - find $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) -iname "*.pyc" -delete - find $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) -iname ".svn" -prune -exec rm -Rf {} \; - -# The derase deletes deployed plugin -derase: - rm -Rf $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) - -# The zip target deploys the plugin and creates a zip file with the deployed -# content. You can then upload the zip file on http://plugins.qgis.org -zip: deploy dclean - rm -f $(PLUGINNAME).zip - cd $(HOME)/$(QGISDIR)/python/plugins; zip -9r $(CURDIR)/$(PLUGINNAME).zip $(PLUGINNAME) - -# Create a zip package of the plugin named $(PLUGINNAME).zip. -# This requires use of git (your plugin development directory must be a -# git repository). -# To use, pass a valid commit or tag as follows: -# make package VERSION=Version_0.3.2 -package: compile - rm -f $(PLUGINNAME).zip - git archive --prefix=$(PLUGINNAME)/ -o $(PLUGINNAME).zip $(VERSION) - echo "Created package: $(PLUGINNAME).zip" - -upload: zip - $(PLUGIN_UPLOAD) $(PLUGINNAME).zip - -# transup -# update .ts translation files -transup: - pylupdate4 Makefile - -# transcompile -# compile translation files into .qm binary format -transcompile: $(TRANSLATIONS:.ts=.qm) - -# transclean -# deletes all .qm files -transclean: - rm -f i18n/*.qm - -clean: - rm $(UI_FILES) $(RESOURCE_FILES) - -# build documentation with sphinx -doc: - cd help; make html diff --git a/CenRa_POSTGIS/README.html b/CenRa_POSTGIS/README.html deleted file mode 100644 index 2c92b760..00000000 --- a/CenRa_POSTGIS/README.html +++ /dev/null @@ -1,32 +0,0 @@ - - -

Plugin Builder Results

-
-Your plugin CenRa was created in:
-  C:\Users\gcostes\.qgis2\python\plugins\CenRa -

-Your QGIS plugin directory is located at:
-  C:/Users/gcostes/.qgis2/python/plugins -

-What's Next -

    -
  1. Copy the entire directory containing your new plugin to the QGIS plugin directory -
  2. Compile the ui file using pyuic4 -
  3. Compile the resources file using pyrcc4 -
  4. Test the plugin by enabling it in the QGIS plugin manager -
  5. Customize it by editing the implementation file cenra.py -
  6. Create your own custom icon, replacing the default icon.png -
  7. Modify your user interface by opening cenra.ui in Qt Designer (don't forget to compile it with pyuic4 after changing it) -
  8. You can use the Makefile to compile your Ui and resource files when you make changes. This requires GNU make (gmake) - -
-
-GeoApt LLC -©2011-2014 GeoApt LLC - geoapt.com - - diff --git a/CenRa_POSTGIS/__init__.py b/CenRa_POSTGIS/__init__.py index c2b64264..1841d23e 100644 --- a/CenRa_POSTGIS/__init__.py +++ b/CenRa_POSTGIS/__init__.py @@ -1,28 +1,11 @@ # -*- coding: utf-8 -*- -""" -/*************************************************************************** - CenRa - A QGIS plugin - Conservatoire d'Espaces Naturels de Rhône-Alpes - ------------------- - begin : 2014-03-27 - copyright : (C) 2014 by Conservatoire d'Espaces Naturels de Rhône-Alpes - email : guillaume.costes@espaces-naturels.fr - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - This script initializes the plugin, making it known to QGIS. -""" -from __future__ import absolute_import def classFactory(iface): - # load CenRa class from file CenRa + _ = iface + from CenRa_POSTGIS.CenRa_Postgis import PgPostgis + return PgPostgis() + + """ from .cenra import CenRa return CenRa(iface) + """ diff --git a/CenRa_POSTGIS/__init__.py.bak b/CenRa_POSTGIS/__init__.py.bak deleted file mode 100644 index a1de1556..00000000 --- a/CenRa_POSTGIS/__init__.py.bak +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -""" -/*************************************************************************** - CenRa - A QGIS plugin - Conservatoire d'Espaces Naturels de Rhône-Alpes - ------------------- - begin : 2014-03-27 - copyright : (C) 2014 by Conservatoire d'Espaces Naturels de Rhône-Alpes - email : guillaume.costes@espaces-naturels.fr - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - This script initializes the plugin, making it known to QGIS. -""" - -def classFactory(iface): - # load CenRa class from file CenRa - from cenra import CenRa - return CenRa(iface) diff --git a/CenRa_POSTGIS/forms/about_form.py b/CenRa_POSTGIS/about_form.py similarity index 79% rename from CenRa_POSTGIS/forms/about_form.py rename to CenRa_POSTGIS/about_form.py index b9896793..59bb77da 100644 --- a/CenRa_POSTGIS/forms/about_form.py +++ b/CenRa_POSTGIS/about_form.py @@ -6,13 +6,13 @@ from qgis.PyQt import uic from qgis.PyQt.QtGui import QPixmap from qgis.PyQt.QtWidgets import QDialog -from ..tools.resources import devlog +from .tools.resources import devlog ABOUT_FORM_CLASS, _ = uic.loadUiType( os.path.join( - str(Path(__file__).resolve().parent.parent), - 'forms', - 'postgis_about_form.ui' + str(Path(__file__).resolve().parent), + 'tools/ui', + 'CenRa_about_form.ui' ) ) @@ -26,7 +26,7 @@ class PostgisAboutDialog(QDialog, ABOUT_FORM_CLASS): self.iface = iface self.setupUi(self) - self.viewer.setHtml(devlog('CenRa_POSTGIS')) + self.viewer.setHtml(devlog('CenRa_POSTGRES')) self.rejected.connect(self.onReject) self.buttonBox.rejected.connect(self.onReject) diff --git a/CenRa_POSTGIS/cenra.py b/CenRa_POSTGIS/cenra.py deleted file mode 100644 index 1576332c..00000000 --- a/CenRa_POSTGIS/cenra.py +++ /dev/null @@ -1,940 +0,0 @@ -# -*- coding: utf-8 -*- -""" -/*************************************************************************** - CenRa - A QGIS plugin - Conservatoire d'Espaces Naturels de Rhône-Alpes - ------------------- - begin : 2014-03-27 - copyright : (C) 2014 by Conservatoire d'Espaces Naturels de Rhône-Alpes - email : guillaume.costes@espaces-naturels.fr - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ -""" -from __future__ import absolute_import -# Import the PyQt and QGIS libraries -from builtins import next -from builtins import str -from builtins import object -import qgis -from qgis.PyQt.QtCore import QSettings -from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog -from qgis.PyQt.QtGui import QIcon -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from qgis.core import * -from qgis.core import QgsDataSourceUri -from .forms.about_form import PostgisAboutDialog -# Initialize Qt resources from file resources.py -from . import resources_rc -# Import the code for the dialog -from .cenradialog import CenRaDialog -from .table_postgisdialog import table_postgisDialog -from .tools.PythonSQL import * -from .tools.resources import maj_verif - -import os.path -import webbrowser, os -import psycopg2 -import psycopg2.extras -import base64 - -class CenRa(object): - - def __init__(self, iface): - # Save reference to the QGIS interface - self.iface = iface - # initialize plugin directory - self.plugin_dir = os.path.dirname(__file__) - # initialize locale - locale = QSettings().value("locale/userLocale")[0:2] - localePath = os.path.join(self.plugin_dir, 'i18n', 'cenra_{}.qm'.format(locale)) - - if os.path.exists(localePath): - self.translator = QTranslator() - self.translator.load(localePath) - - if qVersion() > '4.3.3': - QCoreApplication.installTranslator(self.translator) - - # Create the dialog (after translation) and keep reference - self.dlg = CenRaDialog() - self.dlgAjout = table_postgisDialog() - maj_verif('CenRa_POSTGIS') - - version = qgis.utils.pluginMetadata('CenRa_POSTGIS','version') - # Display About window on first use - s = QSettings() - versionUse = s.value("postgis/version", 1, type=str) - if str(versionUse) != str(version) : - s.setValue("postgis/version", str(version)) - self.open_about_dialog() - - def initGui(self): - self.toolBar = self.iface.addToolBar("CEN-RA") - self.toolBar.setObjectName("CEN-RA") - - # ***Create action that will start plugin configuration - self.action = QAction( - QIcon(":/plugins/CenRa/page_new.png"), - u"Création d'un dossier", self.iface.mainWindow()) - # connect the action to the run method - self.action.triggered.connect(self.creation) - - # Add toolbar button and menu item - self.toolBar.addAction(self.action) - self.iface.addPluginToMenu(u"CenRa", self.action) - - # ***Create action that will start plugin configuration - self.action = QAction( - QIcon(":/plugins/CenRa/page_ajout.png"), - u"Ajout d'une table", self.iface.mainWindow()) - # connect the action to the run method - self.action.triggered.connect(self.ajout) - - # Add toolbar button and menu item - self.toolBar.addAction(self.action) - self.iface.addPluginToMenu(u"&CenRa", self.action) - - # ***Create action that will start plugin configuration - self.action = QAction( - QIcon(":/plugins/CenRa/help.png"), - u"Aide", self.iface.mainWindow()) - # connect the action to the run method - self.action.triggered.connect(self.doHelp) - - # Add toolbar button and menu item - self.toolBar.addAction(self.action) - self.iface.addPluginToMenu(u"CenRa", self.action) - - self.menu = QMenu() - self.menu.setTitle( QCoreApplication.translate( "CENRA","&CenRa" ) ) - - self.cenra_new = QAction( QIcon(":/plugins/CenRa/page_new.png"), QCoreApplication.translate("CENRA", u"Création d'un dossier" ), self.iface.mainWindow() ) - self.cenra_ajout = QAction( QIcon(":/plugins/CenRa/page_ajout.png"), QCoreApplication.translate("CENRA", "Ajout d'une table" ), self.iface.mainWindow() ) - self.cenra_help = QAction( QIcon(":/plugins/CenRa/help.png"), QCoreApplication.translate("CENRA", "Aide" ), self.iface.mainWindow() ) - - self.menu.addActions( [self.cenra_new, self.cenra_ajout, self.cenra_help] ) - - menu_bar = self.iface.mainWindow().menuBar() - actions = menu_bar.actions() - lastAction = actions[ len( actions ) - 1 ] - menu_bar.insertMenu( lastAction, self.menu ) - - self.cenra_new.triggered.connect(self.creation) - self.cenra_ajout.triggered.connect(self.ajout) - self.cenra_help.triggered.connect(self.doHelp) - - def open_about_dialog(self): - dialog = PostgisAboutDialog(self.iface) - dialog.exec_() - - def unload(self): - # Remove the plugin menu item and icon - self.iface.removePluginMenu(u"&CENRA", self.action) - self.iface.removePluginMenu(u"&CenRa", self.action) - self.iface.removeToolBarIcon(self.action) - - # run method that performs all the real work - def creation(self): - # show the dialog - self.dlg.show() - # Run the dialog event loop - result = self.dlg.exec_() - # See if OK was pressed - if result == 1: - -#**********************************Debut_script**************************************** - - ### Creation du schema pour le nouveau site - if self.dlg.at.isChecked(): - schema = "_" + self.dlg.dept.currentText() + "_at_" + self.dlg.nom.text().lower() # Ajout de "_" pour eviter pb de numero en premier caractere - else : - schema = "_" + self.dlg.dept.currentText() + "_" + self.dlg.nom.text().lower() # Ajout de "_" pour eviter pb de numero en premier caractere - - if self.dlg.nom.text() == "" or self.dlg.nom.text() == "NULL": - QMessageBox.warning(None, "Oups :", "Veuillez renseigner un nom de dossier.") - return - - ch = [u"à", u"À", u"â", u"Â", u"ä", u"Ä", u"å", u"Å", u"ç", u"Ç", u"é", u"É", u"è", u"È", u"ê", u"Ê", u"ë", u"Ë", u"î", u"Î", u"ï", u"Ï", u"ô", u"Ô", u"ö", u"Ö", u"ù", u"Ù", u"û", u"Û", u"ü", u"Ü", u"ÿ", u"Ÿ", u"'", u"-", u" "] - for car in ch : - if self.dlg.nom.text().find(car) != -1 : - QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.dlg.nom.text().lower() ) - return - - first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password) - first_cur = first_conn.cursor(cursor_factory = psycopg2.extras.DictCursor) - first_cur.execute("SELECT mdp_w, login_w FROM pg_catalog.pg_user t1, admin_sig.vm_users_sig t2 WHERE t2.oid = t1.usesysid AND (login_w = '" + os_user + "' OR login_w = '" + os_user + "')") - res_ident = first_cur.fetchone() - mdp = base64.b64decode(str(res_ident[0])).decode('utf-8') - user = res_ident[1] - con = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=" + user + " password=" + mdp) - cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) - first_conn.close() - - SQL_schema = "CREATE SCHEMA " + schema + ";" - SQL_GRANT_SCHEMA="GRANT CREATE, USAGE ON SCHEMA "+schema+" TO grp_qgis; GRANT CREATE, USAGE ON SCHEMA "+schema+" TO grp_sig;" - - cur.execute(SQL_schema) - cur.execute(SQL_GRANT_SCHEMA) - - ### Creation de la table contour - if self.dlg.couche_contour.isChecked(): # Verifie si la checkbox est cochee - if self.dlg.annee_1.text() == 'aaaa' or self.dlg.annee_1.text() == '': - tablename = schema + "_contour" - else : - tablename = schema + "_contour_" + self.dlg.annee_1.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - SQL_contour = "CREATE TABLE " + schema + "."+ tablename + champ_contour - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'contour_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_contour) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table habitat - if self.dlg.couche_habitat.isChecked(): - if self.dlg.annee_2.text() == 'aaaa' or self.dlg.annee_2.text() == '': - tablename = schema + "_habitat" - else : - tablename = schema + "_habitat_" + self.dlg.annee_2.text() - tablename_1=tablename+"_points" - tablename_qgis = tablename_1[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_1 + champ_vegethab_point - SQL_pkey = "ALTER TABLE " + schema + "." + tablename_1 + " ADD CONSTRAINT " + tablename_1 + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename_1 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_1 + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename_1 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'vegethab_points_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_1+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_VEGETHAB) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_coordonnees) - cur.execute(SQL_style) - cur.execute(SQL_GRANT_TABLE) - - con.commit() - ### Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename_1, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - tablename_2=tablename+"_lignes" - tablename_qgis = tablename_2[1:] - SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_2 + champ_vegethab_multilinestring - SQL_pkey = "ALTER TABLE " + schema + "." + tablename_2 + " ADD CONSTRAINT " + tablename_2 + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename_2 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'vegethab_lignes_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_2+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_VEGETHAB) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - cur.execute(SQL_style) - cur.execute(SQL_GRANT_TABLE) - - con.commit() - ### Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename_2, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - tablename_3=tablename+"_polygones" - tablename_qgis = tablename_3[1:] - SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_3 + champ_vegethab_multipolygon - SQL_pkey = "ALTER TABLE " + schema + "." + tablename_3 + " ADD CONSTRAINT " + tablename_3 + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename_3 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'vegethab_polygones_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_3+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_VEGETHAB) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_style) - cur.execute(SQL_GRANT_TABLE) - - con.commit() - ### Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename_3, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - ''' - SQL_habitat = "CREATE TABLE " + schema + "."+ tablename + champ_habitat - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_concat_cd_cb = "CREATE TRIGGER concat_cd_cb" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.concat_cd_cb();" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'habitat_modele_v3'""" - - cur.execute(SQL_habitat) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_trigger_concat_cd_cb) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - ''' - ### Creation de la table travaux prevus - if self.dlg.couche_travaux_prevus.isChecked(): - #**********Poly - if self.dlg.annee_5.text() == 'aaaa' or self.dlg.annee_5.text() == '': - tablename = schema + "_travaux_prevus_poly" - else : - tablename = schema + "_travaux_prevus_poly_" + self.dlg.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multipolygon - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_poly_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - #**********ligne - if self.dlg.annee_5.text() == 'aaaa' or self.dlg.annee_5.text() == '': - tablename = schema + "_travaux_prevus_ligne" - else : - tablename = schema + "_travaux_prevus_ligne_" + self.dlg.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multilinestring - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_ligne_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - #**********point - if self.dlg.annee_5.text() == 'aaaa' or self.dlg.annee_5.text() == '': - tablename = schema + "_travaux_prevus_point" - else : - tablename = schema + "_travaux_prevus_point_" + self.dlg.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_point - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_point_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_coordonnees) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table vierge - if self.dlg.couche_vierge.isChecked(): - if self.dlg.annee_4.text() == 'aaaa' or self.dlg.annee_4.text() == '': - tablename = schema + "_" + self.dlg.nom_couche_vierge.text().lower() - else : - tablename = schema + "_" + self.dlg.nom_couche_vierge.text().lower() + "_" + self.dlg.annee_4.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - if self.dlg.couche_vierge_point.isChecked() == 1 : - champ_vierge = champ_viergePoint - - if self.dlg.couche_vierge_ligne.isChecked() == 1 : - champ_vierge = champ_viergeLigne - - if self.dlg.couche_vierge_polygone.isChecked() == 1 : - champ_vierge = champ_viergePolygone - - SQL_vierge = "CREATE TABLE " + schema + "."+ tablename + champ_vierge - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - - cur.execute(SQL_vierge) - cur.execute(SQL_pkey) - - if self.dlg.couche_vierge_point.isChecked() == 1 : - cur.execute(SQL_trigger_coordonnees) - - if self.dlg.couche_vierge_ligne.isChecked() == 1 : - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - - if self.dlg.couche_vierge_polygone.isChecked() == 1 : - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - - con.commit() - - ### Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - else : - con.commit() - - con.close() - pass - - ### Outil Aide - def doHelp(self): - webbrowser.open("http://plateformesig.cenra-outils.org/") - - ### Outil Ajout de nouvelles couche a un dossier - def ajout(self): - first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password) - first_cur = first_conn.cursor(cursor_factory = psycopg2.extras.DictCursor) - first_cur.execute("SELECT mdp_w, login_w FROM pg_catalog.pg_user t1, admin_sig.vm_users_sig t2 WHERE t2.oid = t1.usesysid AND (login_w = '" + os_user + "' OR login_w = '" + os_user + "')") - res_ident = first_cur.fetchone() - mdp = base64.b64decode(str(res_ident[0])).decode('utf-8') - user = res_ident[1] - - con = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=" + user + " password=" + mdp) - cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) - first_conn.close() - # Creation de la liste des schemas de la base de donnees - SQL = """WITH list_schema AS ( - select schemaname,'sig' as group from pg_catalog.pg_tables - where schemaname ~ E'^_(0|1|2|3|4|6|7|f)' - group by schemaname - order by schemaname) - - select string_agg(schemaname,',') - from list_schema - group by "group";""" - - cur.execute(SQL) - - list_brut = str(next(cur)) - list = list_brut [2:-2] - listItems = list.split(",") - - con.close() - - self.dlgAjout.ui.schema.clear() - self.dlgAjout.ui.schema.addItems(listItems) - self.dlgAjout.ui.schema.setCurrentIndex(-1) # Pour ne pas commencer la liste au premier schema - - # show the dialog - self.dlgAjout.show() - # Run the dialog event loop - result = self.dlgAjout.exec_() - # See if OK was pressed - if result == 1: -#******************************debut script********************************* - first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password) - first_cur = first_conn.cursor(cursor_factory = psycopg2.extras.DictCursor) - first_cur.execute("SELECT mdp_w, login_w FROM pg_catalog.pg_user t1, admin_sig.vm_users_sig t2 WHERE t2.oid = t1.usesysid AND (login_w = '" + os_user + "' OR login_w = '" + os_user + "')") - res_ident = first_cur.fetchone() - mdp = base64.b64decode(str(res_ident[0])).decode('utf-8') - user = res_ident[1] - con = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=" + user + " password=" + mdp) - cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) - first_conn.close() - - if self.dlgAjout.ui.schema.currentIndex() == -1 : - QMessageBox.warning(None, "Oups :", "Veuillez choisir un nom de dossier.") - return - - schema = self.dlgAjout.ui.schema.currentText() - - ### Creation de la table contour - if self.dlgAjout.ui.couche_contour.isChecked(): # Verifie si la checkbox est cochee - if self.dlgAjout.ui.annee_1.text() == 'aaaa' or self.dlgAjout.ui.annee_1.text() == '': - tablename = schema + "_contour" - else : - tablename = schema + "_contour_" + self.dlgAjout.ui.annee_1.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - SQL_contour = "CREATE TABLE " + schema + "."+ tablename + champ_contour - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'contour_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_contour) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table habitat - - if self.dlgAjout.ui.couche_habitat.isChecked(): - if self.dlgAjout.ui.annee_2.text() == 'aaaa' or self.dlgAjout.ui.annee_2.text() == '': - tablename = schema + "_habitat" - else : - tablename = schema + "_habitat_" + self.dlgAjout.ui.annee_2.text() - - tablename_1=tablename+"_points" - tablename_qgis = tablename_1[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_1 + champ_vegethab_point - SQL_pkey = "ALTER TABLE " + schema + "." + tablename_1 + " ADD CONSTRAINT " + tablename_1 + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename_1 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_1 + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename_1 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'vegethab_points_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_1+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_VEGETHAB) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_coordonnees) - cur.execute(SQL_style) - cur.execute(SQL_GRANT_TABLE) - - con.commit() - ### Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename_1, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - tablename_2=tablename+"_lignes" - tablename_qgis = tablename_2[1:] - SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_2 + champ_vegethab_multilinestring - SQL_pkey = "ALTER TABLE " + schema + "." + tablename_2 + " ADD CONSTRAINT " + tablename_2 + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename_2 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'vegethab_lignes_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_2+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_VEGETHAB) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - cur.execute(SQL_style) - cur.execute(SQL_GRANT_TABLE) - - con.commit() - ### Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename_2, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - tablename_3=tablename+"_polygones" - tablename_qgis = tablename_3[1:] - SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_3 + champ_vegethab_multipolygon - SQL_pkey = "ALTER TABLE " + schema + "." + tablename_3 + " ADD CONSTRAINT " + tablename_3 + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename_3 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'vegethab_polygones_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_3+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_VEGETHAB) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_style) - cur.execute(SQL_GRANT_TABLE) - - con.commit() - ### Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename_3, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - ''' - SQL_habitat = "CREATE TABLE " + schema + "."+ tablename + champ_habitat - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_concat_cd_cb = "CREATE TRIGGER concat_cd_cb" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.concat_cd_cb();" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'habitat_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_habitat) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_trigger_concat_cd_cb) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - ''' - ### Creation de la table travaux prevus - if self.dlgAjout.ui.couche_travaux_prevus.isChecked(): - #**********Poly - if self.dlgAjout.ui.annee_5.text() == 'aaaa' or self.dlgAjout.ui.annee_5.text() == '': - tablename = schema + "_travaux_prevus_poly" - else : - tablename = schema + "_travaux_prevus_poly_" + self.dlgAjout.ui.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multipolygon - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_poly_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - #**********ligne - if self.dlgAjout.ui.annee_5.text() == 'aaaa' or self.dlgAjout.ui.annee_5.text() == '': - tablename = schema + "_travaux_prevus_ligne" - else : - tablename = schema + "_travaux_prevus_ligne_" + self.dlgAjout.ui.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multilinestring - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_ligne_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - #**********point - if self.dlgAjout.ui.annee_5.text() == 'aaaa' or self.dlgAjout.ui.annee_5.text() == '': - tablename = schema + "_travaux_prevus_point" - else : - tablename = schema + "_travaux_prevus_point_" + self.dlgAjout.ui.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_point - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_point_modele_v3'""" - SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_coordonnees) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - cur.execute(SQL_GRANT_TABLE) - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table vierge - if self.dlgAjout.ui.couche_vierge.isChecked(): - if self.dlgAjout.ui.annee_4.text() == 'aaaa' or self.dlgAjout.ui.annee_4.text() == '': - tablename = schema + "_" + self.dlgAjout.ui.nom_couche_vierge.text().lower() - else : - tablename = schema + "_" + self.dlgAjout.ui.nom_couche_vierge.text().lower() + "_" + self.dlgAjout.ui.annee_4.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - - if self.dlgAjout.ui.couche_vierge_point.isChecked() == 1 : - champ_vierge = champ_viergePoint - - if self.dlgAjout.ui.couche_vierge_ligne.isChecked() == 1 : - champ_vierge = champ_viergeLigne - - if self.dlgAjout.ui.couche_vierge_polygone.isChecked() == 1 : - champ_vierge = champ_viergePolygone - - SQL_vierge = "CREATE TABLE " + schema + "."+ tablename + champ_vierge - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - - cur.execute(SQL_vierge) - cur.execute(SQL_pkey) - - if self.dlgAjout.ui.couche_vierge_point.isChecked() == 1 : - cur.execute(SQL_trigger_coordonnees) - - if self.dlgAjout.ui.couche_vierge_ligne.isChecked() == 1 : - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - - if self.dlgAjout.ui.couche_vierge_polygone.isChecked() == 1 : - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - - con.commit() - - ### Affichage de la table - uri = QgsDataSourceUri() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,mdp) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - else : - con.commit() - - con.close() - pass diff --git a/CenRa_POSTGIS/cenra.py.bak b/CenRa_POSTGIS/cenra.py.bak deleted file mode 100644 index 0812e5ef..00000000 --- a/CenRa_POSTGIS/cenra.py.bak +++ /dev/null @@ -1,798 +0,0 @@ -# -*- coding: utf-8 -*- -""" -/*************************************************************************** - CenRa - A QGIS plugin - Conservatoire d'Espaces Naturels de Rhône-Alpes - ------------------- - begin : 2014-03-27 - copyright : (C) 2014 by Conservatoire d'Espaces Naturels de Rhône-Alpes - email : guillaume.costes@espaces-naturels.fr - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ -""" -from __future__ import absolute_import -# Import the PyQt and QGIS libraries -from builtins import str -from builtins import object -from qgis.PyQt.QtCore import QSettings -from qgis.PyQt.QtWidgets import QAction, QMenu -from qgis.PyQt.QtGui import QIcon -from qgis.core import * -# Initialize Qt resources from file resources.py -from . import resources_rc -# Import the code for the dialog -from .cenradialog import CenRaDialog -from .table_postgisdialog import table_postgisDialog - -import os.path -import webbrowser, os -import sys -import psycopg2 - -class CenRa(object): - - def __init__(self, iface): - # Save reference to the QGIS interface - self.iface = iface - # initialize plugin directory - self.plugin_dir = os.path.dirname(__file__) - # initialize locale - locale = QSettings().value("locale/userLocale")[0:2] - localePath = os.path.join(self.plugin_dir, 'i18n', 'cenra_{}.qm'.format(locale)) - - if os.path.exists(localePath): - self.translator = QTranslator() - self.translator.load(localePath) - - if qVersion() > '4.3.3': - QCoreApplication.installTranslator(self.translator) - - # Create the dialog (after translation) and keep reference - self.dlg = CenRaDialog() - self.dlgAjout = table_postgisDialog() - - def initGui(self): - self.toolBar = self.iface.addToolBar("CEN-RA") - self.toolBar.setObjectName("CEN-RA") - - # ***Create action that will start plugin configuration - self.action = QAction( - QIcon(":/plugins/CenRa/page_new.png"), - u"Création d'un dossier", self.iface.mainWindow()) - # connect the action to the run method - self.action.triggered.connect(self.creation) - - # Add toolbar button and menu item - self.toolBar.addAction(self.action) - self.iface.addPluginToMenu(u"CenRa", self.action) - - # ***Create action that will start plugin configuration - self.action = QAction( - QIcon(":/plugins/CenRa/page_ajout.png"), - u"Ajout d'une table", self.iface.mainWindow()) - # connect the action to the run method - self.action.triggered.connect(self.ajout) - - # Add toolbar button and menu item - self.toolBar.addAction(self.action) - self.iface.addPluginToMenu(u"&CenRa", self.action) - - # ***Create action that will start plugin configuration - self.action = QAction( - QIcon(":/plugins/CenRa/help.png"), - u"Aide", self.iface.mainWindow()) - # connect the action to the run method - self.action.triggered.connect(self.doHelp) - - # Add toolbar button and menu item - self.toolBar.addAction(self.action) - self.iface.addPluginToMenu(u"CenRa", self.action) - - self.menu = QMenu() - self.menu.setTitle( QCoreApplication.translate( "CENRA","&CenRa" ) ) - - self.cenra_new = QAction( QIcon(":/plugins/CenRa/page_new.png"), QCoreApplication.translate("CENRA", u"Création d'un dossier" ), self.iface.mainWindow() ) - self.cenra_ajout = QAction( QIcon(":/plugins/CenRa/page_ajout.png"), QCoreApplication.translate("CENRA", "Ajout d'une table" ), self.iface.mainWindow() ) - self.cenra_help = QAction( QIcon(":/plugins/CenRa/help.png"), QCoreApplication.translate("CENRA", "Aide" ), self.iface.mainWindow() ) - - self.menu.addActions( [self.cenra_new, self.cenra_ajout, self.cenra_help] ) - - menu_bar = self.iface.mainWindow().menuBar() - actions = menu_bar.actions() - lastAction = actions[ len( actions ) - 1 ] - menu_bar.insertMenu( lastAction, self.menu ) - - self.cenra_new.triggered.connect(self.creation) - self.cenra_ajout.triggered.connect(self.ajout) - self.cenra_help.triggered.connect(self.doHelp) - - def unload(self): - # Remove the plugin menu item and icon - self.iface.removePluginMenu(u"&CenRa", self.action) - self.iface.removeToolBarIcon(self.action) - - # run method that performs all the real work - def creation(self): - # show the dialog - self.dlg.show() - # Run the dialog event loop - result = self.dlg.exec_() - # See if OK was pressed - if result == 1: - -#**********************************Debut_script**************************************** - import psycopg2 - - ### config.txt - config = "//100.100.100.100/bd_sig/z_QGIS/config.txt" # Chemin du fichier config - - # Fonction de lecture des lignes du fichier config - def readline(n): - with open(config, "r") as f: - for lineno, line in enumerate(f): - if lineno == n: - return line.strip() # Permet d'enlever les retours chariots - - # Recuperation des donnees - host = readline(10) - port = readline(12) - dbname = readline(14) - user = readline(16) - password = readline(18) - - ### Creation du schema pour le nouveau site - if self.dlg.at.isChecked(): - schema = "_" + self.dlg.dept.currentText() + "_at_" + self.dlg.nom.text().lower() # Ajout de "_" pour eviter pb de numero en premier caractere - else : - schema = "_" + self.dlg.dept.currentText() + "_" + self.dlg.nom.text().lower() # Ajout de "_" pour eviter pb de numero en premier caractere - - if self.dlg.nom.text() == "" or self.dlg.nom.text() == "NULL": - QMessageBox.warning(None, "Oups :", "Veuillez renseigner un nom de dossier.") - return - - ch = [u"à", u"À", u"â", u"Â", u"ä", u"Ä", u"å", u"Å", u"ç", u"Ç", u"é", u"É", u"è", u"È", u"ê", u"Ê", u"ë", u"Ë", u"î", u"Î", u"ï", u"Ï", u"ô", u"Ô", u"ö", u"Ö", u"ù", u"Ù", u"û", u"Û", u"ü", u"Ü", u"ÿ", u"Ÿ", u"'", u"-", u" "] - for car in ch : - if self.dlg.nom.text().find(car) != -1 : - QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.dlg.nom.text().lower() ) - return - - con = psycopg2.connect("dbname="+ dbname + " user=" + user + " host=" + host + " password=" + password) - cur = con.cursor() - - SQL_schema = "CREATE SCHEMA " + schema + " AUTHORIZATION postgres;" - - cur.execute(SQL_schema) - - ### Creation de la table contour - if self.dlg.couche_contour.isChecked(): # Verifie si la checkbox est cochee - if self.dlg.annee_1.text() == 'aaaa' or self.dlg.annee_1.text() == '': - tablename = schema + "_contour" - else : - tablename = schema + "_contour_" + self.dlg.annee_1.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(21) - champ_contour = readline(32) - - SQL_contour = "CREATE TABLE " + schema + "."+ tablename + champ_contour - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'contour_modele'""" - - cur.execute(SQL_contour) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table habitat - if self.dlg.couche_habitat.isChecked(): - if self.dlg.annee_2.text() == 'aaaa' or self.dlg.annee_2.text() == '': - tablename = schema + "_habitat" - else : - tablename = schema + "_habitat_" + self.dlg.annee_2.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(22) - champ_habitat = readline(35) - - SQL_habitat = "CREATE TABLE " + schema + "."+ tablename + champ_habitat - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_concat_cd_cb = "CREATE TRIGGER concat_cd_cb" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.concat_cd_cb();" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'habitat_modele'""" - - cur.execute(SQL_habitat) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_trigger_concat_cd_cb) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table travaux prevus - if self.dlg.couche_travaux_prevus.isChecked(): - #**********Poly - if self.dlg.annee_5.text() == 'aaaa' or self.dlg.annee_5.text() == '': - tablename = schema + "_travaux_prevus_poly" - else : - tablename = schema + "_travaux_prevus_poly_" + self.dlg.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(26) - champ_travaux_prevus = readline(43) - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_poly_modele'""" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - #**********ligne - if self.dlg.annee_5.text() == 'aaaa' or self.dlg.annee_5.text() == '': - tablename = schema + "_travaux_prevus_ligne" - else : - tablename = schema + "_travaux_prevus_ligne_" + self.dlg.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(27) - champ_travaux_prevus = readline(44) - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_ligne_modele'""" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - #**********point - if self.dlg.annee_5.text() == 'aaaa' or self.dlg.annee_5.text() == '': - tablename = schema + "_travaux_prevus_point" - else : - tablename = schema + "_travaux_prevus_point_" + self.dlg.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(28) - champ_travaux_prevus = readline(45) - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_point_modele'""" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_coordonnees) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table vierge - if self.dlg.couche_vierge.isChecked(): - if self.dlg.annee_4.text() == 'aaaa' or self.dlg.annee_4.text() == '': - tablename = schema + "_" + self.dlg.nom_couche_vierge.text().lower() - else : - tablename = schema + "_" + self.dlg.nom_couche_vierge.text().lower() + "_" + self.dlg.annee_4.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(29) - champ_viergePolygone = readline(48) - champ_viergeLigne = readline(49) - champ_viergePoint = readline(50) - - if self.dlg.couche_vierge_point.isChecked() == 1 : - champ_vierge = champ_viergePoint - - if self.dlg.couche_vierge_ligne.isChecked() == 1 : - champ_vierge = champ_viergeLigne - - if self.dlg.couche_vierge_polygone.isChecked() == 1 : - champ_vierge = champ_viergePolygone - - SQL_vierge = "CREATE TABLE " + schema + "."+ tablename + champ_vierge - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - - cur.execute(SQL_vierge) - cur.execute(SQL_pkey) - - if self.dlg.couche_vierge_point.isChecked() == 1 : - cur.execute(SQL_trigger_coordonnees) - - if self.dlg.couche_vierge_ligne.isChecked() == 1 : - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - - if self.dlg.couche_vierge_polygone.isChecked() == 1 : - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - - con.commit() - - ### Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - else : - con.commit() - - con.close() - pass - - ### Outil Aide - def doHelp(self): - webbrowser.open("http://plateformesig.cenra-outils.org/") - - ### Outil Ajout de nouvelles couche a un dossier - def ajout(self): - import psycopg2 - - config = "//100.100.100.100/bd_sig/z_QGIS/config.txt" # Chemin du fichier config - # Fonction de lecture des lignes du fichier config - def readline(n): - with open(config, "r") as f: - for lineno, line in enumerate(f): - if lineno == n: - return line.strip() # Permet d'enlever les retours chariots - - host = readline(10) - port = readline(12) - dbname = readline(14) - user = readline(16) - password = readline(18) - - con = psycopg2.connect("dbname="+ dbname + " user=" + user + " host=" + host + " password=" + password) - cur = con.cursor() - # Creation de la liste des schemas de la base de donnees - SQL = """WITH list_schema AS ( - SELECT catalog_name, schema_name - FROM information_schema.schemata - WHERE schema_name <> 'information_schema' - AND schema_name !~ E'^pg_' - ORDER BY schema_name - ) - - SELECT string_agg(schema_name,',') - FROM list_schema - GROUP BY catalog_name""" - - cur.execute(SQL) - - list_brut = str(next(cur)) - - list = list_brut [3:-3] - listItems = list.split(",") - - con.close() - - self.dlgAjout.ui.schema.clear() - self.dlgAjout.ui.schema.addItems(listItems) - self.dlgAjout.ui.schema.setCurrentIndex(-1) # Pour ne pas commencer la liste au premier schema - - # show the dialog - self.dlgAjout.show() - # Run the dialog event loop - result = self.dlgAjout.exec_() - # See if OK was pressed - if result == 1: -#******************************debut script********************************* - ### config.txt - config = "//100.100.100.100/bd_sig/z_QGIS/config.txt" # Chemin du fichier config - - # Fonction de lecture des lignes du fichier config - def readline(n): - with open(config, "r") as f: - for lineno, line in enumerate(f): - if lineno == n: - return line.strip() # Permet d'enlever les retours chariots - - # Recuperation des donnees - host = readline(10) - port = readline(12) - dbname = readline(14) - user = readline(16) - password = readline(18) - - con = psycopg2.connect("dbname="+ dbname + " user=" + user + " host=" + host + " password=" + password) - cur = con.cursor() - - if self.dlgAjout.ui.schema.currentIndex() == -1 : - QMessageBox.warning(None, "Oups :", "Veuillez choisir un nom de dossier.") - return - - schema = self.dlgAjout.ui.schema.currentText() - - ### Creation de la table contour - if self.dlgAjout.ui.couche_contour.isChecked(): # Verifie si la checkbox est cochee - if self.dlgAjout.ui.annee_1.text() == 'aaaa' or self.dlgAjout.ui.annee_1.text() == '': - tablename = schema + "_contour" - else : - tablename = schema + "_contour_" + self.dlgAjout.ui.annee_1.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(21) - champ_contour = readline(32) - - SQL_contour = "CREATE TABLE " + schema + "."+ tablename + champ_contour - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'contour_modele'""" - - cur.execute(SQL_contour) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table habitat - if self.dlgAjout.ui.couche_habitat.isChecked(): - if self.dlgAjout.ui.annee_2.text() == 'aaaa' or self.dlgAjout.ui.annee_2.text() == '': - tablename = schema + "_habitat" - else : - tablename = schema + "_habitat_" + self.dlgAjout.ui.annee_2.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(22) - champ_habitat = readline(35) - - SQL_habitat = "CREATE TABLE " + schema + "."+ tablename + champ_habitat - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_concat_cd_cb = "CREATE TRIGGER concat_cd_cb" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.concat_cd_cb();" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'habitat_modele'""" - - cur.execute(SQL_habitat) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_trigger_concat_cd_cb) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table travaux prevus - if self.dlgAjout.ui.couche_travaux_prevus.isChecked(): - #**********Poly - if self.dlgAjout.ui.annee_5.text() == 'aaaa' or self.dlgAjout.ui.annee_5.text() == '': - tablename = schema + "_travaux_prevus_poly" - else : - tablename = schema + "_travaux_prevus_poly_" + self.dlgAjout.ui.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(26) - champ_travaux_prevus = readline(43) - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_poly_modele'""" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - #**********ligne - if self.dlgAjout.ui.annee_5.text() == 'aaaa' or self.dlgAjout.ui.annee_5.text() == '': - tablename = schema + "_travaux_prevus_ligne" - else : - tablename = schema + "_travaux_prevus_ligne_" + self.dlgAjout.ui.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(27) - champ_travaux_prevus = readline(44) - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_ligne_modele'""" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - #**********point - if self.dlgAjout.ui.annee_5.text() == 'aaaa' or self.dlgAjout.ui.annee_5.text() == '': - tablename = schema + "_travaux_prevus_point" - else : - tablename = schema + "_travaux_prevus_point_" + self.dlgAjout.ui.annee_5.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(28) - champ_travaux_prevus = readline(45) - - SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" - SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - - SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) - SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() - FROM layer_styles - WHERE description = 'travaux_prevus_point_modele'""" - - cur.execute(SQL_travaux_prevus) - cur.execute(SQL_pkey) - cur.execute(SQL_trigger_date_creation) - cur.execute(SQL_trigger_date_maj) - cur.execute(SQL_trigger_coordonnees) - cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles - - con.commit() - - ## Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - ### Creation de la table vierge - if self.dlgAjout.ui.couche_vierge.isChecked(): - if self.dlgAjout.ui.annee_4.text() == 'aaaa' or self.dlgAjout.ui.annee_4.text() == '': - tablename = schema + "_" + self.dlgAjout.ui.nom_couche_vierge.text().lower() - else : - tablename = schema + "_" + self.dlgAjout.ui.nom_couche_vierge.text().lower() + "_" + self.dlgAjout.ui.annee_4.text() - tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis - geom = readline(6) - style = readline(29) - champ_viergePolygone = readline(48) - champ_viergeLigne = readline(49) - champ_viergePoint = readline(50) - - if self.dlgAjout.ui.couche_vierge_point.isChecked() == 1 : - champ_vierge = champ_viergePoint - - if self.dlgAjout.ui.couche_vierge_ligne.isChecked() == 1 : - champ_vierge = champ_viergeLigne - - if self.dlgAjout.ui.couche_vierge_polygone.isChecked() == 1 : - champ_vierge = champ_viergePolygone - - SQL_vierge = "CREATE TABLE " + schema + "."+ tablename + champ_vierge - SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" - - SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" - SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" - SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" - SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" - SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" - - cur.execute(SQL_vierge) - cur.execute(SQL_pkey) - - if self.dlgAjout.ui.couche_vierge_point.isChecked() == 1 : - cur.execute(SQL_trigger_coordonnees) - - if self.dlgAjout.ui.couche_vierge_ligne.isChecked() == 1 : - cur.execute(SQL_trigger_length_m) - cur.execute(SQL_trigger_length_km) - - if self.dlgAjout.ui.couche_vierge_polygone.isChecked() == 1 : - cur.execute(SQL_trigger_area_m2) - cur.execute(SQL_trigger_area_ha) - - con.commit() - - ### Affichage de la table - uri = QgsDataSourceURI() - # set host name, port, database name, username and password - uri.setConnection(host ,port ,dbname ,user ,password) - # set database schema, table name, geometry column and optionaly subset (WHERE clause) - uri.setDataSource(schema, tablename, geom) - - layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") - - else : - con.commit() - - con.close() - pass \ No newline at end of file diff --git a/CenRa_POSTGIS/cenradialog.py b/CenRa_POSTGIS/cenradialog.py deleted file mode 100644 index 8a99a572..00000000 --- a/CenRa_POSTGIS/cenradialog.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -""" -/*************************************************************************** - CenRaDialog - A QGIS plugin - Conservatoire d'Espaces Naturels de Rhône-Alpes - ------------------- - begin : 2014-03-27 - copyright : (C) 2014 by Conservatoire d'Espaces Naturels de Rhône-Alpes - email : guillaume.costes@espaces-naturels.fr - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ -""" - -from qgis.PyQt import QtCore, QtGui -from qgis.PyQt.QtWidgets import QDialog -from .ui_cenra import Ui_cenra -# create the dialog for zoom to point - - -class CenRaDialog(QDialog, Ui_cenra): - def __init__(self): - QDialog.__init__(self) - # Set up the user interface from Designer. - # After setupUI you can access any designer object by doing - # self., and you can use autoconnect slots - see - # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html - # #widgets-and-dialogs-with-auto-connect - self.setupUi(self) diff --git a/CenRa_POSTGIS/cenradialog.py.bak b/CenRa_POSTGIS/cenradialog.py.bak deleted file mode 100644 index e29830d2..00000000 --- a/CenRa_POSTGIS/cenradialog.py.bak +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -""" -/*************************************************************************** - CenRaDialog - A QGIS plugin - Conservatoire d'Espaces Naturels de Rhône-Alpes - ------------------- - begin : 2014-03-27 - copyright : (C) 2014 by Conservatoire d'Espaces Naturels de Rhône-Alpes - email : guillaume.costes@espaces-naturels.fr - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ -""" - -from PyQt4 import QtCore, QtGui -from ui_cenra import Ui_cenra -# create the dialog for zoom to point - - -class CenRaDialog(QtGui.QDialog, Ui_cenra): - def __init__(self): - QtGui.QDialog.__init__(self) - # Set up the user interface from Designer. - # After setupUI you can access any designer object by doing - # self., and you can use autoconnect slots - see - # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html - # #widgets-and-dialogs-with-auto-connect - self.setupUi(self) diff --git a/CenRa_POSTGIS/help/Makefile b/CenRa_POSTGIS/help/Makefile deleted file mode 100644 index ebb0236d..00000000 --- a/CenRa_POSTGIS/help/Makefile +++ /dev/null @@ -1,130 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/templateclass.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/templateclass.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/templateclass" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/templateclass" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - make -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/CenRa_POSTGIS/help/make.bat b/CenRa_POSTGIS/help/make.bat deleted file mode 100644 index 90dc1912..00000000 --- a/CenRa_POSTGIS/help/make.bat +++ /dev/null @@ -1,155 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% -) - -if "%1" == "" goto help - -if "%1" == "help" ( - :help - echo.Please use `make ^` where ^ is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. changes to make an overview over all changed/added/deprecated items - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\templateclass.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\templateclass.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -:end diff --git a/CenRa_POSTGIS/help/source/conf.py b/CenRa_POSTGIS/help/source/conf.py deleted file mode 100644 index a7bd6e9a..00000000 --- a/CenRa_POSTGIS/help/source/conf.py +++ /dev/null @@ -1,216 +0,0 @@ -# -*- coding: utf-8 -*- -# -# cenra documentation build configuration file, created by -# sphinx-quickstart on Sun Feb 12 17:11:03 2012. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.todo', 'sphinx.ext.pngmath', 'sphinx.ext.viewcode'] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'cenra' -copyright = u'2013, Conservatoire d''Espaces Naturels de Rhône-Alpes' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '0.1' -# The full version, including alpha/beta/rc tags. -release = '0.1' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'default' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'templateclassdoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'cenra.tex', u'cenra Documentation', - u'Conservatoire d''Espaces Naturels de Rhône-Alpes', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Additional stuff for the LaTeX preamble. -#latex_preamble = '' - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'templateclass', u'cenra Documentation', - [u'Conservatoire d''Espaces Naturels de Rhône-Alpes'], 1) -] diff --git a/CenRa_POSTGIS/help/source/index.rst b/CenRa_POSTGIS/help/source/index.rst deleted file mode 100644 index 02812ef1..00000000 --- a/CenRa_POSTGIS/help/source/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. cenra documentation master file, created by - sphinx-quickstart on Sun Feb 12 17:11:03 2012. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to cenra's documentation! -============================================ - -Contents: - -.. toctree:: - :maxdepth: 2 - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/CenRa_POSTGIS/cenra.png b/CenRa_POSTGIS/icon.png similarity index 100% rename from CenRa_POSTGIS/cenra.png rename to CenRa_POSTGIS/icon.png diff --git a/CenRa_POSTGIS/issues.py b/CenRa_POSTGIS/issues.py new file mode 100644 index 00000000..0d6416a6 --- /dev/null +++ b/CenRa_POSTGIS/issues.py @@ -0,0 +1,89 @@ +import os +plugin_dir = os.path.dirname(__file__) +end_find = plugin_dir.rfind('\\')+1 + +NAME = plugin_dir[end_find:] +#print(NAME) + +from qgis.gui import * + +from qgis.core import ( + NULL, + QgsApplication, + QgsDataSourceUri, + QgsProject, + QgsProviderConnectionException, + QgsProviderRegistry, + QgsRasterLayer, + QgsSettings, + QgsVectorLayer, + QgsGeometry, +) +from qgis.PyQt.QtWidgets import ( + QDialog, + QAction, + QDockWidget, + QFileDialog, + QInputDialog, + QMenu, + QToolButton, + QTableWidget, + QTableWidgetItem, +) +from qgis.utils import iface + + +from .tools.resources import ( + load_ui, + resources_path, + send_issues, +) + +EDITOR_CLASS = load_ui('CenRa_IssuesSend.ui') + +class CenRa_Issues(QDialog, EDITOR_CLASS): + + def __init__(self, parent=None): + _ = parent + super().__init__() + self.setupUi(self) + self.settings = QgsSettings() + + #place connect here + self.annuler_button.clicked.connect(self.close) + self.ok_button.clicked.connect(self.run_sendissues) + + def run_sendissues(self): + text_titre = self.titre_line.text() + text_message = self.messages_plain.toPlainText() + statu_bug = self.check_bug.isChecked() + statu_aide = self.check_aide.isChecked() + statu_question = self.check_question.isChecked() + statu_amelioration = self.check_amelioration.isChecked() + statu_autre = self.check_autre.isChecked() + + statu = [] + if statu_bug == True : statu = statu + [1] + if statu_aide == True : statu = statu + [3] + if statu_question == True : statu = statu + [5] + if statu_amelioration == True : statu = statu + [2] + if statu_autre == True : statu = statu + [6] + + if len(statu) >= 1: + import qgis + url = qgis.utils.pluginMetadata(NAME,'tracker') + print(text_message) + send_info = send_issues(url,text_titre,text_message,statu) + code = send_info.status_code + print(code) + else: + code = 423 + if code == 201: + iface.messageBar().pushMessage("Envoyer :", "Votre messages à bien été envoyer.", level=Qgis.Success, duration=20) + self.close() + elif code == 422: + iface.messageBar().pushMessage("Erreur :", "Erreur dans le contenu du messages.", level=Qgis.Critical, duration=20) + elif code == 423: + iface.messageBar().pushMessage("Erreur :", "Pas de sujet sélectionné.", level=Qgis.Critical, duration=20) + elif code == 404: + iface.messageBar().pushMessage("Missing :", "Le serveur de messagerie est injoignable.", level=Qgis.Warning, duration=20) diff --git a/CenRa_POSTGIS/metadata.txt b/CenRa_POSTGIS/metadata.txt index 4cb2418a..6b8620a3 100644 --- a/CenRa_POSTGIS/metadata.txt +++ b/CenRa_POSTGIS/metadata.txt @@ -12,7 +12,7 @@ name=CenRa_POSTGIS qgisMinimumVersion=3.0 description=Permet de crée un dossier dans la base PostGis -version=1.8 +version=2.0 author=Conservatoire d'Espaces Naturels de Rhône-Alpes email=si_besoin@cen-rhonealpes.fr @@ -21,7 +21,7 @@ email=si_besoin@cen-rhonealpes.fr # Optional items: # Uncomment the following line and add your changelog entries: -changelog=

CenRa_POSTGIS:


13/09/2024 - Version 1.8:

- Ajoute d'un changelog et vérification de mise à jour.

+changelog=

CenRa_POSTGIS:


22/10/2024 - Version 2.0:

- Refont du code.

# tags are comma separated with spaces allowed tags=cenra, postgis, database @@ -30,7 +30,7 @@ repository=https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS homepage=https://plateformesig.cenra-outils.org/ category=Plugins -icon=cenra.png +icon=icon.png # experimental flag experimental=False diff --git a/CenRa_POSTGIS/postgis_creator.py b/CenRa_POSTGIS/postgis_creator.py new file mode 100644 index 00000000..08c72d72 --- /dev/null +++ b/CenRa_POSTGIS/postgis_creator.py @@ -0,0 +1,432 @@ +# -*- coding: utf-8 -*- + +from __future__ import absolute_import +# Import the PyQt and QGIS libraries +from builtins import next +from builtins import str +from builtins import object +import qgis +from qgis.PyQt.QtCore import QSettings +from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog +from qgis.PyQt.QtGui import QIcon +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5 import QtGui +from qgis.core import * +from qgis.core import QgsDataSourceUri + +from .tools.PythonSQL import * +from .tools.resources import ( + load_ui, + resources_path, + login_base, + send_issues, +) +from .issues import CenRa_Issues + +from qgis.utils import iface +import os.path +import webbrowser, os +import psycopg2 +import psycopg2.extras +import base64 + +EDITOR_CLASS = load_ui('CenRa_Postgis_base.ui') + +class Postgis_Creator(QDialog, EDITOR_CLASS): + + def __init__(self, parent=None): + _ = parent + super().__init__() + self.setupUi(self) + self.settings = QgsSettings() + self.s = QSettings() + self.setWindowIcon(QtGui.QIcon(resources_path('icons','icon.png'))) + self.iface = iface + + # run method that performs all the real work + def raise_(self): + # show the dialog + self.show() + # Run the dialog event loop + result = self.exec_() + # See if OK was pressed + if result == 1: + +#**********************************Debut_script**************************************** + + ### Creation du schema pour le nouveau site + if self.at.isChecked(): + schema = "_" + self.dept.currentText() + "_at_" + self.nom.text().lower() # Ajout de "_" pour eviter pb de numero en premier caractere + else : + schema = "_" + self.dept.currentText() + "_" + self.nom.text().lower() # Ajout de "_" pour eviter pb de numero en premier caractere + + if self.nom.text() == "" or self.nom.text() == "NULL": + QMessageBox.warning(None, "Oups :", "Veuillez renseigner un nom de dossier.") + return + + ch = [u"à", u"À", u"â", u"Â", u"ä", u"Ä", u"å", u"Å", u"ç", u"Ç", u"é", u"É", u"è", u"È", u"ê", u"Ê", u"ë", u"Ë", u"î", u"Î", u"ï", u"Ï", u"ô", u"Ô", u"ö", u"Ö", u"ù", u"Ù", u"û", u"Û", u"ü", u"Ü", u"ÿ", u"Ÿ", u"'", u"-", u" "] + for car in ch : + if self.nom.text().find(car) != -1 : + QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.nom.text().lower() ) + return + first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password) + first_cur = first_conn.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_cur.execute("SELECT mdp_w, login_w FROM pg_catalog.pg_user t1, admin_sig.vm_users_sig t2 WHERE t2.oid = t1.usesysid AND (login_w = '" + os_user + "' OR login_w = '" + os_user + "')") + res_ident = first_cur.fetchone() + mdp = base64.b64decode(str(res_ident[0])).decode('utf-8') + user = res_ident[1] + con = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=" + user + " password=" + mdp) + cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_conn.close() + + SQL_schema = "CREATE SCHEMA " + schema + ";" + SQL_GRANT_SCHEMA="GRANT CREATE, USAGE ON SCHEMA "+schema+" TO grp_qgis; GRANT CREATE, USAGE ON SCHEMA "+schema+" TO grp_sig;" + + cur.execute(SQL_schema) + cur.execute(SQL_GRANT_SCHEMA) + + ### Creation de la table contour + if self.couche_contour.isChecked(): # Verifie si la checkbox est cochee + if self.annee_1.text() == 'aaaa' or self.annee_1.text() == '': + tablename = schema + "_contour" + else : + tablename = schema + "_contour_" + self.annee_1.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + SQL_contour = "CREATE TABLE " + schema + "."+ tablename + champ_contour + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'contour_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_contour) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + ### Creation de la table habitat + if self.couche_habitat.isChecked(): + if self.annee_2.text() == 'aaaa' or self.annee_2.text() == '': + tablename = schema + "_habitat" + else : + tablename = schema + "_habitat_" + self.annee_2.text() + tablename_1=tablename+"_points" + tablename_qgis = tablename_1[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_1 + champ_vegethab_point + SQL_pkey = "ALTER TABLE " + schema + "." + tablename_1 + " ADD CONSTRAINT " + tablename_1 + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename_1 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_1 + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename_1 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'vegethab_points_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_1+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_VEGETHAB) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_coordonnees) + cur.execute(SQL_style) + cur.execute(SQL_GRANT_TABLE) + + con.commit() + ### Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename_1, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + tablename_2=tablename+"_lignes" + tablename_qgis = tablename_2[1:] + SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_2 + champ_vegethab_multilinestring + SQL_pkey = "ALTER TABLE " + schema + "." + tablename_2 + " ADD CONSTRAINT " + tablename_2 + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" + SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename_2 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'vegethab_lignes_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_2+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_VEGETHAB) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_length_m) + cur.execute(SQL_trigger_length_km) + cur.execute(SQL_style) + cur.execute(SQL_GRANT_TABLE) + + con.commit() + ### Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename_2, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + tablename_3=tablename+"_polygones" + tablename_qgis = tablename_3[1:] + SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_3 + champ_vegethab_multipolygon + SQL_pkey = "ALTER TABLE " + schema + "." + tablename_3 + " ADD CONSTRAINT " + tablename_3 + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename_3 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'vegethab_polygones_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_3+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_VEGETHAB) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + cur.execute(SQL_style) + cur.execute(SQL_GRANT_TABLE) + + con.commit() + ### Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename_3, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + ''' + SQL_habitat = "CREATE TABLE " + schema + "."+ tablename + champ_habitat + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + SQL_trigger_concat_cd_cb = "CREATE TRIGGER concat_cd_cb" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.concat_cd_cb();" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'habitat_modele_v3'""" + + cur.execute(SQL_habitat) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + cur.execute(SQL_trigger_concat_cd_cb) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + ''' + ### Creation de la table travaux prevus + if self.couche_travaux_prevus.isChecked(): + #**********Poly + if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '': + tablename = schema + "_travaux_prevus_poly" + else : + tablename = schema + "_travaux_prevus_poly_" + self.annee_5.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multipolygon + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'travaux_prevus_poly_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_travaux_prevus) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + #**********ligne + if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '': + tablename = schema + "_travaux_prevus_ligne" + else : + tablename = schema + "_travaux_prevus_ligne_" + self.annee_5.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multilinestring + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" + SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'travaux_prevus_ligne_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_travaux_prevus) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_trigger_length_m) + cur.execute(SQL_trigger_length_km) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + #**********point + if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '': + tablename = schema + "_travaux_prevus_point" + else : + tablename = schema + "_travaux_prevus_point_" + self.annee_5.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_point + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'travaux_prevus_point_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_travaux_prevus) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_trigger_coordonnees) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + ### Creation de la table vierge + if self.couche_vierge.isChecked(): + if self.annee_4.text() == 'aaaa' or self.annee_4.text() == '': + tablename = schema + "_" + self.nom_couche_vierge.text().lower() + else : + tablename = schema + "_" + self.nom_couche_vierge.text().lower() + "_" + self.annee_4.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + if self.couche_vierge_point.isChecked() == 1 : + champ_vierge = champ_viergePoint + + if self.couche_vierge_ligne.isChecked() == 1 : + champ_vierge = champ_viergeLigne + + if self.couche_vierge_polygone.isChecked() == 1 : + champ_vierge = champ_viergePolygone + + SQL_vierge = "CREATE TABLE " + schema + "."+ tablename + champ_vierge + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" + SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" + SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" + + cur.execute(SQL_vierge) + cur.execute(SQL_pkey) + + if self.couche_vierge_point.isChecked() == 1 : + cur.execute(SQL_trigger_coordonnees) + + if self.couche_vierge_ligne.isChecked() == 1 : + cur.execute(SQL_trigger_length_m) + cur.execute(SQL_trigger_length_km) + + if self.couche_vierge_polygone.isChecked() == 1 : + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + + con.commit() + + ### Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + else : + con.commit() + + con.close() + pass \ No newline at end of file diff --git a/CenRa_POSTGIS/postgis_editor.py b/CenRa_POSTGIS/postgis_editor.py new file mode 100644 index 00000000..c581304f --- /dev/null +++ b/CenRa_POSTGIS/postgis_editor.py @@ -0,0 +1,449 @@ +# -*- coding: utf-8 -*- + +from __future__ import absolute_import +# Import the PyQt and QGIS libraries +from builtins import next +from builtins import str +from builtins import object +import qgis +from qgis.PyQt.QtCore import QSettings +from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog +from qgis.PyQt.QtGui import QIcon +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5 import QtGui +from qgis.core import * +from qgis.core import QgsDataSourceUri + +from .tools.PythonSQL import * +from .tools.resources import ( + load_ui, + resources_path, + login_base, + send_issues, +) +from .issues import CenRa_Issues + +import os.path +import webbrowser, os +import psycopg2 +import psycopg2.extras +import base64 +from qgis.utils import iface + +EDITOR_CLASS = load_ui('CenRa_PostgisTable_base.ui') + +class Postgis_Editor(QDialog, EDITOR_CLASS): + + def __init__(self, parent=None): + _ = parent + super().__init__() + self.setupUi(self) + self.settings = QgsSettings() + self.s = QSettings() + self.setWindowIcon(QtGui.QIcon(resources_path('icons','icon.png'))) + self.iface = iface + + ### Outil Ajout de nouvelles couche a un dossier + def raise_(self): + first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password) + first_cur = first_conn.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_cur.execute("SELECT mdp_w, login_w FROM pg_catalog.pg_user t1, admin_sig.vm_users_sig t2 WHERE t2.oid = t1.usesysid AND (login_w = '" + os_user + "' OR login_w = '" + os_user + "')") + res_ident = first_cur.fetchone() + mdp = base64.b64decode(str(res_ident[0])).decode('utf-8') + user = res_ident[1] + + con = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=" + user + " password=" + mdp) + cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_conn.close() + # Creation de la liste des schemas de la base de donnees + SQL = """WITH list_schema AS ( + select schemaname,'sig' as group from pg_catalog.pg_tables + where schemaname ~ E'^_(0|1|2|3|4|6|7|f)' + group by schemaname + order by schemaname) + + select string_agg(schemaname,',') + from list_schema + group by "group";""" + + cur.execute(SQL) + + list_brut = str(next(cur)) + list = list_brut [2:-2] + listItems = list.split(",") + + con.close() + + self.schema.clear() + self.schema.addItems(listItems) + self.schema.setCurrentIndex(-1) # Pour ne pas commencer la liste au premier schema + + # show the dialog + self.show() + # Run the dialog event loop + result = self.exec_() + # See if OK was pressed + if result == 1: +#******************************debut script********************************* + first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password) + first_cur = first_conn.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_cur.execute("SELECT mdp_w, login_w FROM pg_catalog.pg_user t1, admin_sig.vm_users_sig t2 WHERE t2.oid = t1.usesysid AND (login_w = '" + os_user + "' OR login_w = '" + os_user + "')") + res_ident = first_cur.fetchone() + mdp = base64.b64decode(str(res_ident[0])).decode('utf-8') + user = res_ident[1] + con = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=" + user + " password=" + mdp) + cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_conn.close() + + if self.schema.currentIndex() == -1 : + QMessageBox.warning(None, "Oups :", "Veuillez choisir un nom de dossier.") + return + + schema = self.schema.currentText() + + ### Creation de la table contour + if self.couche_contour.isChecked(): # Verifie si la checkbox est cochee + if self.annee_1.text() == 'aaaa' or self.annee_1.text() == '': + tablename = schema + "_contour" + else : + tablename = schema + "_contour_" + self.annee_1.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + SQL_contour = "CREATE TABLE " + schema + "."+ tablename + champ_contour + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'contour_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_contour) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + ### Creation de la table habitat + + if self.couche_habitat.isChecked(): + if self.annee_2.text() == 'aaaa' or self.annee_2.text() == '': + tablename = schema + "_habitat" + else : + tablename = schema + "_habitat_" + self.annee_2.text() + + tablename_1=tablename+"_points" + tablename_qgis = tablename_1[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_1 + champ_vegethab_point + SQL_pkey = "ALTER TABLE " + schema + "." + tablename_1 + " ADD CONSTRAINT " + tablename_1 + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename_1 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_1 + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename_1 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'vegethab_points_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_1+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_VEGETHAB) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_coordonnees) + cur.execute(SQL_style) + cur.execute(SQL_GRANT_TABLE) + + con.commit() + ### Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename_1, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + tablename_2=tablename+"_lignes" + tablename_qgis = tablename_2[1:] + SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_2 + champ_vegethab_multilinestring + SQL_pkey = "ALTER TABLE " + schema + "." + tablename_2 + " ADD CONSTRAINT " + tablename_2 + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" + SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename_2 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'vegethab_lignes_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_2+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_VEGETHAB) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_length_m) + cur.execute(SQL_trigger_length_km) + cur.execute(SQL_style) + cur.execute(SQL_GRANT_TABLE) + + con.commit() + ### Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename_2, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + tablename_3=tablename+"_polygones" + tablename_qgis = tablename_3[1:] + SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_3 + champ_vegethab_multipolygon + SQL_pkey = "ALTER TABLE " + schema + "." + tablename_3 + " ADD CONSTRAINT " + tablename_3 + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename_3 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'vegethab_polygones_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename_3+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_VEGETHAB) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + cur.execute(SQL_style) + cur.execute(SQL_GRANT_TABLE) + + con.commit() + ### Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename_3, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + ''' + SQL_habitat = "CREATE TABLE " + schema + "."+ tablename + champ_habitat + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + SQL_trigger_concat_cd_cb = "CREATE TRIGGER concat_cd_cb" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.concat_cd_cb();" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'habitat_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_habitat) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + cur.execute(SQL_trigger_concat_cd_cb) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + ''' + ### Creation de la table travaux prevus + if self.couche_travaux_prevus.isChecked(): + #**********Poly + if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '': + tablename = schema + "_travaux_prevus_poly" + else : + tablename = schema + "_travaux_prevus_poly_" + self.annee_5.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multipolygon + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'travaux_prevus_poly_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_travaux_prevus) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + #**********ligne + if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '': + tablename = schema + "_travaux_prevus_ligne" + else : + tablename = schema + "_travaux_prevus_ligne_" + self.annee_5.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multilinestring + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" + SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'travaux_prevus_ligne_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_travaux_prevus) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_trigger_length_m) + cur.execute(SQL_trigger_length_km) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + #**********point + if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '': + tablename = schema + "_travaux_prevus_point" + else : + tablename = schema + "_travaux_prevus_point_" + self.annee_5.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_point + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();" + SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();" + SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" + + SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time) + SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now() + FROM layer_styles + WHERE description = 'travaux_prevus_point_modele_v3'""" + SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+schema+"."+tablename+"_gid_seq TO grp_qgis;" + + cur.execute(SQL_travaux_prevus) + cur.execute(SQL_pkey) + cur.execute(SQL_trigger_date_creation) + cur.execute(SQL_trigger_date_maj) + cur.execute(SQL_trigger_coordonnees) + cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles + cur.execute(SQL_GRANT_TABLE) + + con.commit() + + ## Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + ### Creation de la table vierge + if self.couche_vierge.isChecked(): + if self.annee_4.text() == 'aaaa' or self.annee_4.text() == '': + tablename = schema + "_" + self.nom_couche_vierge.text().lower() + else : + tablename = schema + "_" + self.nom_couche_vierge.text().lower() + "_" + self.annee_4.text() + tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis + + if self.couche_vierge_point.isChecked() == 1 : + champ_vierge = champ_viergePoint + + if self.couche_vierge_ligne.isChecked() == 1 : + champ_vierge = champ_viergeLigne + + if self.couche_vierge_polygone.isChecked() == 1 : + champ_vierge = champ_viergePolygone + + SQL_vierge = "CREATE TABLE " + schema + "."+ tablename + champ_vierge + SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" + + SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();" + SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();" + SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();" + SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();" + SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();" + + cur.execute(SQL_vierge) + cur.execute(SQL_pkey) + + if self.couche_vierge_point.isChecked() == 1 : + cur.execute(SQL_trigger_coordonnees) + + if self.couche_vierge_ligne.isChecked() == 1 : + cur.execute(SQL_trigger_length_m) + cur.execute(SQL_trigger_length_km) + + if self.couche_vierge_polygone.isChecked() == 1 : + cur.execute(SQL_trigger_area_m2) + cur.execute(SQL_trigger_area_ha) + + con.commit() + + ### Affichage de la table + uri = QgsDataSourceUri() + # set host name, port, database name, username and password + uri.setConnection(host ,port ,dbname ,user ,mdp) + # set database schema, table name, geometry column and optionaly subset (WHERE clause) + uri.setDataSource(schema, tablename, geom) + + layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres") + + else : + con.commit() + + con.close() + pass \ No newline at end of file diff --git a/CenRa_POSTGIS/resources_rc.py b/CenRa_POSTGIS/resources_rc.py deleted file mode 100644 index 3773ee3d..00000000 --- a/CenRa_POSTGIS/resources_rc.py +++ /dev/null @@ -1,914 +0,0 @@ -# -*- coding: utf-8 -*- - -# Resource object code -# -# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2) -# -# WARNING! All changes made in this file will be lost! - -from PyQt5 import QtCore - -qt_resource_data = b"\ -\x00\x00\x15\x6a\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x22\x00\x00\x00\x23\x08\x06\x00\x00\x01\x86\x1c\xe8\xf1\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\x2e\x23\ -\x01\x78\xa5\x3f\x76\x00\x00\x0a\x4f\x69\x43\x43\x50\x50\x68\x6f\ -\x74\x6f\x73\x68\x6f\x70\x20\x49\x43\x43\x20\x70\x72\x6f\x66\x69\ -\x6c\x65\x00\x00\x78\xda\x9d\x53\x67\x54\x53\xe9\x16\x3d\xf7\xde\ -\xf4\x42\x4b\x88\x80\x94\x4b\x6f\x52\x15\x08\x20\x52\x42\x8b\x80\ -\x14\x91\x26\x2a\x21\x09\x10\x4a\x88\x21\xa1\xd9\x15\x51\xc1\x11\ -\x45\x45\x04\x1b\xc8\xa0\x88\x03\x8e\x8e\x80\x8c\x15\x51\x2c\x0c\ -\x8a\x0a\xd8\x07\xe4\x21\xa2\x8e\x83\xa3\x88\x8a\xca\xfb\xe1\x7b\ -\xa3\x6b\xd6\xbc\xf7\xe6\xcd\xfe\xb5\xd7\x3e\xe7\xac\xf3\x9d\xb3\ -\xcf\x07\xc0\x08\x0c\x96\x48\x33\x51\x35\x80\x0c\xa9\x42\x1e\x11\ -\xe0\x83\xc7\xc4\xc6\xe1\xe4\x2e\x40\x81\x0a\x24\x70\x00\x10\x08\ -\xb3\x64\x21\x73\xfd\x23\x01\x00\xf8\x7e\x3c\x3c\x2b\x22\xc0\x07\ -\xbe\x00\x01\x78\xd3\x0b\x08\x00\xc0\x4d\x9b\xc0\x30\x1c\x87\xff\ -\x0f\xea\x42\x99\x5c\x01\x80\x84\x01\xc0\x74\x91\x38\x4b\x08\x80\ -\x14\x00\x40\x7a\x8e\x42\xa6\x00\x40\x46\x01\x80\x9d\x98\x26\x53\ -\x00\xa0\x04\x00\x60\xcb\x63\x62\xe3\x00\x50\x2d\x00\x60\x27\x7f\ -\xe6\xd3\x00\x80\x9d\xf8\x99\x7b\x01\x00\x5b\x94\x21\x15\x01\xa0\ -\x91\x00\x20\x13\x65\x88\x44\x00\x68\x3b\x00\xac\xcf\x56\x8a\x45\ -\x00\x58\x30\x00\x14\x66\x4b\xc4\x39\x00\xd8\x2d\x00\x30\x49\x57\ -\x66\x48\x00\xb0\xb7\x00\xc0\xce\x10\x0b\xb2\x00\x08\x0c\x00\x30\ -\x51\x88\x85\x29\x00\x04\x7b\x00\x60\xc8\x23\x23\x78\x00\x84\x99\ -\x00\x14\x46\xf2\x57\x3c\xf1\x2b\xae\x10\xe7\x2a\x00\x00\x78\x99\ -\xb2\x3c\xb9\x24\x39\x45\x81\x5b\x08\x2d\x71\x07\x57\x57\x2e\x1e\ -\x28\xce\x49\x17\x2b\x14\x36\x61\x02\x61\x9a\x40\x2e\xc2\x79\x99\ -\x19\x32\x81\x34\x0f\xe0\xf3\xcc\x00\x00\xa0\x91\x15\x11\xe0\x83\ -\xf3\xfd\x78\xce\x0e\xae\xce\xce\x36\x8e\xb6\x0e\x5f\x2d\xea\xbf\ -\x06\xff\x22\x62\x62\xe3\xfe\xe5\xcf\xab\x70\x40\x00\x00\xe1\x74\ -\x7e\xd1\xfe\x2c\x2f\xb3\x1a\x80\x3b\x06\x80\x6d\xfe\xa2\x25\xee\ -\x04\x68\x5e\x0b\xa0\x75\xf7\x8b\x66\xb2\x0f\x40\xb5\x00\xa0\xe9\ -\xda\x57\xf3\x70\xf8\x7e\x3c\x3c\x45\xa1\x90\xb9\xd9\xd9\xe5\xe4\ -\xe4\xd8\x4a\xc4\x42\x5b\x61\xca\x57\x7d\xfe\x67\xc2\x5f\xc0\x57\ -\xfd\x6c\xf9\x7e\x3c\xfc\xf7\xf5\xe0\xbe\xe2\x24\x81\x32\x5d\x81\ -\x47\x04\xf8\xe0\xc2\xcc\xf4\x4c\xa5\x1c\xcf\x92\x09\x84\x62\xdc\ -\xe6\x8f\x47\xfc\xb7\x0b\xff\xfc\x1d\xd3\x22\xc4\x49\x62\xb9\x58\ -\x2a\x14\xe3\x51\x12\x71\x8e\x44\x9a\x8c\xf3\x32\xa5\x22\x89\x42\ -\x92\x29\xc5\x25\xd2\xff\x64\xe2\xdf\x2c\xfb\x03\x3e\xdf\x35\x00\ -\xb0\x6a\x3e\x01\x7b\x91\x2d\xa8\x5d\x63\x03\xf6\x4b\x27\x10\x58\ -\x74\xc0\xe2\xf7\x00\x00\xf2\xbb\x6f\xc1\xd4\x28\x08\x03\x80\x68\ -\x83\xe1\xcf\x77\xff\xef\x3f\xfd\x47\xa0\x25\x00\x80\x66\x49\x92\ -\x71\x00\x00\x5e\x44\x24\x2e\x54\xca\xb3\x3f\xc7\x08\x00\x00\x44\ -\xa0\x81\x2a\xb0\x41\x1b\xf4\xc1\x18\x2c\xc0\x06\x1c\xc1\x05\xdc\ -\xc1\x0b\xfc\x60\x36\x84\x42\x24\xc4\xc2\x42\x10\x42\x0a\x64\x80\ -\x1c\x72\x60\x29\xac\x82\x42\x28\x86\xcd\xb0\x1d\x2a\x60\x2f\xd4\ -\x40\x1d\x34\xc0\x51\x68\x86\x93\x70\x0e\x2e\xc2\x55\xb8\x0e\x3d\ -\x70\x0f\xfa\x61\x08\x9e\xc1\x28\xbc\x81\x09\x04\x41\xc8\x08\x13\ -\x61\x21\xda\x88\x01\x62\x8a\x58\x23\x8e\x08\x17\x99\x85\xf8\x21\ -\xc1\x48\x04\x12\x8b\x24\x20\xc9\x88\x14\x51\x22\x4b\x91\x35\x48\ -\x31\x52\x8a\x54\x20\x55\x48\x1d\xf2\x3d\x72\x02\x39\x87\x5c\x46\ -\xba\x91\x3b\xc8\x00\x32\x82\xfc\x86\xbc\x47\x31\x94\x81\xb2\x51\ -\x3d\xd4\x0c\xb5\x43\xb9\xa8\x37\x1a\x84\x46\xa2\x0b\xd0\x64\x74\ -\x31\x9a\x8f\x16\xa0\x9b\xd0\x72\xb4\x1a\x3d\x8c\x36\xa1\xe7\xd0\ -\xab\x68\x0f\xda\x8f\x3e\x43\xc7\x30\xc0\xe8\x18\x07\x33\xc4\x6c\ -\x30\x2e\xc6\xc3\x42\xb1\x38\x2c\x09\x93\x63\xcb\xb1\x22\xac\x0c\ -\xab\xc6\x1a\xb0\x56\xac\x03\xbb\x89\xf5\x63\xcf\xb1\x77\x04\x12\ -\x81\x45\xc0\x09\x36\x04\x77\x42\x20\x61\x1e\x41\x48\x58\x4c\x58\ -\x4e\xd8\x48\xa8\x20\x1c\x24\x34\x11\xda\x09\x37\x09\x03\x84\x51\ -\xc2\x27\x22\x93\xa8\x4b\xb4\x26\xba\x11\xf9\xc4\x18\x62\x32\x31\ -\x87\x58\x48\x2c\x23\xd6\x12\x8f\x13\x2f\x10\x7b\x88\x43\xc4\x37\ -\x24\x12\x89\x43\x32\x27\xb9\x90\x02\x49\xb1\xa4\x54\xd2\x12\xd2\ -\x46\xd2\x6e\x52\x23\xe9\x2c\xa9\x9b\x34\x48\x1a\x23\x93\xc9\xda\ -\x64\x6b\xb2\x07\x39\x94\x2c\x20\x2b\xc8\x85\xe4\x9d\xe4\xc3\xe4\ -\x33\xe4\x1b\xe4\x21\xf2\x5b\x0a\x9d\x62\x40\x71\xa4\xf8\x53\xe2\ -\x28\x52\xca\x6a\x4a\x19\xe5\x10\xe5\x34\xe5\x06\x65\x98\x32\x41\ -\x55\xa3\x9a\x52\xdd\xa8\xa1\x54\x11\x35\x8f\x5a\x42\xad\xa1\xb6\ -\x52\xaf\x51\x87\xa8\x13\x34\x75\x9a\x39\xcd\x83\x16\x49\x4b\xa5\ -\xad\xa2\x95\xd3\x1a\x68\x17\x68\xf7\x69\xaf\xe8\x74\xba\x11\xdd\ -\x95\x1e\x4e\x97\xd0\x57\xd2\xcb\xe9\x47\xe8\x97\xe8\x03\xf4\x77\ -\x0c\x0d\x86\x15\x83\xc7\x88\x67\x28\x19\x9b\x18\x07\x18\x67\x19\ -\x77\x18\xaf\x98\x4c\xa6\x19\xd3\x8b\x19\xc7\x54\x30\x37\x31\xeb\ -\x98\xe7\x99\x0f\x99\x6f\x55\x58\x2a\xb6\x2a\x7c\x15\x91\xca\x0a\ -\x95\x4a\x95\x26\x95\x1b\x2a\x2f\x54\xa9\xaa\xa6\xaa\xde\xaa\x0b\ -\x55\xf3\x55\xcb\x54\x8f\xa9\x5e\x53\x7d\xae\x46\x55\x33\x53\xe3\ -\xa9\x09\xd4\x96\xab\x55\xaa\x9d\x50\xeb\x53\x1b\x53\x67\xa9\x3b\ -\xa8\x87\xaa\x67\xa8\x6f\x54\x3f\xa4\x7e\x59\xfd\x89\x06\x59\xc3\ -\x4c\xc3\x4f\x43\xa4\x51\xa0\xb1\x5f\xe3\xbc\xc6\x20\x0b\x63\x19\ -\xb3\x78\x2c\x21\x6b\x0d\xab\x86\x75\x81\x35\xc4\x26\xb1\xcd\xd9\ -\x7c\x76\x2a\xbb\x98\xfd\x1d\xbb\x8b\x3d\xaa\xa9\xa1\x39\x43\x33\ -\x4a\x33\x57\xb3\x52\xf3\x94\x66\x3f\x07\xe3\x98\x71\xf8\x9c\x74\ -\x4e\x09\xe7\x28\xa7\x97\xf3\x7e\x8a\xde\x14\xef\x29\xe2\x29\x1b\ -\xa6\x34\x4c\xb9\x31\x65\x5c\x6b\xaa\x96\x97\x96\x58\xab\x48\xab\ -\x51\xab\x47\xeb\xbd\x36\xae\xed\xa7\x9d\xa6\xbd\x45\xbb\x59\xfb\ -\x81\x0e\x41\xc7\x4a\x27\x5c\x27\x47\x67\x8f\xce\x05\x9d\xe7\x53\ -\xd9\x53\xdd\xa7\x0a\xa7\x16\x4d\x3d\x3a\xf5\xae\x2e\xaa\x6b\xa5\ -\x1b\xa1\xbb\x44\x77\xbf\x6e\xa7\xee\x98\x9e\xbe\x5e\x80\x9e\x4c\ -\x6f\xa7\xde\x79\xbd\xe7\xfa\x1c\x7d\x2f\xfd\x54\xfd\x6d\xfa\xa7\ -\xf5\x47\x0c\x58\x06\xb3\x0c\x24\x06\xdb\x0c\xce\x18\x3c\xc5\x35\ -\x71\x6f\x3c\x1d\x2f\xc7\xdb\xf1\x51\x43\x5d\xc3\x40\x43\xa5\x61\ -\x95\x61\x97\xe1\x84\x91\xb9\xd1\x3c\xa3\xd5\x46\x8d\x46\x0f\x8c\ -\x69\xc6\x5c\xe3\x24\xe3\x6d\xc6\x6d\xc6\xa3\x26\x06\x26\x21\x26\ -\x4b\x4d\xea\x4d\xee\x9a\x52\x4d\xb9\xa6\x29\xa6\x3b\x4c\x3b\x4c\ -\xc7\xcd\xcc\xcd\xa2\xcd\xd6\x99\x35\x9b\x3d\x31\xd7\x32\xe7\x9b\ -\xe7\x9b\xd7\x9b\xdf\xb7\x60\x5a\x78\x5a\x2c\xb6\xa8\xb6\xb8\x65\ -\x49\xb2\xe4\x5a\xa6\x59\xee\xb6\xbc\x6e\x85\x5a\x39\x59\xa5\x58\ -\x55\x5a\x5d\xb3\x46\xad\x9d\xad\x25\xd6\xbb\xad\xbb\xa7\x11\xa7\ -\xb9\x4e\x93\x4e\xab\x9e\xd6\x67\xc3\xb0\xf1\xb6\xc9\xb6\xa9\xb7\ -\x19\xb0\xe5\xd8\x06\xdb\xae\xb6\x6d\xb6\x7d\x61\x67\x62\x17\x67\ -\xb7\xc5\xae\xc3\xee\x93\xbd\x93\x7d\xba\x7d\x8d\xfd\x3d\x07\x0d\ -\x87\xd9\x0e\xab\x1d\x5a\x1d\x7e\x73\xb4\x72\x14\x3a\x56\x3a\xde\ -\x9a\xce\x9c\xee\x3f\x7d\xc5\xf4\x96\xe9\x2f\x67\x58\xcf\x10\xcf\ -\xd8\x33\xe3\xb6\x13\xcb\x29\xc4\x69\x9d\x53\x9b\xd3\x47\x67\x17\ -\x67\xb9\x73\x83\xf3\x88\x8b\x89\x4b\x82\xcb\x2e\x97\x3e\x2e\x9b\ -\x1b\xc6\xdd\xc8\xbd\xe4\x4a\x74\xf5\x71\x5d\xe1\x7a\xd2\xf5\x9d\ -\x9b\xb3\x9b\xc2\xed\xa8\xdb\xaf\xee\x36\xee\x69\xee\x87\xdc\x9f\ -\xcc\x34\x9f\x29\x9e\x59\x33\x73\xd0\xc3\xc8\x43\xe0\x51\xe5\xd1\ -\x3f\x0b\x9f\x95\x30\x6b\xdf\xac\x7e\x4f\x43\x4f\x81\x67\xb5\xe7\ -\x23\x2f\x63\x2f\x91\x57\xad\xd7\xb0\xb7\xa5\x77\xaa\xf7\x61\xef\ -\x17\x3e\xf6\x3e\x72\x9f\xe3\x3e\xe3\x3c\x37\xde\x32\xde\x59\x5f\ -\xcc\x37\xc0\xb7\xc8\xb7\xcb\x4f\xc3\x6f\x9e\x5f\x85\xdf\x43\x7f\ -\x23\xff\x64\xff\x7a\xff\xd1\x00\xa7\x80\x25\x01\x67\x03\x89\x81\ -\x41\x81\x5b\x02\xfb\xf8\x7a\x7c\x21\xbf\x8e\x3f\x3a\xdb\x65\xf6\ -\xb2\xd9\xed\x41\x8c\xa0\xb9\x41\x15\x41\x8f\x82\xad\x82\xe5\xc1\ -\xad\x21\x68\xc8\xec\x90\xad\x21\xf7\xe7\x98\xce\x91\xce\x69\x0e\ -\x85\x50\x7e\xe8\xd6\xd0\x07\x61\xe6\x61\x8b\xc3\x7e\x0c\x27\x85\ -\x87\x85\x57\x86\x3f\x8e\x70\x88\x58\x1a\xd1\x31\x97\x35\x77\xd1\ -\xdc\x43\x73\xdf\x44\xfa\x44\x96\x44\xde\x9b\x67\x31\x4f\x39\xaf\ -\x2d\x4a\x35\x2a\x3e\xaa\x2e\x6a\x3c\xda\x37\xba\x34\xba\x3f\xc6\ -\x2e\x66\x59\xcc\xd5\x58\x9d\x58\x49\x6c\x4b\x1c\x39\x2e\x2a\xae\ -\x36\x6e\x6c\xbe\xdf\xfc\xed\xf3\x87\xe2\x9d\xe2\x0b\xe3\x7b\x17\ -\x98\x2f\xc8\x5d\x70\x79\xa1\xce\xc2\xf4\x85\xa7\x16\xa9\x2e\x12\ -\x2c\x3a\x96\x40\x4c\x88\x4e\x38\x94\xf0\x41\x10\x2a\xa8\x16\x8c\ -\x25\xf2\x13\x77\x25\x8e\x0a\x79\xc2\x1d\xc2\x67\x22\x2f\xd1\x36\ -\xd1\x88\xd8\x43\x5c\x2a\x1e\x4e\xf2\x48\x2a\x4d\x7a\x92\xec\x91\ -\xbc\x35\x79\x24\xc5\x33\xa5\x2c\xe5\xb9\x84\x27\xa9\x90\xbc\x4c\ -\x0d\x4c\xdd\x9b\x3a\x9e\x16\x9a\x76\x20\x6d\x32\x3d\x3a\xbd\x31\ -\x83\x92\x91\x90\x71\x42\xaa\x21\x4d\x93\xb6\x67\xea\x67\xe6\x66\ -\x76\xcb\xac\x65\x85\xb2\xfe\xc5\x6e\x8b\xb7\x2f\x1e\x95\x07\xc9\ -\x6b\xb3\x90\xac\x05\x59\x2d\x0a\xb6\x42\xa6\xe8\x54\x5a\x28\xd7\ -\x2a\x07\xb2\x67\x65\x57\x66\xbf\xcd\x89\xca\x39\x96\xab\x9e\x2b\ -\xcd\xed\xcc\xb3\xca\xdb\x90\x37\x9c\xef\x9f\xff\xed\x12\xc2\x12\ -\xe1\x92\xb6\xa5\x86\x4b\x57\x2d\x1d\x58\xe6\xbd\xac\x6a\x39\xb2\ -\x3c\x71\x79\xdb\x0a\xe3\x15\x05\x2b\x86\x56\x06\xac\x3c\xb8\x8a\ -\xb6\x2a\x6d\xd5\x4f\xab\xed\x57\x97\xae\x7e\xbd\x26\x7a\x4d\x6b\ -\x81\x5e\xc1\xca\x82\xc1\xb5\x01\x6b\xeb\x0b\x55\x0a\xe5\x85\x7d\ -\xeb\xdc\xd7\xed\x5d\x4f\x58\x2f\x59\xdf\xb5\x61\xfa\x86\x9d\x1b\ -\x3e\x15\x89\x8a\xae\x14\xdb\x17\x97\x15\x7f\xd8\x28\xdc\x78\xe5\ -\x1b\x87\x6f\xca\xbf\x99\xdc\x94\xb4\xa9\xab\xc4\xb9\x64\xcf\x66\ -\xd2\x66\xe9\xe6\xde\x2d\x9e\x5b\x0e\x96\xaa\x97\xe6\x97\x0e\x6e\ -\x0d\xd9\xda\xb4\x0d\xdf\x56\xb4\xed\xf5\xf6\x45\xdb\x2f\x97\xcd\ -\x28\xdb\xbb\x83\xb6\x43\xb9\xa3\xbf\x3c\xb8\xbc\x65\xa7\xc9\xce\ -\xcd\x3b\x3f\x54\xa4\x54\xf4\x54\xfa\x54\x36\xee\xd2\xdd\xb5\x61\ -\xd7\xf8\x6e\xd1\xee\x1b\x7b\xbc\xf6\x34\xec\xd5\xdb\x5b\xbc\xf7\ -\xfd\x3e\xc9\xbe\xdb\x55\x01\x55\x4d\xd5\x66\xd5\x65\xfb\x49\xfb\ -\xb3\xf7\x3f\xae\x89\xaa\xe9\xf8\x96\xfb\x6d\x5d\xad\x4e\x6d\x71\ -\xed\xc7\x03\xd2\x03\xfd\x07\x23\x0e\xb6\xd7\xb9\xd4\xd5\x1d\xd2\ -\x3d\x54\x52\x8f\xd6\x2b\xeb\x47\x0e\xc7\x1f\xbe\xfe\x9d\xef\x77\ -\x2d\x0d\x36\x0d\x55\x8d\x9c\xc6\xe2\x23\x70\x44\x79\xe4\xe9\xf7\ -\x09\xdf\xf7\x1e\x0d\x3a\xda\x76\x8c\x7b\xac\xe1\x07\xd3\x1f\x76\ -\x1d\x67\x1d\x2f\x6a\x42\x9a\xf2\x9a\x46\x9b\x53\x9a\xfb\x5b\x62\ -\x5b\xba\x4f\xcc\x3e\xd1\xd6\xea\xde\x7a\xfc\x47\xdb\x1f\x0f\x9c\ -\x34\x3c\x59\x79\x4a\xf3\x54\xc9\x69\xda\xe9\x82\xd3\x93\x67\xf2\ -\xcf\x8c\x9d\x95\x9d\x7d\x7e\x2e\xf9\xdc\x60\xdb\xa2\xb6\x7b\xe7\ -\x63\xce\xdf\x6a\x0f\x6f\xef\xba\x10\x74\xe1\xd2\x45\xff\x8b\xe7\ -\x3b\xbc\x3b\xce\x5c\xf2\xb8\x74\xf2\xb2\xdb\xe5\x13\x57\xb8\x57\ -\x9a\xaf\x3a\x5f\x6d\xea\x74\xea\x3c\xfe\x93\xd3\x4f\xc7\xbb\x9c\ -\xbb\x9a\xae\xb9\x5c\x6b\xb9\xee\x7a\xbd\xb5\x7b\x66\xf7\xe9\x1b\ -\x9e\x37\xce\xdd\xf4\xbd\x79\xf1\x16\xff\xd6\xd5\x9e\x39\x3d\xdd\ -\xbd\xf3\x7a\x6f\xf7\xc5\xf7\xf5\xdf\x16\xdd\x7e\x72\x27\xfd\xce\ -\xcb\xbb\xd9\x77\x27\xee\xad\xbc\x4f\xbc\x5f\xf4\x40\xed\x41\xd9\ -\x43\xdd\x87\xd5\x3f\x5b\xfe\xdc\xd8\xef\xdc\x7f\x6a\xc0\x77\xa0\ -\xf3\xd1\xdc\x47\xf7\x06\x85\x83\xcf\xfe\x91\xf5\x8f\x0f\x43\x05\ -\x8f\x99\x8f\xcb\x86\x0d\x86\xeb\x9e\x38\x3e\x39\x39\xe2\x3f\x72\ -\xfd\xe9\xfc\xa7\x43\xcf\x64\xcf\x26\x9e\x17\xfe\xa2\xfe\xcb\xae\ -\x17\x16\x2f\x7e\xf8\xd5\xeb\xd7\xce\xd1\x98\xd1\xa1\x97\xf2\x97\ -\x93\xbf\x6d\x7c\xa5\xfd\xea\xc0\xeb\x19\xaf\xdb\xc6\xc2\xc6\x1e\ -\xbe\xc9\x78\x33\x31\x5e\xf4\x56\xfb\xed\xc1\x77\xdc\x77\x1d\xef\ -\xa3\xdf\x0f\x4f\xe4\x7c\x20\x7f\x28\xff\x68\xf9\xb1\xf5\x53\xd0\ -\xa7\xfb\x93\x19\x93\x93\xff\x04\x03\x98\xf3\xfc\x63\x33\x2d\xdb\ -\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x25\x00\x00\x80\x83\ -\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\x30\x00\x00\xea\x60\ -\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\x46\x00\x00\x0a\x95\ -\x49\x44\x41\x54\x78\xda\x62\xfa\xff\xff\x3f\x03\x3a\x66\x62\x60\ -\x60\x60\x28\xdf\xa1\xf5\xbf\x76\xb7\xc9\x7f\x06\x28\x60\x62\x60\ -\x60\x60\xd0\x95\x70\x67\xf8\xf5\xf7\x1b\x03\x8a\xa0\xc9\xca\x45\ -\x0c\x33\xba\xb2\x19\x0a\xe6\x14\xfc\x87\x0b\x6a\xb4\xbf\x65\xfc\ -\xb8\x2f\x9b\xf1\xf5\xc7\xd7\x0c\x0c\x0c\x0c\x0c\x00\x00\x00\x00\ -\xff\xff\x62\xc2\xb0\xa4\x74\xbb\xda\xff\x3f\xff\x7e\xfe\x9f\x7c\ -\x3c\x0c\xa2\x8d\x91\x91\xa5\xe8\xe4\xe3\xd5\x0c\x35\xd5\xf6\x5f\ -\x19\x18\x18\x18\x98\x92\x0e\xbe\xec\xb3\x89\xfc\xc3\xc8\xc0\xc0\ -\xc0\x5d\x30\xa7\xe0\x3f\x93\x46\xfb\x5b\xc6\xff\xc7\x12\x18\x60\ -\x06\x03\x00\x00\x00\xff\xff\x62\xfa\xff\xff\x3f\x43\xe9\x76\x8d\ -\xa4\xb6\x03\x4e\xff\x0b\xb7\x28\xfe\x5f\x7d\xb9\xe6\xff\xaf\xbf\ -\x3f\x4e\x60\xf8\x86\x91\x81\x71\x92\xbe\xa4\x17\x83\xba\xa8\x2d\ -\xc3\xf1\x47\xcb\x18\x78\x6d\x96\xf8\x30\x20\x01\x26\x06\x06\x06\ -\x86\xc4\x83\x2f\x2f\xef\xbb\x37\x7b\xc1\xed\x37\xc7\x18\x3e\xbf\ -\x97\x64\x64\xe7\xf8\xf1\x1a\x43\x91\x46\xfb\x5b\xcb\x1e\x8f\x1b\ -\x89\x3d\x5e\xb7\x19\x67\x45\x1f\x61\xf8\xb8\x2f\x9b\xf1\xd5\xeb\ -\xd7\xff\x5f\xbd\x7e\xfd\x9f\x81\x81\x81\x01\x00\x00\x00\xff\xff\ -\x62\xc2\x16\xa2\x28\xee\x29\xdf\xa1\xc5\xb0\xfc\x62\xe9\xff\xf2\ -\x1d\x5a\xff\x1b\xf6\x5a\xfc\xff\xfe\xfb\xd3\xff\x9f\x7f\xbe\x20\ -\xac\x61\x61\x62\x67\x38\xff\x7c\x33\x43\xb0\x4e\x23\xc3\x8b\xcf\ -\xb7\x19\xe6\x9d\x4d\x67\xa8\xdc\xa9\x87\x50\xf0\xe7\xdf\x0f\x06\ -\x06\x06\x46\x06\x3e\x76\x71\x06\x7e\x0e\x71\x86\x47\x9f\x8f\xa6\ -\xcd\xed\x2d\xe6\x86\x2b\xf8\xc5\xcc\xc4\xf0\xe7\xef\x4f\x06\x45\ -\x41\x13\x86\x1f\x7f\x3e\x33\x3c\xb8\xa9\x3b\x9b\x81\x81\x01\x6e\ -\x07\x53\xfa\xbe\x17\x5c\x8e\x77\x7e\x31\x7e\xfb\xfd\x81\x81\x83\ -\x85\xf7\xda\xb6\x35\x3e\x69\xe8\x5e\xf5\x51\x7d\xf1\xfd\xff\x97\ -\x26\x05\x89\x19\x5d\xd9\x4a\x4c\x4c\xff\x66\xfa\xfa\x1c\x67\x28\ -\x9e\x57\xfc\x3f\xa6\x2f\xe6\x3f\x93\x46\xfb\xdb\x55\x1a\xed\x6f\ -\x19\x65\xdb\x7f\xbd\xfc\xb8\x2f\x9b\xf3\xe3\xbe\x6c\x46\x6e\x0e\ -\x1e\x86\x72\xdf\x0a\x06\x6e\x0e\x1e\x48\x60\xa1\x83\x2f\xdf\x3f\ -\x33\x14\x2e\x2a\x60\xf8\xf2\xfd\x33\x03\x80\x91\xfa\x07\x69\x23\ -\x0c\xc3\x00\xfe\x7c\x26\x27\x26\x1a\x8d\x29\x96\x46\x23\x76\xd0\ -\x34\x69\xb1\x81\x62\x41\x4a\x41\x17\x0b\x22\x38\xa4\x83\x8b\x9b\ -\xba\x18\x23\x84\x84\x6b\x91\x76\x28\x1a\x52\x8a\x8a\xd2\x16\x9d\ -\x3a\x08\x59\x8a\x8a\x94\xe8\x21\x6a\x88\x1d\x1c\x1c\x34\x5a\xfc\ -\x03\x1a\x44\x10\xce\x82\xf1\x3c\x8f\x6b\x4c\x72\x77\x9f\x83\x38\ -\x08\x1e\xf4\x9d\xde\xe9\xc7\x33\x3c\xef\x5b\x40\x29\x05\xcb\xb9\ -\xf1\x69\xe5\x15\xfc\xbf\x2a\x4b\x58\xce\xed\x65\x39\xf7\x20\xcb\ -\x3d\xfd\x3c\xb0\xe8\xe9\x65\x39\x57\x7d\xf7\xac\x85\x50\x4a\xa1\ -\x69\x0a\x74\xab\x0a\x00\x72\x4e\xd0\x4c\x4c\x99\x04\x90\x19\x9b\ -\xc9\xf1\x41\xd5\x72\xef\xc2\x6f\x92\xdf\x0b\x0d\xe6\xed\x62\xa6\ -\x5c\x0b\x2e\xd4\xd2\x10\xf7\xe4\xbe\x50\x37\x08\xa5\x2a\x18\x43\ -\x11\x6d\xac\xee\x40\x5e\xfd\x87\x17\x95\xed\xa8\xb6\x3e\x47\x6c\ -\xff\x0b\x32\x8a\x04\x42\x88\x8c\x02\x91\x94\xca\xdd\xfa\x48\x83\ -\xe3\x2d\xdc\x15\xcd\x27\x7f\x4e\x17\x91\xd7\x72\x68\xa9\xeb\xc3\ -\xc1\xd9\x1a\xa4\xec\x19\x6a\x6d\x8d\xb0\x99\xab\x9e\x4d\x86\x07\ -\xc7\x47\x27\x2c\x09\x5d\xe4\xe5\xd4\x24\x2c\xbf\x7f\xd6\x48\xca\ -\xc5\x47\x33\x63\x45\x26\x7f\x89\xd2\xa2\x0a\x24\xf9\x18\x8e\xc5\ -\xf5\xa5\x89\xb1\xf6\x63\x23\xa3\xf6\x03\x68\xd2\x45\xb2\x46\xd2\ -\xe6\xe4\x33\xb4\x2b\xf1\xf7\x75\x5b\xf2\x9c\xec\x1c\x4d\x93\xf2\ -\xe2\x07\x64\x39\xd6\x42\xbe\x0e\x05\x5a\x65\xa9\xe4\xf6\xb4\xb7\ -\x74\x11\x00\xf3\x00\x18\x00\x81\x87\x62\x0e\x8f\xa6\xfc\x78\x3f\ -\xd0\x89\xc3\x5d\xa7\xd7\x60\x54\x52\x00\x54\x00\xdf\x7a\x3a\x8f\ -\x3c\xc3\x73\x23\xf4\x5c\x10\xe8\xf0\xdc\x08\x0d\xfd\x08\xdd\xf9\ -\x04\x70\x45\xd2\x8a\x2b\x92\xde\x73\x45\xd2\x70\x0c\xc9\x50\x57\ -\xbb\x20\xc6\x7d\xb3\x62\xdc\xf7\x58\x8c\xfb\x8c\x62\xdc\xe7\xe7\ -\x05\x1e\x9b\xa9\x0d\x64\xaf\xae\xb0\x99\xda\x00\x2f\xf0\x77\x92\ -\xfc\xd7\x44\x83\x51\x12\x0d\x46\x89\xdd\x6e\x27\xb7\x3b\x00\x5c\ -\x53\x52\x6e\x21\x4d\xc6\x61\x18\xff\xfd\xbf\xa9\x13\xc3\x9a\xc7\ -\x0d\x52\xd3\x28\x0f\x95\x9a\x74\x20\xb5\x2e\x23\xf2\x00\x51\x61\ -\x20\xb6\x8a\xea\x42\xb4\x5a\x61\x59\x41\x65\x18\x49\x91\x22\x11\ -\x41\x60\x41\x9a\x90\x84\xbb\x30\x48\x0d\x59\x84\xa6\x61\x05\x91\ -\x59\xd0\x81\x3c\xa4\x96\xb9\x60\x6d\x6e\x73\xf3\xfb\xfe\xdd\x78\ -\x11\xc1\x2c\x2f\x9e\xbb\x87\xdf\xc5\xfb\x3e\xcf\xf3\xcf\x56\xfe\ -\x8f\x14\x80\x53\xed\xa9\x58\x07\xab\x38\xd9\x9e\x92\x5e\xd9\xb1\ -\xea\x44\x65\x47\xda\xd5\xae\x4f\x37\xcf\x9f\xea\x48\x2b\xac\x78\ -\xb4\x32\xea\x5a\x77\x1e\x52\x6a\x48\xa9\x06\xce\x89\x10\x0a\x9f\ -\x7f\xf6\xcb\x9c\x84\xe2\x37\x3e\xd5\x5d\x0b\xe2\xa4\x2a\x67\x2f\ -\x0a\x44\x5b\x79\x76\xcb\xd4\xd1\x9c\x56\xe9\xd7\xbc\x46\x9f\xea\ -\x61\xbe\xef\x64\x4d\x4d\x0f\xd1\x33\xdc\x44\x51\x7a\x0d\x7e\xd5\ -\x4b\x86\x69\x1b\x85\xa9\xa7\xa9\xed\x29\xe4\x4c\xe7\x1a\xce\x74\ -\x66\x58\xcf\x3e\x5e\x1b\x18\x12\xa4\x84\x84\xfa\x55\x0f\x41\x4a\ -\x08\xd6\xc1\x0b\xac\x36\x6e\xe5\xd9\xf0\x3d\x5a\x07\x2f\xb0\xcc\ -\x90\xc9\x8a\xa8\x6c\xc2\x82\x0d\x9f\x03\x1d\x5c\x01\xf0\xa9\x1e\ -\xd7\xf2\xc8\x8d\x24\x18\x32\x99\x99\x75\x73\x70\xfd\x2d\x04\x0a\ -\xa6\xf0\x95\x8c\xfd\x7a\xc7\x07\x7b\x77\x6e\xd8\x6c\x8e\x79\xb1\ -\x7b\x7f\x60\x88\x22\x14\xe7\xa8\x63\x80\x8f\x53\xbd\x24\x47\x6f\ -\x46\x93\x2a\x4f\xbf\xdc\xc6\x3e\x3d\x82\x40\x61\x72\x74\x45\xef\ -\xe5\x2b\x69\x27\xea\x6e\x46\x04\x86\xac\x5b\xba\xc3\x9e\x12\xbd\ -\x19\x21\x74\xa4\xc4\x6c\xa1\xe1\xe5\x21\x16\x85\x44\x90\x9d\x50\ -\x4c\x6c\x78\xd2\x74\xff\x93\x6d\x28\x8a\x56\x0b\xc4\x06\x84\xf4\ -\x7d\x6b\x73\x0e\x4e\xda\xd8\x10\xb7\x93\xde\x91\x66\xbc\xfe\x5f\ -\x98\xc2\x93\x79\x3e\x7a\x9f\xe9\xd9\xe1\xa6\xb1\xaf\x86\xc4\x39\ -\xff\xee\x80\x90\x63\x9d\xe3\x10\xac\x17\xaf\xc7\x1f\x92\x97\x52\ -\x81\x39\xeb\x06\x5f\x1d\x6f\x01\x70\xbb\xc3\x4a\x15\x9d\x56\x35\ -\xe7\x4f\x08\x08\xf1\x06\x2b\x47\xca\x1f\x4f\x44\x6a\xba\xa0\xd0\ -\xd6\x81\x73\x38\x7d\x3f\x10\x42\x41\x1f\x3a\xb3\xf1\x4e\xfd\x61\ -\x74\x3a\x75\xdf\x9c\xff\xfb\x7c\x39\xd9\x35\x13\x24\xec\xa5\x5d\ -\x13\x7a\xe3\xf8\xa4\x88\x5f\x92\x21\x46\xbe\x18\xc5\xf5\x4b\x96\ -\x17\x9a\xa6\x34\xff\xe1\x6f\x9b\x0f\x12\x0a\xe0\xd7\x09\xc7\xf6\ -\x8f\xb2\xb7\xde\xbc\x9e\xf6\x07\x45\x77\xa5\xa6\x48\xa0\x18\xa0\ -\xb0\xa0\x8f\xbd\x7b\xde\x7f\xb2\x34\x58\xa4\xa5\xc1\x22\xcb\x6f\ -\x95\xcb\x92\xba\x12\xf9\x27\x64\x13\x90\x04\xc4\x80\xcc\x79\x35\ -\x93\x01\xc8\x03\x80\x15\xf0\x01\x93\x26\x83\x89\x44\x63\x12\x71\ -\xd1\xf1\xc4\x45\xc7\x93\x68\x4c\xc2\x64\x30\xf1\xf7\x9e\x0c\xa5\ -\xd6\xd8\xa7\x52\x6b\xec\x34\xb5\xdc\xc1\x61\x2b\xd3\x1c\xb6\xb2\ -\x5d\x0e\x5b\x99\xde\x61\x2b\x33\x3a\xbd\x2e\x0a\x32\xf3\x31\xe7\ -\x9a\x31\xe7\x9a\x29\xc8\xcc\xc7\xe9\x75\x2d\x6c\x4f\x5c\x1e\x27\ -\xd5\xd6\x6a\x8e\x37\x5a\x38\xde\x68\xa1\xda\x5a\x8d\xcb\xe3\x5c\ -\xf8\x28\xcd\xdb\x9d\x85\xac\xda\xdf\x02\xf8\xcd\x7a\xb9\xc6\xc4\ -\x51\x46\x61\xf8\x9d\xd9\x9d\xd9\x4b\x61\xcb\xdd\x52\x96\x22\x97\ -\x05\xc1\x8a\xa1\x2d\x6c\x4d\x05\x0b\x05\x0b\x06\x94\x04\x41\xdb\ -\xa4\xda\xc4\x6a\xdb\xb0\x82\x0d\x54\x2c\x44\x29\xb1\x11\xa5\xd6\ -\x46\x4b\x7f\x78\x69\x09\x12\xa2\x41\xc4\xc6\x00\xe5\xba\xdc\x2c\ -\xb7\x02\xb5\x85\x0a\x85\x42\x29\x72\xdd\x05\xba\xbb\xb0\x37\x76\ -\xd9\xf1\x87\x8c\x11\x52\x4d\x16\xf8\x26\xe7\xc7\xcc\x9c\xbc\x79\ -\xe6\x9b\x2f\xe7\xbc\x67\x53\x2a\xdb\xa6\x55\xc7\x15\xe7\x88\xf7\ -\xaf\x3f\x85\xec\x3a\x29\xaa\x87\x2e\xed\x3d\xd7\x10\x7a\x29\xad\ -\xd2\xbb\x39\xbd\x52\x32\x92\x51\x15\xa0\xce\xa8\x0a\x30\x65\x54\ -\x05\x58\x4e\x5f\xf7\xb3\xd4\x0c\x7d\x65\xc8\xae\x93\xce\xa5\x57\ -\x4a\x06\x53\xcb\x77\x34\x9d\xaa\xf0\x2a\xc8\xa8\xf2\x4f\x2b\xba\ -\x95\xfa\x3c\x7b\xe4\x36\xb4\xad\x04\x41\xda\x18\xcc\x0b\xc3\x35\ -\x43\x5f\xb6\xcd\xe9\xfe\x94\xd9\x0b\xc4\xa1\xd1\xbe\xa7\x3c\x3d\ -\xec\x82\x44\x4b\xcb\x3a\x2e\x00\xc2\xc2\x98\x09\x8a\xc3\xe7\x05\ -\xba\x46\x3b\x7c\x18\xd1\x22\xc9\x8b\x19\x08\x3b\x14\xf8\xd9\x51\ -\x7f\x97\x88\xcf\x67\x16\xef\xb7\x7c\xda\x14\xa5\xcf\x6b\x8e\xce\ -\xcd\x6d\x8a\x44\x6e\x53\xa4\xf5\x20\xcc\xdf\x57\x10\x00\x2f\x2e\ -\x49\x83\xe6\x08\xb1\x60\x54\xa2\xe2\xde\x79\x58\x18\x13\x12\x9e\ -\xce\x81\xc6\x30\x83\xd0\x27\x8f\x22\xdc\xeb\x1d\xe8\x97\xd4\xc8\ -\xaa\x09\x42\x66\x75\x20\x4a\xfa\xb2\x70\x67\xba\x0a\x93\x9a\x7e\ -\x28\xb5\x23\x98\xd5\x8e\xc6\xa8\xf4\x93\x84\x4a\x3f\x69\x3d\x48\ -\x88\xf8\x55\x48\xc5\x89\xda\x60\x71\x02\x7c\x1c\xf7\x82\x22\x79\ -\x30\x2d\x1b\x40\x73\x04\x18\x9a\x6b\xc3\xd2\xb2\x01\xf9\xaf\x4c\ -\xc3\xdb\x21\x04\x27\xaf\x39\x61\x46\x3b\x8c\x83\x92\x14\x44\x78\ -\x1f\x87\x54\x9c\x88\x20\xd7\x58\x04\xba\x46\xab\x82\xc5\x09\x65\ -\x21\x1e\xb1\x6f\x79\x39\xfb\x33\x3e\x2e\x3b\xad\x07\xb9\x39\xfe\ -\x33\x3a\xc7\x4b\x75\x9d\xe3\xa5\xa6\x7e\x45\x23\x8c\xcb\x3a\x48\ -\xdd\x93\xb0\xf3\x89\x28\x18\xcd\x5a\xf0\x29\x1b\xcc\xeb\xc6\xa1\ -\xd4\x8e\x62\xb7\x38\x1e\x63\xaa\xdb\x68\x7a\x70\x15\xcd\x0f\x0a\ -\xd0\x35\xf1\x0b\xee\x2a\x6a\x0a\xef\xcd\xca\xed\x2f\x17\xcf\x25\ -\x1c\x93\x79\x76\xa7\xa6\x44\x22\x25\x65\xbf\xf5\x20\x04\x41\x82\ -\x20\xc8\x79\x30\x8c\x86\x7d\xd6\x35\x51\x86\xa1\xd9\x1b\x38\x29\ -\x2d\x46\xb0\x5b\x02\xc6\x54\x77\x70\xed\x8f\x8f\x31\xa8\xfc\x0d\ -\x24\x41\x42\x40\x6d\x85\x9b\x28\x00\xbe\x4e\xfb\xb0\x6b\xc7\x81\ -\x82\xdb\x8d\x47\xd0\xd1\xbc\x27\x9e\x01\x18\x1e\xcf\x22\xa3\x69\ -\x66\xbd\x35\x80\x51\x72\x48\x6a\xc2\xd5\xd6\x0f\x52\xf7\x24\xf8\ -\x39\x85\x61\x5e\x3f\x8e\xd6\xb1\x62\x50\x1c\x3e\x6a\xef\xe7\x43\ -\xc4\x77\x46\x9c\xff\x07\xf0\x77\x0e\x87\xce\xa4\xc2\xe8\xa3\x1e\ -\x0c\xce\x37\xf4\x35\xf6\xb6\xb5\x74\x74\x0b\xc1\xe7\x21\x73\x45\ -\xec\x23\x00\xe1\x56\x83\x78\xce\xe8\xe0\xae\xd4\x33\x16\x66\xf9\ -\x59\x85\xfe\xe1\xb1\x9b\xe3\xa5\xe8\x9d\xa9\x46\x94\x44\x06\x7b\ -\x81\x1b\x14\xda\x11\xbc\xec\x9f\x89\xc0\x6d\x31\x28\xe9\xcd\xc4\ -\xf0\x7c\x27\xb8\x24\x0d\x8a\xc3\x07\x8f\x66\xde\xeb\xed\xda\x6d\ -\xd1\x2e\xda\xbe\x4e\x90\x96\xe0\x15\x49\x67\x00\xfb\xad\x06\x79\ -\xa1\x5f\xcd\x39\x70\x57\xed\x78\xa2\x6e\x5a\x14\x36\xa0\xb9\x62\ -\x26\x49\x82\xa6\x44\x45\xf2\xe1\xaf\x61\x30\x2d\xc0\x65\x8b\x17\ -\x4c\xcb\x7a\xdc\x78\x58\x04\x21\x65\x07\x80\x01\x80\x59\x1e\xdf\ -\xf8\xcc\xef\x1d\xbb\xea\xbb\x5b\xf7\x38\xf0\x78\xc6\x0b\x6b\xf4\ -\x39\xeb\xf9\x35\x3b\x00\x64\x1b\x29\x42\x2d\x99\xd6\x37\xca\x6a\ -\xa7\x6c\x43\x07\xd4\x6f\x50\xb4\x2d\xd9\xae\x28\x7f\xb1\x7d\xa2\ -\xf4\x72\xe0\xb6\xe8\x1f\x9c\x84\x1e\xf9\x24\x57\x97\xc4\x13\x18\ -\x6d\xe6\x94\x8e\xce\xdf\x7d\x71\xbc\xaf\xbe\x22\xd2\x9e\xa2\x4d\ -\x1d\x00\xb6\xff\x4b\x4f\x0d\xa0\x75\x3d\x20\x87\x01\x24\xb1\x1b\ -\x64\xe4\x12\x1a\xdf\x69\xfd\xad\x13\x75\xd3\xfb\xd2\xeb\x54\xb5\ -\xdb\x8b\x73\x64\x83\x4d\x85\x87\x7f\x2d\x8b\x7f\xf7\xe2\xd9\xd3\ -\x3f\x9d\x3f\x73\x46\x58\x72\xe5\x50\xa4\x76\x71\x4b\x03\x97\x6b\ -\x9e\x07\xe0\xc3\x0a\xc5\xc5\xb6\x21\x2e\xb6\x6d\xeb\x91\xd7\xfa\ -\x2b\xd8\x86\x9d\x76\x35\x8d\x59\xdb\xbc\xd9\x06\xbe\x16\xe4\x13\ -\x00\x2f\x01\x68\x07\x60\x00\x60\x06\xe0\x6e\xe6\x10\x59\x66\x9a\ -\x8a\x20\x35\x23\xb8\xf8\x4d\x3d\x7a\x7a\xed\xc1\xa3\xf1\x2d\xcd\ -\x37\x2a\x08\x92\xa9\x7d\xdc\x39\x10\x09\x45\x10\x09\x45\xab\x9a\ -\x7e\xf2\x41\xd9\x2a\x03\xc0\xe6\x3c\x0e\x84\x01\xd0\x03\xe0\x39\ -\x00\x82\x95\x69\xc5\x09\x40\x0c\x00\x39\x00\xe8\x2d\x14\x9b\xfb\ -\x36\x00\x02\x80\x18\x40\x22\x80\xb3\x2b\x1f\xf2\x26\x00\x27\x21\ -\x2d\x84\x90\x16\xae\x82\xb3\x13\xda\xad\xba\x5f\x9b\xf3\x0f\xc8\ -\x8a\x2b\xf9\xcf\x10\x9f\xd3\xa2\xf0\xc7\x02\x76\xf2\x61\x63\x42\ -\x2d\x4f\x2e\x55\xcb\x93\x73\xd4\xf2\xe4\x2c\xb5\x3c\xf9\x7b\xb5\ -\x3c\x79\x6e\xea\xd1\x14\xd8\x69\x88\x0d\x76\x2a\x62\x83\xcd\xb1\ -\xda\x4b\x6c\x74\x29\x34\x8a\xcd\x31\x35\x1b\x5d\x79\xe5\x79\xff\ -\xfb\xfe\xaf\x01\x00\x3d\xb9\x4e\x56\xa9\x10\xde\xd1\x00\x00\x00\ -\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x15\xd7\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x22\x00\x00\x00\x23\x08\x06\x00\x00\x01\x86\x1c\xe8\xf1\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\x2e\x23\ -\x01\x78\xa5\x3f\x76\x00\x00\x0a\x4f\x69\x43\x43\x50\x50\x68\x6f\ -\x74\x6f\x73\x68\x6f\x70\x20\x49\x43\x43\x20\x70\x72\x6f\x66\x69\ -\x6c\x65\x00\x00\x78\xda\x9d\x53\x67\x54\x53\xe9\x16\x3d\xf7\xde\ -\xf4\x42\x4b\x88\x80\x94\x4b\x6f\x52\x15\x08\x20\x52\x42\x8b\x80\ -\x14\x91\x26\x2a\x21\x09\x10\x4a\x88\x21\xa1\xd9\x15\x51\xc1\x11\ -\x45\x45\x04\x1b\xc8\xa0\x88\x03\x8e\x8e\x80\x8c\x15\x51\x2c\x0c\ -\x8a\x0a\xd8\x07\xe4\x21\xa2\x8e\x83\xa3\x88\x8a\xca\xfb\xe1\x7b\ -\xa3\x6b\xd6\xbc\xf7\xe6\xcd\xfe\xb5\xd7\x3e\xe7\xac\xf3\x9d\xb3\ -\xcf\x07\xc0\x08\x0c\x96\x48\x33\x51\x35\x80\x0c\xa9\x42\x1e\x11\ -\xe0\x83\xc7\xc4\xc6\xe1\xe4\x2e\x40\x81\x0a\x24\x70\x00\x10\x08\ -\xb3\x64\x21\x73\xfd\x23\x01\x00\xf8\x7e\x3c\x3c\x2b\x22\xc0\x07\ -\xbe\x00\x01\x78\xd3\x0b\x08\x00\xc0\x4d\x9b\xc0\x30\x1c\x87\xff\ -\x0f\xea\x42\x99\x5c\x01\x80\x84\x01\xc0\x74\x91\x38\x4b\x08\x80\ -\x14\x00\x40\x7a\x8e\x42\xa6\x00\x40\x46\x01\x80\x9d\x98\x26\x53\ -\x00\xa0\x04\x00\x60\xcb\x63\x62\xe3\x00\x50\x2d\x00\x60\x27\x7f\ -\xe6\xd3\x00\x80\x9d\xf8\x99\x7b\x01\x00\x5b\x94\x21\x15\x01\xa0\ -\x91\x00\x20\x13\x65\x88\x44\x00\x68\x3b\x00\xac\xcf\x56\x8a\x45\ -\x00\x58\x30\x00\x14\x66\x4b\xc4\x39\x00\xd8\x2d\x00\x30\x49\x57\ -\x66\x48\x00\xb0\xb7\x00\xc0\xce\x10\x0b\xb2\x00\x08\x0c\x00\x30\ -\x51\x88\x85\x29\x00\x04\x7b\x00\x60\xc8\x23\x23\x78\x00\x84\x99\ -\x00\x14\x46\xf2\x57\x3c\xf1\x2b\xae\x10\xe7\x2a\x00\x00\x78\x99\ -\xb2\x3c\xb9\x24\x39\x45\x81\x5b\x08\x2d\x71\x07\x57\x57\x2e\x1e\ -\x28\xce\x49\x17\x2b\x14\x36\x61\x02\x61\x9a\x40\x2e\xc2\x79\x99\ -\x19\x32\x81\x34\x0f\xe0\xf3\xcc\x00\x00\xa0\x91\x15\x11\xe0\x83\ -\xf3\xfd\x78\xce\x0e\xae\xce\xce\x36\x8e\xb6\x0e\x5f\x2d\xea\xbf\ -\x06\xff\x22\x62\x62\xe3\xfe\xe5\xcf\xab\x70\x40\x00\x00\xe1\x74\ -\x7e\xd1\xfe\x2c\x2f\xb3\x1a\x80\x3b\x06\x80\x6d\xfe\xa2\x25\xee\ -\x04\x68\x5e\x0b\xa0\x75\xf7\x8b\x66\xb2\x0f\x40\xb5\x00\xa0\xe9\ -\xda\x57\xf3\x70\xf8\x7e\x3c\x3c\x45\xa1\x90\xb9\xd9\xd9\xe5\xe4\ -\xe4\xd8\x4a\xc4\x42\x5b\x61\xca\x57\x7d\xfe\x67\xc2\x5f\xc0\x57\ -\xfd\x6c\xf9\x7e\x3c\xfc\xf7\xf5\xe0\xbe\xe2\x24\x81\x32\x5d\x81\ -\x47\x04\xf8\xe0\xc2\xcc\xf4\x4c\xa5\x1c\xcf\x92\x09\x84\x62\xdc\ -\xe6\x8f\x47\xfc\xb7\x0b\xff\xfc\x1d\xd3\x22\xc4\x49\x62\xb9\x58\ -\x2a\x14\xe3\x51\x12\x71\x8e\x44\x9a\x8c\xf3\x32\xa5\x22\x89\x42\ -\x92\x29\xc5\x25\xd2\xff\x64\xe2\xdf\x2c\xfb\x03\x3e\xdf\x35\x00\ -\xb0\x6a\x3e\x01\x7b\x91\x2d\xa8\x5d\x63\x03\xf6\x4b\x27\x10\x58\ -\x74\xc0\xe2\xf7\x00\x00\xf2\xbb\x6f\xc1\xd4\x28\x08\x03\x80\x68\ -\x83\xe1\xcf\x77\xff\xef\x3f\xfd\x47\xa0\x25\x00\x80\x66\x49\x92\ -\x71\x00\x00\x5e\x44\x24\x2e\x54\xca\xb3\x3f\xc7\x08\x00\x00\x44\ -\xa0\x81\x2a\xb0\x41\x1b\xf4\xc1\x18\x2c\xc0\x06\x1c\xc1\x05\xdc\ -\xc1\x0b\xfc\x60\x36\x84\x42\x24\xc4\xc2\x42\x10\x42\x0a\x64\x80\ -\x1c\x72\x60\x29\xac\x82\x42\x28\x86\xcd\xb0\x1d\x2a\x60\x2f\xd4\ -\x40\x1d\x34\xc0\x51\x68\x86\x93\x70\x0e\x2e\xc2\x55\xb8\x0e\x3d\ -\x70\x0f\xfa\x61\x08\x9e\xc1\x28\xbc\x81\x09\x04\x41\xc8\x08\x13\ -\x61\x21\xda\x88\x01\x62\x8a\x58\x23\x8e\x08\x17\x99\x85\xf8\x21\ -\xc1\x48\x04\x12\x8b\x24\x20\xc9\x88\x14\x51\x22\x4b\x91\x35\x48\ -\x31\x52\x8a\x54\x20\x55\x48\x1d\xf2\x3d\x72\x02\x39\x87\x5c\x46\ -\xba\x91\x3b\xc8\x00\x32\x82\xfc\x86\xbc\x47\x31\x94\x81\xb2\x51\ -\x3d\xd4\x0c\xb5\x43\xb9\xa8\x37\x1a\x84\x46\xa2\x0b\xd0\x64\x74\ -\x31\x9a\x8f\x16\xa0\x9b\xd0\x72\xb4\x1a\x3d\x8c\x36\xa1\xe7\xd0\ -\xab\x68\x0f\xda\x8f\x3e\x43\xc7\x30\xc0\xe8\x18\x07\x33\xc4\x6c\ -\x30\x2e\xc6\xc3\x42\xb1\x38\x2c\x09\x93\x63\xcb\xb1\x22\xac\x0c\ -\xab\xc6\x1a\xb0\x56\xac\x03\xbb\x89\xf5\x63\xcf\xb1\x77\x04\x12\ -\x81\x45\xc0\x09\x36\x04\x77\x42\x20\x61\x1e\x41\x48\x58\x4c\x58\ -\x4e\xd8\x48\xa8\x20\x1c\x24\x34\x11\xda\x09\x37\x09\x03\x84\x51\ -\xc2\x27\x22\x93\xa8\x4b\xb4\x26\xba\x11\xf9\xc4\x18\x62\x32\x31\ -\x87\x58\x48\x2c\x23\xd6\x12\x8f\x13\x2f\x10\x7b\x88\x43\xc4\x37\ -\x24\x12\x89\x43\x32\x27\xb9\x90\x02\x49\xb1\xa4\x54\xd2\x12\xd2\ -\x46\xd2\x6e\x52\x23\xe9\x2c\xa9\x9b\x34\x48\x1a\x23\x93\xc9\xda\ -\x64\x6b\xb2\x07\x39\x94\x2c\x20\x2b\xc8\x85\xe4\x9d\xe4\xc3\xe4\ -\x33\xe4\x1b\xe4\x21\xf2\x5b\x0a\x9d\x62\x40\x71\xa4\xf8\x53\xe2\ -\x28\x52\xca\x6a\x4a\x19\xe5\x10\xe5\x34\xe5\x06\x65\x98\x32\x41\ -\x55\xa3\x9a\x52\xdd\xa8\xa1\x54\x11\x35\x8f\x5a\x42\xad\xa1\xb6\ -\x52\xaf\x51\x87\xa8\x13\x34\x75\x9a\x39\xcd\x83\x16\x49\x4b\xa5\ -\xad\xa2\x95\xd3\x1a\x68\x17\x68\xf7\x69\xaf\xe8\x74\xba\x11\xdd\ -\x95\x1e\x4e\x97\xd0\x57\xd2\xcb\xe9\x47\xe8\x97\xe8\x03\xf4\x77\ -\x0c\x0d\x86\x15\x83\xc7\x88\x67\x28\x19\x9b\x18\x07\x18\x67\x19\ -\x77\x18\xaf\x98\x4c\xa6\x19\xd3\x8b\x19\xc7\x54\x30\x37\x31\xeb\ -\x98\xe7\x99\x0f\x99\x6f\x55\x58\x2a\xb6\x2a\x7c\x15\x91\xca\x0a\ -\x95\x4a\x95\x26\x95\x1b\x2a\x2f\x54\xa9\xaa\xa6\xaa\xde\xaa\x0b\ -\x55\xf3\x55\xcb\x54\x8f\xa9\x5e\x53\x7d\xae\x46\x55\x33\x53\xe3\ -\xa9\x09\xd4\x96\xab\x55\xaa\x9d\x50\xeb\x53\x1b\x53\x67\xa9\x3b\ -\xa8\x87\xaa\x67\xa8\x6f\x54\x3f\xa4\x7e\x59\xfd\x89\x06\x59\xc3\ -\x4c\xc3\x4f\x43\xa4\x51\xa0\xb1\x5f\xe3\xbc\xc6\x20\x0b\x63\x19\ -\xb3\x78\x2c\x21\x6b\x0d\xab\x86\x75\x81\x35\xc4\x26\xb1\xcd\xd9\ -\x7c\x76\x2a\xbb\x98\xfd\x1d\xbb\x8b\x3d\xaa\xa9\xa1\x39\x43\x33\ -\x4a\x33\x57\xb3\x52\xf3\x94\x66\x3f\x07\xe3\x98\x71\xf8\x9c\x74\ -\x4e\x09\xe7\x28\xa7\x97\xf3\x7e\x8a\xde\x14\xef\x29\xe2\x29\x1b\ -\xa6\x34\x4c\xb9\x31\x65\x5c\x6b\xaa\x96\x97\x96\x58\xab\x48\xab\ -\x51\xab\x47\xeb\xbd\x36\xae\xed\xa7\x9d\xa6\xbd\x45\xbb\x59\xfb\ -\x81\x0e\x41\xc7\x4a\x27\x5c\x27\x47\x67\x8f\xce\x05\x9d\xe7\x53\ -\xd9\x53\xdd\xa7\x0a\xa7\x16\x4d\x3d\x3a\xf5\xae\x2e\xaa\x6b\xa5\ -\x1b\xa1\xbb\x44\x77\xbf\x6e\xa7\xee\x98\x9e\xbe\x5e\x80\x9e\x4c\ -\x6f\xa7\xde\x79\xbd\xe7\xfa\x1c\x7d\x2f\xfd\x54\xfd\x6d\xfa\xa7\ -\xf5\x47\x0c\x58\x06\xb3\x0c\x24\x06\xdb\x0c\xce\x18\x3c\xc5\x35\ -\x71\x6f\x3c\x1d\x2f\xc7\xdb\xf1\x51\x43\x5d\xc3\x40\x43\xa5\x61\ -\x95\x61\x97\xe1\x84\x91\xb9\xd1\x3c\xa3\xd5\x46\x8d\x46\x0f\x8c\ -\x69\xc6\x5c\xe3\x24\xe3\x6d\xc6\x6d\xc6\xa3\x26\x06\x26\x21\x26\ -\x4b\x4d\xea\x4d\xee\x9a\x52\x4d\xb9\xa6\x29\xa6\x3b\x4c\x3b\x4c\ -\xc7\xcd\xcc\xcd\xa2\xcd\xd6\x99\x35\x9b\x3d\x31\xd7\x32\xe7\x9b\ -\xe7\x9b\xd7\x9b\xdf\xb7\x60\x5a\x78\x5a\x2c\xb6\xa8\xb6\xb8\x65\ -\x49\xb2\xe4\x5a\xa6\x59\xee\xb6\xbc\x6e\x85\x5a\x39\x59\xa5\x58\ -\x55\x5a\x5d\xb3\x46\xad\x9d\xad\x25\xd6\xbb\xad\xbb\xa7\x11\xa7\ -\xb9\x4e\x93\x4e\xab\x9e\xd6\x67\xc3\xb0\xf1\xb6\xc9\xb6\xa9\xb7\ -\x19\xb0\xe5\xd8\x06\xdb\xae\xb6\x6d\xb6\x7d\x61\x67\x62\x17\x67\ -\xb7\xc5\xae\xc3\xee\x93\xbd\x93\x7d\xba\x7d\x8d\xfd\x3d\x07\x0d\ -\x87\xd9\x0e\xab\x1d\x5a\x1d\x7e\x73\xb4\x72\x14\x3a\x56\x3a\xde\ -\x9a\xce\x9c\xee\x3f\x7d\xc5\xf4\x96\xe9\x2f\x67\x58\xcf\x10\xcf\ -\xd8\x33\xe3\xb6\x13\xcb\x29\xc4\x69\x9d\x53\x9b\xd3\x47\x67\x17\ -\x67\xb9\x73\x83\xf3\x88\x8b\x89\x4b\x82\xcb\x2e\x97\x3e\x2e\x9b\ -\x1b\xc6\xdd\xc8\xbd\xe4\x4a\x74\xf5\x71\x5d\xe1\x7a\xd2\xf5\x9d\ -\x9b\xb3\x9b\xc2\xed\xa8\xdb\xaf\xee\x36\xee\x69\xee\x87\xdc\x9f\ -\xcc\x34\x9f\x29\x9e\x59\x33\x73\xd0\xc3\xc8\x43\xe0\x51\xe5\xd1\ -\x3f\x0b\x9f\x95\x30\x6b\xdf\xac\x7e\x4f\x43\x4f\x81\x67\xb5\xe7\ -\x23\x2f\x63\x2f\x91\x57\xad\xd7\xb0\xb7\xa5\x77\xaa\xf7\x61\xef\ -\x17\x3e\xf6\x3e\x72\x9f\xe3\x3e\xe3\x3c\x37\xde\x32\xde\x59\x5f\ -\xcc\x37\xc0\xb7\xc8\xb7\xcb\x4f\xc3\x6f\x9e\x5f\x85\xdf\x43\x7f\ -\x23\xff\x64\xff\x7a\xff\xd1\x00\xa7\x80\x25\x01\x67\x03\x89\x81\ -\x41\x81\x5b\x02\xfb\xf8\x7a\x7c\x21\xbf\x8e\x3f\x3a\xdb\x65\xf6\ -\xb2\xd9\xed\x41\x8c\xa0\xb9\x41\x15\x41\x8f\x82\xad\x82\xe5\xc1\ -\xad\x21\x68\xc8\xec\x90\xad\x21\xf7\xe7\x98\xce\x91\xce\x69\x0e\ -\x85\x50\x7e\xe8\xd6\xd0\x07\x61\xe6\x61\x8b\xc3\x7e\x0c\x27\x85\ -\x87\x85\x57\x86\x3f\x8e\x70\x88\x58\x1a\xd1\x31\x97\x35\x77\xd1\ -\xdc\x43\x73\xdf\x44\xfa\x44\x96\x44\xde\x9b\x67\x31\x4f\x39\xaf\ -\x2d\x4a\x35\x2a\x3e\xaa\x2e\x6a\x3c\xda\x37\xba\x34\xba\x3f\xc6\ -\x2e\x66\x59\xcc\xd5\x58\x9d\x58\x49\x6c\x4b\x1c\x39\x2e\x2a\xae\ -\x36\x6e\x6c\xbe\xdf\xfc\xed\xf3\x87\xe2\x9d\xe2\x0b\xe3\x7b\x17\ -\x98\x2f\xc8\x5d\x70\x79\xa1\xce\xc2\xf4\x85\xa7\x16\xa9\x2e\x12\ -\x2c\x3a\x96\x40\x4c\x88\x4e\x38\x94\xf0\x41\x10\x2a\xa8\x16\x8c\ -\x25\xf2\x13\x77\x25\x8e\x0a\x79\xc2\x1d\xc2\x67\x22\x2f\xd1\x36\ -\xd1\x88\xd8\x43\x5c\x2a\x1e\x4e\xf2\x48\x2a\x4d\x7a\x92\xec\x91\ -\xbc\x35\x79\x24\xc5\x33\xa5\x2c\xe5\xb9\x84\x27\xa9\x90\xbc\x4c\ -\x0d\x4c\xdd\x9b\x3a\x9e\x16\x9a\x76\x20\x6d\x32\x3d\x3a\xbd\x31\ -\x83\x92\x91\x90\x71\x42\xaa\x21\x4d\x93\xb6\x67\xea\x67\xe6\x66\ -\x76\xcb\xac\x65\x85\xb2\xfe\xc5\x6e\x8b\xb7\x2f\x1e\x95\x07\xc9\ -\x6b\xb3\x90\xac\x05\x59\x2d\x0a\xb6\x42\xa6\xe8\x54\x5a\x28\xd7\ -\x2a\x07\xb2\x67\x65\x57\x66\xbf\xcd\x89\xca\x39\x96\xab\x9e\x2b\ -\xcd\xed\xcc\xb3\xca\xdb\x90\x37\x9c\xef\x9f\xff\xed\x12\xc2\x12\ -\xe1\x92\xb6\xa5\x86\x4b\x57\x2d\x1d\x58\xe6\xbd\xac\x6a\x39\xb2\ -\x3c\x71\x79\xdb\x0a\xe3\x15\x05\x2b\x86\x56\x06\xac\x3c\xb8\x8a\ -\xb6\x2a\x6d\xd5\x4f\xab\xed\x57\x97\xae\x7e\xbd\x26\x7a\x4d\x6b\ -\x81\x5e\xc1\xca\x82\xc1\xb5\x01\x6b\xeb\x0b\x55\x0a\xe5\x85\x7d\ -\xeb\xdc\xd7\xed\x5d\x4f\x58\x2f\x59\xdf\xb5\x61\xfa\x86\x9d\x1b\ -\x3e\x15\x89\x8a\xae\x14\xdb\x17\x97\x15\x7f\xd8\x28\xdc\x78\xe5\ -\x1b\x87\x6f\xca\xbf\x99\xdc\x94\xb4\xa9\xab\xc4\xb9\x64\xcf\x66\ -\xd2\x66\xe9\xe6\xde\x2d\x9e\x5b\x0e\x96\xaa\x97\xe6\x97\x0e\x6e\ -\x0d\xd9\xda\xb4\x0d\xdf\x56\xb4\xed\xf5\xf6\x45\xdb\x2f\x97\xcd\ -\x28\xdb\xbb\x83\xb6\x43\xb9\xa3\xbf\x3c\xb8\xbc\x65\xa7\xc9\xce\ -\xcd\x3b\x3f\x54\xa4\x54\xf4\x54\xfa\x54\x36\xee\xd2\xdd\xb5\x61\ -\xd7\xf8\x6e\xd1\xee\x1b\x7b\xbc\xf6\x34\xec\xd5\xdb\x5b\xbc\xf7\ -\xfd\x3e\xc9\xbe\xdb\x55\x01\x55\x4d\xd5\x66\xd5\x65\xfb\x49\xfb\ -\xb3\xf7\x3f\xae\x89\xaa\xe9\xf8\x96\xfb\x6d\x5d\xad\x4e\x6d\x71\ -\xed\xc7\x03\xd2\x03\xfd\x07\x23\x0e\xb6\xd7\xb9\xd4\xd5\x1d\xd2\ -\x3d\x54\x52\x8f\xd6\x2b\xeb\x47\x0e\xc7\x1f\xbe\xfe\x9d\xef\x77\ -\x2d\x0d\x36\x0d\x55\x8d\x9c\xc6\xe2\x23\x70\x44\x79\xe4\xe9\xf7\ -\x09\xdf\xf7\x1e\x0d\x3a\xda\x76\x8c\x7b\xac\xe1\x07\xd3\x1f\x76\ -\x1d\x67\x1d\x2f\x6a\x42\x9a\xf2\x9a\x46\x9b\x53\x9a\xfb\x5b\x62\ -\x5b\xba\x4f\xcc\x3e\xd1\xd6\xea\xde\x7a\xfc\x47\xdb\x1f\x0f\x9c\ -\x34\x3c\x59\x79\x4a\xf3\x54\xc9\x69\xda\xe9\x82\xd3\x93\x67\xf2\ -\xcf\x8c\x9d\x95\x9d\x7d\x7e\x2e\xf9\xdc\x60\xdb\xa2\xb6\x7b\xe7\ -\x63\xce\xdf\x6a\x0f\x6f\xef\xba\x10\x74\xe1\xd2\x45\xff\x8b\xe7\ -\x3b\xbc\x3b\xce\x5c\xf2\xb8\x74\xf2\xb2\xdb\xe5\x13\x57\xb8\x57\ -\x9a\xaf\x3a\x5f\x6d\xea\x74\xea\x3c\xfe\x93\xd3\x4f\xc7\xbb\x9c\ -\xbb\x9a\xae\xb9\x5c\x6b\xb9\xee\x7a\xbd\xb5\x7b\x66\xf7\xe9\x1b\ -\x9e\x37\xce\xdd\xf4\xbd\x79\xf1\x16\xff\xd6\xd5\x9e\x39\x3d\xdd\ -\xbd\xf3\x7a\x6f\xf7\xc5\xf7\xf5\xdf\x16\xdd\x7e\x72\x27\xfd\xce\ -\xcb\xbb\xd9\x77\x27\xee\xad\xbc\x4f\xbc\x5f\xf4\x40\xed\x41\xd9\ -\x43\xdd\x87\xd5\x3f\x5b\xfe\xdc\xd8\xef\xdc\x7f\x6a\xc0\x77\xa0\ -\xf3\xd1\xdc\x47\xf7\x06\x85\x83\xcf\xfe\x91\xf5\x8f\x0f\x43\x05\ -\x8f\x99\x8f\xcb\x86\x0d\x86\xeb\x9e\x38\x3e\x39\x39\xe2\x3f\x72\ -\xfd\xe9\xfc\xa7\x43\xcf\x64\xcf\x26\x9e\x17\xfe\xa2\xfe\xcb\xae\ -\x17\x16\x2f\x7e\xf8\xd5\xeb\xd7\xce\xd1\x98\xd1\xa1\x97\xf2\x97\ -\x93\xbf\x6d\x7c\xa5\xfd\xea\xc0\xeb\x19\xaf\xdb\xc6\xc2\xc6\x1e\ -\xbe\xc9\x78\x33\x31\x5e\xf4\x56\xfb\xed\xc1\x77\xdc\x77\x1d\xef\ -\xa3\xdf\x0f\x4f\xe4\x7c\x20\x7f\x28\xff\x68\xf9\xb1\xf5\x53\xd0\ -\xa7\xfb\x93\x19\x93\x93\xff\x04\x03\x98\xf3\xfc\x63\x33\x2d\xdb\ -\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x25\x00\x00\x80\x83\ -\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\x30\x00\x00\xea\x60\ -\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\x46\x00\x00\x0b\x02\ -\x49\x44\x41\x54\x78\xda\x62\xfa\xff\xff\x3f\x03\x3a\x66\x62\x60\ -\x60\x60\x28\xdf\xa1\xf5\xbf\x76\xb7\xc9\x7f\x06\x28\x60\x62\x60\ -\x60\x60\xd0\x95\x70\x67\xf8\xf5\xf7\x1b\x03\x8a\xa0\xc9\xca\x45\ -\x0c\x33\xba\xb2\x19\xae\xed\xf5\xfd\x0f\x17\xd4\x68\x7f\xcb\xf8\ -\x71\x5f\x36\xe3\xfb\x27\x5b\x18\x18\x18\x18\x18\x00\x00\x00\x00\ -\xff\xff\x62\xc2\xb0\xa4\x74\xbb\xda\xff\x3f\xff\x7e\xfe\x9f\x7c\ -\x3c\x0c\xa2\x8d\x91\x91\xa5\xe8\xe4\xe3\xd5\x0c\x35\xd5\xf6\x5f\ -\x19\x18\x18\x18\x98\x92\x0e\xbe\xec\xb3\x89\xfc\xc3\xc8\xc0\xc0\ -\xc0\x7d\x6d\xaf\xef\x7f\x26\x8d\xf6\xb7\x8c\xff\x8f\x25\x30\xc0\ -\x0c\x06\x00\x00\x00\xff\xff\x62\xfa\xff\xff\x3f\x43\xe9\x76\x8d\ -\xa4\xb6\x03\x4e\xff\x0b\xb7\x28\xfe\x5f\x7d\xb9\xe6\xff\xaf\xbf\ -\x3f\x4e\x60\xf8\x86\x91\x81\x71\x92\xbe\xa4\x17\x83\xba\xa8\x2d\ -\xc3\xf1\x47\xcb\x18\x78\x6d\x96\xf8\x30\x20\x01\x26\x06\x06\x06\ -\x86\xc4\x83\x2f\x2f\xef\xbb\x37\x7b\xc1\xed\x37\xc7\x18\x3e\xbf\ -\x97\x64\x64\xe7\xf8\xf1\x1a\x43\x91\x46\xfb\x5b\xcb\x1e\x8f\x1b\ -\x89\x3d\x5e\xb7\x19\x67\x45\x1f\x61\xf8\xb8\x2f\x9b\xf1\xf7\xdf\ -\x1f\xff\x7f\xff\xfd\xf1\x9f\x81\x81\x81\x01\x00\x00\x00\xff\xff\ -\x62\xc2\x16\xa2\x28\xee\x29\xdf\xa1\xc5\xb0\xfc\x62\xe9\xff\xf2\ -\x1d\x5a\xff\x1b\xf6\x5a\xfc\xff\xfe\xfb\xd3\xff\x9f\x7f\xbe\x20\ -\xac\x61\x61\x62\x67\x38\xff\x7c\x33\x43\xb0\x4e\x23\xc3\x8b\xcf\ -\xb7\x19\xe6\x9d\x4d\x67\xa8\xdc\xa9\x87\x50\xf0\xe7\xdf\x0f\x06\ -\x06\x06\x46\x06\x3e\x76\x71\x06\x7e\x0e\x71\x86\x47\x9f\x8f\xa6\ -\xcd\xed\x2d\xe6\x86\x2b\xf8\xc5\xcc\xc4\xf0\xe7\xef\x4f\x06\x45\ -\x41\x13\x86\x1f\x7f\x3e\x33\x3c\xb8\xa9\x3b\x9b\x81\x81\x01\x6e\ -\x07\x53\xfa\xbe\x17\x5c\x8e\x77\x7e\x31\x7e\xfb\xfd\x81\x81\x83\ -\x85\xf7\xda\xb6\x35\x3e\x69\xe8\x5e\xf5\x51\x7d\xf1\xfd\xff\x97\ -\x26\x05\x89\x19\x5d\xd9\x4a\x4c\x4c\xff\x66\x1e\xa9\x58\xc7\xf0\ -\x97\x81\xe1\xff\xe5\x5d\xce\xff\x99\x34\xda\xdf\xae\xd2\x68\x7f\ -\xcb\x28\xdb\xfe\xeb\xe5\xc7\x7d\xd9\x9c\x1f\xf7\x65\x33\x7e\x7a\ -\xbe\x9f\xe1\xe5\xad\x59\x0c\x9f\x9e\xef\x87\x04\x16\x3a\xf8\xcf\ -\xf0\x9f\xe1\xfe\xf1\x74\x86\xff\x0c\xff\x19\x00\x8c\x93\x4f\x48\ -\x53\x71\x00\xc7\x3f\x3f\xb7\x97\x3a\x9d\xcd\x17\x46\xe8\xa4\x0e\ -\x66\x5b\x51\x41\x94\x68\x06\x75\xc8\x28\x44\x0f\x76\xe8\x32\xd9\ -\x41\x4f\xcd\x05\x52\xbc\x42\xea\x10\x2a\x8b\x0e\x51\x54\xe8\x55\ -\xbd\x45\x79\x88\xd9\x43\x56\xc3\xa2\x3a\xec\x34\x8a\xfe\x40\x45\ -\x08\xc1\x0a\x5c\xf5\x7a\xbc\x1e\xdb\xde\x7b\xbf\x0e\x11\x15\x34\ -\xe8\x0b\xdf\xeb\x87\xcf\xe1\xfb\xad\x91\x52\xa2\xe9\x51\x2e\x3e\ -\xd8\x4f\xf2\x6e\x6b\xa3\xa6\x47\x87\x34\x3d\x3a\xa9\xe9\xdb\x2f\ -\x4d\x2c\xef\x3e\xa9\xe9\x91\x9d\xa3\x8b\x41\x21\xa5\xc4\xf3\x1c\ -\xaa\x4e\x15\xc0\x2a\x7f\xf1\xea\x95\xf5\x26\x88\x3b\x6a\x7d\xf8\ -\xbc\xeb\x95\xcf\x4e\x1f\xc9\xdf\x5c\xe7\x0b\x3c\x6b\x50\x9a\xbd\ -\xd3\xf7\x3a\xe4\x19\x7d\xdb\xbf\xa4\x7e\x42\xa4\x74\x51\x7c\x75\ -\xb2\xbb\xfd\x04\x15\xf7\x3b\x7b\x5a\x07\x69\x0f\xed\x22\xfd\xfa\ -\x32\xb6\x63\x22\x84\xb0\xa8\x31\x44\x93\x35\x5a\x1d\xb2\x37\x7c\ -\x9c\x68\xcb\xa1\x0f\xcf\x3f\x2e\x53\xf1\xca\xf4\x6d\x1d\xe3\xcd\ -\xda\x53\xcc\xd2\x1a\x1d\x6a\x37\x6a\xa0\x6d\xc7\xec\xf4\xe4\xb5\ -\x2b\x33\xc1\x95\xaa\x90\x7d\xf3\xb3\x04\x1f\xdd\xda\x6c\x3a\x5f\ -\x2f\x04\x94\x10\x76\xe5\x1b\x4d\x75\x2d\xe4\x0b\x69\x56\x8d\x5c\ -\x66\xe6\xea\xe0\xaa\x5f\x71\x4f\x01\x07\xab\x42\x4a\x7e\xd1\xdf\ -\x59\xb0\xe5\xc8\xca\xa7\x03\xfd\xf9\xcf\xe2\xc5\xfb\xdb\xa2\xb9\ -\x61\x83\xb8\x9f\xee\x13\xd7\xa7\xc6\x8f\x59\x66\xa3\x04\x58\x8a\ -\x8f\xf1\x64\x4e\xc8\x5f\x7d\x3c\x27\x7e\x9f\x18\x58\x02\x14\x60\ -\x7c\xa3\x51\x66\xd3\x7c\x92\x73\x13\x31\xde\xbe\xec\x1c\xf2\xf9\ -\x9d\x77\x80\x0b\xdc\x50\xc3\x03\x74\x0d\x97\x88\x1c\xd6\xe9\x1a\ -\x2e\xa1\x86\x07\xfe\x3a\x0c\x91\x54\xd1\x89\xa4\x8a\xaf\x22\xa9\ -\x22\xe1\x29\x0b\xf7\xe1\x08\x46\x36\xb1\x68\x64\x13\x5b\x8c\x6c\ -\xc2\x6f\x64\x13\x49\xa3\x90\x21\xb7\x50\x4b\xa8\xed\x28\xb9\x85\ -\x5a\x8c\x42\x86\x3f\x4d\xfe\x2b\x3d\x31\x5b\xf4\xc6\xa5\xf0\x81\ -\xe8\x8d\x4b\xd1\x13\xb3\x05\xc0\x0f\xce\xca\x2c\x24\xca\x30\x0a\ -\xc3\xcf\xf7\x8d\x1b\x86\xa6\x96\x8e\x90\xda\x82\xe9\x58\xa9\x49\ -\x26\xa9\x85\x57\x11\x45\x03\x51\xe1\x85\x90\x26\xd5\x85\x68\x0b\ -\xe2\x92\x41\x65\x10\x49\x91\x11\x11\x42\x50\x41\x98\x4c\x11\x7a\ -\x51\xe0\x46\x4c\x44\x6a\x51\x86\x51\xd9\x45\x25\xe6\x92\x95\xcd\ -\x08\x93\xcd\xa8\x33\xfe\xff\xd7\x45\x12\x5a\xfc\x25\x1d\x78\xef\ -\xde\xf3\x70\x38\x9c\xe5\x9f\x5b\x39\x1f\x49\x80\x8a\x16\x0b\x4d\ -\xbd\xd5\x94\xb7\x24\x26\x57\xb6\xae\x2a\xad\x6c\x4d\x3a\x77\xff\ -\x7d\xdd\x89\x8a\xd6\x24\x6b\x59\xf3\xca\x45\xe7\x1f\x6d\x43\x29\ -\x1d\xa5\x34\xe3\x39\x11\x42\xd2\x37\xf6\x54\x65\xc5\xe5\xbd\xf4\ -\x6a\x9e\x5a\x10\xe5\x9a\x9a\x3e\x25\x10\x77\x4b\x32\x6f\x3b\x0e\ -\x65\x35\x2a\x9f\x3e\x69\xf6\x6a\x13\xc6\x10\x20\xcd\xe1\xfe\x40\ -\xc7\x40\x3d\xb9\xc9\x35\xf8\xb4\x49\x52\xa2\xb7\x60\xb5\x1c\xa5\ -\xb6\xc3\x4a\x55\xdb\x1a\xaa\xda\x52\x9a\x8e\xb5\xaf\x35\x86\xf8\ -\xc9\x80\x20\x9f\x36\x81\x9f\x0c\xa0\xa9\xf7\x24\xab\xcd\x9b\xe9\ -\x1c\xb8\x49\x63\xef\x49\x96\x86\xa5\x12\xbf\x28\x93\x60\xff\xb0\ -\x3e\xa3\x86\x4b\x00\xaf\x36\xf1\x7d\x45\x44\x06\x71\x61\xa9\x4c\ -\x4d\x7b\xd8\x97\x7e\x05\x81\x24\x3a\x64\x25\x1f\xbf\xbd\xe1\xad\ -\xf3\x51\x76\xf0\x74\x56\x7e\xa8\x67\xaf\x31\x44\x0a\x39\x3e\xe4\ -\x7a\xc5\x3b\x47\x17\x09\x8b\x37\xa2\x2b\x8d\x87\xfd\xd7\x70\xba\ -\x07\x11\x48\x46\x87\xe2\xbb\xce\x9c\x4d\x2a\xbd\x50\x17\x6e\x0c\ -\x59\xb7\x64\x87\x33\x71\xf1\x46\x84\x30\x91\x18\xb9\x89\xab\xdd\ -\xfb\x59\x10\x10\x4e\x66\x5c\x1e\x51\x21\xcb\xdd\x4f\x1f\x6c\x41\ -\x4a\xbd\x16\x88\x32\x84\x3c\xfe\x7c\x77\xbc\x77\xd4\xce\xfa\x98\ -\x9d\x74\x0d\x36\x30\xe9\xfb\x46\x74\x48\x02\x4f\x86\x6e\xe1\x9e\ -\x1e\xa8\xff\x38\x1c\xb6\x6c\xc6\xbf\xdb\x10\x72\xb8\x6d\x04\xfc\ -\x03\xc5\x8b\x91\x7b\x6c\x4b\x2c\x23\x3f\xed\x32\xc3\xae\xd7\x00\ -\x78\x3c\xc1\x45\xd2\xa4\x57\xcf\xf8\xe3\x0c\x21\x93\xfe\xf2\x60\ -\x49\xfb\xa7\x08\xdd\xe4\x17\xd4\xf8\xea\x38\xe3\xde\xaf\x08\x21\ -\x09\x0c\x9a\xca\xb8\x7e\xf1\x00\x26\x93\x56\x30\xe3\xff\xf2\xb7\ -\x39\xd9\x35\xe5\x27\x9c\x45\xf7\x3f\x05\x9a\x47\x46\x45\xec\xc2\ -\x14\x31\xd8\x6f\x16\x97\x4e\x1f\x79\xa6\xeb\xb2\x01\xa0\xb9\xb0\ -\x84\xe6\x82\x92\x0b\xb3\x4f\x41\x67\xfd\xdc\x53\x10\x04\xe0\x33\ -\x09\xd7\xd6\x77\xaa\xeb\x62\x7e\x3a\x2d\x77\x72\x6f\x28\x5d\x2a\ -\x20\x0f\x00\x1d\xc2\x63\xad\x84\xc7\x6c\xff\xa9\x58\x2b\xe8\x73\ -\x2b\xd9\x00\x2c\x07\x22\x41\x65\x3d\x9f\x4a\x01\x54\x21\xd0\x04\ -\x78\x81\x51\x80\x50\x73\x0e\xf1\x39\x36\xe2\x73\x6c\x84\x9a\x73\ -\xfe\x78\xc0\x58\x6a\x9c\x1f\x2c\x35\x4e\x87\xa5\xc6\x49\xfd\xed\ -\xeb\xb8\xec\xc5\xba\xcb\x5e\xbc\xcb\x65\x2f\x0e\x74\xd9\x8b\xcd\ -\x00\xee\xb1\x1e\x94\xee\x43\xe9\x3e\xdc\x63\x3d\x7f\xf4\x64\x5e\ -\xe1\xe8\xb7\xd1\x6d\x8b\xa0\xdb\x16\x81\xa3\xdf\xf6\x1f\x10\x09\ -\x28\x7d\xd6\x0b\xd4\x7f\x65\xcf\x1b\x92\xbd\x47\x89\xec\x82\xdf\ -\xb4\x47\x09\x80\x1f\xb4\x98\x6b\x50\x94\x55\x18\xc7\x7f\xef\x2e\ -\x7b\x01\x05\x41\xc1\x44\x16\x49\x2e\x12\x68\x28\x08\x62\xa3\x78\ -\x41\x48\x68\xb4\x9c\x21\x31\x9c\x29\x9c\x49\x53\x07\xc2\x48\x89\ -\x84\x31\x71\x72\x32\xb5\x72\x4c\xfd\xd0\xc5\xc8\x1c\x86\xc6\xc8\ -\xb4\x40\xee\x08\x98\x0a\x78\x4b\xc0\x50\x56\x50\x14\x94\x3b\xbb\ -\xe8\xee\xb2\xb0\xbb\x6f\x1f\x62\x1d\xd3\x6c\x06\xc7\xce\x99\xe7\ -\xcb\x3b\xe7\xfc\xdf\xdf\x79\xce\x33\xcf\x3c\xcf\x79\x26\x99\xed\ -\x99\x65\xc7\xe1\xca\x91\x0f\xf2\x5f\x60\x6b\x49\x28\x85\xea\x7d\ -\xb3\xb7\x9f\x0c\xdb\xb7\xf1\x84\x57\xe5\xa6\x13\x3e\xcd\xa9\x05\ -\xfe\xda\xd4\x02\xff\xa1\xd4\x02\x7f\x4b\x4a\xbe\xaf\xa5\x48\xfd\ -\xe5\xc0\xd6\x92\xd0\x9e\x4d\x27\x7c\x1a\x37\xe4\x4e\xaa\x48\xce\ -\xf3\xcc\x4c\x2d\xf0\xdb\x78\xf8\xd2\x86\xb9\xd6\x90\x1b\xe9\xf8\ -\x87\x5b\x05\x41\x32\x7a\xc0\x74\xaf\xa9\x48\xbd\xf7\x6c\x8f\xfe\ -\x76\xa2\x93\xad\x2a\x2c\x6a\x4a\xf2\x64\x0f\xc7\x40\x87\x41\xb3\ -\xde\x06\x10\x2c\xa2\x49\x90\x49\x95\x8a\x00\xd7\xa8\xb1\x5b\xc2\ -\x4f\xf9\xec\x8a\xbe\x3a\x2f\x2e\x60\xe7\x2a\xbf\xf1\xe1\x9f\x75\ -\xdc\xbf\x7e\xea\xd3\x8a\x48\xc3\xae\xca\xa8\x1d\x3b\x2a\x22\xd8\ -\x51\x11\x31\x72\x10\xf1\xef\x19\x08\x78\xda\x48\xe4\xc8\xa5\x76\ -\xdc\x33\x76\x91\x77\x6d\x37\x16\x71\x88\x98\xa9\xdb\xe8\x1f\xe8\ -\x20\xec\xf9\x55\x2c\xf4\x7c\x07\xc3\xa0\x96\xf4\xa2\x40\xd2\x0a\ -\x03\x38\x52\x9f\x4e\x6d\x7b\x01\x77\xfa\x1b\xe8\xd2\x35\xd3\xad\ -\xbb\x19\xad\x31\xdc\x11\x34\x86\x3b\x23\x07\x99\xa5\x7a\x9d\x50\ -\xd5\x72\x5d\x88\x2a\x06\xef\x71\xb3\x91\x49\x14\x0c\x99\x07\x90\ -\x4b\x6d\x51\xf7\x9c\x65\xd0\x3c\xc0\xfe\xd7\xda\xf1\x1a\x3b\x8b\ -\xf5\xc7\x9c\xe9\xd0\x35\xb1\xd8\x27\x89\x70\xaf\xb5\x84\xaa\x96\ -\x13\xe8\xba\x84\x00\xd7\x28\x4d\x88\x2a\xe6\xe8\x2c\x8f\x25\x6f\ -\x7b\xba\xf8\x89\xde\xe3\xa7\x8d\x1c\xe4\x5c\xeb\xcf\xd4\xb4\xe6\ -\xe8\x6b\x5a\x73\x86\x1a\x3a\xcb\x31\x9a\xf5\x84\xba\xc7\x32\xed\ -\xb9\x48\x8c\x26\x1d\x4a\xd9\x68\x7a\xf5\xad\x74\xe9\x6e\x32\x53\ -\xb5\x8c\x5b\x9a\xcb\x54\xdc\xf8\x8e\xca\x1b\x99\x9c\x6f\xfb\x85\ -\x2b\x9d\x45\x87\xae\x75\x97\x39\x1d\xc8\xea\x89\x59\x9d\x38\xf9\ -\xc2\x86\xa4\x08\x92\x92\x16\x8c\x1c\x44\x10\x24\x08\x82\xa4\x17\ -\x51\xec\xb7\x7e\x3b\xdf\x76\x14\x75\xf7\x69\xd6\x87\x66\x11\xe2\ -\x16\xc3\x2d\x4d\x2d\xc7\xfe\xfc\x98\xc6\xae\xdf\x91\x08\x12\x6c\ -\x65\x63\x70\x73\xf0\x67\x8a\xf3\x1c\x82\x26\x2d\xca\xbc\x5c\xfe\ -\x26\xd5\x95\xc1\xcb\x44\x10\x15\x0a\x4b\xa2\x5c\x2e\x3e\x5d\xb0\ -\x82\xd8\x25\x95\xc8\xda\x5c\xed\x7d\x09\x75\x8f\xc5\xd7\x79\x1e\ -\xbd\x86\x56\xce\xdc\xca\x42\x26\x55\x52\x7c\x7d\x3f\x0e\x4a\x17\ -\x96\xfa\x7d\x88\x9f\xcb\x42\xf4\x43\x1a\x6e\xf6\x5d\xa4\xb1\xf7\ -\x64\x7d\x79\xdd\xd9\x53\xd5\x17\xec\x50\x2a\x48\x1b\x16\xfb\x08\ -\x58\x38\x62\x90\xc9\x1d\x7a\xdc\xbb\x0c\xa2\x45\x34\x4f\xef\x34\ -\xb4\xac\x3e\xd7\x9a\x43\x5d\x47\x21\x91\x3e\x89\x38\xd9\xba\xd1\ -\xa9\x6b\xe6\x55\xbf\x34\x02\x26\x44\x73\xa4\x2e\x8d\xa6\xde\x1a\ -\x6c\x24\x72\x64\x52\x25\x0a\xb9\xf8\x5e\xdd\xf9\x99\x16\xdd\x7d\ -\xfb\x37\x04\x89\x25\x64\x58\xd2\x05\x58\x30\x62\x90\xf9\x0d\x5a\ -\xe9\xa2\x2b\xda\x71\xeb\x4a\xda\x1d\xe6\x5d\xed\x3f\x68\x92\x48\ -\x04\xb9\xcc\xe1\x70\x59\xd3\x57\x0c\x0c\xdd\x63\xfc\x28\x4f\x86\ -\xcc\x06\x4e\xb7\x1c\xc6\x4e\xe6\x08\x88\x00\xdd\x0a\xa5\xf1\xc5\ -\x3f\xaa\x83\x4a\x2f\x9c\x09\x1e\xab\x50\x18\x3f\x7f\x44\x5f\xfa\ -\x34\x57\x33\x09\xd8\x6a\x94\x09\x5a\x9f\x76\x43\x79\x62\xf1\x5d\ -\xfb\xb0\xab\xda\xb7\x64\x72\x7b\x49\x55\x67\xee\xcb\x55\x6d\x39\ -\x07\x02\x26\x44\x65\x3b\xdb\x79\xec\x97\xd8\xe8\x63\x15\xb6\xc6\ -\xd1\x3d\x5d\xe3\x5c\xbe\xfd\x62\x6d\x7d\x69\x5e\x84\x93\x4c\x3e\ -\x54\x0d\x4c\x7c\x48\x4f\x0b\x9c\x79\x1a\x90\x95\x40\xac\xd5\x41\ -\x46\x1b\xa1\x7f\x4a\xbb\xe1\xd2\xba\x92\xf6\x39\x9b\x4a\x34\xc5\ -\x13\xb3\xb6\x25\x36\x56\x1c\x5a\xf9\xeb\xd1\x65\xef\xee\xc9\x48\ -\xf9\x69\xf7\xe6\xcd\x76\x47\x0e\xc6\x45\xe8\xee\x8f\x3a\x69\x63\ -\x63\xea\x05\xbc\xad\x42\x79\xf1\x89\x14\xae\x49\x1f\x53\xf9\xfe\ -\xf7\x79\xb5\xf9\x61\x62\x7d\x51\xa4\x68\x06\xb1\xbe\x28\x52\xac\ -\xcd\x0f\x13\x2f\xe7\x86\x88\x55\xd9\x8e\x0f\x1a\x82\x47\x41\x3e\ -\x01\x5e\x01\xaa\x80\x01\xc0\x04\xb8\x9b\xa4\x42\xba\x49\x2e\x0b\ -\x97\xf4\x37\xb3\xe7\xeb\x52\x2e\xd6\x39\xa1\x90\xf3\x8d\x5c\x69\ -\xec\x14\x24\x62\xf1\xbf\xc5\x81\x00\x78\x04\xed\xc4\x7b\x7e\x36\ -\x8e\x6e\x8b\x51\x4d\xdf\x02\x80\x6a\xfa\x16\x1c\xdd\x16\xe3\x3d\ -\x3f\x1b\x8f\xa0\x9d\x08\x4f\xf0\x88\x08\x5c\x04\x5e\x02\x6c\x87\ -\xbb\x15\x67\x20\x1a\x28\x03\x30\x58\x64\xd6\xb5\x6b\x86\xff\xa7\ -\x02\x96\x03\x19\xc3\x07\x89\x1f\xde\x43\x5f\x6b\x2e\x2d\x35\xc9\ -\xb8\x4e\x4d\xc1\x6c\xd2\x73\xad\x74\x29\x66\x93\x1e\xd7\xa9\x29\ -\xb4\xd4\x24\x63\x7d\xce\x78\x0c\x64\xb8\x2a\x79\xa2\xa9\xb6\xeb\ -\x38\xf4\x63\xa6\xb5\xf3\xb1\x5a\x9b\xb6\x2c\x21\x47\x5b\x96\xb0\ -\x4d\x5b\x96\x90\xae\x2d\x4b\xf8\x41\x5b\x96\xd0\x03\xa0\xb4\xf7\ -\x42\x35\x23\x03\x75\xc5\x0a\xcc\x83\x1a\x7c\x17\xfd\x86\x79\x50\ -\x83\xba\x62\x05\xaa\x19\x19\x28\xed\xbd\xfe\x2b\x8f\x3c\x9b\x21\ -\x02\x77\x1b\xf6\x52\x97\x1b\x4c\xdf\xed\xe3\xa8\x2b\xe3\x00\x50\ -\x57\xc6\xd1\x77\xfb\x38\x75\xb9\xc1\xdc\x6d\xd8\x8b\xf8\x7f\x83\ -\xcc\x8d\x7f\xbc\x00\xb2\xb6\x78\x0f\xdb\xdc\x78\xf1\x41\x98\xfc\ -\x35\x00\xe1\xfe\x7a\x92\x1d\x0a\xb2\xf0\x00\x00\x00\x00\x49\x45\ -\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x08\xb7\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ -\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ -\x00\x00\x08\x6e\x49\x44\x41\x54\x58\x85\xc5\x97\x7b\x70\x55\xd5\ -\x15\xc6\x7f\x7b\x9f\x73\x6e\x6e\x6e\xde\xb9\x97\x20\x84\x47\x5e\ -\x04\x12\x02\x11\x05\x05\x22\x05\x44\x0a\xa2\x28\xd6\xe2\x4c\xa7\ -\x75\xa8\x76\xac\xa3\x33\x3a\x63\x67\xb4\xd3\x87\x6d\x1c\x2b\x7d\ -\x4d\xff\x68\xcb\xd8\x56\x1d\x29\x76\xaa\x45\xc6\xe7\x0c\xa1\xa9\ -\xa0\x11\x5a\x01\x8d\x41\x1e\x01\xcc\x83\x24\x4a\x42\x42\x72\xf3\ -\xbc\xaf\xdc\xdc\xb3\x77\xff\x38\xe7\xde\x24\xd5\x19\x69\xa7\x33\ -\xee\x99\x35\xe7\xdc\x39\x77\xaf\xf5\x9d\x6f\x7d\x6b\xad\xb3\xe1\ -\x4b\x5e\xe2\x4a\xff\xb8\x6e\x5d\xad\xd9\x91\x61\xad\x11\x88\xed\ -\x02\xb1\x46\x43\x00\xc8\x71\x1f\x8f\x08\x18\x10\xe8\x23\x36\x7a\ -\x5f\x71\x78\xe2\x48\x43\x43\x6d\xe2\xff\x02\xa0\x68\x5b\x6d\xae\ -\x18\x4f\xfb\x31\x82\xfb\xca\xe6\xcd\xe0\xc6\x15\xa5\x59\x2b\xaa\ -\xe6\x8a\xab\x02\x59\xf8\xb3\xd3\x01\x18\x1c\x8d\xd2\x1b\x1c\xa3\ -\xb1\xf9\xa2\x3e\xf4\x41\xfb\x58\x6b\xe7\x65\xd0\x3c\xab\xd3\xc6\ -\x7f\xd6\xf9\x7a\xed\xf0\xff\x0c\xa0\x68\xf3\xce\x87\xa5\x21\x9e\ -\xdc\x5c\xb3\x28\xfd\xfe\xaf\xaf\xb4\xca\xe7\x05\xae\x88\xb3\xb6\ -\x4f\x83\x3c\xf3\xca\xf1\x89\xfd\x87\xcf\x46\x95\x96\x8f\x77\xd6\ -\x7d\xff\x77\xff\x15\x80\xa2\x75\xb5\x5e\xed\xf3\xfe\x75\x71\xe9\ -\xcc\x4d\x4f\x3e\xf8\xd5\x8c\xca\xe2\x02\x10\x8e\xe3\x7f\x9d\xfc\ -\x84\x13\x1f\x5f\x22\x38\x1a\x61\x70\x24\x86\x10\x10\xc8\x4d\xc7\ -\x9f\x93\xc1\xb2\xf2\x59\xac\x5e\x3a\x97\x92\x39\xf9\x00\x7c\xdc\ -\xd9\xcf\xe3\x4f\xbf\x15\x3e\xdd\xd6\x5b\x4f\x38\xfa\xcd\xce\x86\ -\xda\xd8\x17\x02\x58\xbc\xbd\xd6\x13\x0e\xa7\xbd\xbf\x6d\x7d\x55\ -\xc5\x4f\xee\xdf\xe0\x49\xf7\x58\xb4\x7e\x1a\xe4\xb9\x37\x1a\x69\ -\x3c\xdb\x8d\x34\x24\x86\x94\x08\x21\x90\x52\x20\x10\x29\x2f\x5a\ -\x6b\xb4\xd6\x2c\xaf\x28\x64\xc7\x2d\x57\x53\x3a\x27\x9f\x58\x3c\ -\xc1\x53\xcf\xbe\x1d\x7f\xe5\xd0\xe9\x73\x3e\x5f\xec\xba\xe6\x7d\ -\xb5\xf1\xa9\xf1\x8c\xe9\xe1\xb5\xc8\x2c\x3e\xf6\xea\xb6\x1b\xab\ -\x56\xee\x7c\x68\x53\x9a\x65\x1a\xbc\xde\x70\x96\x27\x9e\x7b\x9b\ -\x4b\x03\x21\x4c\xd3\xc0\x9a\x62\xa6\x61\x60\x9a\x06\x86\x29\x31\ -\x0c\x89\x69\x18\x48\x43\x72\x29\x18\xe2\xad\xe3\xed\x64\xf9\xd2\ -\xa8\x2c\x9e\xc1\x8d\x2b\x4a\x8d\xbe\xa1\x70\xde\xc9\x96\x81\x6b\ -\x86\x5b\x0e\xee\x85\x27\x3e\x1f\x40\xf1\x16\xef\xa3\xab\xae\x2e\ -\xba\xf7\x37\x8f\xdc\x92\x6e\x18\x92\xdf\xef\x3d\xca\x9e\xfd\x1f\ -\x61\x18\x06\xa6\x69\x62\x59\x6e\x70\xcb\xf9\x6d\x9a\xc6\xa4\x49\ -\x03\xc3\x65\xc7\x30\x24\x00\x8d\xe7\x7b\x08\x45\xe2\x5c\x5b\x31\ -\x9b\x35\xcb\x8a\xcd\x33\xed\x7d\x73\x43\xd9\xfb\xe3\x43\x2d\x07\ -\xdf\xfb\x4c\x0a\x0a\xef\xd8\xe9\xcf\xd4\x56\xcb\x9b\xbf\xfd\x76\ -\xfe\xbc\x99\xb9\xbc\x54\x7f\x92\xe7\xde\xf8\x10\xd3\x32\xa7\xbc\ -\xad\x64\x69\xd9\x0c\x96\x94\x14\x50\x51\x14\xa0\x20\xcf\x47\x6e\ -\x56\x3a\xe3\xf1\x04\x7d\x83\x61\x9a\x5a\xfa\xa8\x3f\xde\x41\x28\ -\x1a\xc7\x56\x0a\xdb\x56\x24\x6c\xc5\xdd\x9b\x97\x72\xe7\xfa\x0a\ -\x2e\x5e\x1e\x65\xeb\xc3\xbb\x07\x47\x89\x97\x77\xbf\xf6\xc3\xe0\ -\x34\x06\xfc\xa5\x37\xed\xba\xe7\xf6\xe5\xd7\xdf\xbc\x7a\xa1\x3c\ -\x73\xa1\x8f\x9f\xef\x39\x8c\x69\x18\x58\x2e\x00\xcb\x72\xee\x7f\ -\xfd\xc0\x57\x58\x34\xdf\xcf\x8c\x5c\x1f\x3e\xaf\x07\xc3\x90\xa4\ -\x79\x4c\xf2\xb2\xbc\x2c\x9a\x9f\xcf\xaa\xaa\xd9\x9c\x6a\xef\x27\ -\x16\xb7\x1d\x9d\x00\xa7\xda\xfb\xa8\x2e\x9b\x49\x49\x61\x1e\x13\ -\xb6\xf2\x9c\x38\xdd\x5d\x30\xd4\x72\xf0\x4d\x00\x09\xb0\x78\x5d\ -\x6d\xa6\x65\xca\xbb\xee\xb9\x6d\x85\xa1\xd1\x3c\xbd\xef\x38\x52\ -\xc8\x69\x14\x3b\x40\x4c\x84\x10\x08\xe1\x10\x17\x4f\x28\xe2\x09\ -\x85\x94\x12\xe9\x0a\x33\x3f\xcb\xcb\xf6\xf5\x0b\xb1\x2c\x13\x8f\ -\x65\x62\x59\x26\x86\x34\xd8\xbd\xff\x23\x34\x70\xf7\x96\x6b\x0c\ -\xd3\x34\xee\x5a\xbc\xae\x36\x13\xc0\x04\x88\xf8\xbc\x5b\xd6\x5e\ -\x5d\x2c\xf3\xb3\xd3\x39\xd5\xd6\x4b\xcb\x27\x41\x3c\x1e\x73\x8a\ -\xe8\xdc\x34\x98\x06\x09\x5b\x71\xfc\x7c\x3f\xef\x35\xf7\xd2\x3b\ -\x14\xc1\x10\x82\x0d\xcb\xe7\x73\x7b\x4d\x69\x0a\x5c\xe5\x7c\x3f\ -\x1e\xcb\x24\x21\x6d\x5c\xac\x74\x74\x0f\x73\xae\x73\x80\xca\xa2\ -\x00\x6b\xaf\x2d\x91\x07\x8f\xb6\x6e\x01\x5e\x96\x8e\xf6\xf5\x8e\ -\x9b\xae\x5b\xe0\x43\xc0\x91\x8f\xba\x1c\x31\x19\x4e\xde\x0d\x37\ -\xf7\x49\x30\xbf\x78\xe9\x04\xaf\xfd\xf3\x02\x03\xa3\xe3\xa4\x79\ -\x2c\x2c\x8f\xc5\xd9\xae\x41\xb4\xd6\x29\x31\x4b\x49\x8a\xb1\xa9\ -\x2c\xbe\xdf\xdc\x0d\xc0\xc6\x95\xe5\x3e\x21\xc5\x8e\x14\x03\x68\ -\x96\x55\x95\xcd\x04\xa0\xf5\x93\xe0\x34\x35\x9b\xc6\x64\x2a\x2c\ -\xd3\x24\x34\x6e\x63\x59\xa6\x0b\x4e\x22\xa5\x60\xcd\x92\xc2\x54\ -\x0f\xd0\x5a\x73\xb1\x3f\x8c\x65\x19\xae\x6b\x8d\xd6\xa0\x94\xe6\ -\xc2\xa5\x21\x00\x2a\x4b\x0a\xd0\x5a\x2f\x9b\x04\x20\xf0\x17\xe4\ -\x67\x02\x4e\x5f\x97\x6e\xf0\xa9\xe6\x00\x91\x93\x3d\xc0\xb5\x9a\ -\xc5\x57\xb1\xaa\x72\x66\x2a\xb8\xad\x14\xef\x9e\xee\xc3\x32\x0d\ -\xd0\x4e\x73\x52\x4a\x63\x18\x92\x91\xd0\x38\x08\xc1\x8c\xdc\x0c\ -\x34\xda\x3f\x95\x01\xf2\xdc\xc1\x32\x16\x89\xbb\xa2\x12\x93\x40\ -\xa4\x93\x12\xc3\x6d\x3c\xc9\xd2\x5c\xbb\x74\x16\x6b\x16\x4f\x09\ -\x6e\xdb\x1c\x68\xec\xa6\x67\x30\x8a\x69\x18\x4e\x60\x25\x31\x6c\ -\xc7\x4f\x24\xe6\x0c\xc8\x9c\xcc\xb4\x54\xfd\xcb\x64\x37\x18\x1a\ -\x8d\xba\x0f\xbd\x48\x21\xa6\x9b\x94\x18\x52\x4c\x63\xa3\xba\x38\ -\x9f\xd5\x8b\x02\x28\xa5\x50\x4a\x61\xdb\x36\x75\x1f\x5e\xe2\xe3\ -\xee\x31\xb7\x3b\x4e\x6f\x4c\x52\x0a\xb2\x33\xbd\x00\x8c\x84\xc7\ -\x53\x2d\x48\x02\x08\x4d\xb0\x7f\x28\x0c\x40\x20\xcf\x87\x10\x38\ -\x8a\x96\x8e\x49\x29\x10\x2e\x2b\x49\x87\xd7\x2f\xf4\xa7\x82\x2b\ -\xa5\x38\xd6\x32\x44\x57\x7f\xd4\x65\xca\x01\x9c\x64\x52\xb8\x2f\ -\x92\x9f\xed\x00\x08\x0e\x47\x10\x10\x9c\x04\x20\xe4\x89\xe6\x0b\ -\x97\x01\x58\x38\x2f\xe0\xd4\xb9\x10\x08\x40\x20\xdc\xf2\x22\x55\ -\x66\x52\x08\xb2\xd3\x8d\x14\xf5\x4a\x29\xda\xfa\x22\x29\x86\xa4\ -\x10\x08\x91\xbc\x3a\x7b\x11\x82\x92\xd9\x79\x00\x9c\xeb\xec\x47\ -\x48\x79\x22\xa5\x01\xad\xf5\x9e\x43\xc7\xdb\xd6\xdd\xb1\xbe\xd2\ -\x57\xb3\x74\x2e\x07\x8e\xb6\x4d\xf6\x68\x91\xbc\x4c\x19\x9c\x42\ -\xf0\x87\xfa\x0e\xd2\x3c\x16\x1e\x8f\x85\xc7\x63\xa2\x34\xa9\x06\ -\xe5\xe2\x9f\xb2\x9c\xdd\xcb\x17\xcd\x02\xe0\xad\x63\xad\x11\x65\ -\xab\x3d\x29\x00\xbe\x48\xac\xee\x48\xd3\x05\x35\x3c\x16\xa3\xb2\ -\xa4\x80\x05\xf3\xfc\x74\xf5\x8e\x90\x14\x68\xf2\x4d\xd1\xc9\xb2\ -\xd2\xec\x58\x3b\x27\x35\x92\x01\x5e\x3e\xd6\x8f\x52\xca\x61\x24\ -\xb9\x07\x8d\x76\x9d\x14\xcd\xca\x61\xc1\x9c\x7c\x46\x43\xe3\xbc\ -\xf3\x7e\xab\xf2\x45\x62\x75\xa9\x14\x34\x37\xd4\x86\x12\x09\xb5\ -\xf7\x2f\x75\x4d\xb6\x00\xee\xbd\x75\x19\x42\x08\xd7\x99\x53\xc7\ -\xc9\x7b\xa5\x34\xca\x56\x58\x06\x58\x06\x98\xd2\xb1\xf8\x44\x82\ -\x89\x84\x4d\xc2\x56\x28\x5b\x39\xff\x53\x1a\xad\x1c\xe0\x77\xad\ -\xaf\x00\x01\x7f\xfb\xc7\x49\xdb\xb6\xd5\xde\xe6\x86\xda\xd0\x64\ -\x15\x00\xf1\x84\xf5\xd8\xee\xd7\x3e\x18\xee\xee\x1f\x63\xd1\x7c\ -\x3f\xdf\xd8\x58\xe5\x04\x57\x4e\x8e\xed\xe4\xd5\x9d\x70\x53\x05\ -\xa8\x94\x22\x3e\x31\xc1\xc4\x84\x4d\x22\x61\x93\xb0\x6d\x6c\xdb\ -\x4e\x3d\xdb\x5a\x53\x46\x69\x61\x2e\x7d\xc1\x10\x7f\xda\x77\x6c\ -\x38\x16\xb7\x1e\x4b\xc6\x4d\x4d\xc3\xd1\xf6\xfa\x68\x4e\xd9\x06\ -\xdd\xd1\x33\x5c\xb3\xb9\xa6\xdc\xaa\x2c\x0a\x10\x8e\x4d\xd0\xde\ -\x3d\xe4\x28\x5a\x48\xa7\x22\x84\x93\xd1\x6b\x4a\x73\xb1\xb5\x26\ -\x61\x3b\xa0\x3e\x68\x1b\x26\x61\x2b\x07\x80\xcb\xc4\x44\xc2\xe6\ -\x86\x25\x85\x6c\x5d\x5d\x4a\xc2\x56\xfc\x60\x57\x7d\xa4\xad\xab\ -\xff\xa9\xae\x03\x8f\x1e\xfa\x0f\x89\x25\x97\x16\xa5\xb7\xfe\xea\ -\xf5\xed\x9b\xaa\x37\xfd\xf4\xbb\x1b\xd2\x84\x10\x1c\x6a\xec\x60\ -\xef\xa1\x73\x48\x29\xdd\xe9\x96\xfc\x18\x71\x9b\x93\x5b\x66\x5a\ -\x83\xd2\x0e\xfd\x09\x37\x05\xb7\xad\x2e\xe1\x86\x25\x85\x68\x60\ -\xe7\xf3\x0d\xe3\x2f\xd6\x35\xd5\xb7\xbd\xf9\xe8\x36\x10\xfa\x33\ -\x0c\x38\xeb\x09\x66\x57\xdf\xf0\xea\xc9\xf3\x03\x5b\x07\x46\xa2\ -\x81\x55\x4b\xe7\x19\x0b\xe6\xfa\xa9\x2e\x2b\x20\x38\x1a\xa5\x6f\ -\x28\xe2\x40\x76\xb7\x27\xf3\x3c\xf5\xe3\x23\x61\xdb\x2c\x28\xcc\ -\xe5\x5b\x1b\x2b\xa8\x2a\x0e\x30\x3e\x61\xf3\xcb\x17\x0e\xc7\x5f\ -\xac\x6b\x3a\x93\x96\x16\xd9\xdc\x7f\x76\xbd\x3d\xbd\x3e\x3e\x67\ -\xcd\x59\xf5\x48\xba\x95\x1f\x78\xa9\xba\x7c\xce\xc6\xa7\x1e\xba\ -\xd9\x57\xea\x7e\xe5\x5e\xbc\x3c\xca\xa9\xf6\x7e\x5a\xbb\x87\x18\ -\x0b\x4f\x30\x16\x8b\x23\x85\x20\x27\xd3\x4b\x8e\x2f\x8d\xb2\xc2\ -\x5c\xaa\x8a\xfd\xcc\x0e\x38\x73\xa5\xe3\xd2\x30\x3f\xda\xf5\xf7\ -\x68\x53\xf3\x85\x77\x7b\x8f\xbd\x70\x5f\x74\xb0\x2d\x08\x44\xbf\ -\x10\x00\xe0\x03\xb2\x0b\xd7\x7e\xef\x41\x6f\x76\xe0\x91\x3b\x37\ -\x2c\xf3\x7e\xe7\x6b\x2b\xcc\xf9\x57\xe5\x5e\xd1\x51\xea\xd3\xcb\ -\xa3\x3c\xff\x46\x63\xe2\xe5\x03\x1f\x8e\x47\x83\x5d\xcf\x74\x1f\ -\xfd\xe3\x6e\x60\xcc\xb5\x21\x40\x7d\x11\x80\x34\x20\x0b\xc8\x4a\ -\x2f\x28\x9d\xed\xaf\xdc\xf6\x80\x95\xe1\xdf\x56\x55\x3a\x4b\x6c\ -\x5e\x53\x99\x7e\x6d\x45\xa1\x98\x91\xe7\x23\x27\xc3\x0b\x02\x46\ -\x43\xe3\x0c\x8c\x44\x68\x3a\xdf\xa3\xeb\x0e\x37\xc7\xce\xb4\xf6\ -\xe8\xd8\x58\x4f\x7d\xf0\xd4\xab\x7f\x1e\x1f\xee\xe9\x75\x03\x87\ -\x80\x41\x20\x7c\x25\x0c\x80\x53\xa2\x19\x40\x36\x90\x61\x59\xbe\ -\xac\xec\xf2\x8d\x2b\x7d\x05\x0b\x36\x5a\xe9\xd9\xd5\x60\xe4\x68\ -\x21\x7d\x8e\x13\x15\x45\xdb\xa3\xf1\xf0\xd0\x99\x48\xdf\xf9\x77\ -\x46\xdb\xde\x69\x4a\x24\x62\x21\x1c\xba\x43\xc0\xb0\x0b\xe2\x33\ -\xe7\xc5\x2b\x3d\x9c\x1a\x80\x05\x78\x5d\x76\xbc\x38\x5d\xd4\x72\ -\x81\x2a\xc0\x06\xe2\xae\xc5\x80\x71\xf7\xfe\x8a\x0e\xa9\x5f\xda\ -\xfa\x37\x3d\x87\xb9\xea\xf9\xa4\xbb\x03\x00\x00\x00\x00\x49\x45\ -\x4e\x44\xae\x42\x60\x82\ -" - -qt_resource_name = b"\ -\x00\x07\ -\x07\x3b\xe0\xb3\ -\x00\x70\ -\x00\x6c\x00\x75\x00\x67\x00\x69\x00\x6e\x00\x73\ -\x00\x05\ -\x00\x49\xc3\x81\ -\x00\x43\ -\x00\x65\x00\x6e\x00\x52\x00\x61\ -\x00\x0e\ -\x09\x71\xe2\xe7\ -\x00\x70\ -\x00\x61\x00\x67\x00\x65\x00\x5f\x00\x61\x00\x6a\x00\x6f\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0c\ -\x0a\x09\xe1\x87\ -\x00\x70\ -\x00\x61\x00\x67\x00\x65\x00\x5f\x00\x6e\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x08\ -\x0c\x33\x5a\x87\ -\x00\x68\ -\x00\x65\x00\x6c\x00\x70\x00\x2e\x00\x70\x00\x6e\x00\x67\ -" - -qt_resource_struct_v1 = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ -\x00\x00\x00\x14\x00\x02\x00\x00\x00\x03\x00\x00\x00\x03\ -\x00\x00\x00\x24\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x00\x46\x00\x00\x00\x00\x00\x01\x00\x00\x15\x6e\ -\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x49\ -" - -qt_resource_struct_v2 = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ -\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x14\x00\x02\x00\x00\x00\x03\x00\x00\x00\x03\ -\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x24\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x48\x3f\x38\x20\x60\ -\x00\x00\x00\x46\x00\x00\x00\x00\x00\x01\x00\x00\x15\x6e\ -\x00\x00\x01\x48\x3f\x38\x20\x60\ -\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x49\ -\x00\x00\x01\x48\x3f\x38\x20\x60\ -" - -qt_version = [int(v) for v in QtCore.qVersion().split('.')] -if qt_version < [5, 8, 0]: - rcc_version = 1 - qt_resource_struct = qt_resource_struct_v1 -else: - rcc_version = 2 - qt_resource_struct = qt_resource_struct_v2 - -def qInitResources(): - QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) - -def qCleanupResources(): - QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) - -qInitResources() diff --git a/CenRa_POSTGIS/resources_rc.py.bak b/CenRa_POSTGIS/resources_rc.py.bak deleted file mode 100644 index 1498204f..00000000 --- a/CenRa_POSTGIS/resources_rc.py.bak +++ /dev/null @@ -1,892 +0,0 @@ -# -*- coding: utf-8 -*- - -# Resource object code -# -# Created: ven. 29. août 14:43:36 2014 -# by: The Resource Compiler for PyQt (Qt v4.8.4) -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore - -qt_resource_data = "\ -\x00\x00\x15\x6a\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x22\x00\x00\x00\x23\x08\x06\x00\x00\x01\x86\x1c\xe8\xf1\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\x2e\x23\ -\x01\x78\xa5\x3f\x76\x00\x00\x0a\x4f\x69\x43\x43\x50\x50\x68\x6f\ -\x74\x6f\x73\x68\x6f\x70\x20\x49\x43\x43\x20\x70\x72\x6f\x66\x69\ -\x6c\x65\x00\x00\x78\xda\x9d\x53\x67\x54\x53\xe9\x16\x3d\xf7\xde\ -\xf4\x42\x4b\x88\x80\x94\x4b\x6f\x52\x15\x08\x20\x52\x42\x8b\x80\ -\x14\x91\x26\x2a\x21\x09\x10\x4a\x88\x21\xa1\xd9\x15\x51\xc1\x11\ -\x45\x45\x04\x1b\xc8\xa0\x88\x03\x8e\x8e\x80\x8c\x15\x51\x2c\x0c\ -\x8a\x0a\xd8\x07\xe4\x21\xa2\x8e\x83\xa3\x88\x8a\xca\xfb\xe1\x7b\ -\xa3\x6b\xd6\xbc\xf7\xe6\xcd\xfe\xb5\xd7\x3e\xe7\xac\xf3\x9d\xb3\ -\xcf\x07\xc0\x08\x0c\x96\x48\x33\x51\x35\x80\x0c\xa9\x42\x1e\x11\ -\xe0\x83\xc7\xc4\xc6\xe1\xe4\x2e\x40\x81\x0a\x24\x70\x00\x10\x08\ -\xb3\x64\x21\x73\xfd\x23\x01\x00\xf8\x7e\x3c\x3c\x2b\x22\xc0\x07\ -\xbe\x00\x01\x78\xd3\x0b\x08\x00\xc0\x4d\x9b\xc0\x30\x1c\x87\xff\ -\x0f\xea\x42\x99\x5c\x01\x80\x84\x01\xc0\x74\x91\x38\x4b\x08\x80\ -\x14\x00\x40\x7a\x8e\x42\xa6\x00\x40\x46\x01\x80\x9d\x98\x26\x53\ -\x00\xa0\x04\x00\x60\xcb\x63\x62\xe3\x00\x50\x2d\x00\x60\x27\x7f\ -\xe6\xd3\x00\x80\x9d\xf8\x99\x7b\x01\x00\x5b\x94\x21\x15\x01\xa0\ -\x91\x00\x20\x13\x65\x88\x44\x00\x68\x3b\x00\xac\xcf\x56\x8a\x45\ -\x00\x58\x30\x00\x14\x66\x4b\xc4\x39\x00\xd8\x2d\x00\x30\x49\x57\ -\x66\x48\x00\xb0\xb7\x00\xc0\xce\x10\x0b\xb2\x00\x08\x0c\x00\x30\ -\x51\x88\x85\x29\x00\x04\x7b\x00\x60\xc8\x23\x23\x78\x00\x84\x99\ -\x00\x14\x46\xf2\x57\x3c\xf1\x2b\xae\x10\xe7\x2a\x00\x00\x78\x99\ -\xb2\x3c\xb9\x24\x39\x45\x81\x5b\x08\x2d\x71\x07\x57\x57\x2e\x1e\ -\x28\xce\x49\x17\x2b\x14\x36\x61\x02\x61\x9a\x40\x2e\xc2\x79\x99\ -\x19\x32\x81\x34\x0f\xe0\xf3\xcc\x00\x00\xa0\x91\x15\x11\xe0\x83\ -\xf3\xfd\x78\xce\x0e\xae\xce\xce\x36\x8e\xb6\x0e\x5f\x2d\xea\xbf\ -\x06\xff\x22\x62\x62\xe3\xfe\xe5\xcf\xab\x70\x40\x00\x00\xe1\x74\ -\x7e\xd1\xfe\x2c\x2f\xb3\x1a\x80\x3b\x06\x80\x6d\xfe\xa2\x25\xee\ -\x04\x68\x5e\x0b\xa0\x75\xf7\x8b\x66\xb2\x0f\x40\xb5\x00\xa0\xe9\ -\xda\x57\xf3\x70\xf8\x7e\x3c\x3c\x45\xa1\x90\xb9\xd9\xd9\xe5\xe4\ -\xe4\xd8\x4a\xc4\x42\x5b\x61\xca\x57\x7d\xfe\x67\xc2\x5f\xc0\x57\ -\xfd\x6c\xf9\x7e\x3c\xfc\xf7\xf5\xe0\xbe\xe2\x24\x81\x32\x5d\x81\ -\x47\x04\xf8\xe0\xc2\xcc\xf4\x4c\xa5\x1c\xcf\x92\x09\x84\x62\xdc\ -\xe6\x8f\x47\xfc\xb7\x0b\xff\xfc\x1d\xd3\x22\xc4\x49\x62\xb9\x58\ -\x2a\x14\xe3\x51\x12\x71\x8e\x44\x9a\x8c\xf3\x32\xa5\x22\x89\x42\ -\x92\x29\xc5\x25\xd2\xff\x64\xe2\xdf\x2c\xfb\x03\x3e\xdf\x35\x00\ -\xb0\x6a\x3e\x01\x7b\x91\x2d\xa8\x5d\x63\x03\xf6\x4b\x27\x10\x58\ -\x74\xc0\xe2\xf7\x00\x00\xf2\xbb\x6f\xc1\xd4\x28\x08\x03\x80\x68\ -\x83\xe1\xcf\x77\xff\xef\x3f\xfd\x47\xa0\x25\x00\x80\x66\x49\x92\ -\x71\x00\x00\x5e\x44\x24\x2e\x54\xca\xb3\x3f\xc7\x08\x00\x00\x44\ -\xa0\x81\x2a\xb0\x41\x1b\xf4\xc1\x18\x2c\xc0\x06\x1c\xc1\x05\xdc\ -\xc1\x0b\xfc\x60\x36\x84\x42\x24\xc4\xc2\x42\x10\x42\x0a\x64\x80\ -\x1c\x72\x60\x29\xac\x82\x42\x28\x86\xcd\xb0\x1d\x2a\x60\x2f\xd4\ -\x40\x1d\x34\xc0\x51\x68\x86\x93\x70\x0e\x2e\xc2\x55\xb8\x0e\x3d\ -\x70\x0f\xfa\x61\x08\x9e\xc1\x28\xbc\x81\x09\x04\x41\xc8\x08\x13\ -\x61\x21\xda\x88\x01\x62\x8a\x58\x23\x8e\x08\x17\x99\x85\xf8\x21\ -\xc1\x48\x04\x12\x8b\x24\x20\xc9\x88\x14\x51\x22\x4b\x91\x35\x48\ -\x31\x52\x8a\x54\x20\x55\x48\x1d\xf2\x3d\x72\x02\x39\x87\x5c\x46\ -\xba\x91\x3b\xc8\x00\x32\x82\xfc\x86\xbc\x47\x31\x94\x81\xb2\x51\ -\x3d\xd4\x0c\xb5\x43\xb9\xa8\x37\x1a\x84\x46\xa2\x0b\xd0\x64\x74\ -\x31\x9a\x8f\x16\xa0\x9b\xd0\x72\xb4\x1a\x3d\x8c\x36\xa1\xe7\xd0\ -\xab\x68\x0f\xda\x8f\x3e\x43\xc7\x30\xc0\xe8\x18\x07\x33\xc4\x6c\ -\x30\x2e\xc6\xc3\x42\xb1\x38\x2c\x09\x93\x63\xcb\xb1\x22\xac\x0c\ -\xab\xc6\x1a\xb0\x56\xac\x03\xbb\x89\xf5\x63\xcf\xb1\x77\x04\x12\ -\x81\x45\xc0\x09\x36\x04\x77\x42\x20\x61\x1e\x41\x48\x58\x4c\x58\ -\x4e\xd8\x48\xa8\x20\x1c\x24\x34\x11\xda\x09\x37\x09\x03\x84\x51\ -\xc2\x27\x22\x93\xa8\x4b\xb4\x26\xba\x11\xf9\xc4\x18\x62\x32\x31\ -\x87\x58\x48\x2c\x23\xd6\x12\x8f\x13\x2f\x10\x7b\x88\x43\xc4\x37\ -\x24\x12\x89\x43\x32\x27\xb9\x90\x02\x49\xb1\xa4\x54\xd2\x12\xd2\ -\x46\xd2\x6e\x52\x23\xe9\x2c\xa9\x9b\x34\x48\x1a\x23\x93\xc9\xda\ -\x64\x6b\xb2\x07\x39\x94\x2c\x20\x2b\xc8\x85\xe4\x9d\xe4\xc3\xe4\ -\x33\xe4\x1b\xe4\x21\xf2\x5b\x0a\x9d\x62\x40\x71\xa4\xf8\x53\xe2\ -\x28\x52\xca\x6a\x4a\x19\xe5\x10\xe5\x34\xe5\x06\x65\x98\x32\x41\ -\x55\xa3\x9a\x52\xdd\xa8\xa1\x54\x11\x35\x8f\x5a\x42\xad\xa1\xb6\ -\x52\xaf\x51\x87\xa8\x13\x34\x75\x9a\x39\xcd\x83\x16\x49\x4b\xa5\ -\xad\xa2\x95\xd3\x1a\x68\x17\x68\xf7\x69\xaf\xe8\x74\xba\x11\xdd\ -\x95\x1e\x4e\x97\xd0\x57\xd2\xcb\xe9\x47\xe8\x97\xe8\x03\xf4\x77\ -\x0c\x0d\x86\x15\x83\xc7\x88\x67\x28\x19\x9b\x18\x07\x18\x67\x19\ -\x77\x18\xaf\x98\x4c\xa6\x19\xd3\x8b\x19\xc7\x54\x30\x37\x31\xeb\ -\x98\xe7\x99\x0f\x99\x6f\x55\x58\x2a\xb6\x2a\x7c\x15\x91\xca\x0a\ -\x95\x4a\x95\x26\x95\x1b\x2a\x2f\x54\xa9\xaa\xa6\xaa\xde\xaa\x0b\ -\x55\xf3\x55\xcb\x54\x8f\xa9\x5e\x53\x7d\xae\x46\x55\x33\x53\xe3\ -\xa9\x09\xd4\x96\xab\x55\xaa\x9d\x50\xeb\x53\x1b\x53\x67\xa9\x3b\ -\xa8\x87\xaa\x67\xa8\x6f\x54\x3f\xa4\x7e\x59\xfd\x89\x06\x59\xc3\ -\x4c\xc3\x4f\x43\xa4\x51\xa0\xb1\x5f\xe3\xbc\xc6\x20\x0b\x63\x19\ -\xb3\x78\x2c\x21\x6b\x0d\xab\x86\x75\x81\x35\xc4\x26\xb1\xcd\xd9\ -\x7c\x76\x2a\xbb\x98\xfd\x1d\xbb\x8b\x3d\xaa\xa9\xa1\x39\x43\x33\ -\x4a\x33\x57\xb3\x52\xf3\x94\x66\x3f\x07\xe3\x98\x71\xf8\x9c\x74\ -\x4e\x09\xe7\x28\xa7\x97\xf3\x7e\x8a\xde\x14\xef\x29\xe2\x29\x1b\ -\xa6\x34\x4c\xb9\x31\x65\x5c\x6b\xaa\x96\x97\x96\x58\xab\x48\xab\ -\x51\xab\x47\xeb\xbd\x36\xae\xed\xa7\x9d\xa6\xbd\x45\xbb\x59\xfb\ -\x81\x0e\x41\xc7\x4a\x27\x5c\x27\x47\x67\x8f\xce\x05\x9d\xe7\x53\ -\xd9\x53\xdd\xa7\x0a\xa7\x16\x4d\x3d\x3a\xf5\xae\x2e\xaa\x6b\xa5\ -\x1b\xa1\xbb\x44\x77\xbf\x6e\xa7\xee\x98\x9e\xbe\x5e\x80\x9e\x4c\ -\x6f\xa7\xde\x79\xbd\xe7\xfa\x1c\x7d\x2f\xfd\x54\xfd\x6d\xfa\xa7\ -\xf5\x47\x0c\x58\x06\xb3\x0c\x24\x06\xdb\x0c\xce\x18\x3c\xc5\x35\ -\x71\x6f\x3c\x1d\x2f\xc7\xdb\xf1\x51\x43\x5d\xc3\x40\x43\xa5\x61\ -\x95\x61\x97\xe1\x84\x91\xb9\xd1\x3c\xa3\xd5\x46\x8d\x46\x0f\x8c\ -\x69\xc6\x5c\xe3\x24\xe3\x6d\xc6\x6d\xc6\xa3\x26\x06\x26\x21\x26\ -\x4b\x4d\xea\x4d\xee\x9a\x52\x4d\xb9\xa6\x29\xa6\x3b\x4c\x3b\x4c\ -\xc7\xcd\xcc\xcd\xa2\xcd\xd6\x99\x35\x9b\x3d\x31\xd7\x32\xe7\x9b\ -\xe7\x9b\xd7\x9b\xdf\xb7\x60\x5a\x78\x5a\x2c\xb6\xa8\xb6\xb8\x65\ -\x49\xb2\xe4\x5a\xa6\x59\xee\xb6\xbc\x6e\x85\x5a\x39\x59\xa5\x58\ -\x55\x5a\x5d\xb3\x46\xad\x9d\xad\x25\xd6\xbb\xad\xbb\xa7\x11\xa7\ -\xb9\x4e\x93\x4e\xab\x9e\xd6\x67\xc3\xb0\xf1\xb6\xc9\xb6\xa9\xb7\ -\x19\xb0\xe5\xd8\x06\xdb\xae\xb6\x6d\xb6\x7d\x61\x67\x62\x17\x67\ -\xb7\xc5\xae\xc3\xee\x93\xbd\x93\x7d\xba\x7d\x8d\xfd\x3d\x07\x0d\ -\x87\xd9\x0e\xab\x1d\x5a\x1d\x7e\x73\xb4\x72\x14\x3a\x56\x3a\xde\ -\x9a\xce\x9c\xee\x3f\x7d\xc5\xf4\x96\xe9\x2f\x67\x58\xcf\x10\xcf\ -\xd8\x33\xe3\xb6\x13\xcb\x29\xc4\x69\x9d\x53\x9b\xd3\x47\x67\x17\ -\x67\xb9\x73\x83\xf3\x88\x8b\x89\x4b\x82\xcb\x2e\x97\x3e\x2e\x9b\ -\x1b\xc6\xdd\xc8\xbd\xe4\x4a\x74\xf5\x71\x5d\xe1\x7a\xd2\xf5\x9d\ -\x9b\xb3\x9b\xc2\xed\xa8\xdb\xaf\xee\x36\xee\x69\xee\x87\xdc\x9f\ -\xcc\x34\x9f\x29\x9e\x59\x33\x73\xd0\xc3\xc8\x43\xe0\x51\xe5\xd1\ -\x3f\x0b\x9f\x95\x30\x6b\xdf\xac\x7e\x4f\x43\x4f\x81\x67\xb5\xe7\ -\x23\x2f\x63\x2f\x91\x57\xad\xd7\xb0\xb7\xa5\x77\xaa\xf7\x61\xef\ -\x17\x3e\xf6\x3e\x72\x9f\xe3\x3e\xe3\x3c\x37\xde\x32\xde\x59\x5f\ -\xcc\x37\xc0\xb7\xc8\xb7\xcb\x4f\xc3\x6f\x9e\x5f\x85\xdf\x43\x7f\ -\x23\xff\x64\xff\x7a\xff\xd1\x00\xa7\x80\x25\x01\x67\x03\x89\x81\ -\x41\x81\x5b\x02\xfb\xf8\x7a\x7c\x21\xbf\x8e\x3f\x3a\xdb\x65\xf6\ -\xb2\xd9\xed\x41\x8c\xa0\xb9\x41\x15\x41\x8f\x82\xad\x82\xe5\xc1\ -\xad\x21\x68\xc8\xec\x90\xad\x21\xf7\xe7\x98\xce\x91\xce\x69\x0e\ -\x85\x50\x7e\xe8\xd6\xd0\x07\x61\xe6\x61\x8b\xc3\x7e\x0c\x27\x85\ -\x87\x85\x57\x86\x3f\x8e\x70\x88\x58\x1a\xd1\x31\x97\x35\x77\xd1\ -\xdc\x43\x73\xdf\x44\xfa\x44\x96\x44\xde\x9b\x67\x31\x4f\x39\xaf\ -\x2d\x4a\x35\x2a\x3e\xaa\x2e\x6a\x3c\xda\x37\xba\x34\xba\x3f\xc6\ -\x2e\x66\x59\xcc\xd5\x58\x9d\x58\x49\x6c\x4b\x1c\x39\x2e\x2a\xae\ -\x36\x6e\x6c\xbe\xdf\xfc\xed\xf3\x87\xe2\x9d\xe2\x0b\xe3\x7b\x17\ -\x98\x2f\xc8\x5d\x70\x79\xa1\xce\xc2\xf4\x85\xa7\x16\xa9\x2e\x12\ -\x2c\x3a\x96\x40\x4c\x88\x4e\x38\x94\xf0\x41\x10\x2a\xa8\x16\x8c\ -\x25\xf2\x13\x77\x25\x8e\x0a\x79\xc2\x1d\xc2\x67\x22\x2f\xd1\x36\ -\xd1\x88\xd8\x43\x5c\x2a\x1e\x4e\xf2\x48\x2a\x4d\x7a\x92\xec\x91\ -\xbc\x35\x79\x24\xc5\x33\xa5\x2c\xe5\xb9\x84\x27\xa9\x90\xbc\x4c\ -\x0d\x4c\xdd\x9b\x3a\x9e\x16\x9a\x76\x20\x6d\x32\x3d\x3a\xbd\x31\ -\x83\x92\x91\x90\x71\x42\xaa\x21\x4d\x93\xb6\x67\xea\x67\xe6\x66\ -\x76\xcb\xac\x65\x85\xb2\xfe\xc5\x6e\x8b\xb7\x2f\x1e\x95\x07\xc9\ -\x6b\xb3\x90\xac\x05\x59\x2d\x0a\xb6\x42\xa6\xe8\x54\x5a\x28\xd7\ -\x2a\x07\xb2\x67\x65\x57\x66\xbf\xcd\x89\xca\x39\x96\xab\x9e\x2b\ -\xcd\xed\xcc\xb3\xca\xdb\x90\x37\x9c\xef\x9f\xff\xed\x12\xc2\x12\ -\xe1\x92\xb6\xa5\x86\x4b\x57\x2d\x1d\x58\xe6\xbd\xac\x6a\x39\xb2\ -\x3c\x71\x79\xdb\x0a\xe3\x15\x05\x2b\x86\x56\x06\xac\x3c\xb8\x8a\ -\xb6\x2a\x6d\xd5\x4f\xab\xed\x57\x97\xae\x7e\xbd\x26\x7a\x4d\x6b\ -\x81\x5e\xc1\xca\x82\xc1\xb5\x01\x6b\xeb\x0b\x55\x0a\xe5\x85\x7d\ -\xeb\xdc\xd7\xed\x5d\x4f\x58\x2f\x59\xdf\xb5\x61\xfa\x86\x9d\x1b\ -\x3e\x15\x89\x8a\xae\x14\xdb\x17\x97\x15\x7f\xd8\x28\xdc\x78\xe5\ -\x1b\x87\x6f\xca\xbf\x99\xdc\x94\xb4\xa9\xab\xc4\xb9\x64\xcf\x66\ -\xd2\x66\xe9\xe6\xde\x2d\x9e\x5b\x0e\x96\xaa\x97\xe6\x97\x0e\x6e\ -\x0d\xd9\xda\xb4\x0d\xdf\x56\xb4\xed\xf5\xf6\x45\xdb\x2f\x97\xcd\ -\x28\xdb\xbb\x83\xb6\x43\xb9\xa3\xbf\x3c\xb8\xbc\x65\xa7\xc9\xce\ -\xcd\x3b\x3f\x54\xa4\x54\xf4\x54\xfa\x54\x36\xee\xd2\xdd\xb5\x61\ -\xd7\xf8\x6e\xd1\xee\x1b\x7b\xbc\xf6\x34\xec\xd5\xdb\x5b\xbc\xf7\ -\xfd\x3e\xc9\xbe\xdb\x55\x01\x55\x4d\xd5\x66\xd5\x65\xfb\x49\xfb\ -\xb3\xf7\x3f\xae\x89\xaa\xe9\xf8\x96\xfb\x6d\x5d\xad\x4e\x6d\x71\ -\xed\xc7\x03\xd2\x03\xfd\x07\x23\x0e\xb6\xd7\xb9\xd4\xd5\x1d\xd2\ -\x3d\x54\x52\x8f\xd6\x2b\xeb\x47\x0e\xc7\x1f\xbe\xfe\x9d\xef\x77\ -\x2d\x0d\x36\x0d\x55\x8d\x9c\xc6\xe2\x23\x70\x44\x79\xe4\xe9\xf7\ -\x09\xdf\xf7\x1e\x0d\x3a\xda\x76\x8c\x7b\xac\xe1\x07\xd3\x1f\x76\ -\x1d\x67\x1d\x2f\x6a\x42\x9a\xf2\x9a\x46\x9b\x53\x9a\xfb\x5b\x62\ -\x5b\xba\x4f\xcc\x3e\xd1\xd6\xea\xde\x7a\xfc\x47\xdb\x1f\x0f\x9c\ -\x34\x3c\x59\x79\x4a\xf3\x54\xc9\x69\xda\xe9\x82\xd3\x93\x67\xf2\ -\xcf\x8c\x9d\x95\x9d\x7d\x7e\x2e\xf9\xdc\x60\xdb\xa2\xb6\x7b\xe7\ -\x63\xce\xdf\x6a\x0f\x6f\xef\xba\x10\x74\xe1\xd2\x45\xff\x8b\xe7\ -\x3b\xbc\x3b\xce\x5c\xf2\xb8\x74\xf2\xb2\xdb\xe5\x13\x57\xb8\x57\ -\x9a\xaf\x3a\x5f\x6d\xea\x74\xea\x3c\xfe\x93\xd3\x4f\xc7\xbb\x9c\ -\xbb\x9a\xae\xb9\x5c\x6b\xb9\xee\x7a\xbd\xb5\x7b\x66\xf7\xe9\x1b\ -\x9e\x37\xce\xdd\xf4\xbd\x79\xf1\x16\xff\xd6\xd5\x9e\x39\x3d\xdd\ -\xbd\xf3\x7a\x6f\xf7\xc5\xf7\xf5\xdf\x16\xdd\x7e\x72\x27\xfd\xce\ -\xcb\xbb\xd9\x77\x27\xee\xad\xbc\x4f\xbc\x5f\xf4\x40\xed\x41\xd9\ -\x43\xdd\x87\xd5\x3f\x5b\xfe\xdc\xd8\xef\xdc\x7f\x6a\xc0\x77\xa0\ -\xf3\xd1\xdc\x47\xf7\x06\x85\x83\xcf\xfe\x91\xf5\x8f\x0f\x43\x05\ -\x8f\x99\x8f\xcb\x86\x0d\x86\xeb\x9e\x38\x3e\x39\x39\xe2\x3f\x72\ -\xfd\xe9\xfc\xa7\x43\xcf\x64\xcf\x26\x9e\x17\xfe\xa2\xfe\xcb\xae\ -\x17\x16\x2f\x7e\xf8\xd5\xeb\xd7\xce\xd1\x98\xd1\xa1\x97\xf2\x97\ -\x93\xbf\x6d\x7c\xa5\xfd\xea\xc0\xeb\x19\xaf\xdb\xc6\xc2\xc6\x1e\ -\xbe\xc9\x78\x33\x31\x5e\xf4\x56\xfb\xed\xc1\x77\xdc\x77\x1d\xef\ -\xa3\xdf\x0f\x4f\xe4\x7c\x20\x7f\x28\xff\x68\xf9\xb1\xf5\x53\xd0\ -\xa7\xfb\x93\x19\x93\x93\xff\x04\x03\x98\xf3\xfc\x63\x33\x2d\xdb\ -\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x25\x00\x00\x80\x83\ -\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\x30\x00\x00\xea\x60\ -\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\x46\x00\x00\x0a\x95\ -\x49\x44\x41\x54\x78\xda\x62\xfa\xff\xff\x3f\x03\x3a\x66\x62\x60\ -\x60\x60\x28\xdf\xa1\xf5\xbf\x76\xb7\xc9\x7f\x06\x28\x60\x62\x60\ -\x60\x60\xd0\x95\x70\x67\xf8\xf5\xf7\x1b\x03\x8a\xa0\xc9\xca\x45\ -\x0c\x33\xba\xb2\x19\x0a\xe6\x14\xfc\x87\x0b\x6a\xb4\xbf\x65\xfc\ -\xb8\x2f\x9b\xf1\xf5\xc7\xd7\x0c\x0c\x0c\x0c\x0c\x00\x00\x00\x00\ -\xff\xff\x62\xc2\xb0\xa4\x74\xbb\xda\xff\x3f\xff\x7e\xfe\x9f\x7c\ -\x3c\x0c\xa2\x8d\x91\x91\xa5\xe8\xe4\xe3\xd5\x0c\x35\xd5\xf6\x5f\ -\x19\x18\x18\x18\x98\x92\x0e\xbe\xec\xb3\x89\xfc\xc3\xc8\xc0\xc0\ -\xc0\x5d\x30\xa7\xe0\x3f\x93\x46\xfb\x5b\xc6\xff\xc7\x12\x18\x60\ -\x06\x03\x00\x00\x00\xff\xff\x62\xfa\xff\xff\x3f\x43\xe9\x76\x8d\ -\xa4\xb6\x03\x4e\xff\x0b\xb7\x28\xfe\x5f\x7d\xb9\xe6\xff\xaf\xbf\ -\x3f\x4e\x60\xf8\x86\x91\x81\x71\x92\xbe\xa4\x17\x83\xba\xa8\x2d\ -\xc3\xf1\x47\xcb\x18\x78\x6d\x96\xf8\x30\x20\x01\x26\x06\x06\x06\ -\x86\xc4\x83\x2f\x2f\xef\xbb\x37\x7b\xc1\xed\x37\xc7\x18\x3e\xbf\ -\x97\x64\x64\xe7\xf8\xf1\x1a\x43\x91\x46\xfb\x5b\xcb\x1e\x8f\x1b\ -\x89\x3d\x5e\xb7\x19\x67\x45\x1f\x61\xf8\xb8\x2f\x9b\xf1\xd5\xeb\ -\xd7\xff\x5f\xbd\x7e\xfd\x9f\x81\x81\x81\x01\x00\x00\x00\xff\xff\ -\x62\xc2\x16\xa2\x28\xee\x29\xdf\xa1\xc5\xb0\xfc\x62\xe9\xff\xf2\ -\x1d\x5a\xff\x1b\xf6\x5a\xfc\xff\xfe\xfb\xd3\xff\x9f\x7f\xbe\x20\ -\xac\x61\x61\x62\x67\x38\xff\x7c\x33\x43\xb0\x4e\x23\xc3\x8b\xcf\ -\xb7\x19\xe6\x9d\x4d\x67\xa8\xdc\xa9\x87\x50\xf0\xe7\xdf\x0f\x06\ -\x06\x06\x46\x06\x3e\x76\x71\x06\x7e\x0e\x71\x86\x47\x9f\x8f\xa6\ -\xcd\xed\x2d\xe6\x86\x2b\xf8\xc5\xcc\xc4\xf0\xe7\xef\x4f\x06\x45\ -\x41\x13\x86\x1f\x7f\x3e\x33\x3c\xb8\xa9\x3b\x9b\x81\x81\x01\x6e\ -\x07\x53\xfa\xbe\x17\x5c\x8e\x77\x7e\x31\x7e\xfb\xfd\x81\x81\x83\ -\x85\xf7\xda\xb6\x35\x3e\x69\xe8\x5e\xf5\x51\x7d\xf1\xfd\xff\x97\ -\x26\x05\x89\x19\x5d\xd9\x4a\x4c\x4c\xff\x66\xfa\xfa\x1c\x67\x28\ -\x9e\x57\xfc\x3f\xa6\x2f\xe6\x3f\x93\x46\xfb\xdb\x55\x1a\xed\x6f\ -\x19\x65\xdb\x7f\xbd\xfc\xb8\x2f\x9b\xf3\xe3\xbe\x6c\x46\x6e\x0e\ -\x1e\x86\x72\xdf\x0a\x06\x6e\x0e\x1e\x48\x60\xa1\x83\x2f\xdf\x3f\ -\x33\x14\x2e\x2a\x60\xf8\xf2\xfd\x33\x03\x80\x91\xfa\x07\x69\x23\ -\x0c\xc3\x00\xfe\x7c\x26\x27\x26\x1a\x8d\x29\x96\x46\x23\x76\xd0\ -\x34\x69\xb1\x81\x62\x41\x4a\x41\x17\x0b\x22\x38\xa4\x83\x8b\x9b\ -\xba\x18\x23\x84\x84\x6b\x91\x76\x28\x1a\x52\x8a\x8a\xd2\x16\x9d\ -\x3a\x08\x59\x8a\x8a\x94\xe8\x21\x6a\x88\x1d\x1c\x1c\x34\x5a\xfc\ -\x03\x1a\x44\x10\xce\x82\xf1\x3c\x8f\x6b\x4c\x72\x77\x9f\x83\x38\ -\x08\x1e\xf4\x9d\xde\xe9\xc7\x33\x3c\xef\x5b\x40\x29\x05\xcb\xb9\ -\xf1\x69\xe5\x15\xfc\xbf\x2a\x4b\x58\xce\xed\x65\x39\xf7\x20\xcb\ -\x3d\xfd\x3c\xb0\xe8\xe9\x65\x39\x57\x7d\xf7\xac\x85\x50\x4a\xa1\ -\x69\x0a\x74\xab\x0a\x00\x72\x4e\xd0\x4c\x4c\x99\x04\x90\x19\x9b\ -\xc9\xf1\x41\xd5\x72\xef\xc2\x6f\x92\xdf\x0b\x0d\xe6\xed\x62\xa6\ -\x5c\x0b\x2e\xd4\xd2\x10\xf7\xe4\xbe\x50\x37\x08\xa5\x2a\x18\x43\ -\x11\x6d\xac\xee\x40\x5e\xfd\x87\x17\x95\xed\xa8\xb6\x3e\x47\x6c\ -\xff\x0b\x32\x8a\x04\x42\x88\x8c\x02\x91\x94\xca\xdd\xfa\x48\x83\ -\xe3\x2d\xdc\x15\xcd\x27\x7f\x4e\x17\x91\xd7\x72\x68\xa9\xeb\xc3\ -\xc1\xd9\x1a\xa4\xec\x19\x6a\x6d\x8d\xb0\x99\xab\x9e\x4d\x86\x07\ -\xc7\x47\x27\x2c\x09\x5d\xe4\xe5\xd4\x24\x2c\xbf\x7f\xd6\x48\xca\ -\xc5\x47\x33\x63\x45\x26\x7f\x89\xd2\xa2\x0a\x24\xf9\x18\x8e\xc5\ -\xf5\xa5\x89\xb1\xf6\x63\x23\xa3\xf6\x03\x68\xd2\x45\xb2\x46\xd2\ -\xe6\xe4\x33\xb4\x2b\xf1\xf7\x75\x5b\xf2\x9c\xec\x1c\x4d\x93\xf2\ -\xe2\x07\x64\x39\xd6\x42\xbe\x0e\x05\x5a\x65\xa9\xe4\xf6\xb4\xb7\ -\x74\x11\x00\xf3\x00\x18\x00\x81\x87\x62\x0e\x8f\xa6\xfc\x78\x3f\ -\xd0\x89\xc3\x5d\xa7\xd7\x60\x54\x52\x00\x54\x00\xdf\x7a\x3a\x8f\ -\x3c\xc3\x73\x23\xf4\x5c\x10\xe8\xf0\xdc\x08\x0d\xfd\x08\xdd\xf9\ -\x04\x70\x45\xd2\x8a\x2b\x92\xde\x73\x45\xd2\x70\x0c\xc9\x50\x57\ -\xbb\x20\xc6\x7d\xb3\x62\xdc\xf7\x58\x8c\xfb\x8c\x62\xdc\xe7\xe7\ -\x05\x1e\x9b\xa9\x0d\x64\xaf\xae\xb0\x99\xda\x00\x2f\xf0\x77\x92\ -\xfc\xd7\x44\x83\x51\x12\x0d\x46\x89\xdd\x6e\x27\xb7\x3b\x00\x5c\ -\x53\x52\x6e\x21\x4d\xc6\x61\x18\xff\xfd\xbf\xa9\x13\xc3\x9a\xc7\ -\x0d\x52\xd3\x28\x0f\x95\x9a\x74\x20\xb5\x2e\x23\xf2\x00\x51\x61\ -\x20\xb6\x8a\xea\x42\xb4\x5a\x61\x59\x41\x65\x18\x49\x91\x22\x11\ -\x41\x60\x41\x9a\x90\x84\xbb\x30\x48\x0d\x59\x84\xa6\x61\x05\x91\ -\x59\xd0\x81\x3c\xa4\x96\xb9\x60\x6d\x6e\x73\xf3\xfb\xfe\xdd\x78\ -\x11\xc1\x2c\x2f\x9e\xbb\x87\xdf\xc5\xfb\x3e\xcf\xf3\xcf\x56\xfe\ -\x8f\x14\x80\x53\xed\xa9\x58\x07\xab\x38\xd9\x9e\x92\x5e\xd9\xb1\ -\xea\x44\x65\x47\xda\xd5\xae\x4f\x37\xcf\x9f\xea\x48\x2b\xac\x78\ -\xb4\x32\xea\x5a\x77\x1e\x52\x6a\x48\xa9\x06\xce\x89\x10\x0a\x9f\ -\x7f\xf6\xcb\x9c\x84\xe2\x37\x3e\xd5\x5d\x0b\xe2\xa4\x2a\x67\x2f\ -\x0a\x44\x5b\x79\x76\xcb\xd4\xd1\x9c\x56\xe9\xd7\xbc\x46\x9f\xea\ -\x61\xbe\xef\x64\x4d\x4d\x0f\xd1\x33\xdc\x44\x51\x7a\x0d\x7e\xd5\ -\x4b\x86\x69\x1b\x85\xa9\xa7\xa9\xed\x29\xe4\x4c\xe7\x1a\xce\x74\ -\x66\x58\xcf\x3e\x5e\x1b\x18\x12\xa4\x84\x84\xfa\x55\x0f\x41\x4a\ -\x08\xd6\xc1\x0b\xac\x36\x6e\xe5\xd9\xf0\x3d\x5a\x07\x2f\xb0\xcc\ -\x90\xc9\x8a\xa8\x6c\xc2\x82\x0d\x9f\x03\x1d\x5c\x01\xf0\xa9\x1e\ -\xd7\xf2\xc8\x8d\x24\x18\x32\x99\x99\x75\x73\x70\xfd\x2d\x04\x0a\ -\xa6\xf0\x95\x8c\xfd\x7a\xc7\x07\x7b\x77\x6e\xd8\x6c\x8e\x79\xb1\ -\x7b\x7f\x60\x88\x22\x14\xe7\xa8\x63\x80\x8f\x53\xbd\x24\x47\x6f\ -\x46\x93\x2a\x4f\xbf\xdc\xc6\x3e\x3d\x82\x40\x61\x72\x74\x45\xef\ -\xe5\x2b\x69\x27\xea\x6e\x46\x04\x86\xac\x5b\xba\xc3\x9e\x12\xbd\ -\x19\x21\x74\xa4\xc4\x6c\xa1\xe1\xe5\x21\x16\x85\x44\x90\x9d\x50\ -\x4c\x6c\x78\xd2\x74\xff\x93\x6d\x28\x8a\x56\x0b\xc4\x06\x84\xf4\ -\x7d\x6b\x73\x0e\x4e\xda\xd8\x10\xb7\x93\xde\x91\x66\xbc\xfe\x5f\ -\x98\xc2\x93\x79\x3e\x7a\x9f\xe9\xd9\xe1\xa6\xb1\xaf\x86\xc4\x39\ -\xff\xee\x80\x90\x63\x9d\xe3\x10\xac\x17\xaf\xc7\x1f\x92\x97\x52\ -\x81\x39\xeb\x06\x5f\x1d\x6f\x01\x70\xbb\xc3\x4a\x15\x9d\x56\x35\ -\xe7\x4f\x08\x08\xf1\x06\x2b\x47\xca\x1f\x4f\x44\x6a\xba\xa0\xd0\ -\xd6\x81\x73\x38\x7d\x3f\x10\x42\x41\x1f\x3a\xb3\xf1\x4e\xfd\x61\ -\x74\x3a\x75\xdf\x9c\xff\xfb\x7c\x39\xd9\x35\x13\x24\xec\xa5\x5d\ -\x13\x7a\xe3\xf8\xa4\x88\x5f\x92\x21\x46\xbe\x18\xc5\xf5\x4b\x96\ -\x17\x9a\xa6\x34\xff\xe1\x6f\x9b\x0f\x12\x0a\xe0\xd7\x09\xc7\xf6\ -\x8f\xb2\xb7\xde\xbc\x9e\xf6\x07\x45\x77\xa5\xa6\x48\xa0\x18\xa0\ -\xb0\xa0\x8f\xbd\x7b\xde\x7f\xb2\x34\x58\xa4\xa5\xc1\x22\xcb\x6f\ -\x95\xcb\x92\xba\x12\xf9\x27\x64\x13\x90\x04\xc4\x80\xcc\x79\x35\ -\x93\x01\xc8\x03\x80\x15\xf0\x01\x93\x26\x83\x89\x44\x63\x12\x71\ -\xd1\xf1\xc4\x45\xc7\x93\x68\x4c\xc2\x64\x30\xf1\xf7\x9e\x0c\xa5\ -\xd6\xd8\xa7\x52\x6b\xec\x34\xb5\xdc\xc1\x61\x2b\xd3\x1c\xb6\xb2\ -\x5d\x0e\x5b\x99\xde\x61\x2b\x33\x3a\xbd\x2e\x0a\x32\xf3\x31\xe7\ -\x9a\x31\xe7\x9a\x29\xc8\xcc\xc7\xe9\x75\x2d\x6c\x4f\x5c\x1e\x27\ -\xd5\xd6\x6a\x8e\x37\x5a\x38\xde\x68\xa1\xda\x5a\x8d\xcb\xe3\x5c\ -\xf8\x28\xcd\xdb\x9d\x85\xac\xda\xdf\x02\xf8\xcd\x7a\xb9\xc6\xc4\ -\x51\x46\x61\xf8\x9d\xd9\x9d\xd9\x4b\x61\xcb\xdd\x52\x96\x22\x97\ -\x05\xc1\x8a\xa1\x2d\x6c\x4d\x05\x0b\x05\x0b\x06\x94\x04\x41\xdb\ -\xa4\xda\xc4\x6a\xdb\xb0\x82\x0d\x54\x2c\x44\x29\xb1\x11\xa5\xd6\ -\x46\x4b\x7f\x78\x69\x09\x12\xa2\x41\xc4\xc6\x00\xe5\xba\xdc\x2c\ -\xb7\x02\xb5\x85\x0a\x85\x42\x29\x72\xdd\x05\xba\xbb\xb0\x37\x76\ -\xd9\xf1\x87\x8c\x11\x52\x4d\x16\xf8\x26\xe7\xc7\xcc\x9c\xbc\x79\ -\xe6\x9b\x2f\xe7\xbc\x67\x53\x2a\xdb\xa6\x55\xc7\x15\xe7\x88\xf7\ -\xaf\x3f\x85\xec\x3a\x29\xaa\x87\x2e\xed\x3d\xd7\x10\x7a\x29\xad\ -\xd2\xbb\x39\xbd\x52\x32\x92\x51\x15\xa0\xce\xa8\x0a\x30\x65\x54\ -\x05\x58\x4e\x5f\xf7\xb3\xd4\x0c\x7d\x65\xc8\xae\x93\xce\xa5\x57\ -\x4a\x06\x53\xcb\x77\x34\x9d\xaa\xf0\x2a\xc8\xa8\xf2\x4f\x2b\xba\ -\x95\xfa\x3c\x7b\xe4\x36\xb4\xad\x04\x41\xda\x18\xcc\x0b\xc3\x35\ -\x43\x5f\xb6\xcd\xe9\xfe\x94\xd9\x0b\xc4\xa1\xd1\xbe\xa7\x3c\x3d\ -\xec\x82\x44\x4b\xcb\x3a\x2e\x00\xc2\xc2\x98\x09\x8a\xc3\xe7\x05\ -\xba\x46\x3b\x7c\x18\xd1\x22\xc9\x8b\x19\x08\x3b\x14\xf8\xd9\x51\ -\x7f\x97\x88\xcf\x67\x16\xef\xb7\x7c\xda\x14\xa5\xcf\x6b\x8e\xce\ -\xcd\x6d\x8a\x44\x6e\x53\xa4\xf5\x20\xcc\xdf\x57\x10\x00\x2f\x2e\ -\x49\x83\xe6\x08\xb1\x60\x54\xa2\xe2\xde\x79\x58\x18\x13\x12\x9e\ -\xce\x81\xc6\x30\x83\xd0\x27\x8f\x22\xdc\xeb\x1d\xe8\x97\xd4\xc8\ -\xaa\x09\x42\x66\x75\x20\x4a\xfa\xb2\x70\x67\xba\x0a\x93\x9a\x7e\ -\x28\xb5\x23\x98\xd5\x8e\xc6\xa8\xf4\x93\x84\x4a\x3f\x69\x3d\x48\ -\x88\xf8\x55\x48\xc5\x89\xda\x60\x71\x02\x7c\x1c\xf7\x82\x22\x79\ -\x30\x2d\x1b\x40\x73\x04\x18\x9a\x6b\xc3\xd2\xb2\x01\xf9\xaf\x4c\ -\xc3\xdb\x21\x04\x27\xaf\x39\x61\x46\x3b\x8c\x83\x92\x14\x44\x78\ -\x1f\x87\x54\x9c\x88\x20\xd7\x58\x04\xba\x46\xab\x82\xc5\x09\x65\ -\x21\x1e\xb1\x6f\x79\x39\xfb\x33\x3e\x2e\x3b\xad\x07\xb9\x39\xfe\ -\x33\x3a\xc7\x4b\x75\x9d\xe3\xa5\xa6\x7e\x45\x23\x8c\xcb\x3a\x48\ -\xdd\x93\xb0\xf3\x89\x28\x18\xcd\x5a\xf0\x29\x1b\xcc\xeb\xc6\xa1\ -\xd4\x8e\x62\xb7\x38\x1e\x63\xaa\xdb\x68\x7a\x70\x15\xcd\x0f\x0a\ -\xd0\x35\xf1\x0b\xee\x2a\x6a\x0a\xef\xcd\xca\xed\x2f\x17\xcf\x25\ -\x1c\x93\x79\x76\xa7\xa6\x44\x22\x25\x65\xbf\xf5\x20\x04\x41\x82\ -\x20\xc8\x79\x30\x8c\x86\x7d\xd6\x35\x51\x86\xa1\xd9\x1b\x38\x29\ -\x2d\x46\xb0\x5b\x02\xc6\x54\x77\x70\xed\x8f\x8f\x31\xa8\xfc\x0d\ -\x24\x41\x42\x40\x6d\x85\x9b\x28\x00\xbe\x4e\xfb\xb0\x6b\xc7\x81\ -\x82\xdb\x8d\x47\xd0\xd1\xbc\x27\x9e\x01\x18\x1e\xcf\x22\xa3\x69\ -\x66\xbd\x35\x80\x51\x72\x48\x6a\xc2\xd5\xd6\x0f\x52\xf7\x24\xf8\ -\x39\x85\x61\x5e\x3f\x8e\xd6\xb1\x62\x50\x1c\x3e\x6a\xef\xe7\x43\ -\xc4\x77\x46\x9c\xff\x07\xf0\x77\x0e\x87\xce\xa4\xc2\xe8\xa3\x1e\ -\x0c\xce\x37\xf4\x35\xf6\xb6\xb5\x74\x74\x0b\xc1\xe7\x21\x73\x45\ -\xec\x23\x00\xe1\x56\x83\x78\xce\xe8\xe0\xae\xd4\x33\x16\x66\xf9\ -\x59\x85\xfe\xe1\xb1\x9b\xe3\xa5\xe8\x9d\xa9\x46\x94\x44\x06\x7b\ -\x81\x1b\x14\xda\x11\xbc\xec\x9f\x89\xc0\x6d\x31\x28\xe9\xcd\xc4\ -\xf0\x7c\x27\xb8\x24\x0d\x8a\xc3\x07\x8f\x66\xde\xeb\xed\xda\x6d\ -\xd1\x2e\xda\xbe\x4e\x90\x96\xe0\x15\x49\x67\x00\xfb\xad\x06\x79\ -\xa1\x5f\xcd\x39\x70\x57\xed\x78\xa2\x6e\x5a\x14\x36\xa0\xb9\x62\ -\x26\x49\x82\xa6\x44\x45\xf2\xe1\xaf\x61\x30\x2d\xc0\x65\x8b\x17\ -\x4c\xcb\x7a\xdc\x78\x58\x04\x21\x65\x07\x80\x01\x80\x59\x1e\xdf\ -\xf8\xcc\xef\x1d\xbb\xea\xbb\x5b\xf7\x38\xf0\x78\xc6\x0b\x6b\xf4\ -\x39\xeb\xf9\x35\x3b\x00\x64\x1b\x29\x42\x2d\x99\xd6\x37\xca\x6a\ -\xa7\x6c\x43\x07\xd4\x6f\x50\xb4\x2d\xd9\xae\x28\x7f\xb1\x7d\xa2\ -\xf4\x72\xe0\xb6\xe8\x1f\x9c\x84\x1e\xf9\x24\x57\x97\xc4\x13\x18\ -\x6d\xe6\x94\x8e\xce\xdf\x7d\x71\xbc\xaf\xbe\x22\xd2\x9e\xa2\x4d\ -\x1d\x00\xb6\xff\x4b\x4f\x0d\xa0\x75\x3d\x20\x87\x01\x24\xb1\x1b\ -\x64\xe4\x12\x1a\xdf\x69\xfd\xad\x13\x75\xd3\xfb\xd2\xeb\x54\xb5\ -\xdb\x8b\x73\x64\x83\x4d\x85\x87\x7f\x2d\x8b\x7f\xf7\xe2\xd9\xd3\ -\x3f\x9d\x3f\x73\x46\x58\x72\xe5\x50\xa4\x76\x71\x4b\x03\x97\x6b\ -\x9e\x07\xe0\xc3\x0a\xc5\xc5\xb6\x21\x2e\xb6\x6d\xeb\x91\xd7\xfa\ -\x2b\xd8\x86\x9d\x76\x35\x8d\x59\xdb\xbc\xd9\x06\xbe\x16\xe4\x13\ -\x00\x2f\x01\x68\x07\x60\x00\x60\x06\xe0\x6e\xe6\x10\x59\x66\x9a\ -\x8a\x20\x35\x23\xb8\xf8\x4d\x3d\x7a\x7a\xed\xc1\xa3\xf1\x2d\xcd\ -\x37\x2a\x08\x92\xa9\x7d\xdc\x39\x10\x09\x45\x10\x09\x45\xab\x9a\ -\x7e\xf2\x41\xd9\x2a\x03\xc0\xe6\x3c\x0e\x84\x01\xd0\x03\xe0\x39\ -\x00\x82\x95\x69\xc5\x09\x40\x0c\x00\x39\x00\xe8\x2d\x14\x9b\xfb\ -\x36\x00\x02\x80\x18\x40\x22\x80\xb3\x2b\x1f\xf2\x26\x00\x27\x21\ -\x2d\x84\x90\x16\xae\x82\xb3\x13\xda\xad\xba\x5f\x9b\xf3\x0f\xc8\ -\x8a\x2b\xf9\xcf\x10\x9f\xd3\xa2\xf0\xc7\x02\x76\xf2\x61\x63\x42\ -\x2d\x4f\x2e\x55\xcb\x93\x73\xd4\xf2\xe4\x2c\xb5\x3c\xf9\x7b\xb5\ -\x3c\x79\x6e\xea\xd1\x14\xd8\x69\x88\x0d\x76\x2a\x62\x83\xcd\xb1\ -\xda\x4b\x6c\x74\x29\x34\x8a\xcd\x31\x35\x1b\x5d\x79\xe5\x79\xff\ -\xfb\xfe\xaf\x01\x00\x3d\xb9\x4e\x56\xa9\x10\xde\xd1\x00\x00\x00\ -\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x15\xd7\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x22\x00\x00\x00\x23\x08\x06\x00\x00\x01\x86\x1c\xe8\xf1\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\x2e\x23\ -\x01\x78\xa5\x3f\x76\x00\x00\x0a\x4f\x69\x43\x43\x50\x50\x68\x6f\ -\x74\x6f\x73\x68\x6f\x70\x20\x49\x43\x43\x20\x70\x72\x6f\x66\x69\ -\x6c\x65\x00\x00\x78\xda\x9d\x53\x67\x54\x53\xe9\x16\x3d\xf7\xde\ -\xf4\x42\x4b\x88\x80\x94\x4b\x6f\x52\x15\x08\x20\x52\x42\x8b\x80\ -\x14\x91\x26\x2a\x21\x09\x10\x4a\x88\x21\xa1\xd9\x15\x51\xc1\x11\ -\x45\x45\x04\x1b\xc8\xa0\x88\x03\x8e\x8e\x80\x8c\x15\x51\x2c\x0c\ -\x8a\x0a\xd8\x07\xe4\x21\xa2\x8e\x83\xa3\x88\x8a\xca\xfb\xe1\x7b\ -\xa3\x6b\xd6\xbc\xf7\xe6\xcd\xfe\xb5\xd7\x3e\xe7\xac\xf3\x9d\xb3\ -\xcf\x07\xc0\x08\x0c\x96\x48\x33\x51\x35\x80\x0c\xa9\x42\x1e\x11\ -\xe0\x83\xc7\xc4\xc6\xe1\xe4\x2e\x40\x81\x0a\x24\x70\x00\x10\x08\ -\xb3\x64\x21\x73\xfd\x23\x01\x00\xf8\x7e\x3c\x3c\x2b\x22\xc0\x07\ -\xbe\x00\x01\x78\xd3\x0b\x08\x00\xc0\x4d\x9b\xc0\x30\x1c\x87\xff\ -\x0f\xea\x42\x99\x5c\x01\x80\x84\x01\xc0\x74\x91\x38\x4b\x08\x80\ -\x14\x00\x40\x7a\x8e\x42\xa6\x00\x40\x46\x01\x80\x9d\x98\x26\x53\ -\x00\xa0\x04\x00\x60\xcb\x63\x62\xe3\x00\x50\x2d\x00\x60\x27\x7f\ -\xe6\xd3\x00\x80\x9d\xf8\x99\x7b\x01\x00\x5b\x94\x21\x15\x01\xa0\ -\x91\x00\x20\x13\x65\x88\x44\x00\x68\x3b\x00\xac\xcf\x56\x8a\x45\ -\x00\x58\x30\x00\x14\x66\x4b\xc4\x39\x00\xd8\x2d\x00\x30\x49\x57\ -\x66\x48\x00\xb0\xb7\x00\xc0\xce\x10\x0b\xb2\x00\x08\x0c\x00\x30\ -\x51\x88\x85\x29\x00\x04\x7b\x00\x60\xc8\x23\x23\x78\x00\x84\x99\ -\x00\x14\x46\xf2\x57\x3c\xf1\x2b\xae\x10\xe7\x2a\x00\x00\x78\x99\ -\xb2\x3c\xb9\x24\x39\x45\x81\x5b\x08\x2d\x71\x07\x57\x57\x2e\x1e\ -\x28\xce\x49\x17\x2b\x14\x36\x61\x02\x61\x9a\x40\x2e\xc2\x79\x99\ -\x19\x32\x81\x34\x0f\xe0\xf3\xcc\x00\x00\xa0\x91\x15\x11\xe0\x83\ -\xf3\xfd\x78\xce\x0e\xae\xce\xce\x36\x8e\xb6\x0e\x5f\x2d\xea\xbf\ -\x06\xff\x22\x62\x62\xe3\xfe\xe5\xcf\xab\x70\x40\x00\x00\xe1\x74\ -\x7e\xd1\xfe\x2c\x2f\xb3\x1a\x80\x3b\x06\x80\x6d\xfe\xa2\x25\xee\ -\x04\x68\x5e\x0b\xa0\x75\xf7\x8b\x66\xb2\x0f\x40\xb5\x00\xa0\xe9\ -\xda\x57\xf3\x70\xf8\x7e\x3c\x3c\x45\xa1\x90\xb9\xd9\xd9\xe5\xe4\ -\xe4\xd8\x4a\xc4\x42\x5b\x61\xca\x57\x7d\xfe\x67\xc2\x5f\xc0\x57\ -\xfd\x6c\xf9\x7e\x3c\xfc\xf7\xf5\xe0\xbe\xe2\x24\x81\x32\x5d\x81\ -\x47\x04\xf8\xe0\xc2\xcc\xf4\x4c\xa5\x1c\xcf\x92\x09\x84\x62\xdc\ -\xe6\x8f\x47\xfc\xb7\x0b\xff\xfc\x1d\xd3\x22\xc4\x49\x62\xb9\x58\ -\x2a\x14\xe3\x51\x12\x71\x8e\x44\x9a\x8c\xf3\x32\xa5\x22\x89\x42\ -\x92\x29\xc5\x25\xd2\xff\x64\xe2\xdf\x2c\xfb\x03\x3e\xdf\x35\x00\ -\xb0\x6a\x3e\x01\x7b\x91\x2d\xa8\x5d\x63\x03\xf6\x4b\x27\x10\x58\ -\x74\xc0\xe2\xf7\x00\x00\xf2\xbb\x6f\xc1\xd4\x28\x08\x03\x80\x68\ -\x83\xe1\xcf\x77\xff\xef\x3f\xfd\x47\xa0\x25\x00\x80\x66\x49\x92\ -\x71\x00\x00\x5e\x44\x24\x2e\x54\xca\xb3\x3f\xc7\x08\x00\x00\x44\ -\xa0\x81\x2a\xb0\x41\x1b\xf4\xc1\x18\x2c\xc0\x06\x1c\xc1\x05\xdc\ -\xc1\x0b\xfc\x60\x36\x84\x42\x24\xc4\xc2\x42\x10\x42\x0a\x64\x80\ -\x1c\x72\x60\x29\xac\x82\x42\x28\x86\xcd\xb0\x1d\x2a\x60\x2f\xd4\ -\x40\x1d\x34\xc0\x51\x68\x86\x93\x70\x0e\x2e\xc2\x55\xb8\x0e\x3d\ -\x70\x0f\xfa\x61\x08\x9e\xc1\x28\xbc\x81\x09\x04\x41\xc8\x08\x13\ -\x61\x21\xda\x88\x01\x62\x8a\x58\x23\x8e\x08\x17\x99\x85\xf8\x21\ -\xc1\x48\x04\x12\x8b\x24\x20\xc9\x88\x14\x51\x22\x4b\x91\x35\x48\ -\x31\x52\x8a\x54\x20\x55\x48\x1d\xf2\x3d\x72\x02\x39\x87\x5c\x46\ -\xba\x91\x3b\xc8\x00\x32\x82\xfc\x86\xbc\x47\x31\x94\x81\xb2\x51\ -\x3d\xd4\x0c\xb5\x43\xb9\xa8\x37\x1a\x84\x46\xa2\x0b\xd0\x64\x74\ -\x31\x9a\x8f\x16\xa0\x9b\xd0\x72\xb4\x1a\x3d\x8c\x36\xa1\xe7\xd0\ -\xab\x68\x0f\xda\x8f\x3e\x43\xc7\x30\xc0\xe8\x18\x07\x33\xc4\x6c\ -\x30\x2e\xc6\xc3\x42\xb1\x38\x2c\x09\x93\x63\xcb\xb1\x22\xac\x0c\ -\xab\xc6\x1a\xb0\x56\xac\x03\xbb\x89\xf5\x63\xcf\xb1\x77\x04\x12\ -\x81\x45\xc0\x09\x36\x04\x77\x42\x20\x61\x1e\x41\x48\x58\x4c\x58\ -\x4e\xd8\x48\xa8\x20\x1c\x24\x34\x11\xda\x09\x37\x09\x03\x84\x51\ -\xc2\x27\x22\x93\xa8\x4b\xb4\x26\xba\x11\xf9\xc4\x18\x62\x32\x31\ -\x87\x58\x48\x2c\x23\xd6\x12\x8f\x13\x2f\x10\x7b\x88\x43\xc4\x37\ -\x24\x12\x89\x43\x32\x27\xb9\x90\x02\x49\xb1\xa4\x54\xd2\x12\xd2\ -\x46\xd2\x6e\x52\x23\xe9\x2c\xa9\x9b\x34\x48\x1a\x23\x93\xc9\xda\ -\x64\x6b\xb2\x07\x39\x94\x2c\x20\x2b\xc8\x85\xe4\x9d\xe4\xc3\xe4\ -\x33\xe4\x1b\xe4\x21\xf2\x5b\x0a\x9d\x62\x40\x71\xa4\xf8\x53\xe2\ -\x28\x52\xca\x6a\x4a\x19\xe5\x10\xe5\x34\xe5\x06\x65\x98\x32\x41\ -\x55\xa3\x9a\x52\xdd\xa8\xa1\x54\x11\x35\x8f\x5a\x42\xad\xa1\xb6\ -\x52\xaf\x51\x87\xa8\x13\x34\x75\x9a\x39\xcd\x83\x16\x49\x4b\xa5\ -\xad\xa2\x95\xd3\x1a\x68\x17\x68\xf7\x69\xaf\xe8\x74\xba\x11\xdd\ -\x95\x1e\x4e\x97\xd0\x57\xd2\xcb\xe9\x47\xe8\x97\xe8\x03\xf4\x77\ -\x0c\x0d\x86\x15\x83\xc7\x88\x67\x28\x19\x9b\x18\x07\x18\x67\x19\ -\x77\x18\xaf\x98\x4c\xa6\x19\xd3\x8b\x19\xc7\x54\x30\x37\x31\xeb\ -\x98\xe7\x99\x0f\x99\x6f\x55\x58\x2a\xb6\x2a\x7c\x15\x91\xca\x0a\ -\x95\x4a\x95\x26\x95\x1b\x2a\x2f\x54\xa9\xaa\xa6\xaa\xde\xaa\x0b\ -\x55\xf3\x55\xcb\x54\x8f\xa9\x5e\x53\x7d\xae\x46\x55\x33\x53\xe3\ -\xa9\x09\xd4\x96\xab\x55\xaa\x9d\x50\xeb\x53\x1b\x53\x67\xa9\x3b\ -\xa8\x87\xaa\x67\xa8\x6f\x54\x3f\xa4\x7e\x59\xfd\x89\x06\x59\xc3\ -\x4c\xc3\x4f\x43\xa4\x51\xa0\xb1\x5f\xe3\xbc\xc6\x20\x0b\x63\x19\ -\xb3\x78\x2c\x21\x6b\x0d\xab\x86\x75\x81\x35\xc4\x26\xb1\xcd\xd9\ -\x7c\x76\x2a\xbb\x98\xfd\x1d\xbb\x8b\x3d\xaa\xa9\xa1\x39\x43\x33\ -\x4a\x33\x57\xb3\x52\xf3\x94\x66\x3f\x07\xe3\x98\x71\xf8\x9c\x74\ -\x4e\x09\xe7\x28\xa7\x97\xf3\x7e\x8a\xde\x14\xef\x29\xe2\x29\x1b\ -\xa6\x34\x4c\xb9\x31\x65\x5c\x6b\xaa\x96\x97\x96\x58\xab\x48\xab\ -\x51\xab\x47\xeb\xbd\x36\xae\xed\xa7\x9d\xa6\xbd\x45\xbb\x59\xfb\ -\x81\x0e\x41\xc7\x4a\x27\x5c\x27\x47\x67\x8f\xce\x05\x9d\xe7\x53\ -\xd9\x53\xdd\xa7\x0a\xa7\x16\x4d\x3d\x3a\xf5\xae\x2e\xaa\x6b\xa5\ -\x1b\xa1\xbb\x44\x77\xbf\x6e\xa7\xee\x98\x9e\xbe\x5e\x80\x9e\x4c\ -\x6f\xa7\xde\x79\xbd\xe7\xfa\x1c\x7d\x2f\xfd\x54\xfd\x6d\xfa\xa7\ -\xf5\x47\x0c\x58\x06\xb3\x0c\x24\x06\xdb\x0c\xce\x18\x3c\xc5\x35\ -\x71\x6f\x3c\x1d\x2f\xc7\xdb\xf1\x51\x43\x5d\xc3\x40\x43\xa5\x61\ -\x95\x61\x97\xe1\x84\x91\xb9\xd1\x3c\xa3\xd5\x46\x8d\x46\x0f\x8c\ -\x69\xc6\x5c\xe3\x24\xe3\x6d\xc6\x6d\xc6\xa3\x26\x06\x26\x21\x26\ -\x4b\x4d\xea\x4d\xee\x9a\x52\x4d\xb9\xa6\x29\xa6\x3b\x4c\x3b\x4c\ -\xc7\xcd\xcc\xcd\xa2\xcd\xd6\x99\x35\x9b\x3d\x31\xd7\x32\xe7\x9b\ -\xe7\x9b\xd7\x9b\xdf\xb7\x60\x5a\x78\x5a\x2c\xb6\xa8\xb6\xb8\x65\ -\x49\xb2\xe4\x5a\xa6\x59\xee\xb6\xbc\x6e\x85\x5a\x39\x59\xa5\x58\ -\x55\x5a\x5d\xb3\x46\xad\x9d\xad\x25\xd6\xbb\xad\xbb\xa7\x11\xa7\ -\xb9\x4e\x93\x4e\xab\x9e\xd6\x67\xc3\xb0\xf1\xb6\xc9\xb6\xa9\xb7\ -\x19\xb0\xe5\xd8\x06\xdb\xae\xb6\x6d\xb6\x7d\x61\x67\x62\x17\x67\ -\xb7\xc5\xae\xc3\xee\x93\xbd\x93\x7d\xba\x7d\x8d\xfd\x3d\x07\x0d\ -\x87\xd9\x0e\xab\x1d\x5a\x1d\x7e\x73\xb4\x72\x14\x3a\x56\x3a\xde\ -\x9a\xce\x9c\xee\x3f\x7d\xc5\xf4\x96\xe9\x2f\x67\x58\xcf\x10\xcf\ -\xd8\x33\xe3\xb6\x13\xcb\x29\xc4\x69\x9d\x53\x9b\xd3\x47\x67\x17\ -\x67\xb9\x73\x83\xf3\x88\x8b\x89\x4b\x82\xcb\x2e\x97\x3e\x2e\x9b\ -\x1b\xc6\xdd\xc8\xbd\xe4\x4a\x74\xf5\x71\x5d\xe1\x7a\xd2\xf5\x9d\ -\x9b\xb3\x9b\xc2\xed\xa8\xdb\xaf\xee\x36\xee\x69\xee\x87\xdc\x9f\ -\xcc\x34\x9f\x29\x9e\x59\x33\x73\xd0\xc3\xc8\x43\xe0\x51\xe5\xd1\ -\x3f\x0b\x9f\x95\x30\x6b\xdf\xac\x7e\x4f\x43\x4f\x81\x67\xb5\xe7\ -\x23\x2f\x63\x2f\x91\x57\xad\xd7\xb0\xb7\xa5\x77\xaa\xf7\x61\xef\ -\x17\x3e\xf6\x3e\x72\x9f\xe3\x3e\xe3\x3c\x37\xde\x32\xde\x59\x5f\ -\xcc\x37\xc0\xb7\xc8\xb7\xcb\x4f\xc3\x6f\x9e\x5f\x85\xdf\x43\x7f\ -\x23\xff\x64\xff\x7a\xff\xd1\x00\xa7\x80\x25\x01\x67\x03\x89\x81\ -\x41\x81\x5b\x02\xfb\xf8\x7a\x7c\x21\xbf\x8e\x3f\x3a\xdb\x65\xf6\ -\xb2\xd9\xed\x41\x8c\xa0\xb9\x41\x15\x41\x8f\x82\xad\x82\xe5\xc1\ -\xad\x21\x68\xc8\xec\x90\xad\x21\xf7\xe7\x98\xce\x91\xce\x69\x0e\ -\x85\x50\x7e\xe8\xd6\xd0\x07\x61\xe6\x61\x8b\xc3\x7e\x0c\x27\x85\ -\x87\x85\x57\x86\x3f\x8e\x70\x88\x58\x1a\xd1\x31\x97\x35\x77\xd1\ -\xdc\x43\x73\xdf\x44\xfa\x44\x96\x44\xde\x9b\x67\x31\x4f\x39\xaf\ -\x2d\x4a\x35\x2a\x3e\xaa\x2e\x6a\x3c\xda\x37\xba\x34\xba\x3f\xc6\ -\x2e\x66\x59\xcc\xd5\x58\x9d\x58\x49\x6c\x4b\x1c\x39\x2e\x2a\xae\ -\x36\x6e\x6c\xbe\xdf\xfc\xed\xf3\x87\xe2\x9d\xe2\x0b\xe3\x7b\x17\ -\x98\x2f\xc8\x5d\x70\x79\xa1\xce\xc2\xf4\x85\xa7\x16\xa9\x2e\x12\ -\x2c\x3a\x96\x40\x4c\x88\x4e\x38\x94\xf0\x41\x10\x2a\xa8\x16\x8c\ -\x25\xf2\x13\x77\x25\x8e\x0a\x79\xc2\x1d\xc2\x67\x22\x2f\xd1\x36\ -\xd1\x88\xd8\x43\x5c\x2a\x1e\x4e\xf2\x48\x2a\x4d\x7a\x92\xec\x91\ -\xbc\x35\x79\x24\xc5\x33\xa5\x2c\xe5\xb9\x84\x27\xa9\x90\xbc\x4c\ -\x0d\x4c\xdd\x9b\x3a\x9e\x16\x9a\x76\x20\x6d\x32\x3d\x3a\xbd\x31\ -\x83\x92\x91\x90\x71\x42\xaa\x21\x4d\x93\xb6\x67\xea\x67\xe6\x66\ -\x76\xcb\xac\x65\x85\xb2\xfe\xc5\x6e\x8b\xb7\x2f\x1e\x95\x07\xc9\ -\x6b\xb3\x90\xac\x05\x59\x2d\x0a\xb6\x42\xa6\xe8\x54\x5a\x28\xd7\ -\x2a\x07\xb2\x67\x65\x57\x66\xbf\xcd\x89\xca\x39\x96\xab\x9e\x2b\ -\xcd\xed\xcc\xb3\xca\xdb\x90\x37\x9c\xef\x9f\xff\xed\x12\xc2\x12\ -\xe1\x92\xb6\xa5\x86\x4b\x57\x2d\x1d\x58\xe6\xbd\xac\x6a\x39\xb2\ -\x3c\x71\x79\xdb\x0a\xe3\x15\x05\x2b\x86\x56\x06\xac\x3c\xb8\x8a\ -\xb6\x2a\x6d\xd5\x4f\xab\xed\x57\x97\xae\x7e\xbd\x26\x7a\x4d\x6b\ -\x81\x5e\xc1\xca\x82\xc1\xb5\x01\x6b\xeb\x0b\x55\x0a\xe5\x85\x7d\ -\xeb\xdc\xd7\xed\x5d\x4f\x58\x2f\x59\xdf\xb5\x61\xfa\x86\x9d\x1b\ -\x3e\x15\x89\x8a\xae\x14\xdb\x17\x97\x15\x7f\xd8\x28\xdc\x78\xe5\ -\x1b\x87\x6f\xca\xbf\x99\xdc\x94\xb4\xa9\xab\xc4\xb9\x64\xcf\x66\ -\xd2\x66\xe9\xe6\xde\x2d\x9e\x5b\x0e\x96\xaa\x97\xe6\x97\x0e\x6e\ -\x0d\xd9\xda\xb4\x0d\xdf\x56\xb4\xed\xf5\xf6\x45\xdb\x2f\x97\xcd\ -\x28\xdb\xbb\x83\xb6\x43\xb9\xa3\xbf\x3c\xb8\xbc\x65\xa7\xc9\xce\ -\xcd\x3b\x3f\x54\xa4\x54\xf4\x54\xfa\x54\x36\xee\xd2\xdd\xb5\x61\ -\xd7\xf8\x6e\xd1\xee\x1b\x7b\xbc\xf6\x34\xec\xd5\xdb\x5b\xbc\xf7\ -\xfd\x3e\xc9\xbe\xdb\x55\x01\x55\x4d\xd5\x66\xd5\x65\xfb\x49\xfb\ -\xb3\xf7\x3f\xae\x89\xaa\xe9\xf8\x96\xfb\x6d\x5d\xad\x4e\x6d\x71\ -\xed\xc7\x03\xd2\x03\xfd\x07\x23\x0e\xb6\xd7\xb9\xd4\xd5\x1d\xd2\ -\x3d\x54\x52\x8f\xd6\x2b\xeb\x47\x0e\xc7\x1f\xbe\xfe\x9d\xef\x77\ -\x2d\x0d\x36\x0d\x55\x8d\x9c\xc6\xe2\x23\x70\x44\x79\xe4\xe9\xf7\ -\x09\xdf\xf7\x1e\x0d\x3a\xda\x76\x8c\x7b\xac\xe1\x07\xd3\x1f\x76\ -\x1d\x67\x1d\x2f\x6a\x42\x9a\xf2\x9a\x46\x9b\x53\x9a\xfb\x5b\x62\ -\x5b\xba\x4f\xcc\x3e\xd1\xd6\xea\xde\x7a\xfc\x47\xdb\x1f\x0f\x9c\ -\x34\x3c\x59\x79\x4a\xf3\x54\xc9\x69\xda\xe9\x82\xd3\x93\x67\xf2\ -\xcf\x8c\x9d\x95\x9d\x7d\x7e\x2e\xf9\xdc\x60\xdb\xa2\xb6\x7b\xe7\ -\x63\xce\xdf\x6a\x0f\x6f\xef\xba\x10\x74\xe1\xd2\x45\xff\x8b\xe7\ -\x3b\xbc\x3b\xce\x5c\xf2\xb8\x74\xf2\xb2\xdb\xe5\x13\x57\xb8\x57\ -\x9a\xaf\x3a\x5f\x6d\xea\x74\xea\x3c\xfe\x93\xd3\x4f\xc7\xbb\x9c\ -\xbb\x9a\xae\xb9\x5c\x6b\xb9\xee\x7a\xbd\xb5\x7b\x66\xf7\xe9\x1b\ -\x9e\x37\xce\xdd\xf4\xbd\x79\xf1\x16\xff\xd6\xd5\x9e\x39\x3d\xdd\ -\xbd\xf3\x7a\x6f\xf7\xc5\xf7\xf5\xdf\x16\xdd\x7e\x72\x27\xfd\xce\ -\xcb\xbb\xd9\x77\x27\xee\xad\xbc\x4f\xbc\x5f\xf4\x40\xed\x41\xd9\ -\x43\xdd\x87\xd5\x3f\x5b\xfe\xdc\xd8\xef\xdc\x7f\x6a\xc0\x77\xa0\ -\xf3\xd1\xdc\x47\xf7\x06\x85\x83\xcf\xfe\x91\xf5\x8f\x0f\x43\x05\ -\x8f\x99\x8f\xcb\x86\x0d\x86\xeb\x9e\x38\x3e\x39\x39\xe2\x3f\x72\ -\xfd\xe9\xfc\xa7\x43\xcf\x64\xcf\x26\x9e\x17\xfe\xa2\xfe\xcb\xae\ -\x17\x16\x2f\x7e\xf8\xd5\xeb\xd7\xce\xd1\x98\xd1\xa1\x97\xf2\x97\ -\x93\xbf\x6d\x7c\xa5\xfd\xea\xc0\xeb\x19\xaf\xdb\xc6\xc2\xc6\x1e\ -\xbe\xc9\x78\x33\x31\x5e\xf4\x56\xfb\xed\xc1\x77\xdc\x77\x1d\xef\ -\xa3\xdf\x0f\x4f\xe4\x7c\x20\x7f\x28\xff\x68\xf9\xb1\xf5\x53\xd0\ -\xa7\xfb\x93\x19\x93\x93\xff\x04\x03\x98\xf3\xfc\x63\x33\x2d\xdb\ -\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x25\x00\x00\x80\x83\ -\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\x30\x00\x00\xea\x60\ -\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\x46\x00\x00\x0b\x02\ -\x49\x44\x41\x54\x78\xda\x62\xfa\xff\xff\x3f\x03\x3a\x66\x62\x60\ -\x60\x60\x28\xdf\xa1\xf5\xbf\x76\xb7\xc9\x7f\x06\x28\x60\x62\x60\ -\x60\x60\xd0\x95\x70\x67\xf8\xf5\xf7\x1b\x03\x8a\xa0\xc9\xca\x45\ -\x0c\x33\xba\xb2\x19\xae\xed\xf5\xfd\x0f\x17\xd4\x68\x7f\xcb\xf8\ -\x71\x5f\x36\xe3\xfb\x27\x5b\x18\x18\x18\x18\x18\x00\x00\x00\x00\ -\xff\xff\x62\xc2\xb0\xa4\x74\xbb\xda\xff\x3f\xff\x7e\xfe\x9f\x7c\ -\x3c\x0c\xa2\x8d\x91\x91\xa5\xe8\xe4\xe3\xd5\x0c\x35\xd5\xf6\x5f\ -\x19\x18\x18\x18\x98\x92\x0e\xbe\xec\xb3\x89\xfc\xc3\xc8\xc0\xc0\ -\xc0\x7d\x6d\xaf\xef\x7f\x26\x8d\xf6\xb7\x8c\xff\x8f\x25\x30\xc0\ -\x0c\x06\x00\x00\x00\xff\xff\x62\xfa\xff\xff\x3f\x43\xe9\x76\x8d\ -\xa4\xb6\x03\x4e\xff\x0b\xb7\x28\xfe\x5f\x7d\xb9\xe6\xff\xaf\xbf\ -\x3f\x4e\x60\xf8\x86\x91\x81\x71\x92\xbe\xa4\x17\x83\xba\xa8\x2d\ -\xc3\xf1\x47\xcb\x18\x78\x6d\x96\xf8\x30\x20\x01\x26\x06\x06\x06\ -\x86\xc4\x83\x2f\x2f\xef\xbb\x37\x7b\xc1\xed\x37\xc7\x18\x3e\xbf\ -\x97\x64\x64\xe7\xf8\xf1\x1a\x43\x91\x46\xfb\x5b\xcb\x1e\x8f\x1b\ -\x89\x3d\x5e\xb7\x19\x67\x45\x1f\x61\xf8\xb8\x2f\x9b\xf1\xf7\xdf\ -\x1f\xff\x7f\xff\xfd\xf1\x9f\x81\x81\x81\x01\x00\x00\x00\xff\xff\ -\x62\xc2\x16\xa2\x28\xee\x29\xdf\xa1\xc5\xb0\xfc\x62\xe9\xff\xf2\ -\x1d\x5a\xff\x1b\xf6\x5a\xfc\xff\xfe\xfb\xd3\xff\x9f\x7f\xbe\x20\ -\xac\x61\x61\x62\x67\x38\xff\x7c\x33\x43\xb0\x4e\x23\xc3\x8b\xcf\ -\xb7\x19\xe6\x9d\x4d\x67\xa8\xdc\xa9\x87\x50\xf0\xe7\xdf\x0f\x06\ -\x06\x06\x46\x06\x3e\x76\x71\x06\x7e\x0e\x71\x86\x47\x9f\x8f\xa6\ -\xcd\xed\x2d\xe6\x86\x2b\xf8\xc5\xcc\xc4\xf0\xe7\xef\x4f\x06\x45\ -\x41\x13\x86\x1f\x7f\x3e\x33\x3c\xb8\xa9\x3b\x9b\x81\x81\x01\x6e\ -\x07\x53\xfa\xbe\x17\x5c\x8e\x77\x7e\x31\x7e\xfb\xfd\x81\x81\x83\ -\x85\xf7\xda\xb6\x35\x3e\x69\xe8\x5e\xf5\x51\x7d\xf1\xfd\xff\x97\ -\x26\x05\x89\x19\x5d\xd9\x4a\x4c\x4c\xff\x66\x1e\xa9\x58\xc7\xf0\ -\x97\x81\xe1\xff\xe5\x5d\xce\xff\x99\x34\xda\xdf\xae\xd2\x68\x7f\ -\xcb\x28\xdb\xfe\xeb\xe5\xc7\x7d\xd9\x9c\x1f\xf7\x65\x33\x7e\x7a\ -\xbe\x9f\xe1\xe5\xad\x59\x0c\x9f\x9e\xef\x87\x04\x16\x3a\xf8\xcf\ -\xf0\x9f\xe1\xfe\xf1\x74\x86\xff\x0c\xff\x19\x00\x8c\x93\x4f\x48\ -\x53\x71\x00\xc7\x3f\x3f\xb7\x97\x3a\x9d\xcd\x17\x46\xe8\xa4\x0e\ -\x66\x5b\x51\x41\x94\x68\x06\x75\xc8\x28\x44\x0f\x76\xe8\x32\xd9\ -\x41\x4f\xcd\x05\x52\xbc\x42\xea\x10\x2a\x8b\x0e\x51\x54\xe8\x55\ -\xbd\x45\x79\x88\xd9\x43\x56\xc3\xa2\x3a\xec\x34\x8a\xfe\x40\x45\ -\x08\xc1\x0a\x5c\xf5\x7a\xbc\x1e\xdb\xde\x7b\xbf\x0e\x11\x15\x34\ -\xe8\x0b\xdf\xeb\x87\xcf\xe1\xfb\xad\x91\x52\xa2\xe9\x51\x2e\x3e\ -\xd8\x4f\xf2\x6e\x6b\xa3\xa6\x47\x87\x34\x3d\x3a\xa9\xe9\xdb\x2f\ -\x4d\x2c\xef\x3e\xa9\xe9\x91\x9d\xa3\x8b\x41\x21\xa5\xc4\xf3\x1c\ -\xaa\x4e\x15\xc0\x2a\x7f\xf1\xea\x95\xf5\x26\x88\x3b\x6a\x7d\xf8\ -\xbc\xeb\x95\xcf\x4e\x1f\xc9\xdf\x5c\xe7\x0b\x3c\x6b\x50\x9a\xbd\ -\xd3\xf7\x3a\xe4\x19\x7d\xdb\xbf\xa4\x7e\x42\xa4\x74\x51\x7c\x75\ -\xb2\xbb\xfd\x04\x15\xf7\x3b\x7b\x5a\x07\x69\x0f\xed\x22\xfd\xfa\ -\x32\xb6\x63\x22\x84\xb0\xa8\x31\x44\x93\x35\x5a\x1d\xb2\x37\x7c\ -\x9c\x68\xcb\xa1\x0f\xcf\x3f\x2e\x53\xf1\xca\xf4\x6d\x1d\xe3\xcd\ -\xda\x53\xcc\xd2\x1a\x1d\x6a\x37\x6a\xa0\x6d\xc7\xec\xf4\xe4\xb5\ -\x2b\x33\xc1\x95\xaa\x90\x7d\xf3\xb3\x04\x1f\xdd\xda\x6c\x3a\x5f\ -\x2f\x04\x94\x10\x76\xe5\x1b\x4d\x75\x2d\xe4\x0b\x69\x56\x8d\x5c\ -\x66\xe6\xea\xe0\xaa\x5f\x71\x4f\x01\x07\xab\x42\x4a\x7e\xd1\xdf\ -\x59\xb0\xe5\xc8\xca\xa7\x03\xfd\xf9\xcf\xe2\xc5\xfb\xdb\xa2\xb9\ -\x61\x83\xb8\x9f\xee\x13\xd7\xa7\xc6\x8f\x59\x66\xa3\x04\x58\x8a\ -\x8f\xf1\x64\x4e\xc8\x5f\x7d\x3c\x27\x7e\x9f\x18\x58\x02\x14\x60\ -\x7c\xa3\x51\x66\xd3\x7c\x92\x73\x13\x31\xde\xbe\xec\x1c\xf2\xf9\ -\x9d\x77\x80\x0b\xdc\x50\xc3\x03\x74\x0d\x97\x88\x1c\xd6\xe9\x1a\ -\x2e\xa1\x86\x07\xfe\x3a\x0c\x91\x54\xd1\x89\xa4\x8a\xaf\x22\xa9\ -\x22\xe1\x29\x0b\xf7\xe1\x08\x46\x36\xb1\x68\x64\x13\x5b\x8c\x6c\ -\xc2\x6f\x64\x13\x49\xa3\x90\x21\xb7\x50\x4b\xa8\xed\x28\xb9\x85\ -\x5a\x8c\x42\x86\x3f\x4d\xfe\x2b\x3d\x31\x5b\xf4\xc6\xa5\xf0\x81\ -\xe8\x8d\x4b\xd1\x13\xb3\x05\xc0\x0f\xce\xca\x2c\x24\xca\x30\x0a\ -\xc3\xcf\xf7\x8d\x1b\x86\xa6\x96\x8e\x90\xda\x82\xe9\x58\xa9\x49\ -\x26\xa9\x85\x57\x11\x45\x03\x51\xe1\x85\x90\x26\xd5\x85\x68\x0b\ -\xe2\x92\x41\x65\x10\x49\x91\x11\x11\x42\x50\x41\x98\x4c\x11\x7a\ -\x51\xe0\x46\x4c\x44\x6a\x51\x86\x51\xd9\x45\x25\xe6\x92\x95\xcd\ -\x08\x93\xcd\xa8\x33\xfe\xff\xd7\x45\x12\x5a\xfc\x25\x1d\x78\xef\ -\xde\xf3\x70\x38\x9c\xe5\x9f\x5b\x39\x1f\x49\x80\x8a\x16\x0b\x4d\ -\xbd\xd5\x94\xb7\x24\x26\x57\xb6\xae\x2a\xad\x6c\x4d\x3a\x77\xff\ -\x7d\xdd\x89\x8a\xd6\x24\x6b\x59\xf3\xca\x45\xe7\x1f\x6d\x43\x29\ -\x1d\xa5\x34\xe3\x39\x11\x42\xd2\x37\xf6\x54\x65\xc5\xe5\xbd\xf4\ -\x6a\x9e\x5a\x10\xe5\x9a\x9a\x3e\x25\x10\x77\x4b\x32\x6f\x3b\x0e\ -\x65\x35\x2a\x9f\x3e\x69\xf6\x6a\x13\xc6\x10\x20\xcd\xe1\xfe\x40\ -\xc7\x40\x3d\xb9\xc9\x35\xf8\xb4\x49\x52\xa2\xb7\x60\xb5\x1c\xa5\ -\xb6\xc3\x4a\x55\xdb\x1a\xaa\xda\x52\x9a\x8e\xb5\xaf\x35\x86\xf8\ -\xc9\x80\x20\x9f\x36\x81\x9f\x0c\xa0\xa9\xf7\x24\xab\xcd\x9b\xe9\ -\x1c\xb8\x49\x63\xef\x49\x96\x86\xa5\x12\xbf\x28\x93\x60\xff\xb0\ -\x3e\xa3\x86\x4b\x00\xaf\x36\xf1\x7d\x45\x44\x06\x71\x61\xa9\x4c\ -\x4d\x7b\xd8\x97\x7e\x05\x81\x24\x3a\x64\x25\x1f\xbf\xbd\xe1\xad\ -\xf3\x51\x76\xf0\x74\x56\x7e\xa8\x67\xaf\x31\x44\x0a\x39\x3e\xe4\ -\x7a\xc5\x3b\x47\x17\x09\x8b\x37\xa2\x2b\x8d\x87\xfd\xd7\x70\xba\ -\x07\x11\x48\x46\x87\xe2\xbb\xce\x9c\x4d\x2a\xbd\x50\x17\x6e\x0c\ -\x59\xb7\x64\x87\x33\x71\xf1\x46\x84\x30\x91\x18\xb9\x89\xab\xdd\ -\xfb\x59\x10\x10\x4e\x66\x5c\x1e\x51\x21\xcb\xdd\x4f\x1f\x6c\x41\ -\x4a\xbd\x16\x88\x32\x84\x3c\xfe\x7c\x77\xbc\x77\xd4\xce\xfa\x98\ -\x9d\x74\x0d\x36\x30\xe9\xfb\x46\x74\x48\x02\x4f\x86\x6e\xe1\x9e\ -\x1e\xa8\xff\x38\x1c\xb6\x6c\xc6\xbf\xdb\x10\x72\xb8\x6d\x04\xfc\ -\x03\xc5\x8b\x91\x7b\x6c\x4b\x2c\x23\x3f\xed\x32\xc3\xae\xd7\x00\ -\x78\x3c\xc1\x45\xd2\xa4\x57\xcf\xf8\xe3\x0c\x21\x93\xfe\xf2\x60\ -\x49\xfb\xa7\x08\xdd\xe4\x17\xd4\xf8\xea\x38\xe3\xde\xaf\x08\x21\ -\x09\x0c\x9a\xca\xb8\x7e\xf1\x00\x26\x93\x56\x30\xe3\xff\xf2\xb7\ -\x39\xd9\x35\xe5\x27\x9c\x45\xf7\x3f\x05\x9a\x47\x46\x45\xec\xc2\ -\x14\x31\xd8\x6f\x16\x97\x4e\x1f\x79\xa6\xeb\xb2\x01\xa0\xb9\xb0\ -\x84\xe6\x82\x92\x0b\xb3\x4f\x41\x67\xfd\xdc\x53\x10\x04\xe0\x33\ -\x09\xd7\xd6\x77\xaa\xeb\x62\x7e\x3a\x2d\x77\x72\x6f\x28\x5d\x2a\ -\x20\x0f\x00\x1d\xc2\x63\xad\x84\xc7\x6c\xff\xa9\x58\x2b\xe8\x73\ -\x2b\xd9\x00\x2c\x07\x22\x41\x65\x3d\x9f\x4a\x01\x54\x21\xd0\x04\ -\x78\x81\x51\x80\x50\x73\x0e\xf1\x39\x36\xe2\x73\x6c\x84\x9a\x73\ -\xfe\x78\xc0\x58\x6a\x9c\x1f\x2c\x35\x4e\x87\xa5\xc6\x49\xfd\xed\ -\xeb\xb8\xec\xc5\xba\xcb\x5e\xbc\xcb\x65\x2f\x0e\x74\xd9\x8b\xcd\ -\x00\xee\xb1\x1e\x94\xee\x43\xe9\x3e\xdc\x63\x3d\x7f\xf4\x64\x5e\ -\xe1\xe8\xb7\xd1\x6d\x8b\xa0\xdb\x16\x81\xa3\xdf\xf6\x1f\x10\x09\ -\x28\x7d\xd6\x0b\xd4\x7f\x65\xcf\x1b\x92\xbd\x47\x89\xec\x82\xdf\ -\xb4\x47\x09\x80\x1f\xb4\x98\x6b\x50\x94\x55\x18\xc7\x7f\xef\x2e\ -\x7b\x01\x05\x41\xc1\x44\x16\x49\x2e\x12\x68\x28\x08\x62\xa3\x78\ -\x41\x48\x68\xb4\x9c\x21\x31\x9c\x29\x9c\x49\x53\x07\xc2\x48\x89\ -\x84\x31\x71\x72\x32\xb5\x72\x4c\xfd\xd0\xc5\xc8\x1c\x86\xc6\xc8\ -\xb4\x40\xee\x08\x98\x0a\x78\x4b\xc0\x50\x56\x50\x14\x94\x3b\xbb\ -\xe8\xee\xb2\xb0\xbb\x6f\x1f\x62\x1d\xd3\x6c\x06\xc7\xce\x99\xe7\ -\xcb\x3b\xe7\xfc\xdf\xdf\x79\xce\x33\xcf\x3c\xcf\x79\x26\x99\xed\ -\x99\x65\xc7\xe1\xca\x91\x0f\xf2\x5f\x60\x6b\x49\x28\x85\xea\x7d\ -\xb3\xb7\x9f\x0c\xdb\xb7\xf1\x84\x57\xe5\xa6\x13\x3e\xcd\xa9\x05\ -\xfe\xda\xd4\x02\xff\xa1\xd4\x02\x7f\x4b\x4a\xbe\xaf\xa5\x48\xfd\ -\xe5\xc0\xd6\x92\xd0\x9e\x4d\x27\x7c\x1a\x37\xe4\x4e\xaa\x48\xce\ -\xf3\xcc\x4c\x2d\xf0\xdb\x78\xf8\xd2\x86\xb9\xd6\x90\x1b\xe9\xf8\ -\x87\x5b\x05\x41\x32\x7a\xc0\x74\xaf\xa9\x48\xbd\xf7\x6c\x8f\xfe\ -\x76\xa2\x93\xad\x2a\x2c\x6a\x4a\xf2\x64\x0f\xc7\x40\x87\x41\xb3\ -\xde\x06\x10\x2c\xa2\x49\x90\x49\x95\x8a\x00\xd7\xa8\xb1\x5b\xc2\ -\x4f\xf9\xec\x8a\xbe\x3a\x2f\x2e\x60\xe7\x2a\xbf\xf1\xe1\x9f\x75\ -\xdc\xbf\x7e\xea\xd3\x8a\x48\xc3\xae\xca\xa8\x1d\x3b\x2a\x22\xd8\ -\x51\x11\x31\x72\x10\xf1\xef\x19\x08\x78\xda\x48\xe4\xc8\xa5\x76\ -\xdc\x33\x76\x91\x77\x6d\x37\x16\x71\x88\x98\xa9\xdb\xe8\x1f\xe8\ -\x20\xec\xf9\x55\x2c\xf4\x7c\x07\xc3\xa0\x96\xf4\xa2\x40\xd2\x0a\ -\x03\x38\x52\x9f\x4e\x6d\x7b\x01\x77\xfa\x1b\xe8\xd2\x35\xd3\xad\ -\xbb\x19\xad\x31\xdc\x11\x34\x86\x3b\x23\x07\x99\xa5\x7a\x9d\x50\ -\xd5\x72\x5d\x88\x2a\x06\xef\x71\xb3\x91\x49\x14\x0c\x99\x07\x90\ -\x4b\x6d\x51\xf7\x9c\x65\xd0\x3c\xc0\xfe\xd7\xda\xf1\x1a\x3b\x8b\ -\xf5\xc7\x9c\xe9\xd0\x35\xb1\xd8\x27\x89\x70\xaf\xb5\x84\xaa\x96\ -\x13\xe8\xba\x84\x00\xd7\x28\x4d\x88\x2a\xe6\xe8\x2c\x8f\x25\x6f\ -\x7b\xba\xf8\x89\xde\xe3\xa7\x8d\x1c\xe4\x5c\xeb\xcf\xd4\xb4\xe6\ -\xe8\x6b\x5a\x73\x86\x1a\x3a\xcb\x31\x9a\xf5\x84\xba\xc7\x32\xed\ -\xb9\x48\x8c\x26\x1d\x4a\xd9\x68\x7a\xf5\xad\x74\xe9\x6e\x32\x53\ -\xb5\x8c\x5b\x9a\xcb\x54\xdc\xf8\x8e\xca\x1b\x99\x9c\x6f\xfb\x85\ -\x2b\x9d\x45\x87\xae\x75\x97\x39\x1d\xc8\xea\x89\x59\x9d\x38\xf9\ -\xc2\x86\xa4\x08\x92\x92\x16\x8c\x1c\x44\x10\x24\x08\x82\xa4\x17\ -\x51\xec\xb7\x7e\x3b\xdf\x76\x14\x75\xf7\x69\xd6\x87\x66\x11\xe2\ -\x16\xc3\x2d\x4d\x2d\xc7\xfe\xfc\x98\xc6\xae\xdf\x91\x08\x12\x6c\ -\x65\x63\x70\x73\xf0\x67\x8a\xf3\x1c\x82\x26\x2d\xca\xbc\x5c\xfe\ -\x26\xd5\x95\xc1\xcb\x44\x10\x15\x0a\x4b\xa2\x5c\x2e\x3e\x5d\xb0\ -\x82\xd8\x25\x95\xc8\xda\x5c\xed\x7d\x09\x75\x8f\xc5\xd7\x79\x1e\ -\xbd\x86\x56\xce\xdc\xca\x42\x26\x55\x52\x7c\x7d\x3f\x0e\x4a\x17\ -\x96\xfa\x7d\x88\x9f\xcb\x42\xf4\x43\x1a\x6e\xf6\x5d\xa4\xb1\xf7\ -\x64\x7d\x79\xdd\xd9\x53\xd5\x17\xec\x50\x2a\x48\x1b\x16\xfb\x08\ -\x58\x38\x62\x90\xc9\x1d\x7a\xdc\xbb\x0c\xa2\x45\x34\x4f\xef\x34\ -\xb4\xac\x3e\xd7\x9a\x43\x5d\x47\x21\x91\x3e\x89\x38\xd9\xba\xd1\ -\xa9\x6b\xe6\x55\xbf\x34\x02\x26\x44\x73\xa4\x2e\x8d\xa6\xde\x1a\ -\x6c\x24\x72\x64\x52\x25\x0a\xb9\xf8\x5e\xdd\xf9\x99\x16\xdd\x7d\ -\xfb\x37\x04\x89\x25\x64\x58\xd2\x05\x58\x30\x62\x90\xf9\x0d\x5a\ -\xe9\xa2\x2b\xda\x71\xeb\x4a\xda\x1d\xe6\x5d\xed\x3f\x68\x92\x48\ -\x04\xb9\xcc\xe1\x70\x59\xd3\x57\x0c\x0c\xdd\x63\xfc\x28\x4f\x86\ -\xcc\x06\x4e\xb7\x1c\xc6\x4e\xe6\x08\x88\x00\xdd\x0a\xa5\xf1\xc5\ -\x3f\xaa\x83\x4a\x2f\x9c\x09\x1e\xab\x50\x18\x3f\x7f\x44\x5f\xfa\ -\x34\x57\x33\x09\xd8\x6a\x94\x09\x5a\x9f\x76\x43\x79\x62\xf1\x5d\ -\xfb\xb0\xab\xda\xb7\x64\x72\x7b\x49\x55\x67\xee\xcb\x55\x6d\x39\ -\x07\x02\x26\x44\x65\x3b\xdb\x79\xec\x97\xd8\xe8\x63\x15\xb6\xc6\ -\xd1\x3d\x5d\xe3\x5c\xbe\xfd\x62\x6d\x7d\x69\x5e\x84\x93\x4c\x3e\ -\x54\x0d\x4c\x7c\x48\x4f\x0b\x9c\x79\x1a\x90\x95\x40\xac\xd5\x41\ -\x46\x1b\xa1\x7f\x4a\xbb\xe1\xd2\xba\x92\xf6\x39\x9b\x4a\x34\xc5\ -\x13\xb3\xb6\x25\x36\x56\x1c\x5a\xf9\xeb\xd1\x65\xef\xee\xc9\x48\ -\xf9\x69\xf7\xe6\xcd\x76\x47\x0e\xc6\x45\xe8\xee\x8f\x3a\x69\x63\ -\x63\xea\x05\xbc\xad\x42\x79\xf1\x89\x14\xae\x49\x1f\x53\xf9\xfe\ -\xf7\x79\xb5\xf9\x61\x62\x7d\x51\xa4\x68\x06\xb1\xbe\x28\x52\xac\ -\xcd\x0f\x13\x2f\xe7\x86\x88\x55\xd9\x8e\x0f\x1a\x82\x47\x41\x3e\ -\x01\x5e\x01\xaa\x80\x01\xc0\x04\xb8\x9b\xa4\x42\xba\x49\x2e\x0b\ -\x97\xf4\x37\xb3\xe7\xeb\x52\x2e\xd6\x39\xa1\x90\xf3\x8d\x5c\x69\ -\xec\x14\x24\x62\xf1\xbf\xc5\x81\x00\x78\x04\xed\xc4\x7b\x7e\x36\ -\x8e\x6e\x8b\x51\x4d\xdf\x02\x80\x6a\xfa\x16\x1c\xdd\x16\xe3\x3d\ -\x3f\x1b\x8f\xa0\x9d\x08\x4f\xf0\x88\x08\x5c\x04\x5e\x02\x6c\x87\ -\xbb\x15\x67\x20\x1a\x28\x03\x30\x58\x64\xd6\xb5\x6b\x86\xff\xa7\ -\x02\x96\x03\x19\xc3\x07\x89\x1f\xde\x43\x5f\x6b\x2e\x2d\x35\xc9\ -\xb8\x4e\x4d\xc1\x6c\xd2\x73\xad\x74\x29\x66\x93\x1e\xd7\xa9\x29\ -\xb4\xd4\x24\x63\x7d\xce\x78\x0c\x64\xb8\x2a\x79\xa2\xa9\xb6\xeb\ -\x38\xf4\x63\xa6\xb5\xf3\xb1\x5a\x9b\xb6\x2c\x21\x47\x5b\x96\xb0\ -\x4d\x5b\x96\x90\xae\x2d\x4b\xf8\x41\x5b\x96\xd0\x03\xa0\xb4\xf7\ -\x42\x35\x23\x03\x75\xc5\x0a\xcc\x83\x1a\x7c\x17\xfd\x86\x79\x50\ -\x83\xba\x62\x05\xaa\x19\x19\x28\xed\xbd\xfe\x2b\x8f\x3c\x9b\x21\ -\x02\x77\x1b\xf6\x52\x97\x1b\x4c\xdf\xed\xe3\xa8\x2b\xe3\x00\x50\ -\x57\xc6\xd1\x77\xfb\x38\x75\xb9\xc1\xdc\x6d\xd8\x8b\xf8\x7f\x83\ -\xcc\x8d\x7f\xbc\x00\xb2\xb6\x78\x0f\xdb\xdc\x78\xf1\x41\x98\xfc\ -\x35\x00\xe1\xfe\x7a\x92\x1d\x0a\xb2\xf0\x00\x00\x00\x00\x49\x45\ -\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x08\xb7\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ -\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ -\x00\x00\x08\x6e\x49\x44\x41\x54\x58\x85\xc5\x97\x7b\x70\x55\xd5\ -\x15\xc6\x7f\x7b\x9f\x73\x6e\x6e\x6e\xde\xb9\x97\x20\x84\x47\x5e\ -\x04\x12\x02\x11\x05\x05\x22\x05\x44\x0a\xa2\x28\xd6\xe2\x4c\xa7\ -\x75\xa8\x76\xac\xa3\x33\x3a\x63\x67\xb4\xd3\x87\x6d\x1c\x2b\x7d\ -\x4d\xff\x68\xcb\xd8\x56\x1d\x29\x76\xaa\x45\xc6\xe7\x0c\xa1\xa9\ -\xa0\x11\x5a\x01\x8d\x41\x1e\x01\xcc\x83\x24\x4a\x42\x42\x72\xf3\ -\xbc\xaf\xdc\xdc\xb3\x77\xff\x38\xe7\xde\x24\xd5\x19\x69\xa7\x33\ -\xee\x99\x35\xe7\xdc\x39\x77\xaf\xf5\x9d\x6f\x7d\x6b\xad\xb3\xe1\ -\x4b\x5e\xe2\x4a\xff\xb8\x6e\x5d\xad\xd9\x91\x61\xad\x11\x88\xed\ -\x02\xb1\x46\x43\x00\xc8\x71\x1f\x8f\x08\x18\x10\xe8\x23\x36\x7a\ -\x5f\x71\x78\xe2\x48\x43\x43\x6d\xe2\xff\x02\xa0\x68\x5b\x6d\xae\ -\x18\x4f\xfb\x31\x82\xfb\xca\xe6\xcd\xe0\xc6\x15\xa5\x59\x2b\xaa\ -\xe6\x8a\xab\x02\x59\xf8\xb3\xd3\x01\x18\x1c\x8d\xd2\x1b\x1c\xa3\ -\xb1\xf9\xa2\x3e\xf4\x41\xfb\x58\x6b\xe7\x65\xd0\x3c\xab\xd3\xc6\ -\x7f\xd6\xf9\x7a\xed\xf0\xff\x0c\xa0\x68\xf3\xce\x87\xa5\x21\x9e\ -\xdc\x5c\xb3\x28\xfd\xfe\xaf\xaf\xb4\xca\xe7\x05\xae\x88\xb3\xb6\ -\x4f\x83\x3c\xf3\xca\xf1\x89\xfd\x87\xcf\x46\x95\x96\x8f\x77\xd6\ -\x7d\xff\x77\xff\x15\x80\xa2\x75\xb5\x5e\xed\xf3\xfe\x75\x71\xe9\ -\xcc\x4d\x4f\x3e\xf8\xd5\x8c\xca\xe2\x02\x10\x8e\xe3\x7f\x9d\xfc\ -\x84\x13\x1f\x5f\x22\x38\x1a\x61\x70\x24\x86\x10\x10\xc8\x4d\xc7\ -\x9f\x93\xc1\xb2\xf2\x59\xac\x5e\x3a\x97\x92\x39\xf9\x00\x7c\xdc\ -\xd9\xcf\xe3\x4f\xbf\x15\x3e\xdd\xd6\x5b\x4f\x38\xfa\xcd\xce\x86\ -\xda\xd8\x17\x02\x58\xbc\xbd\xd6\x13\x0e\xa7\xbd\xbf\x6d\x7d\x55\ -\xc5\x4f\xee\xdf\xe0\x49\xf7\x58\xb4\x7e\x1a\xe4\xb9\x37\x1a\x69\ -\x3c\xdb\x8d\x34\x24\x86\x94\x08\x21\x90\x52\x20\x10\x29\x2f\x5a\ -\x6b\xb4\xd6\x2c\xaf\x28\x64\xc7\x2d\x57\x53\x3a\x27\x9f\x58\x3c\ -\xc1\x53\xcf\xbe\x1d\x7f\xe5\xd0\xe9\x73\x3e\x5f\xec\xba\xe6\x7d\ -\xb5\xf1\xa9\xf1\x8c\xe9\xe1\xb5\xc8\x2c\x3e\xf6\xea\xb6\x1b\xab\ -\x56\xee\x7c\x68\x53\x9a\x65\x1a\xbc\xde\x70\x96\x27\x9e\x7b\x9b\ -\x4b\x03\x21\x4c\xd3\xc0\x9a\x62\xa6\x61\x60\x9a\x06\x86\x29\x31\ -\x0c\x89\x69\x18\x48\x43\x72\x29\x18\xe2\xad\xe3\xed\x64\xf9\xd2\ -\xa8\x2c\x9e\xc1\x8d\x2b\x4a\x8d\xbe\xa1\x70\xde\xc9\x96\x81\x6b\ -\x86\x5b\x0e\xee\x85\x27\x3e\x1f\x40\xf1\x16\xef\xa3\xab\xae\x2e\ -\xba\xf7\x37\x8f\xdc\x92\x6e\x18\x92\xdf\xef\x3d\xca\x9e\xfd\x1f\ -\x61\x18\x06\xa6\x69\x62\x59\x6e\x70\xcb\xf9\x6d\x9a\xc6\xa4\x49\ -\x03\xc3\x65\xc7\x30\x24\x00\x8d\xe7\x7b\x08\x45\xe2\x5c\x5b\x31\ -\x9b\x35\xcb\x8a\xcd\x33\xed\x7d\x73\x43\xd9\xfb\xe3\x43\x2d\x07\ -\xdf\xfb\x4c\x0a\x0a\xef\xd8\xe9\xcf\xd4\x56\xcb\x9b\xbf\xfd\x76\ -\xfe\xbc\x99\xb9\xbc\x54\x7f\x92\xe7\xde\xf8\x10\xd3\x32\xa7\xbc\ -\xad\x64\x69\xd9\x0c\x96\x94\x14\x50\x51\x14\xa0\x20\xcf\x47\x6e\ -\x56\x3a\xe3\xf1\x04\x7d\x83\x61\x9a\x5a\xfa\xa8\x3f\xde\x41\x28\ -\x1a\xc7\x56\x0a\xdb\x56\x24\x6c\xc5\xdd\x9b\x97\x72\xe7\xfa\x0a\ -\x2e\x5e\x1e\x65\xeb\xc3\xbb\x07\x47\x89\x97\x77\xbf\xf6\xc3\xe0\ -\x34\x06\xfc\xa5\x37\xed\xba\xe7\xf6\xe5\xd7\xdf\xbc\x7a\xa1\x3c\ -\x73\xa1\x8f\x9f\xef\x39\x8c\x69\x18\x58\x2e\x00\xcb\x72\xee\x7f\ -\xfd\xc0\x57\x58\x34\xdf\xcf\x8c\x5c\x1f\x3e\xaf\x07\xc3\x90\xa4\ -\x79\x4c\xf2\xb2\xbc\x2c\x9a\x9f\xcf\xaa\xaa\xd9\x9c\x6a\xef\x27\ -\x16\xb7\x1d\x9d\x00\xa7\xda\xfb\xa8\x2e\x9b\x49\x49\x61\x1e\x13\ -\xb6\xf2\x9c\x38\xdd\x5d\x30\xd4\x72\xf0\x4d\x00\x09\xb0\x78\x5d\ -\x6d\xa6\x65\xca\xbb\xee\xb9\x6d\x85\xa1\xd1\x3c\xbd\xef\x38\x52\ -\xc8\x69\x14\x3b\x40\x4c\x84\x10\x08\xe1\x10\x17\x4f\x28\xe2\x09\ -\x85\x94\x12\xe9\x0a\x33\x3f\xcb\xcb\xf6\xf5\x0b\xb1\x2c\x13\x8f\ -\x65\x62\x59\x26\x86\x34\xd8\xbd\xff\x23\x34\x70\xf7\x96\x6b\x0c\ -\xd3\x34\xee\x5a\xbc\xae\x36\x13\xc0\x04\x88\xf8\xbc\x5b\xd6\x5e\ -\x5d\x2c\xf3\xb3\xd3\x39\xd5\xd6\x4b\xcb\x27\x41\x3c\x1e\x73\x8a\ -\xe8\xdc\x34\x98\x06\x09\x5b\x71\xfc\x7c\x3f\xef\x35\xf7\xd2\x3b\ -\x14\xc1\x10\x82\x0d\xcb\xe7\x73\x7b\x4d\x69\x0a\x5c\xe5\x7c\x3f\ -\x1e\xcb\x24\x21\x6d\x5c\xac\x74\x74\x0f\x73\xae\x73\x80\xca\xa2\ -\x00\x6b\xaf\x2d\x91\x07\x8f\xb6\x6e\x01\x5e\x96\x8e\xf6\xf5\x8e\ -\x9b\xae\x5b\xe0\x43\xc0\x91\x8f\xba\x1c\x31\x19\x4e\xde\x0d\x37\ -\xf7\x49\x30\xbf\x78\xe9\x04\xaf\xfd\xf3\x02\x03\xa3\xe3\xa4\x79\ -\x2c\x2c\x8f\xc5\xd9\xae\x41\xb4\xd6\x29\x31\x4b\x49\x8a\xb1\xa9\ -\x2c\xbe\xdf\xdc\x0d\xc0\xc6\x95\xe5\x3e\x21\xc5\x8e\x14\x03\x68\ -\x96\x55\x95\xcd\x04\xa0\xf5\x93\xe0\x34\x35\x9b\xc6\x64\x2a\x2c\ -\xd3\x24\x34\x6e\x63\x59\xa6\x0b\x4e\x22\xa5\x60\xcd\x92\xc2\x54\ -\x0f\xd0\x5a\x73\xb1\x3f\x8c\x65\x19\xae\x6b\x8d\xd6\xa0\x94\xe6\ -\xc2\xa5\x21\x00\x2a\x4b\x0a\xd0\x5a\x2f\x9b\x04\x20\xf0\x17\xe4\ -\x67\x02\x4e\x5f\x97\x6e\xf0\xa9\xe6\x00\x91\x93\x3d\xc0\xb5\x9a\ -\xc5\x57\xb1\xaa\x72\x66\x2a\xb8\xad\x14\xef\x9e\xee\xc3\x32\x0d\ -\xd0\x4e\x73\x52\x4a\x63\x18\x92\x91\xd0\x38\x08\xc1\x8c\xdc\x0c\ -\x34\xda\x3f\x95\x01\xf2\xdc\xc1\x32\x16\x89\xbb\xa2\x12\x93\x40\ -\xa4\x93\x12\xc3\x6d\x3c\xc9\xd2\x5c\xbb\x74\x16\x6b\x16\x4f\x09\ -\x6e\xdb\x1c\x68\xec\xa6\x67\x30\x8a\x69\x18\x4e\x60\x25\x31\x6c\ -\xc7\x4f\x24\xe6\x0c\xc8\x9c\xcc\xb4\x54\xfd\xcb\x64\x37\x18\x1a\ -\x8d\xba\x0f\xbd\x48\x21\xa6\x9b\x94\x18\x52\x4c\x63\xa3\xba\x38\ -\x9f\xd5\x8b\x02\x28\xa5\x50\x4a\x61\xdb\x36\x75\x1f\x5e\xe2\xe3\ -\xee\x31\xb7\x3b\x4e\x6f\x4c\x52\x0a\xb2\x33\xbd\x00\x8c\x84\xc7\ -\x53\x2d\x48\x02\x08\x4d\xb0\x7f\x28\x0c\x40\x20\xcf\x87\x10\x38\ -\x8a\x96\x8e\x49\x29\x10\x2e\x2b\x49\x87\xd7\x2f\xf4\xa7\x82\x2b\ -\xa5\x38\xd6\x32\x44\x57\x7f\xd4\x65\xca\x01\x9c\x64\x52\xb8\x2f\ -\x92\x9f\xed\x00\x08\x0e\x47\x10\x10\x9c\x04\x20\xe4\x89\xe6\x0b\ -\x97\x01\x58\x38\x2f\xe0\xd4\xb9\x10\x08\x40\x20\xdc\xf2\x22\x55\ -\x66\x52\x08\xb2\xd3\x8d\x14\xf5\x4a\x29\xda\xfa\x22\x29\x86\xa4\ -\x10\x08\x91\xbc\x3a\x7b\x11\x82\x92\xd9\x79\x00\x9c\xeb\xec\x47\ -\x48\x79\x22\xa5\x01\xad\xf5\x9e\x43\xc7\xdb\xd6\xdd\xb1\xbe\xd2\ -\x57\xb3\x74\x2e\x07\x8e\xb6\x4d\xf6\x68\x91\xbc\x4c\x19\x9c\x42\ -\xf0\x87\xfa\x0e\xd2\x3c\x16\x1e\x8f\x85\xc7\x63\xa2\x34\xa9\x06\ -\xe5\xe2\x9f\xb2\x9c\xdd\xcb\x17\xcd\x02\xe0\xad\x63\xad\x11\x65\ -\xab\x3d\x29\x00\xbe\x48\xac\xee\x48\xd3\x05\x35\x3c\x16\xa3\xb2\ -\xa4\x80\x05\xf3\xfc\x74\xf5\x8e\x90\x14\x68\xf2\x4d\xd1\xc9\xb2\ -\xd2\xec\x58\x3b\x27\x35\x92\x01\x5e\x3e\xd6\x8f\x52\xca\x61\x24\ -\xb9\x07\x8d\x76\x9d\x14\xcd\xca\x61\xc1\x9c\x7c\x46\x43\xe3\xbc\ -\xf3\x7e\xab\xf2\x45\x62\x75\xa9\x14\x34\x37\xd4\x86\x12\x09\xb5\ -\xf7\x2f\x75\x4d\xb6\x00\xee\xbd\x75\x19\x42\x08\xd7\x99\x53\xc7\ -\xc9\x7b\xa5\x34\xca\x56\x58\x06\x58\x06\x98\xd2\xb1\xf8\x44\x82\ -\x89\x84\x4d\xc2\x56\x28\x5b\x39\xff\x53\x1a\xad\x1c\xe0\x77\xad\ -\xaf\x00\x01\x7f\xfb\xc7\x49\xdb\xb6\xd5\xde\xe6\x86\xda\xd0\x64\ -\x15\x00\xf1\x84\xf5\xd8\xee\xd7\x3e\x18\xee\xee\x1f\x63\xd1\x7c\ -\x3f\xdf\xd8\x58\xe5\x04\x57\x4e\x8e\xed\xe4\xd5\x9d\x70\x53\x05\ -\xa8\x94\x22\x3e\x31\xc1\xc4\x84\x4d\x22\x61\x93\xb0\x6d\x6c\xdb\ -\x4e\x3d\xdb\x5a\x53\x46\x69\x61\x2e\x7d\xc1\x10\x7f\xda\x77\x6c\ -\x38\x16\xb7\x1e\x4b\xc6\x4d\x4d\xc3\xd1\xf6\xfa\x68\x4e\xd9\x06\ -\xdd\xd1\x33\x5c\xb3\xb9\xa6\xdc\xaa\x2c\x0a\x10\x8e\x4d\xd0\xde\ -\x3d\xe4\x28\x5a\x48\xa7\x22\x84\x93\xd1\x6b\x4a\x73\xb1\xb5\x26\ -\x61\x3b\xa0\x3e\x68\x1b\x26\x61\x2b\x07\x80\xcb\xc4\x44\xc2\xe6\ -\x86\x25\x85\x6c\x5d\x5d\x4a\xc2\x56\xfc\x60\x57\x7d\xa4\xad\xab\ -\xff\xa9\xae\x03\x8f\x1e\xfa\x0f\x89\x25\x97\x16\xa5\xb7\xfe\xea\ -\xf5\xed\x9b\xaa\x37\xfd\xf4\xbb\x1b\xd2\x84\x10\x1c\x6a\xec\x60\ -\xef\xa1\x73\x48\x29\xdd\xe9\x96\xfc\x18\x71\x9b\x93\x5b\x66\x5a\ -\x83\xd2\x0e\xfd\x09\x37\x05\xb7\xad\x2e\xe1\x86\x25\x85\x68\x60\ -\xe7\xf3\x0d\xe3\x2f\xd6\x35\xd5\xb7\xbd\xf9\xe8\x36\x10\xfa\x33\ -\x0c\x38\xeb\x09\x66\x57\xdf\xf0\xea\xc9\xf3\x03\x5b\x07\x46\xa2\ -\x81\x55\x4b\xe7\x19\x0b\xe6\xfa\xa9\x2e\x2b\x20\x38\x1a\xa5\x6f\ -\x28\xe2\x40\x76\xb7\x27\xf3\x3c\xf5\xe3\x23\x61\xdb\x2c\x28\xcc\ -\xe5\x5b\x1b\x2b\xa8\x2a\x0e\x30\x3e\x61\xf3\xcb\x17\x0e\xc7\x5f\ -\xac\x6b\x3a\x93\x96\x16\xd9\xdc\x7f\x76\xbd\x3d\xbd\x3e\x3e\x67\ -\xcd\x59\xf5\x48\xba\x95\x1f\x78\xa9\xba\x7c\xce\xc6\xa7\x1e\xba\ -\xd9\x57\xea\x7e\xe5\x5e\xbc\x3c\xca\xa9\xf6\x7e\x5a\xbb\x87\x18\ -\x0b\x4f\x30\x16\x8b\x23\x85\x20\x27\xd3\x4b\x8e\x2f\x8d\xb2\xc2\ -\x5c\xaa\x8a\xfd\xcc\x0e\x38\x73\xa5\xe3\xd2\x30\x3f\xda\xf5\xf7\ -\x68\x53\xf3\x85\x77\x7b\x8f\xbd\x70\x5f\x74\xb0\x2d\x08\x44\xbf\ -\x10\x00\xe0\x03\xb2\x0b\xd7\x7e\xef\x41\x6f\x76\xe0\x91\x3b\x37\ -\x2c\xf3\x7e\xe7\x6b\x2b\xcc\xf9\x57\xe5\x5e\xd1\x51\xea\xd3\xcb\ -\xa3\x3c\xff\x46\x63\xe2\xe5\x03\x1f\x8e\x47\x83\x5d\xcf\x74\x1f\ -\xfd\xe3\x6e\x60\xcc\xb5\x21\x40\x7d\x11\x80\x34\x20\x0b\xc8\x4a\ -\x2f\x28\x9d\xed\xaf\xdc\xf6\x80\x95\xe1\xdf\x56\x55\x3a\x4b\x6c\ -\x5e\x53\x99\x7e\x6d\x45\xa1\x98\x91\xe7\x23\x27\xc3\x0b\x02\x46\ -\x43\xe3\x0c\x8c\x44\x68\x3a\xdf\xa3\xeb\x0e\x37\xc7\xce\xb4\xf6\ -\xe8\xd8\x58\x4f\x7d\xf0\xd4\xab\x7f\x1e\x1f\xee\xe9\x75\x03\x87\ -\x80\x41\x20\x7c\x25\x0c\x80\x53\xa2\x19\x40\x36\x90\x61\x59\xbe\ -\xac\xec\xf2\x8d\x2b\x7d\x05\x0b\x36\x5a\xe9\xd9\xd5\x60\xe4\x68\ -\x21\x7d\x8e\x13\x15\x45\xdb\xa3\xf1\xf0\xd0\x99\x48\xdf\xf9\x77\ -\x46\xdb\xde\x69\x4a\x24\x62\x21\x1c\xba\x43\xc0\xb0\x0b\xe2\x33\ -\xe7\xc5\x2b\x3d\x9c\x1a\x80\x05\x78\x5d\x76\xbc\x38\x5d\xd4\x72\ -\x81\x2a\xc0\x06\xe2\xae\xc5\x80\x71\xf7\xfe\x8a\x0e\xa9\x5f\xda\ -\xfa\x37\x3d\x87\xb9\xea\xf9\xa4\xbb\x03\x00\x00\x00\x00\x49\x45\ -\x4e\x44\xae\x42\x60\x82\ -" - -qt_resource_name = "\ -\x00\x07\ -\x07\x3b\xe0\xb3\ -\x00\x70\ -\x00\x6c\x00\x75\x00\x67\x00\x69\x00\x6e\x00\x73\ -\x00\x05\ -\x00\x49\xc3\x81\ -\x00\x43\ -\x00\x65\x00\x6e\x00\x52\x00\x61\ -\x00\x0e\ -\x09\x71\xe2\xe7\ -\x00\x70\ -\x00\x61\x00\x67\x00\x65\x00\x5f\x00\x61\x00\x6a\x00\x6f\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0c\ -\x0a\x09\xe1\x87\ -\x00\x70\ -\x00\x61\x00\x67\x00\x65\x00\x5f\x00\x6e\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x08\ -\x0c\x33\x5a\x87\ -\x00\x68\ -\x00\x65\x00\x6c\x00\x70\x00\x2e\x00\x70\x00\x6e\x00\x67\ -" - -qt_resource_struct = "\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ -\x00\x00\x00\x14\x00\x02\x00\x00\x00\x03\x00\x00\x00\x03\ -\x00\x00\x00\x24\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x00\x46\x00\x00\x00\x00\x00\x01\x00\x00\x15\x6e\ -\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x49\ -" - -def qInitResources(): - QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) - -def qCleanupResources(): - QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) - -qInitResources() diff --git a/CenRa_POSTGIS/resources_rc.qrc b/CenRa_POSTGIS/resources_rc.qrc deleted file mode 100644 index 0ce36606..00000000 --- a/CenRa_POSTGIS/resources_rc.qrc +++ /dev/null @@ -1,11 +0,0 @@ - - - help.png - - - page_ajout.png - - - page_new.png - - diff --git a/CenRa_POSTGIS/table_postgisdialog.py b/CenRa_POSTGIS/table_postgisdialog.py deleted file mode 100644 index 5632f426..00000000 --- a/CenRa_POSTGIS/table_postgisdialog.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -""" -/*************************************************************************** - table_postgisDialog - A QGIS plugin - table_postgis - ------------------- - begin : 2013-10-15 - copyright : (C) 2013 by gcostes - email : sfdg - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ -""" - -from qgis.PyQt import QtCore, QtGui -from qgis.PyQt.QtWidgets import QDialog -from .ui_table_postgis import Ui_table_postgis -# create the dialog for zoom to point - - -class table_postgisDialog(QDialog): - def __init__(self): - QDialog.__init__(self) - # Set up the user interface from Designer. - self.ui = Ui_table_postgis() - self.ui.setupUi(self) diff --git a/CenRa_POSTGIS/table_postgisdialog.py.bak b/CenRa_POSTGIS/table_postgisdialog.py.bak deleted file mode 100644 index 0355f30e..00000000 --- a/CenRa_POSTGIS/table_postgisdialog.py.bak +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -""" -/*************************************************************************** - table_postgisDialog - A QGIS plugin - table_postgis - ------------------- - begin : 2013-10-15 - copyright : (C) 2013 by gcostes - email : sfdg - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ -""" - -from PyQt4 import QtCore, QtGui -from ui_table_postgis import Ui_table_postgis -# create the dialog for zoom to point - - -class table_postgisDialog(QtGui.QDialog): - def __init__(self): - QtGui.QDialog.__init__(self) - # Set up the user interface from Designer. - self.ui = Ui_table_postgis() - self.ui.setupUi(self) diff --git a/CenRa_POSTGIS/tools/icons/CEN_RA.png b/CenRa_POSTGIS/tools/icons/CEN_RA.png new file mode 100644 index 0000000000000000000000000000000000000000..95ead1cf7313bc03e4637c9bb20945373f27ddca GIT binary patch literal 8893 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 LNkvXXu0mjfe10PI literal 0 HcmV?d00001 diff --git a/CenRa_POSTGIS/help.png b/CenRa_POSTGIS/tools/icons/help.png similarity index 100% rename from CenRa_POSTGIS/help.png rename to CenRa_POSTGIS/tools/icons/help.png diff --git a/CenRa_POSTGIS/tools/icons/icon.png b/CenRa_POSTGIS/tools/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d53a910fea37e4930c40122d285e6ea9fdc75ba7 GIT binary patch literal 4977 zcmV-%6OQbOP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRa3_en%SRCwCFnt6C#b(zOMzq8&gH%XJUX_Is#UDBPF77CPt3bHAvpeW!1k22%v zFp3K^ZeY@^7&Lkpx7+N4cNle9^jeZ9H4x!YOik9+Rzy=j^S zb>8PW&vTb^&hLDG@AiG)_lP^5Ig_k7u8m&}bN<>JdA9L3lI9q)q^dv-Pzx*umH_jC za$pV+0{nmvP{*BI0&T4PB(z4>pDkl$2@4eR)gc1d%@jnJLaJ4x>K&DOkCJ;tZLIq-+9T# z+defg)*>J3-$CcdUJ}MAs_a9S)Y+kNA(rZ+RzDM636i$rOxR2u*T%Bbnu}B6Q^OT= zf(uV6FIswKS!fYKy}Yloc;#+I)}M7<_hHwyN2UiNq(!Ea`tvi5KVDNFTEapr!9M_8xhhXtEz&2_l3vV=RW1L|1}nN`RCZ10j<&9n($`&`MZbzM0y2+o&#G zPibf&ilk>RuLLdzF4ol0b&2%QRfd(^CngwE{x=P{7sMLNPSF)<D8>O`2_E@-OrvQkAnb3@@2MsS`z~yWF!xOGAIPP^$M6|b!)`KFa%XuO?BypyqHFXQPE9LEG9 z2xxOwSa$OIv=RNmiGW-^>23-MT?yj44(}g*oX*HzF57%3SDt*}DdLm7XrTQ?e1g`7k>D9#rWJ$eT z67p?8BDaheek*|ez})GKB(tMoK7ZOT3FxIfxbr$jlijGYZxTOuacq+-w*EI|p+)R& zf0(Vc*A!?mo*tsH^H1#Se463$b{yA1ku_wYdLdSvAcVMQ0XwokWOZ|rmlviDL7EaI zWsLFIu5Td;l~0{=JF4u%ajoOec5QrGF(tuj0$M5CSAHW0!gX!l@Aw1v@AwKYH~*YS zyc10c;8TlGB;7MbF@@WSjh^>GUO-=v2Wna{suE;0*~>ExKV)9v`zy>uBxYflm#206vt2CIg~>n5->?Lj9rN zA&@wA=@)TwjtPbx=gj3_WmVM$x!*qMd6CC=-#{!ifKLt2Rs+W=d@>;Jhq;p~`{<1} z(>eS;%jcg%MbTnx#~^LRSzdV#XDt6}?%YHDZ}QaMo3I=MRStaECG(|oG9c*>b0;AL zwqw%L_bRfaa?;#0Nm=8BeRDZ?^>=e7H89q~pBrw*ajYqmsEdo^+SrbPWv4OiRPM0s zG`3^rg=6* zRs75i*HTlqiTNdUlm!=4aV;{eS0G6$l8{JS;~eaH`KjK~eIv4@9Ru>w zRsRHF=t_{$L=PQ9^|bWA&Ty;)Aq1-IpT_AW(q@d&L??5LSMsq{H{>EwU-SUG+aEz! zLxAuAq$m!|XI0h5S+(GNN`qA-jZp^24%6EI1|#t!jHiZ3TjQ8^3dgaKB^6cnC;VFR z!ID7ra6k>+9n#ARf`#&M{WrjMjUs=AyP#y9sGYZswbd6h7;EGGBTsN-_+2FA6NX74 zz_KmIQ^PDM)hG|w<_zbp)_XDRL?($^F~a&>wye00^@~1@Wv4jM^AayL-9i7@K~lze zrdAOWl8_Nd+2Y9ne&M*zeU_c-upKk$)51u|h3wa`5&*_v?6A`}dQg79<59{&i>Rym zIOndufsy!8cC_3>U-Tfl5<0Fj^O6R(TM!ND8fm1he+ROpV%aH9uK5((SAHD?>}>fp z`?{Vco*qV)RAfm*SA&!7QyTaZ@Q8$q@Jv}#e5k5}5XbyY@u;;a3E9oo0MTSGZyfv; zdpaIx%hE6K*)4bRUi%}wbNB%=K|z}~d^Q|?l7ulzS#S~Ot-X;I^Ur2?`y=dZy^rzK zAgUbja>($pM;sUZARUEuT5%4gz{9f2hBn*1p$Kl>k1qcqVzI z7x>Ry&QeW=hr;ZuUqyds4I_hL97p7;&HOy#OpNNXq~OG$FSzkTD2wD!M=Pb>DK;f#{uQ@|jAqSy@emGkuP zE~4q(b&L)dp=uVo&qUKRM?MhigoTk3B4x&S_?>T{$QqYz{wa!3v0V$-b%}Eo6ntk7fB<^!|(h(kwoWA%xI##3?K;?!%%tgiL;2u0_grUvSJ^1az2psl#EyQ zW7;mhL>^vx_`m84J^lCPH+*${`mk{c8bkQt|Xw(;fdYf@v6wsY$-_!*ax6$ z7Onf25E%-iYF4%+Kj}n3Qq$8E7gY{067S^M##>okeIXkbT}sjzr82xCSIX*Y5v9Qz zo^QOJzUaZJtH%>dAJ8d;OERgkfAA zlyB~=DqZa^EL)3gEy8wk+F0*(J+t!d?03bm;&_feCJEW&H1ag`-JfX}4ejETC7;K% zkL^MC$X+@l4QNwP8`DnVxE4je3Ti61Q&YO0xy8$I9UI%VuBeKXKr{I+m>HPP1(sD9@xpVjknS>x*y9nkR`>V zE2@>U##>Y4qZnzGfuRjZ8OBitY?=hfMxa`G<-jkp%k?RePHCW;#TBQrWyzInJ?YE5 z*YPk--OnL%#4)2CNm3X~_0v1r#FC2BGojBMV=Og*B$S-)Y{$TLZMN2anQhCjqbt(D zBlX{;ceDvv(okf5VzJdL3Hgw$2*!p>!Bw)^d%f2_ohZe?21QqLWUU)qB8e^r4!5!A z$YZRiJcq5zu3>f6g}ku;c1FfKJxcC1yls=7NOJ)Y(@Nx8IhLJ5m3>^W{s+`8IFDDG ze@^}32LL7{$O6-C0-~yF($P{)eB6)Ep9a`Eh1;%{3Tt42EUEa^Fp{Lw)crgU?7WuI zL>E_`{u`E8ZYO1qa#XBGzeBT(cq{$i8DV#YG^{)gm0n;+e)<+1dJQF4=e+8y9_slo89EBV?k9 zUK}?=85CJZ7HXzX3w+|_TUcCvDo?!o9S(HAh+iw2Nf&>IB)KG$I_(E*P*e+VptNa< zYZm5v<$mA_;4ZIW2e?R*f?o>r?%{_ptOOTrxCs}RJx88Em3^e`1h#D;DSmH$qG4F$ zd}P(PST^r$UTMCQ=AIY4Qg>Q83hWZXB@y%EI3hoP%%9@A3T1+!KJMA*gI+Yq8I4~n zq2cHs32LQWxc(**=?DjUU&6GK7@uSE-Bq6Apvw^M4uAzPKZFU`g5T82ZVb_a5 zRMkv6T55>L0$Kk!eVXe^C0h~LioiWq`F#LfGO^tP;M2mqedvCgyPxBdP5(wkQ7v&} z*z=oAB=c*fY+L>{1cKKN+zl?X84CSD2uLM$jo97Z7emn zU>ERNpkrbpRAikO_y2^XF~-FkZpN`KV#$GwN*#xFH5aq2ayw1k&(b^EgsS*w3gUg> zHCc9ujfNN*EJn@{#reSI=}4edHjtvCH_7VvhnRmfjxFaj)8-MhctMdbX^f|bd8O&6 zRL|MKrp1>t67TRdBC)RK5?nXqLqbw!!+7ro3?Ur$?_NPVrDbdKGd*XYQY2dzSgM4c zw5e^5P|=^v*UTHh^~af*8svk%m+2U+=gbvnQ(L*+n_0xX;jkgKu@$5sTPsF?v{I5-(FNpHrur(htI4mJX=RpO?F(KEzhWX7(!HyJbOWFCOd={tGKczi6x_A4WEDQGs9=KSH8`FG zwgWe3Cr&<}!QQu4)74&?t;@4B&1+{7x(6j-xmUF0%Wc3vWWj_-P3jslV7vej2W|pR zQzZSC{;`Aa4v%+49oKdo$0F>nq%^oN;W%cW7s7u8oCSQ^>wq9h4uN2bhWa}8zqbru zAeF!V_kek`nO-TtsuOtTo!%=)zqb@YIAXA}afG(I5>i10$#wxg5JI{sZ6|N(8*Qr9 z75_ZbN)_9VmC}{qkc->ny~=bfx=0SX-(W0K#GB7;p=ICFTvy+dGl1)6**-d?0BcXw zWAJ)M7O|(oWTC8HK z0yG^V9p8P?bQ9B1IIy>tfu1sk`%CF+pO31US!SCf3|{hGJ4+BLph*F$r#UeUJOunB z@Eg}Nfq6X%%KMVI0%8FdJG=*b^D1Ot2qzUqQ5^h%6m3nb+4J^l2D-~}9D$ctu2E@ zqc%mp+^s7;KRX+!^UPW0FP9GBwd};|$TaovRDd>kpZ^2+zQ84J`#F?cjDCzSl>yIr zb@yLe9s;7-O#a)y@MaHtHjXSDB1REy;|oxPmG8)Z3lI_Do_zLuueYNg=3S6)dz>kn zA(1Ba!*z_Cexzf5aR_+*Zvf;D&zf>TY~cIAMV<-7r?@!gQH~pcQ@!k8K&UKN_6ErX zB=M_2^Is9fYu?(&O7OhT&v?g5&lDDVImGrTe5cp@YM*KZB_{u?6*$kEHeJoE-w!*k zEWUbT#GI@<@PT*ywWS;QI`Ch>Wxxf%Ix?@L&qT(72RyPmIPp(~|9@%njvssUXuU^V v7n6B8w8$HH8lFRUd!ha{;J}G)`hNoe7QyToB1l_>00000NkvXXu0mjfs=k0$ literal 0 HcmV?d00001 diff --git a/CenRa_POSTGIS/page_ajout.png b/CenRa_POSTGIS/tools/icons/page_ajout.png similarity index 100% rename from CenRa_POSTGIS/page_ajout.png rename to CenRa_POSTGIS/tools/icons/page_ajout.png diff --git a/CenRa_POSTGIS/page_new.png b/CenRa_POSTGIS/tools/icons/page_new.png similarity index 100% rename from CenRa_POSTGIS/page_new.png rename to CenRa_POSTGIS/tools/icons/page_new.png diff --git a/CenRa_POSTGIS/tools/resources.py b/CenRa_POSTGIS/tools/resources.py index f8624888..c00c6a0c 100644 --- a/CenRa_POSTGIS/tools/resources.py +++ b/CenRa_POSTGIS/tools/resources.py @@ -89,7 +89,7 @@ def resources_path(*args): :return: Absolute path to the resources folder. :rtype: str """ - path = abspath(abspath(join(plugin_path(), "CenRa_Metabase\\resources"))) + path = abspath(abspath(join(plugin_path(), "CenRa_POSTGIS\\tools"))) for item in args: path = abspath(join(path, item)) return path diff --git a/CenRa_POSTGIS/tools/ui/CenRa_IssuesSend.ui b/CenRa_POSTGIS/tools/ui/CenRa_IssuesSend.ui new file mode 100644 index 00000000..14d923e4 --- /dev/null +++ b/CenRa_POSTGIS/tools/ui/CenRa_IssuesSend.ui @@ -0,0 +1,332 @@ + + + CenRa_IssuesSend + + + + 0 + 0 + 810 + 587 + + + + CEN-RA Metabase + + + + icon.svgicon.svg + + + + + 0 + 550 + 811 + 31 + + + + + + + Annuler + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Envoyer + + + + + + + + + 10 + 10 + 791 + 531 + + + + Issues + + + + + 240 + 40 + 321 + 41 + + + + Qt::AlignCenter + + + + + + 10 + 101 + 571 + 421 + + + + + + + 589 + 100 + 191 + 431 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 9 + 9 + 341 + 411 + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Bug + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Aide + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Question + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Amélioration + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Autre + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + 250 + 20 + 51 + 21 + + + + + Arial + 14 + + + + Titre: + + + + + + 20 + 70 + 91 + 31 + + + + + Arial + 12 + + + + Messages: + + + + + + 600 + 70 + 91 + 31 + + + + + Arial + 12 + + + + Sujet: + + + + + + ok_button + annuler_button + + + + diff --git a/CenRa_POSTGIS/ui_table_postgis.ui b/CenRa_POSTGIS/tools/ui/CenRa_PostgisTable_base.ui similarity index 100% rename from CenRa_POSTGIS/ui_table_postgis.ui rename to CenRa_POSTGIS/tools/ui/CenRa_PostgisTable_base.ui diff --git a/CenRa_POSTGIS/ui_cenra.ui b/CenRa_POSTGIS/tools/ui/CenRa_Postgis_base.ui similarity index 100% rename from CenRa_POSTGIS/ui_cenra.ui rename to CenRa_POSTGIS/tools/ui/CenRa_Postgis_base.ui diff --git a/CenRa_POSTGIS/forms/postgis_about_form.ui b/CenRa_POSTGIS/tools/ui/CenRa_about_form.ui similarity index 98% rename from CenRa_POSTGIS/forms/postgis_about_form.ui rename to CenRa_POSTGIS/tools/ui/CenRa_about_form.ui index 2a03633d..3e3608ff 100644 --- a/CenRa_POSTGIS/forms/postgis_about_form.ui +++ b/CenRa_POSTGIS/tools/ui/CenRa_about_form.ui @@ -11,7 +11,7 @@ - POSTGIS + Metabase diff --git a/CenRa_POSTGIS/ui_cenra.py b/CenRa_POSTGIS/ui_cenra.py deleted file mode 100644 index ccefc752..00000000 --- a/CenRa_POSTGIS/ui_cenra.py +++ /dev/null @@ -1,350 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui_cenra.ui' -# -# Created: Fri Aug 29 15:27:40 2014 -# by: PyQt4 UI code generator 4.9.6 -# -# WARNING! All changes made in this file will be lost! - -from builtins import object -from qgis.PyQt import QtCore, QtGui -from qgis.PyQt.QtWidgets import * -try: - _fromUtf8 = QtCore.QString.fromUtf8 -except AttributeError: - def _fromUtf8(s): - return s - -try: - _encoding = QApplication.UnicodeUTF8 - def _translate(context, text, disambig): - return QApplication.translate(context, text, disambig, _encoding) -except AttributeError: - def _translate(context, text, disambig): - return QApplication.translate(context, text, disambig) - -class Ui_cenra(object): - def setupUi(self, cenra): - cenra.setObjectName(_fromUtf8("cenra")) - cenra.resize(533, 565) - self.buttonBox = QDialogButtonBox(cenra) - self.buttonBox.setGeometry(QtCore.QRect(350, 530, 171, 32)) - self.buttonBox.setOrientation(QtCore.Qt.Horizontal) - self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok) - self.buttonBox.setObjectName(_fromUtf8("buttonBox")) - self.Titre = QLabel(cenra) - self.Titre.setGeometry(QtCore.QRect(40, 10, 441, 31)) - font = QtGui.QFont() - font.setPointSize(14) - font.setBold(True) - font.setWeight(75) - self.Titre.setFont(font) - self.Titre.setObjectName(_fromUtf8("Titre")) - self.groupBox = QGroupBox(cenra) - self.groupBox.setGeometry(QtCore.QRect(10, 50, 511, 121)) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.groupBox.setFont(font) - self.groupBox.setAlignment(QtCore.Qt.AlignCenter) - self.groupBox.setObjectName(_fromUtf8("groupBox")) - self.horizontalLayoutWidget = QWidget(self.groupBox) - self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 20, 126, 31)) - self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget")) - self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) - self.label_dept = QLabel(self.horizontalLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_dept.setFont(font) - self.label_dept.setObjectName(_fromUtf8("label_dept")) - self.horizontalLayout.addWidget(self.label_dept) - self.dept = QComboBox(self.horizontalLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.dept.setFont(font) - self.dept.setObjectName(_fromUtf8("dept")) - self.dept.addItem(_fromUtf8("")) - self.dept.setItemText(0, _fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.horizontalLayout.addWidget(self.dept) - self.horizontalLayoutWidget_2 = QWidget(self.groupBox) - self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(20, 50, 481, 31)) - self.horizontalLayoutWidget_2.setObjectName(_fromUtf8("horizontalLayoutWidget_2")) - self.horizontalLayout_2 = QHBoxLayout(self.horizontalLayoutWidget_2) - self.horizontalLayout_2.setMargin(0) - self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) - self.label_nom = QLabel(self.horizontalLayoutWidget_2) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_nom.setFont(font) - self.label_nom.setObjectName(_fromUtf8("label_nom")) - self.horizontalLayout_2.addWidget(self.label_nom) - self.nom = QLineEdit(self.horizontalLayoutWidget_2) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.nom.setFont(font) - self.nom.setObjectName(_fromUtf8("nom")) - self.horizontalLayout_2.addWidget(self.nom) - self.horizontalLayoutWidget_3 = QWidget(self.groupBox) - self.horizontalLayoutWidget_3.setGeometry(QtCore.QRect(20, 80, 479, 31)) - self.horizontalLayoutWidget_3.setObjectName(_fromUtf8("horizontalLayoutWidget_3")) - self.horizontalLayout_3 = QHBoxLayout(self.horizontalLayoutWidget_3) - self.horizontalLayout_3.setMargin(0) - self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) - self.label_2 = QLabel(self.horizontalLayoutWidget_3) - self.label_2.setObjectName(_fromUtf8("label_2")) - self.horizontalLayout_3.addWidget(self.label_2) - self.label = QLabel(self.horizontalLayoutWidget_3) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label.setFont(font) - self.label.setObjectName(_fromUtf8("label")) - self.horizontalLayout_3.addWidget(self.label) - self.horizontalLayoutWidget_6 = QWidget(self.groupBox) - self.horizontalLayoutWidget_6.setGeometry(QtCore.QRect(339, 20, 161, 31)) - self.horizontalLayoutWidget_6.setObjectName(_fromUtf8("horizontalLayoutWidget_6")) - self.horizontalLayout_6 = QHBoxLayout(self.horizontalLayoutWidget_6) - self.horizontalLayout_6.setMargin(0) - self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6")) - self.at = QCheckBox(self.horizontalLayoutWidget_6) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.at.setFont(font) - self.at.setObjectName(_fromUtf8("at")) - self.horizontalLayout_6.addWidget(self.at) - self.groupBox_2 = QGroupBox(cenra) - self.groupBox_2.setGeometry(QtCore.QRect(10, 190, 511, 241)) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.groupBox_2.setFont(font) - self.groupBox_2.setAlignment(QtCore.Qt.AlignCenter) - self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) - self.gridLayoutWidget = QWidget(self.groupBox_2) - self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 30, 162, 141)) - self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget")) - self.gridLayout = QGridLayout(self.gridLayoutWidget) - self.gridLayout.setMargin(0) - self.gridLayout.setObjectName(_fromUtf8("gridLayout")) - self.couche_habitat = QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_habitat.setFont(font) - self.couche_habitat.setObjectName(_fromUtf8("couche_habitat")) - self.gridLayout.addWidget(self.couche_habitat, 1, 0, 1, 1) - self.couche_contour = QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_contour.setFont(font) - self.couche_contour.setObjectName(_fromUtf8("couche_contour")) - self.gridLayout.addWidget(self.couche_contour, 0, 0, 1, 1) - self.annee_4 = QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_4.setFont(font) - self.annee_4.setAlignment(QtCore.Qt.AlignCenter) - self.annee_4.setObjectName(_fromUtf8("annee_4")) - self.gridLayout.addWidget(self.annee_4, 4, 1, 1, 1) - self.couche_travaux_prevus = QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_travaux_prevus.setFont(font) - self.couche_travaux_prevus.setObjectName(_fromUtf8("couche_travaux_prevus")) - self.gridLayout.addWidget(self.couche_travaux_prevus, 3, 0, 1, 1) - self.annee_5 = QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_5.setFont(font) - self.annee_5.setAlignment(QtCore.Qt.AlignCenter) - self.annee_5.setObjectName(_fromUtf8("annee_5")) - self.gridLayout.addWidget(self.annee_5, 3, 1, 1, 1) - self.couche_vierge = QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge.setFont(font) - self.couche_vierge.setObjectName(_fromUtf8("couche_vierge")) - self.gridLayout.addWidget(self.couche_vierge, 4, 0, 1, 1) - self.annee_1 = QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_1.setFont(font) - self.annee_1.setAlignment(QtCore.Qt.AlignCenter) - self.annee_1.setObjectName(_fromUtf8("annee_1")) - self.gridLayout.addWidget(self.annee_1, 0, 1, 1, 1) - self.annee_2 = QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_2.setFont(font) - self.annee_2.setAlignment(QtCore.Qt.AlignCenter) - self.annee_2.setObjectName(_fromUtf8("annee_2")) - self.gridLayout.addWidget(self.annee_2, 1, 1, 1, 1) - self.horizontalLayoutWidget_4 = QWidget(self.groupBox_2) - self.horizontalLayoutWidget_4.setGeometry(QtCore.QRect(50, 170, 451, 31)) - self.horizontalLayoutWidget_4.setObjectName(_fromUtf8("horizontalLayoutWidget_4")) - self.horizontalLayout_4 = QHBoxLayout(self.horizontalLayoutWidget_4) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) - self.label_nom_couche_vierge = QLabel(self.horizontalLayoutWidget_4) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_nom_couche_vierge.setFont(font) - self.label_nom_couche_vierge.setObjectName(_fromUtf8("label_nom_couche_vierge")) - self.horizontalLayout_4.addWidget(self.label_nom_couche_vierge) - self.nom_couche_vierge = QLineEdit(self.horizontalLayoutWidget_4) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.nom_couche_vierge.setFont(font) - self.nom_couche_vierge.setObjectName(_fromUtf8("nom_couche_vierge")) - self.horizontalLayout_4.addWidget(self.nom_couche_vierge) - self.horizontalLayoutWidget_5 = QWidget(self.groupBox_2) - self.horizontalLayoutWidget_5.setGeometry(QtCore.QRect(50, 200, 341, 31)) - self.horizontalLayoutWidget_5.setObjectName(_fromUtf8("horizontalLayoutWidget_5")) - self.horizontalLayout_5 = QHBoxLayout(self.horizontalLayoutWidget_5) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5")) - self.label_geom_couche_vierge = QLabel(self.horizontalLayoutWidget_5) - self.label_geom_couche_vierge.setMinimumSize(QtCore.QSize(152, 0)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_geom_couche_vierge.setFont(font) - self.label_geom_couche_vierge.setObjectName(_fromUtf8("label_geom_couche_vierge")) - self.horizontalLayout_5.addWidget(self.label_geom_couche_vierge) - self.couche_vierge_point = QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_point.setFont(font) - self.couche_vierge_point.setObjectName(_fromUtf8("couche_vierge_point")) - self.horizontalLayout_5.addWidget(self.couche_vierge_point) - self.couche_vierge_ligne = QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_ligne.setFont(font) - self.couche_vierge_ligne.setObjectName(_fromUtf8("couche_vierge_ligne")) - self.horizontalLayout_5.addWidget(self.couche_vierge_ligne) - self.couche_vierge_polygone = QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_polygone.setFont(font) - self.couche_vierge_polygone.setObjectName(_fromUtf8("couche_vierge_polygone")) - self.horizontalLayout_5.addWidget(self.couche_vierge_polygone) - self.label_3 = QLabel(self.groupBox_2) - self.label_3.setGeometry(QtCore.QRect(320, 60, 60, 29)) - self.label_3.setObjectName(_fromUtf8("label_3")) - self.label_4 = QLabel(self.groupBox_2) - self.label_4.setGeometry(QtCore.QRect(240, 90, 221, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_4.setFont(font) - self.label_4.setObjectName(_fromUtf8("label_4")) - self.label_5 = QLabel(self.groupBox_2) - self.label_5.setGeometry(QtCore.QRect(240, 110, 221, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_5.setFont(font) - self.label_5.setAlignment(QtCore.Qt.AlignCenter) - self.label_5.setObjectName(_fromUtf8("label_5")) - self.groupBox_3 = QGroupBox(cenra) - self.groupBox_3.setGeometry(QtCore.QRect(10, 440, 511, 81)) - font = QtGui.QFont() - font.setBold(True) - font.setItalic(True) - font.setWeight(75) - self.groupBox_3.setFont(font) - self.groupBox_3.setAlignment(QtCore.Qt.AlignCenter) - self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) - self.label_6 = QLabel(self.groupBox_3) - self.label_6.setGeometry(QtCore.QRect(20, 20, 471, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_6.setFont(font) - self.label_6.setObjectName(_fromUtf8("label_6")) - self.label_7 = QLabel(self.groupBox_3) - self.label_7.setGeometry(QtCore.QRect(120, 50, 141, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_7.setFont(font) - self.label_7.setObjectName(_fromUtf8("label_7")) - self.label_8 = QLabel(self.groupBox_3) - self.label_8.setGeometry(QtCore.QRect(270, 40, 41, 41)) - self.label_8.setText(_fromUtf8("")) - self.label_8.setTextFormat(QtCore.Qt.PlainText) - self.label_8.setPixmap(QtGui.QPixmap(_fromUtf8("page_ajout.png"))) - self.label_8.setObjectName(_fromUtf8("label_8")) - - self.retranslateUi(cenra) - #QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), cenra.accept) - self.buttonBox.accepted.connect(cenra.accept) - #QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), cenra.reject) - self.buttonBox.rejected.connect(cenra.reject) - QtCore.QMetaObject.connectSlotsByName(cenra) - - def retranslateUi(self, cenra): - cenra.setWindowTitle(_translate("cenra", "Nouveau Projet Cartographique", None)) - self.Titre.setText(_translate("cenra", "Création d\'un nouveau dossier cartographique", None)) - self.groupBox.setTitle(_translate("cenra", "Généralités", None)) - self.label_dept.setText(_translate("cenra", "Département :", None)) - self.dept.setItemText(1, _translate("cenra", "00", None)) - self.dept.setItemText(2, _translate("cenra", "01", None)) - self.dept.setItemText(3, _translate("cenra", "07", None)) - self.dept.setItemText(4, _translate("cenra", "26", None)) - self.dept.setItemText(5, _translate("cenra", "42", None)) - self.dept.setItemText(6, _translate("cenra", "69", None)) - self.dept.setItemText(7, _translate("cenra", "form", None)) - self.label_nom.setText(_translate("cenra", "Code analytique et Nom du site :", None)) - self.label_2.setText(_translate("cenra", "Attention :", None)) - self.label.setText(_translate("cenra", "Le code analytique ne doit comporter ni caractères spéciaux, ni espaces, ni majuscules", None)) - self.at.setText(_translate("cenra", "Animation Territoriale", None)) - self.groupBox_2.setTitle(_translate("cenra", "Liste des couches à ajouter lors de la création", None)) - self.couche_habitat.setText(_translate("cenra", "Habitat", None)) - self.couche_contour.setText(_translate("cenra", "Contour", None)) - self.annee_4.setText(_translate("cenra", "aaaa", None)) - self.couche_travaux_prevus.setText(_translate("cenra", "Travaux Prévus", None)) - self.annee_5.setText(_translate("cenra", "aaaa", None)) - self.couche_vierge.setText(_translate("cenra", "Vierge", None)) - self.annee_1.setText(_translate("cenra", "aaaa", None)) - self.annee_2.setText(_translate("cenra", "aaaa", None)) - self.label_nom_couche_vierge.setText(_translate("cenra", "- Nom de la couche vierge :", None)) - self.label_geom_couche_vierge.setText(_translate("cenra", "- Geométrie de la couche vierge :", None)) - self.couche_vierge_point.setText(_translate("cenra", "Point", None)) - self.couche_vierge_ligne.setText(_translate("cenra", "Ligne", None)) - self.couche_vierge_polygone.setText(_translate("cenra", "Polygone", None)) - self.label_3.setText(_translate("cenra", "Attention :", None)) - self.label_4.setText(_translate("cenra", "Le nom de la couche vierge ne doit comporter", None)) - self.label_5.setText(_translate("cenra", "ni caractères spéciaux, ni espaces", None)) - self.groupBox_3.setTitle(_translate("cenra", "Note", None)) - self.label_6.setText(_translate("cenra", "Vous pourez à tous moment ajouter de nouvelles couches à votre dossier, à l\'aide de l\'outil :", None)) - self.label_7.setText(_translate("cenra", "Ajout de nouvelles couches", None)) - diff --git a/CenRa_POSTGIS/ui_cenra.py.bak b/CenRa_POSTGIS/ui_cenra.py.bak deleted file mode 100644 index 89b09290..00000000 --- a/CenRa_POSTGIS/ui_cenra.py.bak +++ /dev/null @@ -1,345 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui_cenra.ui' -# -# Created: Fri Aug 29 15:27:40 2014 -# by: PyQt4 UI code generator 4.9.6 -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore, QtGui - -try: - _fromUtf8 = QtCore.QString.fromUtf8 -except AttributeError: - def _fromUtf8(s): - return s - -try: - _encoding = QtGui.QApplication.UnicodeUTF8 - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig, _encoding) -except AttributeError: - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig) - -class Ui_cenra(object): - def setupUi(self, cenra): - cenra.setObjectName(_fromUtf8("cenra")) - cenra.resize(533, 565) - self.buttonBox = QtGui.QDialogButtonBox(cenra) - self.buttonBox.setGeometry(QtCore.QRect(350, 530, 171, 32)) - self.buttonBox.setOrientation(QtCore.Qt.Horizontal) - self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) - self.buttonBox.setObjectName(_fromUtf8("buttonBox")) - self.Titre = QtGui.QLabel(cenra) - self.Titre.setGeometry(QtCore.QRect(40, 10, 441, 31)) - font = QtGui.QFont() - font.setPointSize(14) - font.setBold(True) - font.setWeight(75) - self.Titre.setFont(font) - self.Titre.setObjectName(_fromUtf8("Titre")) - self.groupBox = QtGui.QGroupBox(cenra) - self.groupBox.setGeometry(QtCore.QRect(10, 50, 511, 121)) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.groupBox.setFont(font) - self.groupBox.setAlignment(QtCore.Qt.AlignCenter) - self.groupBox.setObjectName(_fromUtf8("groupBox")) - self.horizontalLayoutWidget = QtGui.QWidget(self.groupBox) - self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 20, 126, 31)) - self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget")) - self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) - self.label_dept = QtGui.QLabel(self.horizontalLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_dept.setFont(font) - self.label_dept.setObjectName(_fromUtf8("label_dept")) - self.horizontalLayout.addWidget(self.label_dept) - self.dept = QtGui.QComboBox(self.horizontalLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.dept.setFont(font) - self.dept.setObjectName(_fromUtf8("dept")) - self.dept.addItem(_fromUtf8("")) - self.dept.setItemText(0, _fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.dept.addItem(_fromUtf8("")) - self.horizontalLayout.addWidget(self.dept) - self.horizontalLayoutWidget_2 = QtGui.QWidget(self.groupBox) - self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(20, 50, 481, 31)) - self.horizontalLayoutWidget_2.setObjectName(_fromUtf8("horizontalLayoutWidget_2")) - self.horizontalLayout_2 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_2) - self.horizontalLayout_2.setMargin(0) - self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) - self.label_nom = QtGui.QLabel(self.horizontalLayoutWidget_2) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_nom.setFont(font) - self.label_nom.setObjectName(_fromUtf8("label_nom")) - self.horizontalLayout_2.addWidget(self.label_nom) - self.nom = QtGui.QLineEdit(self.horizontalLayoutWidget_2) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.nom.setFont(font) - self.nom.setObjectName(_fromUtf8("nom")) - self.horizontalLayout_2.addWidget(self.nom) - self.horizontalLayoutWidget_3 = QtGui.QWidget(self.groupBox) - self.horizontalLayoutWidget_3.setGeometry(QtCore.QRect(20, 80, 479, 31)) - self.horizontalLayoutWidget_3.setObjectName(_fromUtf8("horizontalLayoutWidget_3")) - self.horizontalLayout_3 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_3) - self.horizontalLayout_3.setMargin(0) - self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) - self.label_2 = QtGui.QLabel(self.horizontalLayoutWidget_3) - self.label_2.setObjectName(_fromUtf8("label_2")) - self.horizontalLayout_3.addWidget(self.label_2) - self.label = QtGui.QLabel(self.horizontalLayoutWidget_3) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label.setFont(font) - self.label.setObjectName(_fromUtf8("label")) - self.horizontalLayout_3.addWidget(self.label) - self.horizontalLayoutWidget_6 = QtGui.QWidget(self.groupBox) - self.horizontalLayoutWidget_6.setGeometry(QtCore.QRect(339, 20, 161, 31)) - self.horizontalLayoutWidget_6.setObjectName(_fromUtf8("horizontalLayoutWidget_6")) - self.horizontalLayout_6 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_6) - self.horizontalLayout_6.setMargin(0) - self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6")) - self.at = QtGui.QCheckBox(self.horizontalLayoutWidget_6) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.at.setFont(font) - self.at.setObjectName(_fromUtf8("at")) - self.horizontalLayout_6.addWidget(self.at) - self.groupBox_2 = QtGui.QGroupBox(cenra) - self.groupBox_2.setGeometry(QtCore.QRect(10, 190, 511, 241)) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.groupBox_2.setFont(font) - self.groupBox_2.setAlignment(QtCore.Qt.AlignCenter) - self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) - self.gridLayoutWidget = QtGui.QWidget(self.groupBox_2) - self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 30, 162, 141)) - self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget")) - self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget) - self.gridLayout.setMargin(0) - self.gridLayout.setObjectName(_fromUtf8("gridLayout")) - self.couche_habitat = QtGui.QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_habitat.setFont(font) - self.couche_habitat.setObjectName(_fromUtf8("couche_habitat")) - self.gridLayout.addWidget(self.couche_habitat, 1, 0, 1, 1) - self.couche_contour = QtGui.QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_contour.setFont(font) - self.couche_contour.setObjectName(_fromUtf8("couche_contour")) - self.gridLayout.addWidget(self.couche_contour, 0, 0, 1, 1) - self.annee_4 = QtGui.QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_4.setFont(font) - self.annee_4.setAlignment(QtCore.Qt.AlignCenter) - self.annee_4.setObjectName(_fromUtf8("annee_4")) - self.gridLayout.addWidget(self.annee_4, 4, 1, 1, 1) - self.couche_travaux_prevus = QtGui.QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_travaux_prevus.setFont(font) - self.couche_travaux_prevus.setObjectName(_fromUtf8("couche_travaux_prevus")) - self.gridLayout.addWidget(self.couche_travaux_prevus, 3, 0, 1, 1) - self.annee_5 = QtGui.QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_5.setFont(font) - self.annee_5.setAlignment(QtCore.Qt.AlignCenter) - self.annee_5.setObjectName(_fromUtf8("annee_5")) - self.gridLayout.addWidget(self.annee_5, 3, 1, 1, 1) - self.couche_vierge = QtGui.QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge.setFont(font) - self.couche_vierge.setObjectName(_fromUtf8("couche_vierge")) - self.gridLayout.addWidget(self.couche_vierge, 4, 0, 1, 1) - self.annee_1 = QtGui.QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_1.setFont(font) - self.annee_1.setAlignment(QtCore.Qt.AlignCenter) - self.annee_1.setObjectName(_fromUtf8("annee_1")) - self.gridLayout.addWidget(self.annee_1, 0, 1, 1, 1) - self.annee_2 = QtGui.QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_2.setFont(font) - self.annee_2.setAlignment(QtCore.Qt.AlignCenter) - self.annee_2.setObjectName(_fromUtf8("annee_2")) - self.gridLayout.addWidget(self.annee_2, 1, 1, 1, 1) - self.horizontalLayoutWidget_4 = QtGui.QWidget(self.groupBox_2) - self.horizontalLayoutWidget_4.setGeometry(QtCore.QRect(50, 170, 451, 31)) - self.horizontalLayoutWidget_4.setObjectName(_fromUtf8("horizontalLayoutWidget_4")) - self.horizontalLayout_4 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_4) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) - self.label_nom_couche_vierge = QtGui.QLabel(self.horizontalLayoutWidget_4) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_nom_couche_vierge.setFont(font) - self.label_nom_couche_vierge.setObjectName(_fromUtf8("label_nom_couche_vierge")) - self.horizontalLayout_4.addWidget(self.label_nom_couche_vierge) - self.nom_couche_vierge = QtGui.QLineEdit(self.horizontalLayoutWidget_4) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.nom_couche_vierge.setFont(font) - self.nom_couche_vierge.setObjectName(_fromUtf8("nom_couche_vierge")) - self.horizontalLayout_4.addWidget(self.nom_couche_vierge) - self.horizontalLayoutWidget_5 = QtGui.QWidget(self.groupBox_2) - self.horizontalLayoutWidget_5.setGeometry(QtCore.QRect(50, 200, 341, 31)) - self.horizontalLayoutWidget_5.setObjectName(_fromUtf8("horizontalLayoutWidget_5")) - self.horizontalLayout_5 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_5) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5")) - self.label_geom_couche_vierge = QtGui.QLabel(self.horizontalLayoutWidget_5) - self.label_geom_couche_vierge.setMinimumSize(QtCore.QSize(152, 0)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_geom_couche_vierge.setFont(font) - self.label_geom_couche_vierge.setObjectName(_fromUtf8("label_geom_couche_vierge")) - self.horizontalLayout_5.addWidget(self.label_geom_couche_vierge) - self.couche_vierge_point = QtGui.QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_point.setFont(font) - self.couche_vierge_point.setObjectName(_fromUtf8("couche_vierge_point")) - self.horizontalLayout_5.addWidget(self.couche_vierge_point) - self.couche_vierge_ligne = QtGui.QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_ligne.setFont(font) - self.couche_vierge_ligne.setObjectName(_fromUtf8("couche_vierge_ligne")) - self.horizontalLayout_5.addWidget(self.couche_vierge_ligne) - self.couche_vierge_polygone = QtGui.QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_polygone.setFont(font) - self.couche_vierge_polygone.setObjectName(_fromUtf8("couche_vierge_polygone")) - self.horizontalLayout_5.addWidget(self.couche_vierge_polygone) - self.label_3 = QtGui.QLabel(self.groupBox_2) - self.label_3.setGeometry(QtCore.QRect(320, 60, 60, 29)) - self.label_3.setObjectName(_fromUtf8("label_3")) - self.label_4 = QtGui.QLabel(self.groupBox_2) - self.label_4.setGeometry(QtCore.QRect(240, 90, 221, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_4.setFont(font) - self.label_4.setObjectName(_fromUtf8("label_4")) - self.label_5 = QtGui.QLabel(self.groupBox_2) - self.label_5.setGeometry(QtCore.QRect(240, 110, 221, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_5.setFont(font) - self.label_5.setAlignment(QtCore.Qt.AlignCenter) - self.label_5.setObjectName(_fromUtf8("label_5")) - self.groupBox_3 = QtGui.QGroupBox(cenra) - self.groupBox_3.setGeometry(QtCore.QRect(10, 440, 511, 81)) - font = QtGui.QFont() - font.setBold(True) - font.setItalic(True) - font.setWeight(75) - self.groupBox_3.setFont(font) - self.groupBox_3.setAlignment(QtCore.Qt.AlignCenter) - self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) - self.label_6 = QtGui.QLabel(self.groupBox_3) - self.label_6.setGeometry(QtCore.QRect(20, 20, 471, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_6.setFont(font) - self.label_6.setObjectName(_fromUtf8("label_6")) - self.label_7 = QtGui.QLabel(self.groupBox_3) - self.label_7.setGeometry(QtCore.QRect(120, 50, 141, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_7.setFont(font) - self.label_7.setObjectName(_fromUtf8("label_7")) - self.label_8 = QtGui.QLabel(self.groupBox_3) - self.label_8.setGeometry(QtCore.QRect(270, 40, 41, 41)) - self.label_8.setText(_fromUtf8("")) - self.label_8.setTextFormat(QtCore.Qt.PlainText) - self.label_8.setPixmap(QtGui.QPixmap(_fromUtf8("page_ajout.png"))) - self.label_8.setObjectName(_fromUtf8("label_8")) - - self.retranslateUi(cenra) - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), cenra.accept) - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), cenra.reject) - QtCore.QMetaObject.connectSlotsByName(cenra) - - def retranslateUi(self, cenra): - cenra.setWindowTitle(_translate("cenra", "Nouveau Projet Cartographique", None)) - self.Titre.setText(_translate("cenra", "Création d\'un nouveau dossier cartographique", None)) - self.groupBox.setTitle(_translate("cenra", "Généralités", None)) - self.label_dept.setText(_translate("cenra", "Département :", None)) - self.dept.setItemText(1, _translate("cenra", "01", None)) - self.dept.setItemText(2, _translate("cenra", "07", None)) - self.dept.setItemText(3, _translate("cenra", "26", None)) - self.dept.setItemText(4, _translate("cenra", "42", None)) - self.dept.setItemText(5, _translate("cenra", "69", None)) - self.dept.setItemText(6, _translate("cenra", "form", None)) - self.label_nom.setText(_translate("cenra", "Nom du dossier :", None)) - self.label_2.setText(_translate("cenra", "Attention :", None)) - self.label.setText(_translate("cenra", "Le nom du dossier ne doit comporter ni caractères spéciaux, ni espaces, ni majuscules", None)) - self.at.setText(_translate("cenra", "Animation Territoriale", None)) - self.groupBox_2.setTitle(_translate("cenra", "Liste des couches à ajouter lors de la création", None)) - self.couche_habitat.setText(_translate("cenra", "Habitat", None)) - self.couche_contour.setText(_translate("cenra", "Contour", None)) - self.annee_4.setText(_translate("cenra", "aaaa", None)) - self.couche_travaux_prevus.setText(_translate("cenra", "Travaux Prévus", None)) - self.annee_5.setText(_translate("cenra", "aaaa", None)) - self.couche_vierge.setText(_translate("cenra", "Vierge", None)) - self.annee_1.setText(_translate("cenra", "aaaa", None)) - self.annee_2.setText(_translate("cenra", "aaaa", None)) - self.label_nom_couche_vierge.setText(_translate("cenra", "- Nom de la couche vierge :", None)) - self.label_geom_couche_vierge.setText(_translate("cenra", "- Geométrie de la couche vierge :", None)) - self.couche_vierge_point.setText(_translate("cenra", "Point", None)) - self.couche_vierge_ligne.setText(_translate("cenra", "Ligne", None)) - self.couche_vierge_polygone.setText(_translate("cenra", "Polygone", None)) - self.label_3.setText(_translate("cenra", "Attention :", None)) - self.label_4.setText(_translate("cenra", "Le nom de la couche vierge ne doit comporter", None)) - self.label_5.setText(_translate("cenra", "ni caractères spéciaux, ni espaces", None)) - self.groupBox_3.setTitle(_translate("cenra", "Note", None)) - self.label_6.setText(_translate("cenra", "Vous pourez à tous moment ajouter de nouvelles couches à votre dossier, à l\'aide de l\'outil :", None)) - self.label_7.setText(_translate("cenra", "Ajout de nouvelles couches", None)) - diff --git a/CenRa_POSTGIS/ui_table_postgis.py b/CenRa_POSTGIS/ui_table_postgis.py deleted file mode 100644 index 811244f0..00000000 --- a/CenRa_POSTGIS/ui_table_postgis.py +++ /dev/null @@ -1,234 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui_table_postgis.ui' -# -# Created: Thu Mar 27 16:17:32 2014 -# by: PyQt4 UI code generator 4.9.6 -# -# WARNING! All changes made in this file will be lost! - -from builtins import object -from qgis.PyQt import QtCore, QtGui -from qgis.PyQt.QtWidgets import * - -try: - _fromUtf8 = QtCore.QString.fromUtf8 -except AttributeError: - def _fromUtf8(s): - return s - -try: - _encoding = QApplication.UnicodeUTF8 - def _translate(context, text, disambig): - return QApplication.translate(context, text, disambig, _encoding) -except AttributeError: - def _translate(context, text, disambig): - return QApplication.translate(context, text, disambig) - -class Ui_table_postgis(object): - def setupUi(self, table_postgis): - table_postgis.setObjectName(_fromUtf8("table_postgis")) - table_postgis.resize(532, 364) - self.buttonBox = QDialogButtonBox(table_postgis) - self.buttonBox.setGeometry(QtCore.QRect(360, 330, 161, 32)) - self.buttonBox.setOrientation(QtCore.Qt.Horizontal) - self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok) - self.buttonBox.setObjectName(_fromUtf8("buttonBox")) - self.Titre = QLabel(table_postgis) - self.Titre.setGeometry(QtCore.QRect(170, 0, 171, 31)) - font = QtGui.QFont() - font.setPointSize(14) - font.setBold(True) - font.setWeight(75) - self.Titre.setFont(font) - self.Titre.setObjectName(_fromUtf8("Titre")) - self.groupBox_2 = QGroupBox(table_postgis) - self.groupBox_2.setGeometry(QtCore.QRect(10, 80, 511, 241)) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.groupBox_2.setFont(font) - self.groupBox_2.setAlignment(QtCore.Qt.AlignCenter) - self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) - self.gridLayoutWidget = QWidget(self.groupBox_2) - self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 30, 162, 141)) - self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget")) - self.gridLayout = QGridLayout(self.gridLayoutWidget) - self.gridLayout.setMargin(0) - self.gridLayout.setObjectName(_fromUtf8("gridLayout")) - self.couche_habitat = QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_habitat.setFont(font) - self.couche_habitat.setObjectName(_fromUtf8("couche_habitat")) - self.gridLayout.addWidget(self.couche_habitat, 1, 0, 1, 1) - self.couche_contour = QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_contour.setFont(font) - self.couche_contour.setObjectName(_fromUtf8("couche_contour")) - self.gridLayout.addWidget(self.couche_contour, 0, 0, 1, 1) - self.annee_4 = QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_4.setFont(font) - self.annee_4.setAlignment(QtCore.Qt.AlignCenter) - self.annee_4.setObjectName(_fromUtf8("annee_4")) - self.gridLayout.addWidget(self.annee_4, 4, 1, 1, 1) - self.couche_travaux_prevus = QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_travaux_prevus.setFont(font) - self.couche_travaux_prevus.setObjectName(_fromUtf8("couche_travaux_prevus")) - self.gridLayout.addWidget(self.couche_travaux_prevus, 3, 0, 1, 1) - self.annee_5 = QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_5.setFont(font) - self.annee_5.setAlignment(QtCore.Qt.AlignCenter) - self.annee_5.setObjectName(_fromUtf8("annee_5")) - self.gridLayout.addWidget(self.annee_5, 3, 1, 1, 1) - self.couche_vierge = QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge.setFont(font) - self.couche_vierge.setObjectName(_fromUtf8("couche_vierge")) - self.gridLayout.addWidget(self.couche_vierge, 4, 0, 1, 1) - self.annee_1 = QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_1.setFont(font) - self.annee_1.setAlignment(QtCore.Qt.AlignCenter) - self.annee_1.setObjectName(_fromUtf8("annee_1")) - self.gridLayout.addWidget(self.annee_1, 0, 1, 1, 1) - self.annee_2 = QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_2.setFont(font) - self.annee_2.setAlignment(QtCore.Qt.AlignCenter) - self.annee_2.setObjectName(_fromUtf8("annee_2")) - self.gridLayout.addWidget(self.annee_2, 1, 1, 1, 1) - self.horizontalLayoutWidget_4 = QWidget(self.groupBox_2) - self.horizontalLayoutWidget_4.setGeometry(QtCore.QRect(50, 170, 451, 31)) - self.horizontalLayoutWidget_4.setObjectName(_fromUtf8("horizontalLayoutWidget_4")) - self.horizontalLayout_4 = QHBoxLayout(self.horizontalLayoutWidget_4) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) - self.label_nom_couche_vierge = QLabel(self.horizontalLayoutWidget_4) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_nom_couche_vierge.setFont(font) - self.label_nom_couche_vierge.setObjectName(_fromUtf8("label_nom_couche_vierge")) - self.horizontalLayout_4.addWidget(self.label_nom_couche_vierge) - self.nom_couche_vierge = QLineEdit(self.horizontalLayoutWidget_4) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.nom_couche_vierge.setFont(font) - self.nom_couche_vierge.setObjectName(_fromUtf8("nom_couche_vierge")) - self.horizontalLayout_4.addWidget(self.nom_couche_vierge) - self.horizontalLayoutWidget_5 = QWidget(self.groupBox_2) - self.horizontalLayoutWidget_5.setGeometry(QtCore.QRect(50, 200, 341, 31)) - self.horizontalLayoutWidget_5.setObjectName(_fromUtf8("horizontalLayoutWidget_5")) - self.horizontalLayout_5 = QHBoxLayout(self.horizontalLayoutWidget_5) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5")) - self.label_geom_couche_vierge = QLabel(self.horizontalLayoutWidget_5) - self.label_geom_couche_vierge.setMinimumSize(QtCore.QSize(152, 0)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_geom_couche_vierge.setFont(font) - self.label_geom_couche_vierge.setObjectName(_fromUtf8("label_geom_couche_vierge")) - self.horizontalLayout_5.addWidget(self.label_geom_couche_vierge) - self.couche_vierge_point = QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_point.setFont(font) - self.couche_vierge_point.setObjectName(_fromUtf8("couche_vierge_point")) - self.horizontalLayout_5.addWidget(self.couche_vierge_point) - self.couche_vierge_ligne = QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_ligne.setFont(font) - self.couche_vierge_ligne.setObjectName(_fromUtf8("couche_vierge_ligne")) - self.horizontalLayout_5.addWidget(self.couche_vierge_ligne) - self.couche_vierge_polygone = QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_polygone.setFont(font) - self.couche_vierge_polygone.setObjectName(_fromUtf8("couche_vierge_polygone")) - self.horizontalLayout_5.addWidget(self.couche_vierge_polygone) - self.label_3 = QLabel(self.groupBox_2) - self.label_3.setGeometry(QtCore.QRect(320, 60, 60, 29)) - self.label_3.setObjectName(_fromUtf8("label_3")) - self.label_4 = QLabel(self.groupBox_2) - self.label_4.setGeometry(QtCore.QRect(240, 90, 221, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_4.setFont(font) - self.label_4.setObjectName(_fromUtf8("label_4")) - self.label_5 = QLabel(self.groupBox_2) - self.label_5.setGeometry(QtCore.QRect(240, 110, 221, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_5.setFont(font) - self.label_5.setAlignment(QtCore.Qt.AlignCenter) - self.label_5.setObjectName(_fromUtf8("label_5")) - self.horizontalLayoutWidget = QWidget(table_postgis) - self.horizontalLayoutWidget.setGeometry(QtCore.QRect(10, 40, 511, 31)) - self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget")) - self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) - self.schema_label = QLabel(self.horizontalLayoutWidget) - self.schema_label.setMaximumSize(QtCore.QSize(85, 16777215)) - self.schema_label.setObjectName(_fromUtf8("schema_label")) - self.horizontalLayout.addWidget(self.schema_label) - self.schema = QComboBox(self.horizontalLayoutWidget) - self.schema.setObjectName(_fromUtf8("schema")) - self.horizontalLayout.addWidget(self.schema) - - self.retranslateUi(table_postgis) - #QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), table_postgis.accept) - self.buttonBox.accepted.connect(table_postgis.accept) - #QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), table_postgis.reject) - self.buttonBox.rejected.connect(table_postgis.reject) - QtCore.QMetaObject.connectSlotsByName(table_postgis) - - def retranslateUi(self, table_postgis): - table_postgis.setWindowTitle(_translate("table_postgis", "Ajout d\'une table", None)) - self.Titre.setText(_translate("table_postgis", "Création de table", None)) - self.groupBox_2.setTitle(_translate("table_postgis", "Liste des couches à ajouter dans le projet", None)) - self.couche_habitat.setText(_translate("table_postgis", "Habitat", None)) - self.couche_contour.setText(_translate("table_postgis", "Contour", None)) - self.annee_4.setText(_translate("table_postgis", "aaaa", None)) - self.couche_travaux_prevus.setText(_translate("table_postgis", "Travaux Prévus", None)) - self.annee_5.setText(_translate("table_postgis", "aaaa", None)) - self.couche_vierge.setText(_translate("table_postgis", "Vierge", None)) - self.annee_1.setText(_translate("table_postgis", "aaaa", None)) - self.annee_2.setText(_translate("table_postgis", "aaaa", None)) - self.label_nom_couche_vierge.setText(_translate("table_postgis", "- Nom de la couche vierge :", None)) - self.label_geom_couche_vierge.setText(_translate("table_postgis", "- Geométrie de la couche vierge :", None)) - self.couche_vierge_point.setText(_translate("table_postgis", "Point", None)) - self.couche_vierge_ligne.setText(_translate("table_postgis", "Ligne", None)) - self.couche_vierge_polygone.setText(_translate("table_postgis", "Polygone", None)) - self.label_3.setText(_translate("table_postgis", "Attention :", None)) - self.label_4.setText(_translate("table_postgis", "Le nom de la couche vierge ne doit comporter", None)) - self.label_5.setText(_translate("table_postgis", "ni caractères spéciaux, ni espaces", None)) - self.schema_label.setText(_translate("table_postgis", "Code analytique :", None)) - diff --git a/CenRa_POSTGIS/ui_table_postgis.py.bak b/CenRa_POSTGIS/ui_table_postgis.py.bak deleted file mode 100644 index e859f18d..00000000 --- a/CenRa_POSTGIS/ui_table_postgis.py.bak +++ /dev/null @@ -1,230 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'ui_table_postgis.ui' -# -# Created: Thu Mar 27 16:17:32 2014 -# by: PyQt4 UI code generator 4.9.6 -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore, QtGui - -try: - _fromUtf8 = QtCore.QString.fromUtf8 -except AttributeError: - def _fromUtf8(s): - return s - -try: - _encoding = QtGui.QApplication.UnicodeUTF8 - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig, _encoding) -except AttributeError: - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig) - -class Ui_table_postgis(object): - def setupUi(self, table_postgis): - table_postgis.setObjectName(_fromUtf8("table_postgis")) - table_postgis.resize(532, 364) - self.buttonBox = QtGui.QDialogButtonBox(table_postgis) - self.buttonBox.setGeometry(QtCore.QRect(360, 330, 161, 32)) - self.buttonBox.setOrientation(QtCore.Qt.Horizontal) - self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) - self.buttonBox.setObjectName(_fromUtf8("buttonBox")) - self.Titre = QtGui.QLabel(table_postgis) - self.Titre.setGeometry(QtCore.QRect(170, 0, 171, 31)) - font = QtGui.QFont() - font.setPointSize(14) - font.setBold(True) - font.setWeight(75) - self.Titre.setFont(font) - self.Titre.setObjectName(_fromUtf8("Titre")) - self.groupBox_2 = QtGui.QGroupBox(table_postgis) - self.groupBox_2.setGeometry(QtCore.QRect(10, 80, 511, 241)) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.groupBox_2.setFont(font) - self.groupBox_2.setAlignment(QtCore.Qt.AlignCenter) - self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) - self.gridLayoutWidget = QtGui.QWidget(self.groupBox_2) - self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 30, 162, 141)) - self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget")) - self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget) - self.gridLayout.setMargin(0) - self.gridLayout.setObjectName(_fromUtf8("gridLayout")) - self.couche_habitat = QtGui.QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_habitat.setFont(font) - self.couche_habitat.setObjectName(_fromUtf8("couche_habitat")) - self.gridLayout.addWidget(self.couche_habitat, 1, 0, 1, 1) - self.couche_contour = QtGui.QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_contour.setFont(font) - self.couche_contour.setObjectName(_fromUtf8("couche_contour")) - self.gridLayout.addWidget(self.couche_contour, 0, 0, 1, 1) - self.annee_4 = QtGui.QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_4.setFont(font) - self.annee_4.setAlignment(QtCore.Qt.AlignCenter) - self.annee_4.setObjectName(_fromUtf8("annee_4")) - self.gridLayout.addWidget(self.annee_4, 4, 1, 1, 1) - self.couche_travaux_prevus = QtGui.QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_travaux_prevus.setFont(font) - self.couche_travaux_prevus.setObjectName(_fromUtf8("couche_travaux_prevus")) - self.gridLayout.addWidget(self.couche_travaux_prevus, 3, 0, 1, 1) - self.annee_5 = QtGui.QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_5.setFont(font) - self.annee_5.setAlignment(QtCore.Qt.AlignCenter) - self.annee_5.setObjectName(_fromUtf8("annee_5")) - self.gridLayout.addWidget(self.annee_5, 3, 1, 1, 1) - self.couche_vierge = QtGui.QCheckBox(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge.setFont(font) - self.couche_vierge.setObjectName(_fromUtf8("couche_vierge")) - self.gridLayout.addWidget(self.couche_vierge, 4, 0, 1, 1) - self.annee_1 = QtGui.QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_1.setFont(font) - self.annee_1.setAlignment(QtCore.Qt.AlignCenter) - self.annee_1.setObjectName(_fromUtf8("annee_1")) - self.gridLayout.addWidget(self.annee_1, 0, 1, 1, 1) - self.annee_2 = QtGui.QLineEdit(self.gridLayoutWidget) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.annee_2.setFont(font) - self.annee_2.setAlignment(QtCore.Qt.AlignCenter) - self.annee_2.setObjectName(_fromUtf8("annee_2")) - self.gridLayout.addWidget(self.annee_2, 1, 1, 1, 1) - self.horizontalLayoutWidget_4 = QtGui.QWidget(self.groupBox_2) - self.horizontalLayoutWidget_4.setGeometry(QtCore.QRect(50, 170, 451, 31)) - self.horizontalLayoutWidget_4.setObjectName(_fromUtf8("horizontalLayoutWidget_4")) - self.horizontalLayout_4 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_4) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) - self.label_nom_couche_vierge = QtGui.QLabel(self.horizontalLayoutWidget_4) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_nom_couche_vierge.setFont(font) - self.label_nom_couche_vierge.setObjectName(_fromUtf8("label_nom_couche_vierge")) - self.horizontalLayout_4.addWidget(self.label_nom_couche_vierge) - self.nom_couche_vierge = QtGui.QLineEdit(self.horizontalLayoutWidget_4) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.nom_couche_vierge.setFont(font) - self.nom_couche_vierge.setObjectName(_fromUtf8("nom_couche_vierge")) - self.horizontalLayout_4.addWidget(self.nom_couche_vierge) - self.horizontalLayoutWidget_5 = QtGui.QWidget(self.groupBox_2) - self.horizontalLayoutWidget_5.setGeometry(QtCore.QRect(50, 200, 341, 31)) - self.horizontalLayoutWidget_5.setObjectName(_fromUtf8("horizontalLayoutWidget_5")) - self.horizontalLayout_5 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_5) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5")) - self.label_geom_couche_vierge = QtGui.QLabel(self.horizontalLayoutWidget_5) - self.label_geom_couche_vierge.setMinimumSize(QtCore.QSize(152, 0)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_geom_couche_vierge.setFont(font) - self.label_geom_couche_vierge.setObjectName(_fromUtf8("label_geom_couche_vierge")) - self.horizontalLayout_5.addWidget(self.label_geom_couche_vierge) - self.couche_vierge_point = QtGui.QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_point.setFont(font) - self.couche_vierge_point.setObjectName(_fromUtf8("couche_vierge_point")) - self.horizontalLayout_5.addWidget(self.couche_vierge_point) - self.couche_vierge_ligne = QtGui.QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_ligne.setFont(font) - self.couche_vierge_ligne.setObjectName(_fromUtf8("couche_vierge_ligne")) - self.horizontalLayout_5.addWidget(self.couche_vierge_ligne) - self.couche_vierge_polygone = QtGui.QRadioButton(self.horizontalLayoutWidget_5) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.couche_vierge_polygone.setFont(font) - self.couche_vierge_polygone.setObjectName(_fromUtf8("couche_vierge_polygone")) - self.horizontalLayout_5.addWidget(self.couche_vierge_polygone) - self.label_3 = QtGui.QLabel(self.groupBox_2) - self.label_3.setGeometry(QtCore.QRect(320, 60, 60, 29)) - self.label_3.setObjectName(_fromUtf8("label_3")) - self.label_4 = QtGui.QLabel(self.groupBox_2) - self.label_4.setGeometry(QtCore.QRect(240, 90, 221, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_4.setFont(font) - self.label_4.setObjectName(_fromUtf8("label_4")) - self.label_5 = QtGui.QLabel(self.groupBox_2) - self.label_5.setGeometry(QtCore.QRect(240, 110, 221, 16)) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.label_5.setFont(font) - self.label_5.setAlignment(QtCore.Qt.AlignCenter) - self.label_5.setObjectName(_fromUtf8("label_5")) - self.horizontalLayoutWidget = QtGui.QWidget(table_postgis) - self.horizontalLayoutWidget.setGeometry(QtCore.QRect(10, 40, 511, 31)) - self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget")) - self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) - self.schema_label = QtGui.QLabel(self.horizontalLayoutWidget) - self.schema_label.setMaximumSize(QtCore.QSize(75, 16777215)) - self.schema_label.setObjectName(_fromUtf8("schema_label")) - self.horizontalLayout.addWidget(self.schema_label) - self.schema = QtGui.QComboBox(self.horizontalLayoutWidget) - self.schema.setObjectName(_fromUtf8("schema")) - self.horizontalLayout.addWidget(self.schema) - - self.retranslateUi(table_postgis) - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), table_postgis.accept) - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), table_postgis.reject) - QtCore.QMetaObject.connectSlotsByName(table_postgis) - - def retranslateUi(self, table_postgis): - table_postgis.setWindowTitle(_translate("table_postgis", "Ajout d\'une table", None)) - self.Titre.setText(_translate("table_postgis", "Création de table", None)) - self.groupBox_2.setTitle(_translate("table_postgis", "Liste des couches à ajouter dans le projet", None)) - self.couche_habitat.setText(_translate("table_postgis", "Habitat", None)) - self.couche_contour.setText(_translate("table_postgis", "Contour", None)) - self.annee_4.setText(_translate("table_postgis", "aaaa", None)) - self.couche_travaux_prevus.setText(_translate("table_postgis", "Travaux Prévus", None)) - self.annee_5.setText(_translate("table_postgis", "aaaa", None)) - self.couche_vierge.setText(_translate("table_postgis", "Vierge", None)) - self.annee_1.setText(_translate("table_postgis", "aaaa", None)) - self.annee_2.setText(_translate("table_postgis", "aaaa", None)) - self.label_nom_couche_vierge.setText(_translate("table_postgis", "- Nom de la couche vierge :", None)) - self.label_geom_couche_vierge.setText(_translate("table_postgis", "- Geométrie de la couche vierge :", None)) - self.couche_vierge_point.setText(_translate("table_postgis", "Point", None)) - self.couche_vierge_ligne.setText(_translate("table_postgis", "Ligne", None)) - self.couche_vierge_polygone.setText(_translate("table_postgis", "Polygone", None)) - self.label_3.setText(_translate("table_postgis", "Attention :", None)) - self.label_4.setText(_translate("table_postgis", "Le nom de la couche vierge ne doit comporter", None)) - self.label_5.setText(_translate("table_postgis", "ni caractères spéciaux, ni espaces", None)) - self.schema_label.setText(_translate("table_postgis", "Nom du projet :", None)) -