diff --git a/.gitignore b/.gitignore
index 2fd7c7c..f9ceb0d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -146,4 +146,7 @@ Image/Inventory/ExtraNonsenseToKeepForNow/inventory.csv
#wsl files
*.deb
-*.deb.1
\ No newline at end of file
+*.deb.1
+*.csv
+*.vscode/
+*.conda
diff --git a/.vscode/settings.json b/.vscode/settings.json
index a490b61..3d4d142 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,5 +1,9 @@
{
"githubPullRequests.ignoredPullRequestBranches": [
"main"
- ]
+ ],
+ "[python]": {
+ "editor.defaultFormatter": "ms-python.black-formatter"
+ },
+ "python.formatting.provider": "none"
}
\ No newline at end of file
diff --git a/Staging/QCScript/.gitignore b/Staging/QCScript/.gitignore
new file mode 100644
index 0000000..111d386
--- /dev/null
+++ b/Staging/QCScript/.gitignore
@@ -0,0 +1,4 @@
+# Prevents CSVs from being uploaded to GitHub and wasting space
+*.csv
+*.conda
+*.vscode
diff --git a/Staging/QCScript/README.md b/Staging/QCScript/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/Staging/QCScript/ReferenceData10Bit.txt b/Staging/QCScript/ReferenceData10Bit.txt
new file mode 100644
index 0000000..2f7f2d9
--- /dev/null
+++ b/Staging/QCScript/ReferenceData10Bit.txt
@@ -0,0 +1,36 @@
+10 Bit Data Ranges for Average Videos
+
+Digital Luma Range: 64-940
+Digital Chroma Range: 64 - 960
+Ideal U & V Range: 340 - 680
+Yav: ~512
+Yrang: ~516 - 876
+Uav: ~512
+Vav: ~512
+TOUT: 0 - 0.009
+TOUTc: <10
+SAT Ideal Range: 0 - 88.7
+SATb: <1000
+SATi: <1000
+Hue Ideal Range: 480 - 588 (for skin tones)
+BRNGav: <0.02
+BRNGc: <1000
+MSEf: ~0
+MSEfY: <10
+VREP Ideal: 0
+
+Y Channel Range: 0-1020 IRE
+Y Channel Ideal Range: 64 - 940 IRE
+ Y LOW : 64 IRE
+ Y AVG : 512 IRE
+ Y HIGH : 940 IRE
+
+U Channel Ideal Range: 340 - 680 IRE
+V Channel Ideal Range: 340 - 680 IRE
+
+
+YUV Diff : Closer to 0 the better
+
+SAT Ideal RAnge: 0 - 354.8
+
+
diff --git a/Staging/QCScript/argparser.py b/Staging/QCScript/argparser.py
new file mode 100644
index 0000000..1b325b0
--- /dev/null
+++ b/Staging/QCScript/argparser.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+import argparse
+
+parser = argparse.ArgumentParser(
+ description="Allows input of files and the output of files"
+)
+
+parser.add_argument(
+ "--input",
+ "-i",
+ action="store",
+ dest="input_path",
+ type=str,
+ help="full path to input folder",
+)
+
+parser.add_argument(
+ "--output",
+ "-o",
+ action="store",
+ dest="output_path",
+ type=str,
+ help="full path to output folder",
+)
+
+parser.add_argument(
+ "--8bit",
+ "--8",
+ "--10" "--10bit",
+ action="store",
+ default="--10bit",
+ type=str,
+ help="Use to specify what bit depth your video is",
+)
+
+args = parser.parse_args()
diff --git a/Staging/QCScript/csvgeneration.py b/Staging/QCScript/csvgeneration.py
new file mode 100644
index 0000000..08c9b22
--- /dev/null
+++ b/Staging/QCScript/csvgeneration.py
@@ -0,0 +1,16 @@
+import pandas as pd
+import csv
+
+def videostatscsv(videostats):
+ csv_columns= list(videostats.keys())
+
+ try:
+ with open ('videodata.csv', 'w') as videocsvfile:
+ writer = csv.DictWriter(videocsvfile, fieldnames=csv_columns)
+ writer.writeheader()
+ for data in videostats:
+ writer.writerow(data)
+ except IOError:
+ print ('I/O Error')
+
+
diff --git a/Staging/QCScript/datalist10bit.py b/Staging/QCScript/datalist10bit.py
new file mode 100644
index 0000000..7fa2675
--- /dev/null
+++ b/Staging/QCScript/datalist10bit.py
@@ -0,0 +1,29 @@
+tenBitVideoValues = {
+ "YMin": [0],
+ "YLow": [64],
+ "YAvg": [512],
+ "YHigh": [940],
+ "YMax": [1023],
+ "UMin": [0],
+ "ULow": [64],
+ "UAvg": [512],
+ "UHigh": [940],
+ "UMax": [1023],
+ "VMin": [0],
+ "VLow": [64],
+ "VAvg": [512],
+ "VHigh": [940],
+ "VMax": [1023],
+ "SATMin": [0],
+ "SATAvg": [362.04],
+ "SATHigh": [512],
+ "SATMax": [724.08],
+ "TOUTMin": [0],
+ "TOUTMax": [1],
+ "VREPMin": [0],
+ "VREPMax": [1],
+ "BRNGMin": [0],
+ "BRNGMax": [1],
+}
+
+tenBitAudioValues = {"AudioPhaseMeterOOP": [-1], "AudioPhaseMeterIP": [1]}
diff --git a/Staging/QCScript/dataparsing.py b/Staging/QCScript/dataparsing.py
new file mode 100644
index 0000000..01ab038
--- /dev/null
+++ b/Staging/QCScript/dataparsing.py
@@ -0,0 +1,58 @@
+import pandas as pd
+import keycleaner
+import overallstatistics
+from bs4 import BeautifulSoup
+from tabulate import tabulate
+
+
+def dataparsingandtabulatingaudio(filepath):
+ audiodata = {}
+ file = open(filepath)
+ contents = file.read()
+ soup = BeautifulSoup(contents, "xml")
+ contents = file.read()
+ for frames in soup.find_all("frame"):
+ taglist = frames.find_all("tag")
+ frametime = frames.get("pkt_pts_time")
+ mediatype = frames.get("media_type")
+ if mediatype == "audio":
+ audiodata[frametime] = {}
+ for tag in taglist:
+ tagkey = tag.get("key")
+ if tagkey == "lavfi.astats.1.Noise_floor":
+ pass
+ elif tagkey == "lavfi.astats.2.Noise_floor":
+ pass
+ elif tagkey == "lavfi.astats.Overall.Noise_floor":
+ pass
+ else:
+ cleankey = keycleaner.tagkeycleaning(tagkey)
+ tagvalue = tag.get("value")
+ audiodata[frametime][cleankey] = float(tagvalue)
+ else:
+ pass
+ audiodf = pd.DataFrame.from_dict(audiodata, orient="index")
+ return audiodf
+
+
+def dataparsingandtabulatingvideo(filepath):
+ videodata = {}
+ file = open(filepath)
+ contents = file.read()
+ soup = BeautifulSoup(contents, "xml")
+ contents = file.read()
+ for frames in soup.find_all("frame"):
+ taglist = frames.find_all("tag")
+ frametime = frames.get("pkt_pts_time")
+ mediatype = frames.get("media_type")
+ if mediatype == "video":
+ videodata[frametime] = {}
+ for tag in taglist:
+ tagkey = tag.get("key")
+ cleankey = keycleaner.tagkeycleaning(tagkey)
+ tagvalue = tag.get("value")
+ videodata[frametime][cleankey] = float(tagvalue)
+ else:
+ pass
+ videodf = pd.DataFrame.from_dict(videodata, orient="index")
+ return videodf
diff --git a/Staging/QCScript/errortiers.py b/Staging/QCScript/errortiers.py
new file mode 100644
index 0000000..3bfbe3a
--- /dev/null
+++ b/Staging/QCScript/errortiers.py
@@ -0,0 +1,9 @@
+import json
+
+def tier1error (criteria, description, value):
+ failstier1 = {criteria[value, description]}
+ return failstier1
+
+def tier2error(criteria, description, value):
+ failstier2 = {criteria[value, description]}
+ return failstier2
diff --git a/Staging/QCScript/keycleaner.py b/Staging/QCScript/keycleaner.py
new file mode 100644
index 0000000..6068459
--- /dev/null
+++ b/Staging/QCScript/keycleaner.py
@@ -0,0 +1,7 @@
+def tagkeycleaning(tagkey):
+ tagkeyclean1 = tagkey.replace("lavfi.astats", "")
+ tagkeyclean2 = tagkeyclean1.replace("lavfi.", "")
+ tagkeyclean3 = tagkeyclean2.replace("signalstats.", "")
+ tagkeyclean4 = tagkeyclean3.replace(".", " ")
+ cleanedtagkey = tagkeyclean4.replace("_", " ")
+ return cleanedtagkey
diff --git a/Staging/QCScript/overallstatistics.py b/Staging/QCScript/overallstatistics.py
new file mode 100644
index 0000000..9a22711
--- /dev/null
+++ b/Staging/QCScript/overallstatistics.py
@@ -0,0 +1,16 @@
+import pandas as pd
+
+
+# Forms dictionaries of the summary data from Pandas
+def videodatastatistics(videodata):
+ videogeneralstats = {}
+ videostats = videodata.describe()
+ videogeneralstats["videostats"] = videostats
+ return videogeneralstats
+
+
+def audiodatastatistics(audiodata):
+ audiogeneralstats = {}
+ audiostats = audiodata.describe()
+ audiogeneralstats["audiostats"] = audiostats
+ return audiogeneralstats
diff --git a/Staging/QCScript/passfail.py b/Staging/QCScript/passfail.py
new file mode 100644
index 0000000..e69de29
diff --git a/Staging/QCScript/run.py b/Staging/QCScript/run.py
new file mode 100644
index 0000000..62df8bb
--- /dev/null
+++ b/Staging/QCScript/run.py
@@ -0,0 +1,18 @@
+import dataparsing
+import videoanalysis
+import overallstatistics
+import csvgeneration
+
+filepath = input("Filepath")
+
+
+videodata = dataparsing.dataparsingandtabulatingvideo(filepath)
+audiodata = dataparsing.dataparsingandtabulatingaudio(filepath)
+
+videostats = overallstatistics.videodatastatistics(videodata)
+audiostats = overallstatistics.audiodatastatistics(audiodata)
+
+
+"""
+videoanalysis.videoanalyzer(videodata)
+"""
diff --git a/Staging/QCScript/videoanalysis.py b/Staging/QCScript/videoanalysis.py
new file mode 100644
index 0000000..2cfc286
--- /dev/null
+++ b/Staging/QCScript/videoanalysis.py
@@ -0,0 +1,69 @@
+import pandas as pd
+import errortiers
+
+tenBitVideoValues = {
+ "YMin": 0,
+ "YLow": 64,
+ "YAvg": 512,
+ "YHigh": 940,
+ "YMax": 1023,
+ "UMin": 0,
+ "ULow": 64,
+ "UAvg": 512,
+ "UHigh": 960,
+ "UMax": 1023,
+ "VMin": 0,
+ "VLow": 64,
+ "VAvg": 512,
+ "VHigh": 960,
+ "VMax": 1023,
+ "SATMin": 0,
+ "SATAvg": 362.04,
+ "SATHigh": 512,
+ "SATMax": 724.08,
+ "TOUTMax": 0.009,
+ "VREPMax": 0.03,
+ "BRNGMax": 1,
+}
+
+
+def videoanalyzer(videodata):
+ BRNGcheck(videodata, tenBitVideoValues)
+ TOUTcheck(videodata, tenBitVideoValues)
+ VREPcheck(videodata, tenBitVideoValues)
+
+
+def BRNGcheck(videodata, tenBitVideoValues):
+ maxBRNG = tenBitVideoValues["BRNGMax"]
+ videomaxBRNG = videodata.at[8, "BRNG"]
+ if maxBRNG < videomaxBRNG:
+ criteria = "BRNG Max"
+ description = "The video is out of the maximum broadcasting range"
+ value = videomaxBRNG
+ errortiers.tier1error(criteria, description, value)
+ else:
+ pass
+
+
+def TOUTcheck(videodata, tenBitVideoValues):
+ maxTOUT = tenBitVideoValues["TOUTMax"]
+ videomaxTOUT = videodata.at[8, "TOUT"]
+ if maxTOUT < videomaxTOUT:
+ criteria = "TOUTMax"
+ description = "Your TOUT maximum is higher than the suggested range"
+ value = videomaxTOUT
+ errortiers.tier2error(criteria, value, description)
+ else:
+ pass
+
+
+def VREPcheck(videodata, tenBitVideoValues):
+ maxVREP = tenBitVideoValues["VREPMax"]
+ videomaxVREP = videodata.at[8, "VREP"]
+ if maxVREP < videomaxVREP:
+ criteria = "VREPMax"
+ value = videomaxVREP
+ description = "Your VREP maximum is outside of the suggested range"
+ errortiers.tier2error(criteria, value, description)
+ else:
+ pass
diff --git a/Staging/QCScript/vlc-record-2023-10-05-11h16m25s-test_NONEVIDEOSETTING_QTUNCOMPRESSED-p - Copy.mkv-.avi.qctools.xml b/Staging/QCScript/vlc-record-2023-10-05-11h16m25s-test_NONEVIDEOSETTING_QTUNCOMPRESSED-p - Copy.mkv-.avi.qctools.xml
new file mode 100644
index 0000000..a52173b
--- /dev/null
+++ b/Staging/QCScript/vlc-record-2023-10-05-11h16m25s-test_NONEVIDEOSETTING_QTUNCOMPRESSED-p - Copy.mkv-.avi.qctools.xml
@@ -0,0 +1,108983 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Staging/QCScript/xmlschemareader.py b/Staging/QCScript/xmlschemareader.py
new file mode 100644
index 0000000..4c7fb92
--- /dev/null
+++ b/Staging/QCScript/xmlschemareader.py
@@ -0,0 +1,25 @@
+
+import xmlschema
+from bs4 import BeautifulSoup
+from pprint import pprint
+schema= xmlschema.XMLSchema("/Users/dcstaff/Documents/GitHub/nul-rdc-scripts/Staging/QCScript/ffprobe.xsd")
+file = "/Users/dcstaff/Documents/GitHub/nul-rdc-scripts/Staging/QCScript/vlc-record-2023-10-05-11h16m25s-test_NONEVIDEOSETTING_QTUNCOMPRESSED-p - Copy.mkv-.avi.qctools.xml"
+
+print("Validating Schema")
+schema.validate(file)
+print("Schema Validated")
+
+
+
+print("Decoding Schema")
+data=schema.decode(file)
+print("Decoded Schema")
+print("Done")
+
+pprint(schema.to_dict ('/Users/dcstaff/Documents/GitHub/nul-rdc-scripts/Staging/QCScript/vlc-record-2023-10-05-11h16m25s-test_NONEVIDEOSETTING_QTUNCOMPRESSED-p - Copy.mkv-.avi.qctools.xml'))
+
+with open(file, 'r') as file:
+ content=file.readlines()
+content = "".join(content)
+bs_content = BeautifulSoup(content,"xml")
+videoframedata =
diff --git a/nulrdcscripts/inventory/BorF.py b/nulrdcscripts/inventory/BorF.py
new file mode 100644
index 0000000..4caafbf
--- /dev/null
+++ b/nulrdcscripts/inventory/BorF.py
@@ -0,0 +1,54 @@
+import buildboxorFolderCSV
+import csv
+import inputvalidation
+import pagePath
+import setup
+from csvinput import field_names as field_names
+
+
+def BorFPath(project_number, project_4letterID, csvname):
+ file_number = 1
+ # Asks the box number
+ box_number = setup.askbox_number()
+
+ # Verifies the box number and sets ZFill -- change ZFill for different number of digits
+ box_number = inputvalidation.check_boxnumber(box_number)
+
+ # Asks the folder number
+ folder_number = setup.askfolder_number()
+
+ # Verifies the folder number and sets ZFill -- change ZFill for different number of digits
+ folder_number = inputvalidation.check_foldernumber(folder_number)
+
+ pages_yn = setup.ask_pages()
+
+ if pages_yn == "y":
+ pagePath.pageTrue(
+ project_4letterID, project_number, box_number, folder_number, csvname
+ )
+ else:
+ number_of_works = setup.ask_numberworks() # number to loop by
+ number_of_works = inputvalidation.check_numberworks(number_of_works)
+ with open(csvname, "a", newline="", encoding="utf-8") as csvfile:
+ writer = csv.DictWriter(csvfile, fieldnames=field_names)
+ writer.writeheader()
+ file_number = int(file_number)
+ while file_number <= number_of_works:
+ file_number = str(file_number).zfill(2)
+ inventory = buildboxorFolderCSV.build_boxOrFolder_inventory(
+ project_number,
+ project_4letterID,
+ box_number,
+ folder_number,
+ file_number,
+ )
+ for data in inventory:
+ writer.writerows(inventory)
+ file_number = int(file_number) + 1
+ new_BorF = setup.ask_newBoxFolder()
+ if new_BorF == "y":
+ BorFPath(project_number, project_4letterID)
+ elif new_BorF == "n":
+ pass
+
+ return inventory
diff --git a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/.gitignore b/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/.gitignore
deleted file mode 100644
index 8613eb7..0000000
--- a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-$ cat .gitignore
-*.[csv]
\ No newline at end of file
diff --git a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/CSVwriting.py b/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/CSVwriting.py
deleted file mode 100644
index 8ba4d0b..0000000
--- a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/CSVwriting.py
+++ /dev/null
@@ -1,36 +0,0 @@
-import csv
-import os
-
-
-proj_number=input("What is the project number?")
-proj_4dig=input("What is the four letter id?")
-box_other=input('Are there boxes and folders?')
-field_names = ['Spreadsheet Row Number', 'work_image' , 'structure' , 'role' , 'work_type' , 'work_accession_number' , 'file_accession_number' , 'filename' , 'label' , 'description' , 'Capture date' , 'Staff Initials' , 'Container number ex. Box Number' , 'folder number' , 'Width (cm.)' , 'Height (cm.)' , 'Date (Year+Month+Day)' , 'project_job_number' , 'Notes about album page or photo', 'Production Notes', 'Creator' , 'Source' , 'Copyright Notice']
-
-
-box_number=input("What is the box number?")
-folder_number=input("What is the folder number?")
-folder_files=int(input("How many files?")) #number to loop by
-file_number=1
-row_number=1
-
-
-with open ('inventory.csv','a') as csvfile:
- writer=csv.DictWriter(csvfile,fieldnames=field_names)
- writer.writeheader()
- while file_number <= folder_files:
- file_number=str(file_number)
- inventory=[{'Spreadsheet Row Number':row_number,'work_accession_number': proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number, 'file_accession_number':proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number+'_'+file_number+'_'+'01'+'_'+'a', 'filename': proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number+'_'+file_number+'_'+'01'+'_'+'a'+'.tif', 'Container number ex. Box Number':box_number, 'folder number':folder_number, 'role':'A', 'work_type':'IMAGE','project_job_number':proj_number}]
-
- for data in inventory:
- writer.writerows(inventory)
-
-
- file_number=int(file_number)+1
- row_number=row_number+1
-
-
-
-
-
-os.system("start EXCEL.exe inventory.csv")
\ No newline at end of file
diff --git a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory.csv b/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory.csv
deleted file mode 100644
index 46f5744..0000000
--- a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory.csv
+++ /dev/null
@@ -1,1406 +0,0 @@
-Spreadsheet Row Number,work_image,structure,role,work_type,work_accession_number,file_accession_number,filename,label,description,Capture date,Staff Initials,Container number ex. Box Number,folder number,Width (cm.),Height (cm.),Date (Year+Month+Day),project_job_number,Notes about album page or photo,Production Notes,Creator,Source,Copyright Notice
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0001_01_a,p0386_grea_b01_f01_0001_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0002_01_a,p0386_grea_b01_f01_0002_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0003_01_a,p0386_grea_b01_f01_0003_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0004_01_a,p0386_grea_b01_f01_0004_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0005_01_a,p0386_grea_b01_f01_0005_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0006_01_a,p0386_grea_b01_f01_0006_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0007_01_a,p0386_grea_b01_f01_0007_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0008_01_a,p0386_grea_b01_f01_0008_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0009_01_a,p0386_grea_b01_f01_0009_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0010_01_a,p0386_grea_b01_f01_0010_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0011_01_a,p0386_grea_b01_f01_0011_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0012_01_a,p0386_grea_b01_f01_0012_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0013_01_a,p0386_grea_b01_f01_0013_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0014_01_a,p0386_grea_b01_f01_0014_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0015_01_a,p0386_grea_b01_f01_0015_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f01,p0386_grea_b01_f01_0016_01_a,p0386_grea_b01_f01_0016_01_a.tif,,,,,01,01,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0001_01_a,p0386_grea_b01_f02_0001_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0002_01_a,p0386_grea_b01_f02_0002_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0003_01_a,p0386_grea_b01_f02_0003_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0004_01_a,p0386_grea_b01_f02_0004_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0005_01_a,p0386_grea_b01_f02_0005_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0006_01_a,p0386_grea_b01_f02_0006_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0007_01_a,p0386_grea_b01_f02_0007_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0008_01_a,p0386_grea_b01_f02_0008_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0009_01_a,p0386_grea_b01_f02_0009_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0010_01_a,p0386_grea_b01_f02_0010_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0011_01_a,p0386_grea_b01_f02_0011_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0012_01_a,p0386_grea_b01_f02_0012_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0013_01_a,p0386_grea_b01_f02_0013_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0014_01_a,p0386_grea_b01_f02_0014_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0015_01_a,p0386_grea_b01_f02_0015_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0016_01_a,p0386_grea_b01_f02_0016_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0017_01_a,p0386_grea_b01_f02_0017_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0018_01_a,p0386_grea_b01_f02_0018_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0019_01_a,p0386_grea_b01_f02_0019_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0020_01_a,p0386_grea_b01_f02_0020_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0021_01_a,p0386_grea_b01_f02_0021_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0022_01_a,p0386_grea_b01_f02_0022_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0023_01_a,p0386_grea_b01_f02_0023_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0024_01_a,p0386_grea_b01_f02_0024_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0025_01_a,p0386_grea_b01_f02_0025_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0026_01_a,p0386_grea_b01_f02_0026_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0027_01_a,p0386_grea_b01_f02_0027_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0028_01_a,p0386_grea_b01_f02_0028_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0029_01_a,p0386_grea_b01_f02_0029_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0030_01_a,p0386_grea_b01_f02_0030_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0031_01_a,p0386_grea_b01_f02_0031_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0032_01_a,p0386_grea_b01_f02_0032_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0033_01_a,p0386_grea_b01_f02_0033_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0034_01_a,p0386_grea_b01_f02_0034_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0035_01_a,p0386_grea_b01_f02_0035_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0036_01_a,p0386_grea_b01_f02_0036_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0037_01_a,p0386_grea_b01_f02_0037_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0038_01_a,p0386_grea_b01_f02_0038_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0039_01_a,p0386_grea_b01_f02_0039_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0040_01_a,p0386_grea_b01_f02_0040_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0041_01_a,p0386_grea_b01_f02_0041_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0042_01_a,p0386_grea_b01_f02_0042_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0043_01_a,p0386_grea_b01_f02_0043_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0044_01_a,p0386_grea_b01_f02_0044_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0045_01_a,p0386_grea_b01_f02_0045_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0046_01_a,p0386_grea_b01_f02_0046_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0047_01_a,p0386_grea_b01_f02_0047_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0048_01_a,p0386_grea_b01_f02_0048_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0049_01_a,p0386_grea_b01_f02_0049_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0050_01_a,p0386_grea_b01_f02_0050_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0051_01_a,p0386_grea_b01_f02_0051_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0052_01_a,p0386_grea_b01_f02_0052_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0053_01_a,p0386_grea_b01_f02_0053_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0054_01_a,p0386_grea_b01_f02_0054_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0055_01_a,p0386_grea_b01_f02_0055_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0056_01_a,p0386_grea_b01_f02_0056_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0057_01_a,p0386_grea_b01_f02_0057_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0058_01_a,p0386_grea_b01_f02_0058_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0059_01_a,p0386_grea_b01_f02_0059_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0060_01_a,p0386_grea_b01_f02_0060_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0061_01_a,p0386_grea_b01_f02_0061_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0062_01_a,p0386_grea_b01_f02_0062_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0063_01_a,p0386_grea_b01_f02_0063_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0064_01_a,p0386_grea_b01_f02_0064_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0065_01_a,p0386_grea_b01_f02_0065_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0066_01_a,p0386_grea_b01_f02_0066_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0067_01_a,p0386_grea_b01_f02_0067_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0068_01_a,p0386_grea_b01_f02_0068_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0069_01_a,p0386_grea_b01_f02_0069_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0070_01_a,p0386_grea_b01_f02_0070_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0071_01_a,p0386_grea_b01_f02_0071_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0072_01_a,p0386_grea_b01_f02_0072_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0073_01_a,p0386_grea_b01_f02_0073_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0074_01_a,p0386_grea_b01_f02_0074_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0075_01_a,p0386_grea_b01_f02_0075_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0076_01_a,p0386_grea_b01_f02_0076_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0077_01_a,p0386_grea_b01_f02_0077_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0078_01_a,p0386_grea_b01_f02_0078_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0079_01_a,p0386_grea_b01_f02_0079_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0080_01_a,p0386_grea_b01_f02_0080_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0081_01_a,p0386_grea_b01_f02_0081_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0082_01_a,p0386_grea_b01_f02_0082_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0083_01_a,p0386_grea_b01_f02_0083_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0084_01_a,p0386_grea_b01_f02_0084_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0085_01_a,p0386_grea_b01_f02_0085_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0086_01_a,p0386_grea_b01_f02_0086_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0087_01_a,p0386_grea_b01_f02_0087_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0088_01_a,p0386_grea_b01_f02_0088_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0089_01_a,p0386_grea_b01_f02_0089_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0090_01_a,p0386_grea_b01_f02_0090_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0091_01_a,p0386_grea_b01_f02_0091_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0092_01_a,p0386_grea_b01_f02_0092_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0093_01_a,p0386_grea_b01_f02_0093_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0094_01_a,p0386_grea_b01_f02_0094_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0095_01_a,p0386_grea_b01_f02_0095_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0096_01_a,p0386_grea_b01_f02_0096_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0097_01_a,p0386_grea_b01_f02_0097_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0098_01_a,p0386_grea_b01_f02_0098_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0099_01_a,p0386_grea_b01_f02_0099_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0100_01_a,p0386_grea_b01_f02_0100_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0101_01_a,p0386_grea_b01_f02_0101_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0102_01_a,p0386_grea_b01_f02_0102_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0103_01_a,p0386_grea_b01_f02_0103_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0104_01_a,p0386_grea_b01_f02_0104_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0105_01_a,p0386_grea_b01_f02_0105_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0106_01_a,p0386_grea_b01_f02_0106_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0107_01_a,p0386_grea_b01_f02_0107_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0108_01_a,p0386_grea_b01_f02_0108_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0109_01_a,p0386_grea_b01_f02_0109_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0110_01_a,p0386_grea_b01_f02_0110_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0111_01_a,p0386_grea_b01_f02_0111_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0112_01_a,p0386_grea_b01_f02_0112_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0113_01_a,p0386_grea_b01_f02_0113_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0114_01_a,p0386_grea_b01_f02_0114_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0115_01_a,p0386_grea_b01_f02_0115_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0116_01_a,p0386_grea_b01_f02_0116_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0117_01_a,p0386_grea_b01_f02_0117_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0118_01_a,p0386_grea_b01_f02_0118_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0119_01_a,p0386_grea_b01_f02_0119_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0120_01_a,p0386_grea_b01_f02_0120_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0121_01_a,p0386_grea_b01_f02_0121_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0122_01_a,p0386_grea_b01_f02_0122_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0123_01_a,p0386_grea_b01_f02_0123_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0124_01_a,p0386_grea_b01_f02_0124_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0125_01_a,p0386_grea_b01_f02_0125_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0126_01_a,p0386_grea_b01_f02_0126_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0127_01_a,p0386_grea_b01_f02_0127_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0128_01_a,p0386_grea_b01_f02_0128_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0129_01_a,p0386_grea_b01_f02_0129_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0130_01_a,p0386_grea_b01_f02_0130_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0131_01_a,p0386_grea_b01_f02_0131_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0132_01_a,p0386_grea_b01_f02_0132_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0133_01_a,p0386_grea_b01_f02_0133_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0134_01_a,p0386_grea_b01_f02_0134_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0135_01_a,p0386_grea_b01_f02_0135_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0136_01_a,p0386_grea_b01_f02_0136_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0137_01_a,p0386_grea_b01_f02_0137_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0138_01_a,p0386_grea_b01_f02_0138_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0139_01_a,p0386_grea_b01_f02_0139_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0140_01_a,p0386_grea_b01_f02_0140_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0141_01_a,p0386_grea_b01_f02_0141_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0142_01_a,p0386_grea_b01_f02_0142_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0143_01_a,p0386_grea_b01_f02_0143_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0144_01_a,p0386_grea_b01_f02_0144_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0145_01_a,p0386_grea_b01_f02_0145_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0146_01_a,p0386_grea_b01_f02_0146_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0147_01_a,p0386_grea_b01_f02_0147_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0148_01_a,p0386_grea_b01_f02_0148_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0149_01_a,p0386_grea_b01_f02_0149_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0150_01_a,p0386_grea_b01_f02_0150_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0151_01_a,p0386_grea_b01_f02_0151_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0152_01_a,p0386_grea_b01_f02_0152_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0153_01_a,p0386_grea_b01_f02_0153_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0154_01_a,p0386_grea_b01_f02_0154_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0155_01_a,p0386_grea_b01_f02_0155_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0156_01_a,p0386_grea_b01_f02_0156_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0157_01_a,p0386_grea_b01_f02_0157_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0158_01_a,p0386_grea_b01_f02_0158_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0159_01_a,p0386_grea_b01_f02_0159_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0160_01_a,p0386_grea_b01_f02_0160_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0161_01_a,p0386_grea_b01_f02_0161_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0162_01_a,p0386_grea_b01_f02_0162_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0163_01_a,p0386_grea_b01_f02_0163_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0164_01_a,p0386_grea_b01_f02_0164_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0165_01_a,p0386_grea_b01_f02_0165_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0166_01_a,p0386_grea_b01_f02_0166_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0167_01_a,p0386_grea_b01_f02_0167_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0168_01_a,p0386_grea_b01_f02_0168_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0169_01_a,p0386_grea_b01_f02_0169_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0170_01_a,p0386_grea_b01_f02_0170_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0171_01_a,p0386_grea_b01_f02_0171_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0172_01_a,p0386_grea_b01_f02_0172_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0173_01_a,p0386_grea_b01_f02_0173_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0174_01_a,p0386_grea_b01_f02_0174_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0175_01_a,p0386_grea_b01_f02_0175_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0176_01_a,p0386_grea_b01_f02_0176_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0177_01_a,p0386_grea_b01_f02_0177_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0178_01_a,p0386_grea_b01_f02_0178_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0179_01_a,p0386_grea_b01_f02_0179_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0180_01_a,p0386_grea_b01_f02_0180_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0181_01_a,p0386_grea_b01_f02_0181_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0182_01_a,p0386_grea_b01_f02_0182_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0183_01_a,p0386_grea_b01_f02_0183_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0184_01_a,p0386_grea_b01_f02_0184_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0185_01_a,p0386_grea_b01_f02_0185_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0186_01_a,p0386_grea_b01_f02_0186_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0187_01_a,p0386_grea_b01_f02_0187_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0188_01_a,p0386_grea_b01_f02_0188_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0189_01_a,p0386_grea_b01_f02_0189_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0190_01_a,p0386_grea_b01_f02_0190_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0191_01_a,p0386_grea_b01_f02_0191_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0192_01_a,p0386_grea_b01_f02_0192_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0193_01_a,p0386_grea_b01_f02_0193_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0194_01_a,p0386_grea_b01_f02_0194_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0195_01_a,p0386_grea_b01_f02_0195_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0196_01_a,p0386_grea_b01_f02_0196_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0197_01_a,p0386_grea_b01_f02_0197_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0198_01_a,p0386_grea_b01_f02_0198_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0199_01_a,p0386_grea_b01_f02_0199_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0200_01_a,p0386_grea_b01_f02_0200_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0201_01_a,p0386_grea_b01_f02_0201_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0202_01_a,p0386_grea_b01_f02_0202_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0203_01_a,p0386_grea_b01_f02_0203_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0204_01_a,p0386_grea_b01_f02_0204_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0205_01_a,p0386_grea_b01_f02_0205_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0206_01_a,p0386_grea_b01_f02_0206_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0207_01_a,p0386_grea_b01_f02_0207_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0208_01_a,p0386_grea_b01_f02_0208_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0209_01_a,p0386_grea_b01_f02_0209_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0210_01_a,p0386_grea_b01_f02_0210_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0211_01_a,p0386_grea_b01_f02_0211_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0212_01_a,p0386_grea_b01_f02_0212_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0213_01_a,p0386_grea_b01_f02_0213_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0214_01_a,p0386_grea_b01_f02_0214_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0215_01_a,p0386_grea_b01_f02_0215_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0216_01_a,p0386_grea_b01_f02_0216_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0217_01_a,p0386_grea_b01_f02_0217_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0218_01_a,p0386_grea_b01_f02_0218_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0219_01_a,p0386_grea_b01_f02_0219_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0220_01_a,p0386_grea_b01_f02_0220_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0221_01_a,p0386_grea_b01_f02_0221_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0222_01_a,p0386_grea_b01_f02_0222_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0223_01_a,p0386_grea_b01_f02_0223_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0224_01_a,p0386_grea_b01_f02_0224_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0225_01_a,p0386_grea_b01_f02_0225_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0226_01_a,p0386_grea_b01_f02_0226_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0227_01_a,p0386_grea_b01_f02_0227_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0228_01_a,p0386_grea_b01_f02_0228_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0229_01_a,p0386_grea_b01_f02_0229_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0230_01_a,p0386_grea_b01_f02_0230_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0231_01_a,p0386_grea_b01_f02_0231_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0232_01_a,p0386_grea_b01_f02_0232_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0233_01_a,p0386_grea_b01_f02_0233_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0234_01_a,p0386_grea_b01_f02_0234_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0235_01_a,p0386_grea_b01_f02_0235_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0236_01_a,p0386_grea_b01_f02_0236_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0237_01_a,p0386_grea_b01_f02_0237_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0238_01_a,p0386_grea_b01_f02_0238_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0239_01_a,p0386_grea_b01_f02_0239_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0240_01_a,p0386_grea_b01_f02_0240_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0241_01_a,p0386_grea_b01_f02_0241_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0242_01_a,p0386_grea_b01_f02_0242_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0243_01_a,p0386_grea_b01_f02_0243_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0244_01_a,p0386_grea_b01_f02_0244_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0245_01_a,p0386_grea_b01_f02_0245_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0246_01_a,p0386_grea_b01_f02_0246_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0247_01_a,p0386_grea_b01_f02_0247_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0248_01_a,p0386_grea_b01_f02_0248_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0249_01_a,p0386_grea_b01_f02_0249_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0250_01_a,p0386_grea_b01_f02_0250_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0251_01_a,p0386_grea_b01_f02_0251_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0252_01_a,p0386_grea_b01_f02_0252_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0253_01_a,p0386_grea_b01_f02_0253_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0254_01_a,p0386_grea_b01_f02_0254_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0255_01_a,p0386_grea_b01_f02_0255_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0256_01_a,p0386_grea_b01_f02_0256_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0257_01_a,p0386_grea_b01_f02_0257_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0258_01_a,p0386_grea_b01_f02_0258_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0259_01_a,p0386_grea_b01_f02_0259_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0260_01_a,p0386_grea_b01_f02_0260_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0261_01_a,p0386_grea_b01_f02_0261_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0262_01_a,p0386_grea_b01_f02_0262_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0263_01_a,p0386_grea_b01_f02_0263_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0264_01_a,p0386_grea_b01_f02_0264_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0265_01_a,p0386_grea_b01_f02_0265_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0266_01_a,p0386_grea_b01_f02_0266_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0267_01_a,p0386_grea_b01_f02_0267_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0268_01_a,p0386_grea_b01_f02_0268_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0269_01_a,p0386_grea_b01_f02_0269_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0270_01_a,p0386_grea_b01_f02_0270_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0271_01_a,p0386_grea_b01_f02_0271_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0272_01_a,p0386_grea_b01_f02_0272_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0273_01_a,p0386_grea_b01_f02_0273_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0274_01_a,p0386_grea_b01_f02_0274_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0275_01_a,p0386_grea_b01_f02_0275_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0276_01_a,p0386_grea_b01_f02_0276_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0277_01_a,p0386_grea_b01_f02_0277_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0278_01_a,p0386_grea_b01_f02_0278_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0279_01_a,p0386_grea_b01_f02_0279_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0280_01_a,p0386_grea_b01_f02_0280_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0281_01_a,p0386_grea_b01_f02_0281_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0282_01_a,p0386_grea_b01_f02_0282_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0283_01_a,p0386_grea_b01_f02_0283_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0284_01_a,p0386_grea_b01_f02_0284_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0285_01_a,p0386_grea_b01_f02_0285_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0286_01_a,p0386_grea_b01_f02_0286_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0287_01_a,p0386_grea_b01_f02_0287_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0288_01_a,p0386_grea_b01_f02_0288_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0289_01_a,p0386_grea_b01_f02_0289_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0290_01_a,p0386_grea_b01_f02_0290_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0291_01_a,p0386_grea_b01_f02_0291_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0292_01_a,p0386_grea_b01_f02_0292_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0293_01_a,p0386_grea_b01_f02_0293_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0294_01_a,p0386_grea_b01_f02_0294_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0295_01_a,p0386_grea_b01_f02_0295_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0296_01_a,p0386_grea_b01_f02_0296_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0297_01_a,p0386_grea_b01_f02_0297_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0298_01_a,p0386_grea_b01_f02_0298_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0299_01_a,p0386_grea_b01_f02_0299_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0300_01_a,p0386_grea_b01_f02_0300_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0301_01_a,p0386_grea_b01_f02_0301_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0302_01_a,p0386_grea_b01_f02_0302_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0303_01_a,p0386_grea_b01_f02_0303_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0304_01_a,p0386_grea_b01_f02_0304_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0305_01_a,p0386_grea_b01_f02_0305_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0306_01_a,p0386_grea_b01_f02_0306_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0307_01_a,p0386_grea_b01_f02_0307_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0308_01_a,p0386_grea_b01_f02_0308_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0309_01_a,p0386_grea_b01_f02_0309_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0310_01_a,p0386_grea_b01_f02_0310_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0311_01_a,p0386_grea_b01_f02_0311_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0312_01_a,p0386_grea_b01_f02_0312_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0313_01_a,p0386_grea_b01_f02_0313_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0314_01_a,p0386_grea_b01_f02_0314_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0315_01_a,p0386_grea_b01_f02_0315_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0316_01_a,p0386_grea_b01_f02_0316_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0317_01_a,p0386_grea_b01_f02_0317_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0318_01_a,p0386_grea_b01_f02_0318_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0319_01_a,p0386_grea_b01_f02_0319_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0320_01_a,p0386_grea_b01_f02_0320_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0321_01_a,p0386_grea_b01_f02_0321_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0322_01_a,p0386_grea_b01_f02_0322_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0323_01_a,p0386_grea_b01_f02_0323_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0324_01_a,p0386_grea_b01_f02_0324_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0325_01_a,p0386_grea_b01_f02_0325_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0326_01_a,p0386_grea_b01_f02_0326_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0327_01_a,p0386_grea_b01_f02_0327_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0328_01_a,p0386_grea_b01_f02_0328_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0329_01_a,p0386_grea_b01_f02_0329_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0330_01_a,p0386_grea_b01_f02_0330_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0331_01_a,p0386_grea_b01_f02_0331_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0332_01_a,p0386_grea_b01_f02_0332_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0333_01_a,p0386_grea_b01_f02_0333_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0334_01_a,p0386_grea_b01_f02_0334_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0335_01_a,p0386_grea_b01_f02_0335_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0336_01_a,p0386_grea_b01_f02_0336_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0337_01_a,p0386_grea_b01_f02_0337_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0338_01_a,p0386_grea_b01_f02_0338_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0339_01_a,p0386_grea_b01_f02_0339_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0340_01_a,p0386_grea_b01_f02_0340_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0341_01_a,p0386_grea_b01_f02_0341_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0342_01_a,p0386_grea_b01_f02_0342_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0343_01_a,p0386_grea_b01_f02_0343_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0344_01_a,p0386_grea_b01_f02_0344_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0345_01_a,p0386_grea_b01_f02_0345_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0346_01_a,p0386_grea_b01_f02_0346_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0347_01_a,p0386_grea_b01_f02_0347_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0348_01_a,p0386_grea_b01_f02_0348_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0349_01_a,p0386_grea_b01_f02_0349_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0350_01_a,p0386_grea_b01_f02_0350_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0351_01_a,p0386_grea_b01_f02_0351_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0352_01_a,p0386_grea_b01_f02_0352_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0353_01_a,p0386_grea_b01_f02_0353_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0354_01_a,p0386_grea_b01_f02_0354_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0355_01_a,p0386_grea_b01_f02_0355_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0356_01_a,p0386_grea_b01_f02_0356_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0357_01_a,p0386_grea_b01_f02_0357_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0358_01_a,p0386_grea_b01_f02_0358_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0359_01_a,p0386_grea_b01_f02_0359_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0360_01_a,p0386_grea_b01_f02_0360_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0361_01_a,p0386_grea_b01_f02_0361_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0362_01_a,p0386_grea_b01_f02_0362_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0363_01_a,p0386_grea_b01_f02_0363_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0364_01_a,p0386_grea_b01_f02_0364_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0365_01_a,p0386_grea_b01_f02_0365_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0366_01_a,p0386_grea_b01_f02_0366_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0367_01_a,p0386_grea_b01_f02_0367_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0368_01_a,p0386_grea_b01_f02_0368_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0369_01_a,p0386_grea_b01_f02_0369_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0370_01_a,p0386_grea_b01_f02_0370_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0371_01_a,p0386_grea_b01_f02_0371_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0372_01_a,p0386_grea_b01_f02_0372_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0373_01_a,p0386_grea_b01_f02_0373_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0374_01_a,p0386_grea_b01_f02_0374_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0375_01_a,p0386_grea_b01_f02_0375_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0376_01_a,p0386_grea_b01_f02_0376_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0377_01_a,p0386_grea_b01_f02_0377_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0378_01_a,p0386_grea_b01_f02_0378_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0379_01_a,p0386_grea_b01_f02_0379_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0380_01_a,p0386_grea_b01_f02_0380_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0381_01_a,p0386_grea_b01_f02_0381_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0382_01_a,p0386_grea_b01_f02_0382_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0383_01_a,p0386_grea_b01_f02_0383_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0384_01_a,p0386_grea_b01_f02_0384_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0385_01_a,p0386_grea_b01_f02_0385_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0386_01_a,p0386_grea_b01_f02_0386_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0387_01_a,p0386_grea_b01_f02_0387_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0388_01_a,p0386_grea_b01_f02_0388_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0389_01_a,p0386_grea_b01_f02_0389_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0390_01_a,p0386_grea_b01_f02_0390_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0391_01_a,p0386_grea_b01_f02_0391_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0392_01_a,p0386_grea_b01_f02_0392_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0393_01_a,p0386_grea_b01_f02_0393_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0394_01_a,p0386_grea_b01_f02_0394_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0395_01_a,p0386_grea_b01_f02_0395_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0396_01_a,p0386_grea_b01_f02_0396_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0397_01_a,p0386_grea_b01_f02_0397_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0398_01_a,p0386_grea_b01_f02_0398_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0399_01_a,p0386_grea_b01_f02_0399_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0400_01_a,p0386_grea_b01_f02_0400_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0401_01_a,p0386_grea_b01_f02_0401_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0402_01_a,p0386_grea_b01_f02_0402_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0403_01_a,p0386_grea_b01_f02_0403_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0404_01_a,p0386_grea_b01_f02_0404_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0405_01_a,p0386_grea_b01_f02_0405_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0406_01_a,p0386_grea_b01_f02_0406_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0407_01_a,p0386_grea_b01_f02_0407_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0408_01_a,p0386_grea_b01_f02_0408_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0409_01_a,p0386_grea_b01_f02_0409_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0410_01_a,p0386_grea_b01_f02_0410_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0411_01_a,p0386_grea_b01_f02_0411_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0412_01_a,p0386_grea_b01_f02_0412_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0413_01_a,p0386_grea_b01_f02_0413_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0414_01_a,p0386_grea_b01_f02_0414_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0415_01_a,p0386_grea_b01_f02_0415_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0416_01_a,p0386_grea_b01_f02_0416_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0417_01_a,p0386_grea_b01_f02_0417_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0418_01_a,p0386_grea_b01_f02_0418_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0419_01_a,p0386_grea_b01_f02_0419_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0420_01_a,p0386_grea_b01_f02_0420_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0421_01_a,p0386_grea_b01_f02_0421_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0422_01_a,p0386_grea_b01_f02_0422_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0423_01_a,p0386_grea_b01_f02_0423_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0424_01_a,p0386_grea_b01_f02_0424_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0425_01_a,p0386_grea_b01_f02_0425_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0426_01_a,p0386_grea_b01_f02_0426_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0427_01_a,p0386_grea_b01_f02_0427_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0428_01_a,p0386_grea_b01_f02_0428_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0429_01_a,p0386_grea_b01_f02_0429_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0430_01_a,p0386_grea_b01_f02_0430_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0431_01_a,p0386_grea_b01_f02_0431_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0432_01_a,p0386_grea_b01_f02_0432_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0433_01_a,p0386_grea_b01_f02_0433_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0434_01_a,p0386_grea_b01_f02_0434_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0435_01_a,p0386_grea_b01_f02_0435_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0436_01_a,p0386_grea_b01_f02_0436_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0437_01_a,p0386_grea_b01_f02_0437_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0438_01_a,p0386_grea_b01_f02_0438_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0439_01_a,p0386_grea_b01_f02_0439_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0440_01_a,p0386_grea_b01_f02_0440_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0441_01_a,p0386_grea_b01_f02_0441_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0442_01_a,p0386_grea_b01_f02_0442_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0443_01_a,p0386_grea_b01_f02_0443_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0444_01_a,p0386_grea_b01_f02_0444_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0445_01_a,p0386_grea_b01_f02_0445_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0446_01_a,p0386_grea_b01_f02_0446_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0447_01_a,p0386_grea_b01_f02_0447_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0448_01_a,p0386_grea_b01_f02_0448_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0449_01_a,p0386_grea_b01_f02_0449_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0450_01_a,p0386_grea_b01_f02_0450_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0451_01_a,p0386_grea_b01_f02_0451_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0452_01_a,p0386_grea_b01_f02_0452_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0453_01_a,p0386_grea_b01_f02_0453_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0454_01_a,p0386_grea_b01_f02_0454_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0455_01_a,p0386_grea_b01_f02_0455_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0456_01_a,p0386_grea_b01_f02_0456_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0457_01_a,p0386_grea_b01_f02_0457_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0458_01_a,p0386_grea_b01_f02_0458_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0459_01_a,p0386_grea_b01_f02_0459_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0460_01_a,p0386_grea_b01_f02_0460_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0461_01_a,p0386_grea_b01_f02_0461_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0462_01_a,p0386_grea_b01_f02_0462_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0463_01_a,p0386_grea_b01_f02_0463_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0464_01_a,p0386_grea_b01_f02_0464_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0465_01_a,p0386_grea_b01_f02_0465_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0466_01_a,p0386_grea_b01_f02_0466_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0467_01_a,p0386_grea_b01_f02_0467_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0468_01_a,p0386_grea_b01_f02_0468_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0469_01_a,p0386_grea_b01_f02_0469_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0470_01_a,p0386_grea_b01_f02_0470_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0471_01_a,p0386_grea_b01_f02_0471_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0472_01_a,p0386_grea_b01_f02_0472_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0473_01_a,p0386_grea_b01_f02_0473_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0474_01_a,p0386_grea_b01_f02_0474_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0475_01_a,p0386_grea_b01_f02_0475_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0476_01_a,p0386_grea_b01_f02_0476_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0477_01_a,p0386_grea_b01_f02_0477_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0478_01_a,p0386_grea_b01_f02_0478_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0479_01_a,p0386_grea_b01_f02_0479_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0480_01_a,p0386_grea_b01_f02_0480_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0481_01_a,p0386_grea_b01_f02_0481_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0482_01_a,p0386_grea_b01_f02_0482_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0483_01_a,p0386_grea_b01_f02_0483_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0484_01_a,p0386_grea_b01_f02_0484_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0485_01_a,p0386_grea_b01_f02_0485_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0486_01_a,p0386_grea_b01_f02_0486_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0487_01_a,p0386_grea_b01_f02_0487_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0488_01_a,p0386_grea_b01_f02_0488_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0489_01_a,p0386_grea_b01_f02_0489_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0490_01_a,p0386_grea_b01_f02_0490_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0491_01_a,p0386_grea_b01_f02_0491_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0492_01_a,p0386_grea_b01_f02_0492_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0493_01_a,p0386_grea_b01_f02_0493_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0494_01_a,p0386_grea_b01_f02_0494_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0495_01_a,p0386_grea_b01_f02_0495_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0496_01_a,p0386_grea_b01_f02_0496_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0497_01_a,p0386_grea_b01_f02_0497_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0498_01_a,p0386_grea_b01_f02_0498_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0499_01_a,p0386_grea_b01_f02_0499_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0500_01_a,p0386_grea_b01_f02_0500_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0501_01_a,p0386_grea_b01_f02_0501_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0502_01_a,p0386_grea_b01_f02_0502_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0503_01_a,p0386_grea_b01_f02_0503_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0504_01_a,p0386_grea_b01_f02_0504_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0505_01_a,p0386_grea_b01_f02_0505_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0506_01_a,p0386_grea_b01_f02_0506_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0507_01_a,p0386_grea_b01_f02_0507_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0508_01_a,p0386_grea_b01_f02_0508_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0509_01_a,p0386_grea_b01_f02_0509_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0510_01_a,p0386_grea_b01_f02_0510_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0511_01_a,p0386_grea_b01_f02_0511_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0512_01_a,p0386_grea_b01_f02_0512_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0513_01_a,p0386_grea_b01_f02_0513_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0514_01_a,p0386_grea_b01_f02_0514_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0515_01_a,p0386_grea_b01_f02_0515_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0516_01_a,p0386_grea_b01_f02_0516_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0517_01_a,p0386_grea_b01_f02_0517_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0518_01_a,p0386_grea_b01_f02_0518_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0519_01_a,p0386_grea_b01_f02_0519_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0520_01_a,p0386_grea_b01_f02_0520_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0521_01_a,p0386_grea_b01_f02_0521_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0522_01_a,p0386_grea_b01_f02_0522_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0523_01_a,p0386_grea_b01_f02_0523_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0524_01_a,p0386_grea_b01_f02_0524_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0525_01_a,p0386_grea_b01_f02_0525_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0526_01_a,p0386_grea_b01_f02_0526_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0527_01_a,p0386_grea_b01_f02_0527_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0528_01_a,p0386_grea_b01_f02_0528_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0529_01_a,p0386_grea_b01_f02_0529_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0530_01_a,p0386_grea_b01_f02_0530_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0531_01_a,p0386_grea_b01_f02_0531_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0532_01_a,p0386_grea_b01_f02_0532_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0533_01_a,p0386_grea_b01_f02_0533_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0534_01_a,p0386_grea_b01_f02_0534_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0535_01_a,p0386_grea_b01_f02_0535_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0536_01_a,p0386_grea_b01_f02_0536_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0537_01_a,p0386_grea_b01_f02_0537_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0538_01_a,p0386_grea_b01_f02_0538_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0539_01_a,p0386_grea_b01_f02_0539_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0540_01_a,p0386_grea_b01_f02_0540_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0541_01_a,p0386_grea_b01_f02_0541_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0542_01_a,p0386_grea_b01_f02_0542_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0543_01_a,p0386_grea_b01_f02_0543_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0544_01_a,p0386_grea_b01_f02_0544_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0545_01_a,p0386_grea_b01_f02_0545_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0546_01_a,p0386_grea_b01_f02_0546_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0547_01_a,p0386_grea_b01_f02_0547_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0548_01_a,p0386_grea_b01_f02_0548_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0549_01_a,p0386_grea_b01_f02_0549_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0550_01_a,p0386_grea_b01_f02_0550_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0551_01_a,p0386_grea_b01_f02_0551_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0552_01_a,p0386_grea_b01_f02_0552_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0553_01_a,p0386_grea_b01_f02_0553_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0554_01_a,p0386_grea_b01_f02_0554_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0555_01_a,p0386_grea_b01_f02_0555_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0556_01_a,p0386_grea_b01_f02_0556_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0557_01_a,p0386_grea_b01_f02_0557_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0558_01_a,p0386_grea_b01_f02_0558_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0559_01_a,p0386_grea_b01_f02_0559_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0560_01_a,p0386_grea_b01_f02_0560_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0561_01_a,p0386_grea_b01_f02_0561_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0562_01_a,p0386_grea_b01_f02_0562_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0563_01_a,p0386_grea_b01_f02_0563_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0564_01_a,p0386_grea_b01_f02_0564_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0565_01_a,p0386_grea_b01_f02_0565_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0566_01_a,p0386_grea_b01_f02_0566_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0567_01_a,p0386_grea_b01_f02_0567_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0568_01_a,p0386_grea_b01_f02_0568_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0569_01_a,p0386_grea_b01_f02_0569_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0570_01_a,p0386_grea_b01_f02_0570_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0571_01_a,p0386_grea_b01_f02_0571_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0572_01_a,p0386_grea_b01_f02_0572_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0573_01_a,p0386_grea_b01_f02_0573_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0574_01_a,p0386_grea_b01_f02_0574_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0575_01_a,p0386_grea_b01_f02_0575_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0576_01_a,p0386_grea_b01_f02_0576_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0577_01_a,p0386_grea_b01_f02_0577_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0578_01_a,p0386_grea_b01_f02_0578_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0579_01_a,p0386_grea_b01_f02_0579_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0580_01_a,p0386_grea_b01_f02_0580_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0581_01_a,p0386_grea_b01_f02_0581_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0582_01_a,p0386_grea_b01_f02_0582_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0583_01_a,p0386_grea_b01_f02_0583_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0584_01_a,p0386_grea_b01_f02_0584_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0585_01_a,p0386_grea_b01_f02_0585_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0586_01_a,p0386_grea_b01_f02_0586_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0587_01_a,p0386_grea_b01_f02_0587_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0588_01_a,p0386_grea_b01_f02_0588_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0589_01_a,p0386_grea_b01_f02_0589_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0590_01_a,p0386_grea_b01_f02_0590_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0591_01_a,p0386_grea_b01_f02_0591_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0592_01_a,p0386_grea_b01_f02_0592_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0593_01_a,p0386_grea_b01_f02_0593_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0594_01_a,p0386_grea_b01_f02_0594_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0595_01_a,p0386_grea_b01_f02_0595_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0596_01_a,p0386_grea_b01_f02_0596_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0597_01_a,p0386_grea_b01_f02_0597_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0598_01_a,p0386_grea_b01_f02_0598_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0599_01_a,p0386_grea_b01_f02_0599_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0600_01_a,p0386_grea_b01_f02_0600_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0601_01_a,p0386_grea_b01_f02_0601_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0602_01_a,p0386_grea_b01_f02_0602_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0603_01_a,p0386_grea_b01_f02_0603_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0604_01_a,p0386_grea_b01_f02_0604_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0605_01_a,p0386_grea_b01_f02_0605_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0606_01_a,p0386_grea_b01_f02_0606_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0607_01_a,p0386_grea_b01_f02_0607_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0608_01_a,p0386_grea_b01_f02_0608_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0609_01_a,p0386_grea_b01_f02_0609_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0610_01_a,p0386_grea_b01_f02_0610_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0611_01_a,p0386_grea_b01_f02_0611_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0612_01_a,p0386_grea_b01_f02_0612_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0613_01_a,p0386_grea_b01_f02_0613_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0614_01_a,p0386_grea_b01_f02_0614_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0615_01_a,p0386_grea_b01_f02_0615_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0616_01_a,p0386_grea_b01_f02_0616_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0617_01_a,p0386_grea_b01_f02_0617_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0618_01_a,p0386_grea_b01_f02_0618_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0619_01_a,p0386_grea_b01_f02_0619_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0620_01_a,p0386_grea_b01_f02_0620_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0621_01_a,p0386_grea_b01_f02_0621_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0622_01_a,p0386_grea_b01_f02_0622_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0623_01_a,p0386_grea_b01_f02_0623_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0624_01_a,p0386_grea_b01_f02_0624_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0625_01_a,p0386_grea_b01_f02_0625_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0626_01_a,p0386_grea_b01_f02_0626_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0627_01_a,p0386_grea_b01_f02_0627_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0628_01_a,p0386_grea_b01_f02_0628_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0629_01_a,p0386_grea_b01_f02_0629_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0630_01_a,p0386_grea_b01_f02_0630_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0631_01_a,p0386_grea_b01_f02_0631_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0632_01_a,p0386_grea_b01_f02_0632_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0633_01_a,p0386_grea_b01_f02_0633_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0634_01_a,p0386_grea_b01_f02_0634_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0635_01_a,p0386_grea_b01_f02_0635_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0636_01_a,p0386_grea_b01_f02_0636_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0637_01_a,p0386_grea_b01_f02_0637_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0638_01_a,p0386_grea_b01_f02_0638_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0639_01_a,p0386_grea_b01_f02_0639_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0640_01_a,p0386_grea_b01_f02_0640_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0641_01_a,p0386_grea_b01_f02_0641_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0642_01_a,p0386_grea_b01_f02_0642_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0643_01_a,p0386_grea_b01_f02_0643_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0644_01_a,p0386_grea_b01_f02_0644_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0645_01_a,p0386_grea_b01_f02_0645_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0646_01_a,p0386_grea_b01_f02_0646_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0647_01_a,p0386_grea_b01_f02_0647_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0648_01_a,p0386_grea_b01_f02_0648_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0649_01_a,p0386_grea_b01_f02_0649_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0650_01_a,p0386_grea_b01_f02_0650_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0651_01_a,p0386_grea_b01_f02_0651_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0652_01_a,p0386_grea_b01_f02_0652_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0653_01_a,p0386_grea_b01_f02_0653_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0654_01_a,p0386_grea_b01_f02_0654_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0655_01_a,p0386_grea_b01_f02_0655_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0656_01_a,p0386_grea_b01_f02_0656_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0657_01_a,p0386_grea_b01_f02_0657_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0658_01_a,p0386_grea_b01_f02_0658_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0659_01_a,p0386_grea_b01_f02_0659_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0660_01_a,p0386_grea_b01_f02_0660_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0661_01_a,p0386_grea_b01_f02_0661_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0662_01_a,p0386_grea_b01_f02_0662_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0663_01_a,p0386_grea_b01_f02_0663_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0664_01_a,p0386_grea_b01_f02_0664_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0665_01_a,p0386_grea_b01_f02_0665_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0666_01_a,p0386_grea_b01_f02_0666_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0667_01_a,p0386_grea_b01_f02_0667_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0668_01_a,p0386_grea_b01_f02_0668_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0669_01_a,p0386_grea_b01_f02_0669_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0670_01_a,p0386_grea_b01_f02_0670_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0671_01_a,p0386_grea_b01_f02_0671_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0672_01_a,p0386_grea_b01_f02_0672_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0673_01_a,p0386_grea_b01_f02_0673_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0674_01_a,p0386_grea_b01_f02_0674_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0675_01_a,p0386_grea_b01_f02_0675_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0676_01_a,p0386_grea_b01_f02_0676_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0677_01_a,p0386_grea_b01_f02_0677_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0678_01_a,p0386_grea_b01_f02_0678_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0679_01_a,p0386_grea_b01_f02_0679_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0680_01_a,p0386_grea_b01_f02_0680_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0681_01_a,p0386_grea_b01_f02_0681_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0682_01_a,p0386_grea_b01_f02_0682_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0683_01_a,p0386_grea_b01_f02_0683_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0684_01_a,p0386_grea_b01_f02_0684_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0685_01_a,p0386_grea_b01_f02_0685_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0686_01_a,p0386_grea_b01_f02_0686_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0687_01_a,p0386_grea_b01_f02_0687_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0688_01_a,p0386_grea_b01_f02_0688_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0689_01_a,p0386_grea_b01_f02_0689_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0690_01_a,p0386_grea_b01_f02_0690_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0691_01_a,p0386_grea_b01_f02_0691_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0692_01_a,p0386_grea_b01_f02_0692_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0693_01_a,p0386_grea_b01_f02_0693_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0694_01_a,p0386_grea_b01_f02_0694_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0695_01_a,p0386_grea_b01_f02_0695_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0696_01_a,p0386_grea_b01_f02_0696_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0697_01_a,p0386_grea_b01_f02_0697_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0698_01_a,p0386_grea_b01_f02_0698_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0699_01_a,p0386_grea_b01_f02_0699_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0700_01_a,p0386_grea_b01_f02_0700_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0701_01_a,p0386_grea_b01_f02_0701_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0702_01_a,p0386_grea_b01_f02_0702_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0703_01_a,p0386_grea_b01_f02_0703_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0704_01_a,p0386_grea_b01_f02_0704_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0705_01_a,p0386_grea_b01_f02_0705_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0706_01_a,p0386_grea_b01_f02_0706_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0707_01_a,p0386_grea_b01_f02_0707_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0708_01_a,p0386_grea_b01_f02_0708_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0709_01_a,p0386_grea_b01_f02_0709_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0710_01_a,p0386_grea_b01_f02_0710_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0711_01_a,p0386_grea_b01_f02_0711_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0712_01_a,p0386_grea_b01_f02_0712_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0713_01_a,p0386_grea_b01_f02_0713_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0714_01_a,p0386_grea_b01_f02_0714_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0715_01_a,p0386_grea_b01_f02_0715_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0716_01_a,p0386_grea_b01_f02_0716_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0717_01_a,p0386_grea_b01_f02_0717_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0718_01_a,p0386_grea_b01_f02_0718_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0719_01_a,p0386_grea_b01_f02_0719_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0720_01_a,p0386_grea_b01_f02_0720_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0721_01_a,p0386_grea_b01_f02_0721_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0722_01_a,p0386_grea_b01_f02_0722_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0723_01_a,p0386_grea_b01_f02_0723_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0724_01_a,p0386_grea_b01_f02_0724_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0725_01_a,p0386_grea_b01_f02_0725_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0726_01_a,p0386_grea_b01_f02_0726_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0727_01_a,p0386_grea_b01_f02_0727_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0728_01_a,p0386_grea_b01_f02_0728_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0729_01_a,p0386_grea_b01_f02_0729_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0730_01_a,p0386_grea_b01_f02_0730_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0731_01_a,p0386_grea_b01_f02_0731_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0732_01_a,p0386_grea_b01_f02_0732_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0733_01_a,p0386_grea_b01_f02_0733_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0734_01_a,p0386_grea_b01_f02_0734_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0735_01_a,p0386_grea_b01_f02_0735_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0736_01_a,p0386_grea_b01_f02_0736_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0737_01_a,p0386_grea_b01_f02_0737_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0738_01_a,p0386_grea_b01_f02_0738_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0739_01_a,p0386_grea_b01_f02_0739_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0740_01_a,p0386_grea_b01_f02_0740_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0741_01_a,p0386_grea_b01_f02_0741_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0742_01_a,p0386_grea_b01_f02_0742_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0743_01_a,p0386_grea_b01_f02_0743_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0744_01_a,p0386_grea_b01_f02_0744_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0745_01_a,p0386_grea_b01_f02_0745_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0746_01_a,p0386_grea_b01_f02_0746_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0747_01_a,p0386_grea_b01_f02_0747_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0748_01_a,p0386_grea_b01_f02_0748_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0749_01_a,p0386_grea_b01_f02_0749_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0750_01_a,p0386_grea_b01_f02_0750_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0751_01_a,p0386_grea_b01_f02_0751_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0752_01_a,p0386_grea_b01_f02_0752_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0753_01_a,p0386_grea_b01_f02_0753_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0754_01_a,p0386_grea_b01_f02_0754_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0755_01_a,p0386_grea_b01_f02_0755_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0756_01_a,p0386_grea_b01_f02_0756_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0757_01_a,p0386_grea_b01_f02_0757_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0758_01_a,p0386_grea_b01_f02_0758_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0759_01_a,p0386_grea_b01_f02_0759_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0760_01_a,p0386_grea_b01_f02_0760_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0761_01_a,p0386_grea_b01_f02_0761_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0762_01_a,p0386_grea_b01_f02_0762_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0763_01_a,p0386_grea_b01_f02_0763_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0764_01_a,p0386_grea_b01_f02_0764_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0765_01_a,p0386_grea_b01_f02_0765_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0766_01_a,p0386_grea_b01_f02_0766_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0767_01_a,p0386_grea_b01_f02_0767_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0768_01_a,p0386_grea_b01_f02_0768_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0769_01_a,p0386_grea_b01_f02_0769_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0770_01_a,p0386_grea_b01_f02_0770_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0771_01_a,p0386_grea_b01_f02_0771_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0772_01_a,p0386_grea_b01_f02_0772_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0773_01_a,p0386_grea_b01_f02_0773_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0774_01_a,p0386_grea_b01_f02_0774_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0775_01_a,p0386_grea_b01_f02_0775_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0776_01_a,p0386_grea_b01_f02_0776_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0777_01_a,p0386_grea_b01_f02_0777_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0778_01_a,p0386_grea_b01_f02_0778_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0779_01_a,p0386_grea_b01_f02_0779_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0780_01_a,p0386_grea_b01_f02_0780_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0781_01_a,p0386_grea_b01_f02_0781_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0782_01_a,p0386_grea_b01_f02_0782_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0783_01_a,p0386_grea_b01_f02_0783_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0784_01_a,p0386_grea_b01_f02_0784_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0785_01_a,p0386_grea_b01_f02_0785_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0786_01_a,p0386_grea_b01_f02_0786_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0787_01_a,p0386_grea_b01_f02_0787_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0788_01_a,p0386_grea_b01_f02_0788_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0789_01_a,p0386_grea_b01_f02_0789_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0790_01_a,p0386_grea_b01_f02_0790_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0791_01_a,p0386_grea_b01_f02_0791_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0792_01_a,p0386_grea_b01_f02_0792_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0793_01_a,p0386_grea_b01_f02_0793_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0794_01_a,p0386_grea_b01_f02_0794_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0795_01_a,p0386_grea_b01_f02_0795_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0796_01_a,p0386_grea_b01_f02_0796_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0797_01_a,p0386_grea_b01_f02_0797_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0798_01_a,p0386_grea_b01_f02_0798_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0799_01_a,p0386_grea_b01_f02_0799_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0800_01_a,p0386_grea_b01_f02_0800_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0801_01_a,p0386_grea_b01_f02_0801_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0802_01_a,p0386_grea_b01_f02_0802_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0803_01_a,p0386_grea_b01_f02_0803_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0804_01_a,p0386_grea_b01_f02_0804_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0805_01_a,p0386_grea_b01_f02_0805_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0806_01_a,p0386_grea_b01_f02_0806_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0807_01_a,p0386_grea_b01_f02_0807_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0808_01_a,p0386_grea_b01_f02_0808_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0809_01_a,p0386_grea_b01_f02_0809_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0810_01_a,p0386_grea_b01_f02_0810_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0811_01_a,p0386_grea_b01_f02_0811_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0812_01_a,p0386_grea_b01_f02_0812_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0813_01_a,p0386_grea_b01_f02_0813_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0814_01_a,p0386_grea_b01_f02_0814_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0815_01_a,p0386_grea_b01_f02_0815_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0816_01_a,p0386_grea_b01_f02_0816_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0817_01_a,p0386_grea_b01_f02_0817_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0818_01_a,p0386_grea_b01_f02_0818_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0819_01_a,p0386_grea_b01_f02_0819_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0820_01_a,p0386_grea_b01_f02_0820_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0821_01_a,p0386_grea_b01_f02_0821_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0822_01_a,p0386_grea_b01_f02_0822_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0823_01_a,p0386_grea_b01_f02_0823_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0824_01_a,p0386_grea_b01_f02_0824_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0825_01_a,p0386_grea_b01_f02_0825_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0826_01_a,p0386_grea_b01_f02_0826_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0827_01_a,p0386_grea_b01_f02_0827_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0828_01_a,p0386_grea_b01_f02_0828_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0829_01_a,p0386_grea_b01_f02_0829_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0830_01_a,p0386_grea_b01_f02_0830_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0831_01_a,p0386_grea_b01_f02_0831_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0832_01_a,p0386_grea_b01_f02_0832_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0833_01_a,p0386_grea_b01_f02_0833_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0834_01_a,p0386_grea_b01_f02_0834_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0835_01_a,p0386_grea_b01_f02_0835_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0836_01_a,p0386_grea_b01_f02_0836_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0837_01_a,p0386_grea_b01_f02_0837_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0838_01_a,p0386_grea_b01_f02_0838_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0839_01_a,p0386_grea_b01_f02_0839_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0840_01_a,p0386_grea_b01_f02_0840_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0841_01_a,p0386_grea_b01_f02_0841_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0842_01_a,p0386_grea_b01_f02_0842_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0843_01_a,p0386_grea_b01_f02_0843_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0844_01_a,p0386_grea_b01_f02_0844_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0845_01_a,p0386_grea_b01_f02_0845_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0846_01_a,p0386_grea_b01_f02_0846_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0847_01_a,p0386_grea_b01_f02_0847_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0848_01_a,p0386_grea_b01_f02_0848_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0849_01_a,p0386_grea_b01_f02_0849_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0850_01_a,p0386_grea_b01_f02_0850_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0851_01_a,p0386_grea_b01_f02_0851_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0852_01_a,p0386_grea_b01_f02_0852_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0853_01_a,p0386_grea_b01_f02_0853_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0854_01_a,p0386_grea_b01_f02_0854_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0855_01_a,p0386_grea_b01_f02_0855_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0856_01_a,p0386_grea_b01_f02_0856_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0857_01_a,p0386_grea_b01_f02_0857_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0858_01_a,p0386_grea_b01_f02_0858_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0859_01_a,p0386_grea_b01_f02_0859_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0860_01_a,p0386_grea_b01_f02_0860_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0861_01_a,p0386_grea_b01_f02_0861_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0862_01_a,p0386_grea_b01_f02_0862_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0863_01_a,p0386_grea_b01_f02_0863_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0864_01_a,p0386_grea_b01_f02_0864_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0865_01_a,p0386_grea_b01_f02_0865_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0866_01_a,p0386_grea_b01_f02_0866_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0867_01_a,p0386_grea_b01_f02_0867_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0868_01_a,p0386_grea_b01_f02_0868_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0869_01_a,p0386_grea_b01_f02_0869_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0870_01_a,p0386_grea_b01_f02_0870_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0871_01_a,p0386_grea_b01_f02_0871_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0872_01_a,p0386_grea_b01_f02_0872_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0873_01_a,p0386_grea_b01_f02_0873_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0874_01_a,p0386_grea_b01_f02_0874_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0875_01_a,p0386_grea_b01_f02_0875_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0876_01_a,p0386_grea_b01_f02_0876_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0877_01_a,p0386_grea_b01_f02_0877_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0878_01_a,p0386_grea_b01_f02_0878_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0879_01_a,p0386_grea_b01_f02_0879_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0880_01_a,p0386_grea_b01_f02_0880_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0881_01_a,p0386_grea_b01_f02_0881_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0882_01_a,p0386_grea_b01_f02_0882_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0883_01_a,p0386_grea_b01_f02_0883_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0884_01_a,p0386_grea_b01_f02_0884_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0885_01_a,p0386_grea_b01_f02_0885_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0886_01_a,p0386_grea_b01_f02_0886_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0887_01_a,p0386_grea_b01_f02_0887_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0888_01_a,p0386_grea_b01_f02_0888_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0889_01_a,p0386_grea_b01_f02_0889_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0890_01_a,p0386_grea_b01_f02_0890_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0891_01_a,p0386_grea_b01_f02_0891_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0892_01_a,p0386_grea_b01_f02_0892_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0893_01_a,p0386_grea_b01_f02_0893_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0894_01_a,p0386_grea_b01_f02_0894_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0895_01_a,p0386_grea_b01_f02_0895_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0896_01_a,p0386_grea_b01_f02_0896_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0897_01_a,p0386_grea_b01_f02_0897_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0898_01_a,p0386_grea_b01_f02_0898_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0899_01_a,p0386_grea_b01_f02_0899_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0900_01_a,p0386_grea_b01_f02_0900_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0901_01_a,p0386_grea_b01_f02_0901_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0902_01_a,p0386_grea_b01_f02_0902_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0903_01_a,p0386_grea_b01_f02_0903_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0904_01_a,p0386_grea_b01_f02_0904_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0905_01_a,p0386_grea_b01_f02_0905_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0906_01_a,p0386_grea_b01_f02_0906_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0907_01_a,p0386_grea_b01_f02_0907_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0908_01_a,p0386_grea_b01_f02_0908_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0909_01_a,p0386_grea_b01_f02_0909_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0910_01_a,p0386_grea_b01_f02_0910_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0911_01_a,p0386_grea_b01_f02_0911_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0912_01_a,p0386_grea_b01_f02_0912_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0913_01_a,p0386_grea_b01_f02_0913_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0914_01_a,p0386_grea_b01_f02_0914_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0915_01_a,p0386_grea_b01_f02_0915_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0916_01_a,p0386_grea_b01_f02_0916_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0917_01_a,p0386_grea_b01_f02_0917_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0918_01_a,p0386_grea_b01_f02_0918_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0919_01_a,p0386_grea_b01_f02_0919_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0920_01_a,p0386_grea_b01_f02_0920_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0921_01_a,p0386_grea_b01_f02_0921_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0922_01_a,p0386_grea_b01_f02_0922_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0923_01_a,p0386_grea_b01_f02_0923_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0924_01_a,p0386_grea_b01_f02_0924_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0925_01_a,p0386_grea_b01_f02_0925_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0926_01_a,p0386_grea_b01_f02_0926_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0927_01_a,p0386_grea_b01_f02_0927_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0928_01_a,p0386_grea_b01_f02_0928_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0929_01_a,p0386_grea_b01_f02_0929_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0930_01_a,p0386_grea_b01_f02_0930_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0931_01_a,p0386_grea_b01_f02_0931_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0932_01_a,p0386_grea_b01_f02_0932_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0933_01_a,p0386_grea_b01_f02_0933_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0934_01_a,p0386_grea_b01_f02_0934_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0935_01_a,p0386_grea_b01_f02_0935_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0936_01_a,p0386_grea_b01_f02_0936_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0937_01_a,p0386_grea_b01_f02_0937_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0938_01_a,p0386_grea_b01_f02_0938_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0939_01_a,p0386_grea_b01_f02_0939_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0940_01_a,p0386_grea_b01_f02_0940_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0941_01_a,p0386_grea_b01_f02_0941_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0942_01_a,p0386_grea_b01_f02_0942_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0943_01_a,p0386_grea_b01_f02_0943_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0944_01_a,p0386_grea_b01_f02_0944_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0945_01_a,p0386_grea_b01_f02_0945_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0946_01_a,p0386_grea_b01_f02_0946_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0947_01_a,p0386_grea_b01_f02_0947_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0948_01_a,p0386_grea_b01_f02_0948_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0949_01_a,p0386_grea_b01_f02_0949_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0950_01_a,p0386_grea_b01_f02_0950_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0951_01_a,p0386_grea_b01_f02_0951_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0952_01_a,p0386_grea_b01_f02_0952_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0953_01_a,p0386_grea_b01_f02_0953_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0954_01_a,p0386_grea_b01_f02_0954_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0955_01_a,p0386_grea_b01_f02_0955_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0956_01_a,p0386_grea_b01_f02_0956_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0957_01_a,p0386_grea_b01_f02_0957_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0958_01_a,p0386_grea_b01_f02_0958_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0959_01_a,p0386_grea_b01_f02_0959_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0960_01_a,p0386_grea_b01_f02_0960_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0961_01_a,p0386_grea_b01_f02_0961_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0962_01_a,p0386_grea_b01_f02_0962_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0963_01_a,p0386_grea_b01_f02_0963_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0964_01_a,p0386_grea_b01_f02_0964_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0965_01_a,p0386_grea_b01_f02_0965_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0966_01_a,p0386_grea_b01_f02_0966_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0967_01_a,p0386_grea_b01_f02_0967_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0968_01_a,p0386_grea_b01_f02_0968_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0969_01_a,p0386_grea_b01_f02_0969_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0970_01_a,p0386_grea_b01_f02_0970_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0971_01_a,p0386_grea_b01_f02_0971_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0972_01_a,p0386_grea_b01_f02_0972_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0973_01_a,p0386_grea_b01_f02_0973_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0974_01_a,p0386_grea_b01_f02_0974_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0975_01_a,p0386_grea_b01_f02_0975_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0976_01_a,p0386_grea_b01_f02_0976_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0977_01_a,p0386_grea_b01_f02_0977_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0978_01_a,p0386_grea_b01_f02_0978_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0979_01_a,p0386_grea_b01_f02_0979_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0980_01_a,p0386_grea_b01_f02_0980_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0981_01_a,p0386_grea_b01_f02_0981_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0982_01_a,p0386_grea_b01_f02_0982_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0983_01_a,p0386_grea_b01_f02_0983_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0984_01_a,p0386_grea_b01_f02_0984_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0985_01_a,p0386_grea_b01_f02_0985_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0986_01_a,p0386_grea_b01_f02_0986_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0987_01_a,p0386_grea_b01_f02_0987_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0988_01_a,p0386_grea_b01_f02_0988_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0989_01_a,p0386_grea_b01_f02_0989_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0990_01_a,p0386_grea_b01_f02_0990_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0991_01_a,p0386_grea_b01_f02_0991_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0992_01_a,p0386_grea_b01_f02_0992_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0993_01_a,p0386_grea_b01_f02_0993_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0994_01_a,p0386_grea_b01_f02_0994_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0995_01_a,p0386_grea_b01_f02_0995_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0996_01_a,p0386_grea_b01_f02_0996_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0997_01_a,p0386_grea_b01_f02_0997_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0998_01_a,p0386_grea_b01_f02_0998_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_0999_01_a,p0386_grea_b01_f02_0999_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1000_01_a,p0386_grea_b01_f02_1000_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1001_01_a,p0386_grea_b01_f02_1001_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1002_01_a,p0386_grea_b01_f02_1002_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1003_01_a,p0386_grea_b01_f02_1003_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1004_01_a,p0386_grea_b01_f02_1004_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1005_01_a,p0386_grea_b01_f02_1005_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1006_01_a,p0386_grea_b01_f02_1006_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1007_01_a,p0386_grea_b01_f02_1007_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1008_01_a,p0386_grea_b01_f02_1008_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1009_01_a,p0386_grea_b01_f02_1009_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1010_01_a,p0386_grea_b01_f02_1010_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1011_01_a,p0386_grea_b01_f02_1011_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1012_01_a,p0386_grea_b01_f02_1012_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1013_01_a,p0386_grea_b01_f02_1013_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1014_01_a,p0386_grea_b01_f02_1014_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1015_01_a,p0386_grea_b01_f02_1015_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1016_01_a,p0386_grea_b01_f02_1016_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1017_01_a,p0386_grea_b01_f02_1017_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1018_01_a,p0386_grea_b01_f02_1018_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1019_01_a,p0386_grea_b01_f02_1019_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1020_01_a,p0386_grea_b01_f02_1020_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1021_01_a,p0386_grea_b01_f02_1021_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1022_01_a,p0386_grea_b01_f02_1022_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1023_01_a,p0386_grea_b01_f02_1023_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1024_01_a,p0386_grea_b01_f02_1024_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1025_01_a,p0386_grea_b01_f02_1025_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1026_01_a,p0386_grea_b01_f02_1026_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1027_01_a,p0386_grea_b01_f02_1027_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1028_01_a,p0386_grea_b01_f02_1028_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1029_01_a,p0386_grea_b01_f02_1029_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1030_01_a,p0386_grea_b01_f02_1030_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1031_01_a,p0386_grea_b01_f02_1031_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1032_01_a,p0386_grea_b01_f02_1032_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1033_01_a,p0386_grea_b01_f02_1033_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1034_01_a,p0386_grea_b01_f02_1034_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1035_01_a,p0386_grea_b01_f02_1035_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1036_01_a,p0386_grea_b01_f02_1036_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1037_01_a,p0386_grea_b01_f02_1037_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1038_01_a,p0386_grea_b01_f02_1038_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1039_01_a,p0386_grea_b01_f02_1039_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1040_01_a,p0386_grea_b01_f02_1040_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1041_01_a,p0386_grea_b01_f02_1041_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1042_01_a,p0386_grea_b01_f02_1042_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1043_01_a,p0386_grea_b01_f02_1043_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1044_01_a,p0386_grea_b01_f02_1044_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1045_01_a,p0386_grea_b01_f02_1045_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1046_01_a,p0386_grea_b01_f02_1046_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1047_01_a,p0386_grea_b01_f02_1047_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1048_01_a,p0386_grea_b01_f02_1048_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1049_01_a,p0386_grea_b01_f02_1049_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1050_01_a,p0386_grea_b01_f02_1050_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1051_01_a,p0386_grea_b01_f02_1051_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1052_01_a,p0386_grea_b01_f02_1052_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1053_01_a,p0386_grea_b01_f02_1053_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1054_01_a,p0386_grea_b01_f02_1054_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1055_01_a,p0386_grea_b01_f02_1055_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1056_01_a,p0386_grea_b01_f02_1056_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1057_01_a,p0386_grea_b01_f02_1057_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1058_01_a,p0386_grea_b01_f02_1058_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1059_01_a,p0386_grea_b01_f02_1059_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1060_01_a,p0386_grea_b01_f02_1060_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1061_01_a,p0386_grea_b01_f02_1061_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1062_01_a,p0386_grea_b01_f02_1062_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1063_01_a,p0386_grea_b01_f02_1063_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1064_01_a,p0386_grea_b01_f02_1064_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1065_01_a,p0386_grea_b01_f02_1065_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1066_01_a,p0386_grea_b01_f02_1066_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1067_01_a,p0386_grea_b01_f02_1067_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1068_01_a,p0386_grea_b01_f02_1068_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1069_01_a,p0386_grea_b01_f02_1069_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1070_01_a,p0386_grea_b01_f02_1070_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1071_01_a,p0386_grea_b01_f02_1071_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1072_01_a,p0386_grea_b01_f02_1072_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1073_01_a,p0386_grea_b01_f02_1073_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1074_01_a,p0386_grea_b01_f02_1074_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1075_01_a,p0386_grea_b01_f02_1075_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1076_01_a,p0386_grea_b01_f02_1076_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1077_01_a,p0386_grea_b01_f02_1077_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1078_01_a,p0386_grea_b01_f02_1078_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1079_01_a,p0386_grea_b01_f02_1079_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1080_01_a,p0386_grea_b01_f02_1080_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1081_01_a,p0386_grea_b01_f02_1081_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1082_01_a,p0386_grea_b01_f02_1082_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1083_01_a,p0386_grea_b01_f02_1083_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1084_01_a,p0386_grea_b01_f02_1084_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1085_01_a,p0386_grea_b01_f02_1085_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1086_01_a,p0386_grea_b01_f02_1086_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1087_01_a,p0386_grea_b01_f02_1087_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1088_01_a,p0386_grea_b01_f02_1088_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1089_01_a,p0386_grea_b01_f02_1089_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1090_01_a,p0386_grea_b01_f02_1090_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1091_01_a,p0386_grea_b01_f02_1091_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1092_01_a,p0386_grea_b01_f02_1092_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1093_01_a,p0386_grea_b01_f02_1093_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1094_01_a,p0386_grea_b01_f02_1094_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1095_01_a,p0386_grea_b01_f02_1095_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1096_01_a,p0386_grea_b01_f02_1096_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1097_01_a,p0386_grea_b01_f02_1097_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1098_01_a,p0386_grea_b01_f02_1098_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1099_01_a,p0386_grea_b01_f02_1099_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1100_01_a,p0386_grea_b01_f02_1100_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1101_01_a,p0386_grea_b01_f02_1101_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1102_01_a,p0386_grea_b01_f02_1102_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1103_01_a,p0386_grea_b01_f02_1103_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1104_01_a,p0386_grea_b01_f02_1104_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1105_01_a,p0386_grea_b01_f02_1105_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1106_01_a,p0386_grea_b01_f02_1106_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1107_01_a,p0386_grea_b01_f02_1107_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1108_01_a,p0386_grea_b01_f02_1108_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1109_01_a,p0386_grea_b01_f02_1109_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1110_01_a,p0386_grea_b01_f02_1110_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1111_01_a,p0386_grea_b01_f02_1111_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1112_01_a,p0386_grea_b01_f02_1112_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1113_01_a,p0386_grea_b01_f02_1113_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1114_01_a,p0386_grea_b01_f02_1114_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1115_01_a,p0386_grea_b01_f02_1115_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1116_01_a,p0386_grea_b01_f02_1116_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1117_01_a,p0386_grea_b01_f02_1117_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1118_01_a,p0386_grea_b01_f02_1118_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1119_01_a,p0386_grea_b01_f02_1119_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1120_01_a,p0386_grea_b01_f02_1120_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1121_01_a,p0386_grea_b01_f02_1121_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1122_01_a,p0386_grea_b01_f02_1122_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1123_01_a,p0386_grea_b01_f02_1123_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1124_01_a,p0386_grea_b01_f02_1124_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1125_01_a,p0386_grea_b01_f02_1125_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1126_01_a,p0386_grea_b01_f02_1126_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1127_01_a,p0386_grea_b01_f02_1127_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1128_01_a,p0386_grea_b01_f02_1128_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1129_01_a,p0386_grea_b01_f02_1129_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1130_01_a,p0386_grea_b01_f02_1130_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1131_01_a,p0386_grea_b01_f02_1131_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1132_01_a,p0386_grea_b01_f02_1132_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1133_01_a,p0386_grea_b01_f02_1133_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1134_01_a,p0386_grea_b01_f02_1134_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1135_01_a,p0386_grea_b01_f02_1135_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1136_01_a,p0386_grea_b01_f02_1136_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1137_01_a,p0386_grea_b01_f02_1137_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1138_01_a,p0386_grea_b01_f02_1138_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1139_01_a,p0386_grea_b01_f02_1139_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1140_01_a,p0386_grea_b01_f02_1140_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1141_01_a,p0386_grea_b01_f02_1141_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1142_01_a,p0386_grea_b01_f02_1142_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1143_01_a,p0386_grea_b01_f02_1143_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1144_01_a,p0386_grea_b01_f02_1144_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1145_01_a,p0386_grea_b01_f02_1145_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1146_01_a,p0386_grea_b01_f02_1146_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1147_01_a,p0386_grea_b01_f02_1147_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1148_01_a,p0386_grea_b01_f02_1148_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1149_01_a,p0386_grea_b01_f02_1149_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1150_01_a,p0386_grea_b01_f02_1150_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1151_01_a,p0386_grea_b01_f02_1151_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1152_01_a,p0386_grea_b01_f02_1152_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1153_01_a,p0386_grea_b01_f02_1153_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1154_01_a,p0386_grea_b01_f02_1154_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1155_01_a,p0386_grea_b01_f02_1155_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1156_01_a,p0386_grea_b01_f02_1156_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1157_01_a,p0386_grea_b01_f02_1157_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1158_01_a,p0386_grea_b01_f02_1158_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1159_01_a,p0386_grea_b01_f02_1159_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1160_01_a,p0386_grea_b01_f02_1160_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1161_01_a,p0386_grea_b01_f02_1161_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1162_01_a,p0386_grea_b01_f02_1162_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1163_01_a,p0386_grea_b01_f02_1163_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1164_01_a,p0386_grea_b01_f02_1164_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1165_01_a,p0386_grea_b01_f02_1165_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1166_01_a,p0386_grea_b01_f02_1166_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1167_01_a,p0386_grea_b01_f02_1167_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1168_01_a,p0386_grea_b01_f02_1168_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1169_01_a,p0386_grea_b01_f02_1169_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1170_01_a,p0386_grea_b01_f02_1170_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1171_01_a,p0386_grea_b01_f02_1171_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1172_01_a,p0386_grea_b01_f02_1172_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1173_01_a,p0386_grea_b01_f02_1173_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1174_01_a,p0386_grea_b01_f02_1174_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1175_01_a,p0386_grea_b01_f02_1175_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1176_01_a,p0386_grea_b01_f02_1176_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1177_01_a,p0386_grea_b01_f02_1177_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1178_01_a,p0386_grea_b01_f02_1178_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1179_01_a,p0386_grea_b01_f02_1179_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1180_01_a,p0386_grea_b01_f02_1180_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1181_01_a,p0386_grea_b01_f02_1181_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1182_01_a,p0386_grea_b01_f02_1182_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1183_01_a,p0386_grea_b01_f02_1183_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1184_01_a,p0386_grea_b01_f02_1184_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1185_01_a,p0386_grea_b01_f02_1185_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1186_01_a,p0386_grea_b01_f02_1186_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1187_01_a,p0386_grea_b01_f02_1187_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1188_01_a,p0386_grea_b01_f02_1188_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1189_01_a,p0386_grea_b01_f02_1189_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1190_01_a,p0386_grea_b01_f02_1190_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1191_01_a,p0386_grea_b01_f02_1191_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1192_01_a,p0386_grea_b01_f02_1192_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1193_01_a,p0386_grea_b01_f02_1193_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1194_01_a,p0386_grea_b01_f02_1194_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1195_01_a,p0386_grea_b01_f02_1195_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1196_01_a,p0386_grea_b01_f02_1196_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1197_01_a,p0386_grea_b01_f02_1197_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1198_01_a,p0386_grea_b01_f02_1198_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1199_01_a,p0386_grea_b01_f02_1199_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1200_01_a,p0386_grea_b01_f02_1200_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1201_01_a,p0386_grea_b01_f02_1201_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1202_01_a,p0386_grea_b01_f02_1202_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1203_01_a,p0386_grea_b01_f02_1203_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1204_01_a,p0386_grea_b01_f02_1204_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1205_01_a,p0386_grea_b01_f02_1205_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1206_01_a,p0386_grea_b01_f02_1206_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1207_01_a,p0386_grea_b01_f02_1207_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1208_01_a,p0386_grea_b01_f02_1208_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1209_01_a,p0386_grea_b01_f02_1209_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1210_01_a,p0386_grea_b01_f02_1210_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1211_01_a,p0386_grea_b01_f02_1211_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1212_01_a,p0386_grea_b01_f02_1212_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1213_01_a,p0386_grea_b01_f02_1213_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1214_01_a,p0386_grea_b01_f02_1214_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1215_01_a,p0386_grea_b01_f02_1215_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1216_01_a,p0386_grea_b01_f02_1216_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1217_01_a,p0386_grea_b01_f02_1217_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1218_01_a,p0386_grea_b01_f02_1218_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1219_01_a,p0386_grea_b01_f02_1219_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1220_01_a,p0386_grea_b01_f02_1220_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1221_01_a,p0386_grea_b01_f02_1221_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1222_01_a,p0386_grea_b01_f02_1222_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1223_01_a,p0386_grea_b01_f02_1223_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1224_01_a,p0386_grea_b01_f02_1224_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1225_01_a,p0386_grea_b01_f02_1225_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1226_01_a,p0386_grea_b01_f02_1226_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1227_01_a,p0386_grea_b01_f02_1227_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1228_01_a,p0386_grea_b01_f02_1228_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1229_01_a,p0386_grea_b01_f02_1229_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1230_01_a,p0386_grea_b01_f02_1230_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1231_01_a,p0386_grea_b01_f02_1231_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1232_01_a,p0386_grea_b01_f02_1232_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1233_01_a,p0386_grea_b01_f02_1233_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1234_01_a,p0386_grea_b01_f02_1234_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1235_01_a,p0386_grea_b01_f02_1235_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1236_01_a,p0386_grea_b01_f02_1236_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1237_01_a,p0386_grea_b01_f02_1237_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1238_01_a,p0386_grea_b01_f02_1238_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1239_01_a,p0386_grea_b01_f02_1239_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1240_01_a,p0386_grea_b01_f02_1240_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1241_01_a,p0386_grea_b01_f02_1241_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1242_01_a,p0386_grea_b01_f02_1242_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1243_01_a,p0386_grea_b01_f02_1243_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1244_01_a,p0386_grea_b01_f02_1244_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1245_01_a,p0386_grea_b01_f02_1245_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1246_01_a,p0386_grea_b01_f02_1246_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1247_01_a,p0386_grea_b01_f02_1247_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1248_01_a,p0386_grea_b01_f02_1248_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1249_01_a,p0386_grea_b01_f02_1249_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1250_01_a,p0386_grea_b01_f02_1250_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1251_01_a,p0386_grea_b01_f02_1251_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1252_01_a,p0386_grea_b01_f02_1252_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1253_01_a,p0386_grea_b01_f02_1253_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1254_01_a,p0386_grea_b01_f02_1254_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1255_01_a,p0386_grea_b01_f02_1255_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1256_01_a,p0386_grea_b01_f02_1256_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1257_01_a,p0386_grea_b01_f02_1257_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1258_01_a,p0386_grea_b01_f02_1258_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1259_01_a,p0386_grea_b01_f02_1259_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1260_01_a,p0386_grea_b01_f02_1260_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1261_01_a,p0386_grea_b01_f02_1261_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1262_01_a,p0386_grea_b01_f02_1262_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1263_01_a,p0386_grea_b01_f02_1263_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1264_01_a,p0386_grea_b01_f02_1264_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1265_01_a,p0386_grea_b01_f02_1265_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1266_01_a,p0386_grea_b01_f02_1266_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1267_01_a,p0386_grea_b01_f02_1267_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1268_01_a,p0386_grea_b01_f02_1268_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1269_01_a,p0386_grea_b01_f02_1269_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1270_01_a,p0386_grea_b01_f02_1270_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1271_01_a,p0386_grea_b01_f02_1271_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1272_01_a,p0386_grea_b01_f02_1272_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1273_01_a,p0386_grea_b01_f02_1273_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1274_01_a,p0386_grea_b01_f02_1274_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1275_01_a,p0386_grea_b01_f02_1275_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1276_01_a,p0386_grea_b01_f02_1276_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1277_01_a,p0386_grea_b01_f02_1277_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1278_01_a,p0386_grea_b01_f02_1278_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1279_01_a,p0386_grea_b01_f02_1279_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1280_01_a,p0386_grea_b01_f02_1280_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1281_01_a,p0386_grea_b01_f02_1281_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1282_01_a,p0386_grea_b01_f02_1282_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1283_01_a,p0386_grea_b01_f02_1283_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1284_01_a,p0386_grea_b01_f02_1284_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1285_01_a,p0386_grea_b01_f02_1285_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1286_01_a,p0386_grea_b01_f02_1286_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1287_01_a,p0386_grea_b01_f02_1287_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1288_01_a,p0386_grea_b01_f02_1288_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1289_01_a,p0386_grea_b01_f02_1289_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1290_01_a,p0386_grea_b01_f02_1290_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1291_01_a,p0386_grea_b01_f02_1291_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1292_01_a,p0386_grea_b01_f02_1292_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1293_01_a,p0386_grea_b01_f02_1293_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1294_01_a,p0386_grea_b01_f02_1294_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1295_01_a,p0386_grea_b01_f02_1295_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1296_01_a,p0386_grea_b01_f02_1296_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1297_01_a,p0386_grea_b01_f02_1297_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1298_01_a,p0386_grea_b01_f02_1298_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1299_01_a,p0386_grea_b01_f02_1299_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1300_01_a,p0386_grea_b01_f02_1300_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1301_01_a,p0386_grea_b01_f02_1301_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1302_01_a,p0386_grea_b01_f02_1302_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1303_01_a,p0386_grea_b01_f02_1303_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1304_01_a,p0386_grea_b01_f02_1304_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1305_01_a,p0386_grea_b01_f02_1305_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1306_01_a,p0386_grea_b01_f02_1306_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1307_01_a,p0386_grea_b01_f02_1307_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1308_01_a,p0386_grea_b01_f02_1308_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1309_01_a,p0386_grea_b01_f02_1309_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1310_01_a,p0386_grea_b01_f02_1310_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1311_01_a,p0386_grea_b01_f02_1311_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1312_01_a,p0386_grea_b01_f02_1312_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1313_01_a,p0386_grea_b01_f02_1313_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1314_01_a,p0386_grea_b01_f02_1314_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1315_01_a,p0386_grea_b01_f02_1315_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1316_01_a,p0386_grea_b01_f02_1316_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1317_01_a,p0386_grea_b01_f02_1317_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1318_01_a,p0386_grea_b01_f02_1318_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1319_01_a,p0386_grea_b01_f02_1319_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1320_01_a,p0386_grea_b01_f02_1320_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1321_01_a,p0386_grea_b01_f02_1321_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1322_01_a,p0386_grea_b01_f02_1322_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1323_01_a,p0386_grea_b01_f02_1323_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1324_01_a,p0386_grea_b01_f02_1324_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1325_01_a,p0386_grea_b01_f02_1325_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1326_01_a,p0386_grea_b01_f02_1326_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1327_01_a,p0386_grea_b01_f02_1327_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1328_01_a,p0386_grea_b01_f02_1328_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1329_01_a,p0386_grea_b01_f02_1329_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1330_01_a,p0386_grea_b01_f02_1330_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1331_01_a,p0386_grea_b01_f02_1331_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1332_01_a,p0386_grea_b01_f02_1332_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1333_01_a,p0386_grea_b01_f02_1333_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1334_01_a,p0386_grea_b01_f02_1334_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1335_01_a,p0386_grea_b01_f02_1335_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1336_01_a,p0386_grea_b01_f02_1336_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1337_01_a,p0386_grea_b01_f02_1337_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1338_01_a,p0386_grea_b01_f02_1338_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1339_01_a,p0386_grea_b01_f02_1339_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1340_01_a,p0386_grea_b01_f02_1340_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1341_01_a,p0386_grea_b01_f02_1341_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1342_01_a,p0386_grea_b01_f02_1342_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1343_01_a,p0386_grea_b01_f02_1343_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1344_01_a,p0386_grea_b01_f02_1344_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1345_01_a,p0386_grea_b01_f02_1345_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1346_01_a,p0386_grea_b01_f02_1346_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1347_01_a,p0386_grea_b01_f02_1347_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1348_01_a,p0386_grea_b01_f02_1348_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1349_01_a,p0386_grea_b01_f02_1349_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1350_01_a,p0386_grea_b01_f02_1350_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1351_01_a,p0386_grea_b01_f02_1351_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1352_01_a,p0386_grea_b01_f02_1352_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1353_01_a,p0386_grea_b01_f02_1353_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1354_01_a,p0386_grea_b01_f02_1354_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1355_01_a,p0386_grea_b01_f02_1355_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1356_01_a,p0386_grea_b01_f02_1356_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1357_01_a,p0386_grea_b01_f02_1357_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1358_01_a,p0386_grea_b01_f02_1358_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1359_01_a,p0386_grea_b01_f02_1359_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1360_01_a,p0386_grea_b01_f02_1360_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1361_01_a,p0386_grea_b01_f02_1361_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1362_01_a,p0386_grea_b01_f02_1362_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1363_01_a,p0386_grea_b01_f02_1363_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1364_01_a,p0386_grea_b01_f02_1364_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1365_01_a,p0386_grea_b01_f02_1365_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1366_01_a,p0386_grea_b01_f02_1366_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1367_01_a,p0386_grea_b01_f02_1367_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1368_01_a,p0386_grea_b01_f02_1368_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1369_01_a,p0386_grea_b01_f02_1369_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1370_01_a,p0386_grea_b01_f02_1370_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1371_01_a,p0386_grea_b01_f02_1371_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1372_01_a,p0386_grea_b01_f02_1372_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1373_01_a,p0386_grea_b01_f02_1373_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1374_01_a,p0386_grea_b01_f02_1374_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1375_01_a,p0386_grea_b01_f02_1375_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1376_01_a,p0386_grea_b01_f02_1376_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1377_01_a,p0386_grea_b01_f02_1377_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1378_01_a,p0386_grea_b01_f02_1378_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1379_01_a,p0386_grea_b01_f02_1379_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1380_01_a,p0386_grea_b01_f02_1380_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1381_01_a,p0386_grea_b01_f02_1381_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1382_01_a,p0386_grea_b01_f02_1382_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1383_01_a,p0386_grea_b01_f02_1383_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1384_01_a,p0386_grea_b01_f02_1384_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1385_01_a,p0386_grea_b01_f02_1385_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1386_01_a,p0386_grea_b01_f02_1386_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1387_01_a,p0386_grea_b01_f02_1387_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1388_01_a,p0386_grea_b01_f02_1388_01_a.tif,,,,,01,02,,,,p0386,,,,,
-,,,A,IMAGE,p0386_grea_b01_f02,p0386_grea_b01_f02_1389_01_a,p0386_grea_b01_f02_1389_01_a.tif,,,,,01,02,,,,p0386,,,,,
diff --git a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory_without_functions.py b/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory_without_functions.py
deleted file mode 100644
index c63b32d..0000000
--- a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory_without_functions.py
+++ /dev/null
@@ -1,82 +0,0 @@
-import csv
-import os
-
-proj_number=input("What is the project number?")
-proj_4dig=input("What is the four letter id?")
-box_other=input('Are there boxes and folders? y for Yes and n for No')
-field_names = ['Spreadsheet Row Number', 'work_image' , 'structure' , 'role' , 'work_type' , 'work_accession_number' , 'file_accession_number' , 'filename' , 'label' , 'description' , 'Capture date' , 'Staff Initials' , 'Container number ex. Box Number' , 'folder number' , 'Width (cm.)' , 'Height (cm.)' , 'Date (Year+Month+Day)' , 'project_job_number' , 'Notes about album page or photo', 'Production Notes', 'Creator' , 'Source' , 'Copyright Notice']
-
-
-file_number=1
-new_bOrf=0
-# Whether or not there are box and folders
-if box_other=='y': # will run box folder version
- box_number=input("What is the box number?")
- folder_number=input("What is the folder number?")
- box_number=str(box_number).zfill(2)
- folder_number=str(folder_number).zfill(2)
- folder_files=int(input("How many files?")) #number to loop by
- with open ('inventory.csv','a', newline='') as csvfile:
- writer=csv.DictWriter(csvfile,fieldnames=field_names)
- writer.writeheader()
-
- while file_number <= folder_files: # runs while the file number is less than or equal to the number of files that you need
- lz_filenumber=str(file_number).zfill(4)
- lz_filenumber=str(lz_filenumber)
- inventory=[{'work_accession_number': proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number, 'file_accession_number':proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number+'_'+lz_filenumber+'_'+'01'+'_'+'a', 'filename': proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number+'_'+lz_filenumber+'_'+'01'+'_'+'a'+'.tif', 'Container number ex. Box Number':box_number, 'folder number':folder_number, 'role':'A', 'work_type':'IMAGE','project_job_number':proj_number}]
- file_number=int(file_number)+1
- for data in inventory:
- writer.writerows(inventory)
-
- # Below increments the row and file up by one
-
- def ask_new_bOrf():
- new_bOrf=input('Do you want to add - y for yes, n for no which will open the CSV ')
-
- if new_bOrf =='y':
-
- file_number=1
- box_number=input("What is the box number?")
- folder_number=input("What is the folder number?")
- box_number=str(box_number).zfill(2)
- folder_number=str(folder_number).zfill(2)
- folder_files=int(input("How many files?")) #number to loop by
- while file_number <= folder_files: # runs while the file number is less than or equal to the number of files that you need
- lz_filenumber=str(file_number).zfill(4)
- lz_filenumber=str(lz_filenumber)
- inventory=[{'work_accession_number': proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number, 'file_accession_number':proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number+'_'+lz_filenumber+'_'+'01'+'_'+'a', 'filename': proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number+'_'+lz_filenumber+'_'+'01'+'_'+'a'+'.tif', 'Container number ex. Box Number':box_number, 'folder number':folder_number, 'role':'A', 'work_type':'IMAGE','project_job_number':proj_number}]
- writer.writerows(inventory)
- file_number=int(file_number)+1
-
- ask_new_bOrf()
-
- elif new_bOrf == 'no':
- os.system("start EXCEL.exe inventory.csv")
-
- ask_new_bOrf()
-
-
-elif box_other=='n': #will run choose your own adventure
- work_info=input("What is your work info ex. v for volume") #takes the place of the Box and Folder # information
- number_files=input("How many files?") # number to loop by
-
-
- with open ('inventory.csv','a', newline='') as csvfile:
- writer=csv.DictWriter(csvfile,fieldnames=field_names)
- writer.writeheader()
- while file_number<=number_files: # runs while the file number is less than or equal to the number of files that you need
- file_number=str(file_number).zfill(5)
- inventory=[{'Spreadsheet Row Number':row_number,'work_accession_number': proj_number+'_'+proj_4dig+'_'+work_info, 'file_accession_number':proj_number+'_'+proj_4dig+'_'+work_info+'_'+file_number+'_'+'01'+'_'+'a', 'filename': proj_number+'_'+proj_4dig+'_'+work_info+'_'+file_number+'_'+'01'+'_'+'a'+'.tif', 'Container number ex. Box Number':'N/A', 'folder number':'N/A', 'role':'A', 'work_type':'IMAGE','project_job_number':proj_number}]
-
-
- for data in inventory:
- writer.writerows(inventory)
-
-
- # Below increments the row and file up by one
- file_number=int(file_number)+1
- row_number=row_number+1
-
- os.system("start EXCEL.exe inventory.csv")
-else:
- print("Try again with Y for YES or N for NO")
\ No newline at end of file
diff --git a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory_writeCSV_functionalBasic.py b/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory_writeCSV_functionalBasic.py
deleted file mode 100644
index 6bc3f8a..0000000
--- a/nulrdcscripts/inventory/ExtraNonsenseToKeepForNow/inventory_writeCSV_functionalBasic.py
+++ /dev/null
@@ -1,55 +0,0 @@
-import csv
-import os
-
-proj_number=input("What is the project number?")
-proj_4dig=input("What is the four letter id?")
-box_other=input('Are there boxes and folders? y for Yes and n for No')
-field_names = ['Spreadsheet Row Number', 'work_image' , 'structure' , 'role' , 'work_type' , 'work_accession_number' , 'file_accession_number' , 'filename' , 'label' , 'description' , 'Capture date' , 'Staff Initials' , 'Container number ex. Box Number' , 'folder number' , 'Width (cm.)' , 'Height (cm.)' , 'Date (Year+Month+Day)' , 'project_job_number' , 'Notes about album page or photo', 'Production Notes', 'Creator' , 'Source' , 'Copyright Notice']
-row_number=1
-file_number=1
-
-# Whether or not there are box and folders
-if box_other=='y': # will run box folder version
- box_number=input("What is the box number?")
- folder_number=input("What is the folder number?")
- folder_files=int(input("How many files?")) #number to loop by
-
- with open ('inventory.csv','a', newline='') as csvfile:
- writer=csv.DictWriter(csvfile,fieldnames=field_names)
- writer.writeheader()
-
- while file_number <= folder_files: # runs while the file number is less than or equal to the number of files that you need
- lz_filenumber=str(file_number).zfill(4)
- lz_filenumber=str(lz_filenumber)
- inventory=[{'Spreadsheet Row Number':row_number,'work_accession_number': proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number, 'file_accession_number':proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number+'_'+lz_filenumber+'_'+'01'+'_'+'a', 'filename': proj_number+'_'+proj_4dig+'_'+'b'+box_number+'_'+'f'+folder_number+'_'+lz_filenumber+'_'+'01'+'_'+'a'+'.tif', 'Container number ex. Box Number':box_number, 'folder number':folder_number, 'role':'A', 'work_type':'IMAGE','project_job_number':proj_number}]
-
- for data in inventory:
- writer.writerows(inventory)
-
- file_number=int(file_number)+1
- row_number=row_number+1
- os.system("start EXCEL.exe inventory.csv")
-
-elif box_other=='n': #will run choose your own adventure
- work_info=input("What is your work info ex. (v for volume)") #takes the place of the Box and Folder # information
- number_files=input("How many files?") # number to loop by
-
-
- with open ('inventory.csv','a', newline='') as csvfile:
- writer=csv.DictWriter(csvfile,fieldnames=field_names)
- writer.writeheader()
- while file_number<=number_files: # runs while the file number is less than or equal to the number of files that you need
- inventory=[{'Spreadsheet Row Number':row_number,'work_accession_number': proj_number+'_'+proj_4dig+'_'+work_info, 'file_accession_number':proj_number+'_'+proj_4dig+'_'+work_info+'_'+file_number+'_'+'01'+'_'+'a', 'filename': proj_number+'_'+proj_4dig+'_'+work_info+'_'+file_number+'_'+'01'+'_'+'a'+'.tif', 'Container number ex. Box Number':'N/A', 'folder number':'N/A', 'role':'A', 'work_type':'IMAGE','project_job_number':proj_number}]
-
-
- for data in inventory:
- writer.writerows(inventory)
-
-
- # Below increments the row and file up by one
- file_number=int(file_number)+1
- row_number=row_number+1
-
- os.system("start EXCEL.exe inventory.csv")
-else:
- print("Try again with y for YES or n for NO")
\ No newline at end of file
diff --git a/nulrdcscripts/inventory/WIP/BoxorFolder.py b/nulrdcscripts/inventory/WIP/BoxorFolder.py
deleted file mode 100644
index 4461275..0000000
--- a/nulrdcscripts/inventory/WIP/BoxorFolder.py
+++ /dev/null
@@ -1,68 +0,0 @@
-import csv
-import buildboxorFolderCSV
-import buildpageCSV
-import savepath
-import csvinput
-
-
-def questions_boxorfolder():
- file_number = 1
- box_number = input("What is the box number? ")
- folder_number = input("What is the folder number? ")
- try:
- box_numberInt = int(box_number)
- except:
- print("Please enter an integer for box number")
- (quit)
- try:
- folder_numberInt = int(folder_number)
- except:
- print("Please enter an integer for folder number")
- quit()
-
- box_number = str(box_number).zfill(3)
- folder_number = str(folder_number).zfill(2)
-
- return box_number and folder_number
-
-
-def box_or_folder(project_number, project_4letterID, box_number, folder_number):
- pages_yes_or_no = input("Are there multiple pages for your first work? ")
- if pages_yes_or_no == "y":
- savepath.setFilename(project_number, project_4letterID)
- csv_filename = savepath.csv_file_name
- with open(csv_filename, "a", newline="", encoding="utf-8") as csvfile:
- writer = csv.DictWriter(csvfile, csvinput.field_names)
- writer.writeheader()
- buildpageCSV.pages_yes(
- project_number,
- project_4letterID,
- box_number,
- folder_number,
- )
- else:
- number_of_files = input("How many works? ")
- try:
- number_of_files = int(number_of_files)
- except:
- print("Please enter an integer for number of works")
- quit()
-
- while file_number <= number_of_files:
- file_number = str(file_number).zfill(2)
- buildboxorFolderCSV.build_boxOrFolder_inventory(
- project_number,
- project_4letterID,
- box_number,
- folder_number,
- file_number,
- )
-
-
-def ask_newBoxorFolder(project_number, project_4letterID, box_number, folder_number):
- new_boxorfolder = input("Do you want to add a work - y for yes, n for no")
-
- if new_boxorfolder == "y":
- box_or_folder(project_number, project_4letterID, box_number, folder_number)
- elif new_boxorfolder == "n":
- savepath.setFilenameandSave(project_number, project_4letterID)
diff --git a/nulrdcscripts/inventory/WIP/Inventory_new.py b/nulrdcscripts/inventory/WIP/Inventory_new.py
deleted file mode 100644
index 1a56f72..0000000
--- a/nulrdcscripts/inventory/WIP/Inventory_new.py
+++ /dev/null
@@ -1,247 +0,0 @@
-import os
-import csv
-import inputvalidation
-import BoxorFolder
-import savepath
-import buildchoose
-# Asking the user questions to decide the workflow that is going to be used by the script
-project_number = input("What is the project number? ")
-
-inputvalidation.project_numbervalidation_starts(project_number)
-inputvalidation.project_numbervalidation_length(project_number)
-
-
-project_4letterID = input("What is the four letter ID? ")
-
-inputvalidation.project_4letterID_validation(project_4letterID)
-
-box_other = input("Are there boxes and folders? y for Yes and n for No ")
-
-file_path = input("Where do you want to save to? ")
-
-if box_other == "y":
- BoxorFolder.box_or_folder(project_number, project_4letterID)
-
-elif box_other == "n":
- buildchoose.choosepath(project_number, project_4letterID)
-
-savepath.setFilenameandSave(project_number, project_4letterID)
-
-
-def ask_new_work_bOrf():
- new_work = input(
- "Do you want to add a new work - y for yes, n for no which will open the CSV "
- )
-
- if new_work == "y": # if you want a new work this will run
- file_number = 1
- work_info = input("What is the work info? ")
- number_files = int(input("How many works? ")) # number to loop by
- while (
- file_number <= number_files
- ): # runs while the file number is less than or equal to the number of files that you need
- # Leading Zeros
- file_number = str(file_number).zfill(4)
- # Leading Zeros
-
- # Combines the information that the user has put in to fill out select fields in the CSV file
- inventory = [
- {
- "work_accession_number": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info,
- "file_accession_number": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a",
- "filename": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a"
- + ".tif",
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": project_number,
- }
- ]
- for data in inventory:
- writer.writerows(inventory)
- # Below increments the row and file up by one
- file_number = int(file_number) + 1
-
- ask_new_work_bOrf()
-
- elif new_work == "n":
- save_CSV() # command to save the CSV
- os.system(open_CSV) # Command to open the CSV in Excel
-
-
-def ask_new_work_choose():
- new_work = input(
- "Do you want to add a new work - y for yes, n for no which will open the CSV "
- )
-
- if new_work == "y": # if you want a new work this will run
- file_number = 1
- work_info = input("What is the work info? ")
- number_files = int(input("How many works? ")) # number to loop by
- while (
- file_number <= number_files
- ): # runs while the file number is less than or equal to the number of files that you need
- # Leading Zeros
- file_number = str(file_number).zfill(4)
- # Leading Zeros
-
- # Combines the information that the user has put in to fill out select fields in the CSV file
- inventory = [
- {
- "work_accession_number": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info,
- "file_accession_number": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a",
- "filename": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a"
- + ".tif",
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": project_number,
- }
- ]
- for data in inventory:
- writer.writerows(inventory)
- # Below increments the row and file up by one
- file_number = int(file_number) + 1
-
- ask_new_work_choose()
- elif new_work == "n":
- save_CSV() # Saves the CSV File
- os.system(open_CSV) # Opens the CSV file in Excel
-
- elif new_bOrf == "n": # if you do not want to run a new box or folder
- new_pages = input(
- "Do you want to add a work with more than one page - y for Yes and n for No "
- ) # will ask if you want to add a work that has to have page designation
- if new_pages == "y": # if you want to use page designation this will run
- page_path()
- elif new_pages == "n":
- save_CSV() # Saves the CSV
- os.system(open_CSV) # Opens the CSV in Excel
-
-
-def page_path(): # This script runs when you want to add works with page designations
- page_number = 1
- box_number = input("What is the box number? ")
- folder_number = input("What is the folder number? ")
-
- # Leading Zeros
- box_number = str(box_number).zfill(3)
- folder_number = str(folder_number).zfill(2)
- # Leading Zeros
-
- file = input("What is your work number? ")
- pages = int(
- input("What is the number of images in the work? ")
- ) # number to loop by
-
- while (
- page_number <= pages
- ): # runs while the file number is less than or equal to the number of files that you need
- # Leading Zeros
- page_number = str(page_number).zfill(4)
- file = str(file).zfill(2)
- # Leading Zeros
-
- inventory = [
- {
- "work_accession_number": project_number
- + "_"
- + project_4letterID
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file,
- "file_accession_number": project_number
- + "_"
- + project_4letterID
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file
- + "_"
- + page_number
- + "_"
- + "a",
- "filename": project_number
- + "_"
- + project_4letterID
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file
- + "_"
- + page_number
- + "_"
- + "a"
- + ".tif",
- "Container number ex. Box Number": box_number,
- "folder number": folder_number,
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": project_number,
- }
- ]
-
- for data in inventory:
- writer.writerows(inventory)
- page_number = int(page_number) + 1
- ask_new_bOrf() # will then call the ask_new_bOrf function to see if you want to add a box or folder next. If you want to run another work with page designations, answer 'n' to the first question and the 'y' to the next
-
-
-# setting variables up to be used
-
-
-
-
-else:
- print("Try again running the script again with y for YES or n for NO")
diff --git a/nulrdcscripts/inventory/WIP/buildchoose.py b/nulrdcscripts/inventory/WIP/buildchoose.py
deleted file mode 100644
index 6bcf9cf..0000000
--- a/nulrdcscripts/inventory/WIP/buildchoose.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import csv
-import buildchooseCSV
-import csvinput
-import savepath
-
-
-def choosepath(project_number, project_4letterID):
- work_info = input("What is your work info [ex. v for volume]? ")
- number_files = input("What is the number of images? ")
-
- try:
- number_filesINT = int(number_files)
- except:
- print("Please use an integer for the number of images in the work")
-
- file_number = 1
- with open(csv_name, "a", newline="", encoding="utf-8") as csvfile:
- writer = csv.DictWriter(csvfile, csvinput.field_names)
- writer.writeheader()
- while file_number <= number_files:
- file_number = str(file_number).zfill(4)
- buildchooseCSV.createchooseinventory(
- project_number, project_4letterID, work_info
- )
- choosepath(project_number, project_4letterID)
diff --git a/nulrdcscripts/inventory/WIP/buildchooseCSV.py b/nulrdcscripts/inventory/WIP/buildchooseCSV.py
deleted file mode 100644
index ab63ad0..0000000
--- a/nulrdcscripts/inventory/WIP/buildchooseCSV.py
+++ /dev/null
@@ -1,37 +0,0 @@
-def createchooseinventory(project_number, project_4letterID, file_number, work_info):
- inventory = [
- {
- "work_accession_number": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info,
- "file_accession_number": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a",
- "filename": project_number
- + "_"
- + project_4letterID
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a"
- + ".tif",
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": project_number,
- }
- ]
-
- for data in inventory:
- writer.writerows(inventory)
- # Below increments the row and file up by one
- file_number = int(file_number) + 1
diff --git a/nulrdcscripts/inventory/WIP/csvinput.py b/nulrdcscripts/inventory/WIP/csvinput.py
deleted file mode 100644
index db2b0b8..0000000
--- a/nulrdcscripts/inventory/WIP/csvinput.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Building some of the intial variables that will be used
-field_names = [
- "Spreadsheet Row Number",
- "work_image",
- "structure",
- "role",
- "work_type",
- "work_accession_number",
- "file_accession_number",
- "filename",
- "label",
- "description",
- "Capture date",
- "Staff Initials",
- "Container number ex. Box Number",
- "folder number",
- "Width (cm.)",
- "Height (cm.)",
- "Date (Year+Month+Day)",
- "project_job_number",
- "Notes about album page or photo",
- "Production Notes",
- "Creator",
- "Source",
- "Copyright Notice",
-]
diff --git a/nulrdcscripts/inventory/WIP/inputvalidation.py b/nulrdcscripts/inventory/WIP/inputvalidation.py
deleted file mode 100644
index 02094d3..0000000
--- a/nulrdcscripts/inventory/WIP/inputvalidation.py
+++ /dev/null
@@ -1,31 +0,0 @@
-def project_numbervalidation_starts(project_number):
- try:
- project_number.startswith("P")
- except:
- try:
- project_number.startswith("J")
- except:
- print("Please start your project number with a P or a J")
- quit()
-
-
-def project_numbervalidation_length(project_number):
- project_number_length = len(project_number)
- try:
- project_number_length == 5
- except:
- print("Please answer with a 4 digit number following P or J")
- quit()
-
-
-def project_4letterID_validation(project_4letterID):
- try:
- project_4letterID.isalpha()
- except:
- print("Please use a project ID with letters only")
- quit()
- project_4letterID_length = len(project_4letterID)
- try:
- project_4letterID_length == 4
- except:
- print("Please use 4 letters for your project ID")
diff --git a/nulrdcscripts/inventory/WIP/savepath.py b/nulrdcscripts/inventory/WIP/savepath.py
deleted file mode 100644
index 98acc66..0000000
--- a/nulrdcscripts/inventory/WIP/savepath.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import os
-
-
-csv_file_name = ""
-
-
-def setFilename(project_number, project_4letterID):
- csv_file_name = (
- project_number + "_" + project_4letterID + "_" + "inventory" + ".csv"
- )
- return csv_file_name
-
-
-def opencsv(csv_file_name):
- open_CSV = "" + "start EXCEL.exe" + "" + csv_file_name
- os.system(open_CSV)
diff --git a/nulrdcscripts/inventory/WIP/buildboxorFolderCSV.py b/nulrdcscripts/inventory/buildboxorFolderCSV.py
similarity index 81%
rename from nulrdcscripts/inventory/WIP/buildboxorFolderCSV.py
rename to nulrdcscripts/inventory/buildboxorFolderCSV.py
index f3f55c7..f29c336 100644
--- a/nulrdcscripts/inventory/WIP/buildboxorFolderCSV.py
+++ b/nulrdcscripts/inventory/buildboxorFolderCSV.py
@@ -1,9 +1,9 @@
-import csv
-
-
def build_boxOrFolder_inventory(
project_number, project_4letterID, box_number, folder_number, file_number
):
+ """
+ This is the more structured version that is used only if you enter 'y' for the box/folder question. Will allow for works that have pages -- this changes where the loop increments at.
+ """
inventory = [
{
"work_accession_number": project_number
@@ -51,10 +51,8 @@ def build_boxOrFolder_inventory(
"role": "A",
"work_type": "IMAGE",
"project_job_number": project_number,
- "Container number ex. Box Number": box_number,
+ "container number ex. box number": box_number,
"folder number": folder_number,
}
]
- for data in inventory:
- writer.writerows(inventory)
- file_number = int(file_number) + 1
+ return inventory
diff --git a/nulrdcscripts/inventory/choose.py b/nulrdcscripts/inventory/choose.py
new file mode 100644
index 0000000..92df305
--- /dev/null
+++ b/nulrdcscripts/inventory/choose.py
@@ -0,0 +1,61 @@
+import inputvalidation
+import setup
+import csv
+import csvinput
+
+
+def chooseYourOwnAdventure(project_number, project_4letterID, csvname):
+ """
+ Lets you have a more flexible filenaming structure. Primarily used for legacy projects. This is an optional path that is only used if you enter 'n' for box/folder question.
+ """
+ workinfo = setup.ask_workinfo()
+ number_works = setup.ask_numberworks()
+ inputvalidation.check_numberworks(number_works)
+ field_names = csvinput.field_names
+ file_number = 1
+
+ with open(csvname, "a", newline="", encoding="utf-8") as csvfile:
+ writer = csv.DictWriter(csvfile, fieldnames=field_names)
+ writer.writeheader()
+ while (
+ file_number <= number_works
+ ): # runs while the file number is less than or equal to the number of files that you need
+ # leading zeros
+ file_number = str(file_number).zfill(4)
+ # leading zeros
+
+ inventory = [
+ {
+ "work_accession_number": project_number
+ + "_"
+ + project_4letterID
+ + "_"
+ + workinfo,
+ "file_accession_number": project_number
+ + "_"
+ + project_4letterID
+ + "_"
+ + workinfo
+ + "_"
+ + file_number
+ + "_"
+ + "a",
+ "filename": project_number
+ + "_"
+ + project_4letterID
+ + "_"
+ + workinfo
+ + "_"
+ + file_number
+ + "_"
+ + "a"
+ + ".tif",
+ "role": "A",
+ "work_type": "IMAGE",
+ "project_job_number": project_number,
+ }
+ ]
+ for data in inventory:
+ writer.writerows(inventory)
+ # Below increments the row and file up by one
+ file_number = int(file_number) + 1
diff --git a/nulrdcscripts/inventory/csvinput.py b/nulrdcscripts/inventory/csvinput.py
new file mode 100644
index 0000000..b3c348a
--- /dev/null
+++ b/nulrdcscripts/inventory/csvinput.py
@@ -0,0 +1,28 @@
+# Building some of the intial variables that will be used
+field_names = [
+ "spreadsheet row number",
+ "work_image",
+ "structure",
+ "role",
+ "work_type",
+ "work_accession_number",
+ "file_accession_number",
+ "filename",
+ "label",
+ "description",
+ "check in? (yes/no)",
+ "packing & shipping check in? (yes/no)",
+ "capture date",
+ "staff initials",
+ "container number ex. box number",
+ "folder number",
+ "width (cm.)",
+ "height (cm.)",
+ "date (year+month+day)",
+ "project_job_number",
+ "notes about album page or photo",
+ "production notes",
+ "creator",
+ "source",
+ "copyright notice",
+]
diff --git a/nulrdcscripts/inventory/FlowchartWIP.md b/nulrdcscripts/inventory/docs/FlowchartWIP.md
similarity index 100%
rename from nulrdcscripts/inventory/FlowchartWIP.md
rename to nulrdcscripts/inventory/docs/FlowchartWIP.md
diff --git a/nulrdcscripts/inventory/inventory_script.md b/nulrdcscripts/inventory/docs/README.md
similarity index 100%
rename from nulrdcscripts/inventory/inventory_script.md
rename to nulrdcscripts/inventory/docs/README.md
diff --git a/nulrdcscripts/inventory/inputvalidation.py b/nulrdcscripts/inventory/inputvalidation.py
new file mode 100644
index 0000000..df67e05
--- /dev/null
+++ b/nulrdcscripts/inventory/inputvalidation.py
@@ -0,0 +1,104 @@
+# Project Number Validation
+def project_number_validation(project_number):
+ """
+ Checks that the project number starts with either a p or a j and that it is exactly 5 characters
+ """
+ project_number_length = len(project_number)
+ project_number
+ project_number_first_char = project_number.startswith(("p", "j"))
+
+ check_projectnumber_len(project_number_length)
+ check_projectnumber_firstchar(project_number_first_char)
+
+
+def check_projectnumber_firstchar(project_number_first_char):
+ """
+ Checks the first character of the project number
+ """
+ if project_number_first_char:
+ pass
+ else:
+ raise ValueError("Project number must start with a p or a j")
+
+
+def check_projectnumber_len(project_number_length):
+ """
+ Checks the length of the project number.
+ """
+ if project_number_length == 5:
+ pass
+ else:
+ raise ValueError("Project number must be 5 characters long")
+
+
+# Project Letter Validation
+def project_4letterID_validation(project_4letterID):
+ """
+ Checks that the 4 letter ID is only alphabetical and that there are only 4 characters
+ """
+ length_4letterID = len(project_4letterID)
+ alpha_4letterID = project_4letterID.isalpha()
+ check_alpha_4letterID(alpha_4letterID)
+ check_length_4letterID(length_4letterID)
+
+
+def check_length_4letterID(length_4letterID):
+ """
+ Checks the length of the 4 character ID
+ """
+ if length_4letterID == 4:
+ pass
+ else:
+ raise ValueError("4 Letter ID must be only 4 characters")
+
+
+def check_alpha_4letterID(alpha_4letterID):
+ """'
+ Checks that the 4 characters are all alphabetical
+ """
+ if alpha_4letterID:
+ pass
+ else:
+ raise ValueError("4 Letter ID must be all letters")
+
+
+def check_boxnumber(box_number):
+ try:
+ box_numberInt = int(box_number)
+ box_number = str(box_number).zfill(3)
+ except:
+ raise TypeError("Please enter an integer for box number")
+ return box_number
+
+
+def check_foldernumber(folder_number):
+ try:
+ folder_numberINT = int(folder_number)
+ folder_number = str(folder_number).zfill(2)
+ except:
+ raise TypeError("Please enter an integer for folder number")
+ return folder_number
+
+
+def check_numberworks(number_works):
+ try:
+ number_works = int(number_works)
+ except:
+ raise TypeError("Please enter an integer for number of works")
+ return number_works
+
+
+def check_worknumber(worknumber):
+ try:
+ worknumber = int(worknumber)
+ except:
+ raise TypeError("Please enter an integer for the work number")
+ return worknumber
+
+
+def check_pages(pages):
+ try:
+ pages = int(pages)
+ except:
+ raise TypeError("Please enter an integer for the number of pages")
+ return pages
diff --git a/nulrdcscripts/inventory/inventory_script.py b/nulrdcscripts/inventory/inventory_script.py
deleted file mode 100644
index 595eb98..0000000
--- a/nulrdcscripts/inventory/inventory_script.py
+++ /dev/null
@@ -1,562 +0,0 @@
-import os
-import csv
-
-
-# Asking the user questions to decide the workflow that is going to be used by the script
-proj_number = input("What is the project number? ")
-
-
-def ask_projnum_again():
- proj_number = input("What is the project number? ")
- if proj_number.startswith("p") or proj_number.startswith("j"):
- proj_number_leng = len(proj_number)
- if proj_number_leng != 5:
- print("Please answer with a 4 digit number after 'p'")
- ask_projnum_again()
- else:
- print()
- else:
- print("Please answer with the number prefixed by a p")
- ask_projnum_again()
-
-
-if proj_number.startswith("p") or proj_number.startswith("j"):
- proj_number_leng = len(proj_number)
- if proj_number_leng != 5:
- print("Please answer with a 4 digit number after 'p' or 'j'")
- ask_projnum_again()
- else:
- print()
-else:
- print("Please answer with the number prefixed by a p or j")
- ask_projnum_again()
-
-
-proj_4dig = input("What is the four letter id? ")
-
-
-def proj_name_check_again():
- proj_4dig = input("What is the four letter id? ")
- proj_name_leng = len(proj_4dig)
- if proj_name_leng != 4:
- print("Please answer again with a four letter name")
- proj_name_check_again()
- else:
- print("Has correct number of letters - cleared to continue")
-
-
-proj_name_leng = len(proj_4dig)
-if proj_name_leng != 4:
- print("Please answer again with a four letter name")
- proj_name_check_again()
-else:
- print()
-
-box_other = input("Are there boxes and folders? y for Yes and n for No ")
-
-# Building some of the intial variables that will be used
-field_names = [
- "Spreadsheet Row Number",
- "work_image",
- "structure",
- "role",
- "work_type",
- "work_accession_number",
- "file_accession_number",
- "filename",
- "label",
- "description",
- "Capture date",
- "Staff Initials",
- "Container number ex. Box Number",
- "folder number",
- "Width (cm.)",
- "Height (cm.)",
- "Date (Year+Month+Day)",
- "project_job_number",
- "Notes about album page or photo",
- "Production Notes",
- "Creator",
- "Source",
- "Copyright Notice",
-]
-
-file_path = input("Where do you want to save to? ")
-csv_name = (
- proj_number + "_" + proj_4dig + "_" + "inventory" + ".csv"
-) # assigning the CSV file a name based on the data that the user input
-open_CSV = (
- '"' + "start EXCEL.exe" + " " + csv_name + '"'
-) # Part of the command to open the CSV file in Excel -- you can swap ' EXCEL.exe' for your preferred CSV editor that is installed on your PC
-
-
-# defining functions
-def ask_overwrite():
- overwrite = input(
- "File already exists, do you want to append? y for yes and n for no -- will terminate script"
- )
- if overwrite == "y":
- with open(os.path.join(file_path, open_CSV), "w") as fp:
- fp.write()
-
- elif overwrite == "n":
- print("Try running the script again")
-
-
-def save_CSV():
- try:
- pass
- except:
- pass
-
-
-def ask_new_work_bOrf():
- new_work = input(
- "Do you want to add a new work - y for yes, n for no which will open the CSV "
- )
-
- if new_work == "y": # if you want a new work this will run
- file_number = 1
- work_info = input("What is the work info? ")
- number_files = int(input("How many works? ")) # number to loop by
- while (
- file_number <= number_files
- ): # runs while the file number is less than or equal to the number of files that you need
- # Leading Zeros
- file_number = str(file_number).zfill(4)
- # Leading Zeros
-
- # Combines the information that the user has put in to fill out select fields in the CSV file
- inventory = [
- {
- "work_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info,
- "file_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a",
- "filename": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a"
- + ".tif",
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": proj_number,
- }
- ]
- for data in inventory:
- writer.writerows(inventory)
- # Below increments the row and file up by one
- file_number = int(file_number) + 1
-
- ask_new_work_bOrf()
-
- elif new_work == "n":
- save_CSV() # command to save the CSV
- os.system(open_CSV) # Command to open the CSV in Excel
-
-
-def ask_new_work_choose():
- new_work = input(
- "Do you want to add a new work - y for yes, n for no which will open the CSV "
- )
-
- if new_work == "y": # if you want a new work this will run
- file_number = 1
- work_info = input("What is the work info? ")
- number_files = int(input("How many works? ")) # number to loop by
- while (
- file_number <= number_files
- ): # runs while the file number is less than or equal to the number of files that you need
- # Leading Zeros
- file_number = str(file_number).zfill(4)
- # Leading Zeros
-
- # Combines the information that the user has put in to fill out select fields in the CSV file
- inventory = [
- {
- "work_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info,
- "file_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a",
- "filename": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a"
- + ".tif",
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": proj_number,
- }
- ]
- for data in inventory:
- writer.writerows(inventory)
- # Below increments the row and file up by one
- file_number = int(file_number) + 1
-
- ask_new_work_choose()
- elif new_work == "n":
- save_CSV() # Saves the CSV File
- os.system(open_CSV) # Opens the CSV file in Excel
-
-
-def ask_new_bOrf(): # function that will ask if you want to add a box or folder. If you want to add pages, answer 'n' to the question and then 'y' to the following question
- new_bOrf = input(
- "Do you want to add a work - y for yes, n for no (which will ask about if you want to add a work with page designation) "
- )
-
- if new_bOrf == "y": # if you want a new box or folder this will run
- file_number = 1
- box_number = input("What is the box number?")
- folder_number = input("What is the folder number?")
-
- # Leading Zeros
- box_number = str(box_number).zfill(3)
- folder_number = str(folder_number).zfill(2)
- # Leading Zeros
-
- folder_files = int(input("How many works? ")) # number to loop by
- while (
- file_number <= folder_files
- ): # runs while the file number is less than or equal to the number of files that you need
- # Leading Zeros
- file_number = str(file_number).zfill(2)
- # Leading Zeros
-
- inventory = [
- {
- "work_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file_number,
- "file_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file_number
- + "_"
- + "0001"
- + "_"
- + "a",
- "filename": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file_number
- + "_"
- + "0001"
- + "_"
- + "a"
- + ".tif",
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": proj_number,
- "Container number ex. Box Number": box_number,
- "folder number": folder_number,
- }
- ]
- for data in inventory:
- writer.writerows(inventory)
- file_number = int(file_number) + 1
-
- ask_new_bOrf()
-
- elif new_bOrf == "n": # if you do not want to run a new box or folder
- new_pages = input(
- "Do you want to add a work with more than one page - y for Yes and n for No "
- ) # will ask if you want to add a work that has to have page designation
- if new_pages == "y": # if you want to use page designation this will run
- page_path()
- elif new_pages == "n":
- save_CSV() # Saves the CSV
- os.system(open_CSV) # Opens the CSV in Excel
-
-
-def page_path(): # This script runs when you want to add works with page designations
- page_number = 1
- box_number = input("What is the box number? ")
- folder_number = input("What is the folder number? ")
-
- # Leading Zeros
- box_number = str(box_number).zfill(3)
- folder_number = str(folder_number).zfill(2)
- # Leading Zeros
-
- file = input("What is your work number? ")
- pages = int(
- input("What is the number of images in the work? ")
- ) # number to loop by
-
- while (
- page_number <= pages
- ): # runs while the file number is less than or equal to the number of files that you need
- # Leading Zeros
- page_number = str(page_number).zfill(4)
- file = str(file).zfill(2)
- # Leading Zeros
-
- inventory = [
- {
- "work_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file,
- "file_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file
- + "_"
- + page_number
- + "_"
- + "a",
- "filename": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file
- + "_"
- + page_number
- + "_"
- + "a"
- + ".tif",
- "Container number ex. Box Number": box_number,
- "folder number": folder_number,
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": proj_number,
- }
- ]
-
- for data in inventory:
- writer.writerows(inventory)
- page_number = int(page_number) + 1
- ask_new_bOrf() # will then call the ask_new_bOrf function to see if you want to add a box or folder next. If you want to run another work with page designations, answer 'n' to the first question and the 'y' to the next
-
-
-# setting variables up to be used
-
-
-page_number = 1
-file_number = 1
-new_bOrf = 0
-
-
-if box_other == "y": # will run box folder version
- pages_yn = input(
- "Does your folder have a work with multiple images? (ex. a 3 page letter) y for Yes and n for No "
- )
- if pages_yn == "y": # runs if you need to designate page numbers
- with open(csv_name, "a", newline="", encoding="utf-8") as csvfile:
- writer = csv.DictWriter(csvfile, fieldnames=field_names)
- writer.writeheader()
- page_path()
-
- elif pages_yn == "n":
- box_number = input("What is the box number? ")
- folder_number = input("What is the folder number? ")
-
- # Leading Zeros
- box_number = str(box_number).zfill(3)
- folder_number = str(folder_number).zfill(2)
- # Leading Zeros
-
- folder_files = int(
- input("What is the number of works? ")
- ) # number to loop by
- with open(csv_name, "a", newline="", encoding="utf-8") as csvfile:
- writer = csv.DictWriter(csvfile, fieldnames=field_names)
- writer.writeheader()
-
- while (
- file_number <= folder_files
- ): # runs while the file number is less than or equal to the number of files that you need
- # Leading Zeros
- file_number = str(file_number).zfill(2)
- # Leading Zeros
-
- inventory = [
- {
- "work_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file_number,
- "file_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file_number
- + "_"
- + "0001"
- + "_"
- + "a",
- "filename": proj_number
- + "_"
- + proj_4dig
- + "_"
- + "b"
- + box_number
- + "_"
- + "f"
- + folder_number
- + "_"
- + file_number
- + "_"
- + "0001"
- + "_"
- + "a"
- + ".tif",
- "Container number ex. Box Number": box_number,
- "folder number": folder_number,
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": proj_number,
- }
- ]
-
- for data in inventory:
- writer.writerows(inventory)
-
- # Below increments the file up by one
- file_number = int(file_number) + 1
- ask_new_bOrf()
-
-
-elif box_other == "n": # will run choose your own adventure
- work_info = input(
- "What is your work info ex. v for volume? "
- ) # takes the place of the Box and Folder # information
- number_files = int(
- input("What is the number of images? ")
- ) # number to loop by
-
- with open(csv_name, "a", newline="", encoding="utf-8") as csvfile:
- writer = csv.DictWriter(csvfile, fieldnames=field_names)
- writer.writeheader()
- while (
- file_number <= number_files
- ): # runs while the file number is less than or equal to the number of files that you need
- # leading zeros
- file_number = str(file_number).zfill(4)
- # leading zeros
-
- inventory = [
- {
- "work_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info,
- "file_accession_number": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a",
- "filename": proj_number
- + "_"
- + proj_4dig
- + "_"
- + work_info
- + "_"
- + file_number
- + "_"
- + "a"
- + ".tif",
- "role": "A",
- "work_type": "IMAGE",
- "project_job_number": proj_number,
- }
- ]
- for data in inventory:
- writer.writerows(inventory)
- # Below increments the row and file up by one
- file_number = int(file_number) + 1
-
- ask_new_work_choose()
-
-else:
- print("Try again running the script again with y for YES or n for NO")
diff --git a/nulrdcscripts/inventory/WIP/buildpageCSV.py b/nulrdcscripts/inventory/pagePath.py
similarity index 63%
rename from nulrdcscripts/inventory/WIP/buildpageCSV.py
rename to nulrdcscripts/inventory/pagePath.py
index 94a296c..6094578 100644
--- a/nulrdcscripts/inventory/WIP/buildpageCSV.py
+++ b/nulrdcscripts/inventory/pagePath.py
@@ -1,42 +1,23 @@
+import setup
+import inputvalidation
import csv
-import BoxorFolder
-import csvinput
-import savepath
+import BorF
-def bringinCSVFileName():
- savepath.setFilenameandSave(project_number, project_4letterID)
-with open (, "a", newline="", encoding="utf-8") as csvfile:
- writer = csv.DictWriter(csvfile, csvinput.field_names)
- writer.writeheader()
-
-
-def pages_yes(
- project_number,
- project_4letterID,
- box_number,
- folder_number,
-):
- filenumber = input("What is the work number? ")
-
- try:
- filenumberint = int(filenumber)
- except:
- print("Please enter an integer for work number")
+def pageTrue(project_number, project_4letterID, box_number, folder_number, csvname):
+ """
+ If you use this route the loop will increment for pages and lead to a request for additional works at the end.
+ """
+ file = setup.ask_worknumber
+ pages = setup.ask_num_pages # number to loop by
+ pages = inputvalidation.check_pages(pages)
page_number = 1
- pages = input("What is the number of images in the work? ")
-
- try:
- pagesint = int(pages)
- except:
- print("Please use an integer for the number of pages")
-
while (
page_number <= pages
): # runs while the file number is less than or equal to the number of files that you need
# Leading Zeros
page_number = str(page_number).zfill(4)
- filenumber = str(filenumber).zfill(2)
+ file = str(file).zfill(2)
# Leading Zeros
inventory = [
@@ -51,7 +32,7 @@ def pages_yes(
+ "f"
+ folder_number
+ "_"
- + filenumber,
+ + file,
"file_accession_number": project_number
+ "_"
+ project_4letterID
@@ -62,7 +43,7 @@ def pages_yes(
+ "f"
+ folder_number
+ "_"
- + filenumber
+ + file
+ "_"
+ page_number
+ "_"
@@ -77,7 +58,7 @@ def pages_yes(
+ "f"
+ folder_number
+ "_"
- + filenumber
+ + file
+ "_"
+ page_number
+ "_"
@@ -92,7 +73,16 @@ def pages_yes(
]
for data in inventory:
- writer.writerows(inventory)
+ csv.writer.writerows(inventory)
page_number = int(page_number) + 1
+ new_work = setup.ask_newwork()
+ if new_work == "y":
+ pageTrue(project_number, project_4letterID, box_number, folder_number, csvname)
+ else:
+ new_BorF = setup.ask_newBoxFolder()
+ if new_BorF == "y":
+ BorF.BorFPath(project_number, project_4letterID, csvname)
+ elif new_BorF == "n":
+ pass
- BoxorFolder.ask_newBoxorFolder(project_number, project_4letterID)
+ return inventory
diff --git a/nulrdcscripts/inventory/pyproject.toml b/nulrdcscripts/inventory/pyproject.toml
new file mode 100644
index 0000000..f3b777b
--- /dev/null
+++ b/nulrdcscripts/inventory/pyproject.toml
@@ -0,0 +1,15 @@
+[tool.poetry]
+name = "Inventory Script"
+version = "0.2.0"
+description = "Inventory creation script that is used to generate inventories for the imaging workflow at RDC."
+authors = ["Northwestern University Libraries ", "Sophia Francis"]
+license = "MIT"
+readme = "README.md"
+
+[tool.poetry.dependencies]
+python = "^3.10"
+
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
diff --git a/nulrdcscripts/inventory/run.py b/nulrdcscripts/inventory/run.py
new file mode 100644
index 0000000..dbef2e1
--- /dev/null
+++ b/nulrdcscripts/inventory/run.py
@@ -0,0 +1,35 @@
+import BorF
+import choose
+import setup
+import inputvalidation
+import saveCSV
+
+# Asks the project number
+project_number = setup.ask_projnum()
+
+# Verifies the project number
+inputvalidation.project_number_validation(project_number)
+
+# Asks the 4 letter id
+project_4letterID = setup.ask_4letterID()
+
+# Verifies the 4 letter id
+inputvalidation.project_4letterID_validation(project_4letterID)
+
+csvname = setup.setFilename(project_number, project_4letterID)
+box_other = setup.boxor_other()
+box_other = box_other.lower()
+
+
+def boxorother(box_other, project_number, project_4letterID, csvname):
+ if box_other == "y":
+ inventory = BorF.BorFPath(project_number, project_4letterID, csvname)
+
+ elif box_other == "n":
+ inventory = choose.choosePath(project_number, project_4letterID, csvname)
+ return inventory
+
+
+inventory = boxorother(box_other, project_number, project_4letterID, csvname)
+
+saveCSV(inventory)
diff --git a/nulrdcscripts/inventory/saveCSV.py b/nulrdcscripts/inventory/saveCSV.py
new file mode 100644
index 0000000..9e78c9f
--- /dev/null
+++ b/nulrdcscripts/inventory/saveCSV.py
@@ -0,0 +1,6 @@
+import os
+
+
+def opencsv(csvfilename):
+ open_CSV = "" + "start EXCEL.exe" + "" + csvfilename
+ os.system(open_CSV)
diff --git a/nulrdcscripts/inventory/setup.py b/nulrdcscripts/inventory/setup.py
new file mode 100644
index 0000000..407b706
--- /dev/null
+++ b/nulrdcscripts/inventory/setup.py
@@ -0,0 +1,71 @@
+# Questions
+
+
+def ask_projnum():
+ project_number = input("What is the project number? ")
+ return project_number
+
+
+def ask_4letterID():
+ project_4letterID = input("What is your projects 4 letter ID? ")
+ return project_4letterID
+
+
+def askbox_number():
+ box_number = input("What is the box number? ")
+ return box_number
+
+
+def boxor_other():
+ box_other = input("Are there boxes and folders? y for Yes and n for No ")
+ box_other = box_other.lower()
+ return box_other
+
+
+def ask_numberworks():
+ numberworks = input("What is the number of works? ")
+ return numberworks
+
+
+def askfolder_number():
+ folder_number = input("What is the folder number? ")
+ return folder_number
+
+
+def ask_worknumber():
+ worknumber = input("What is the work number? ")
+ return worknumber
+
+
+def ask_pages():
+ pages_yn = input(
+ "Are there multiple pages for your first work? y for Yes and n for No"
+ )
+ pages_yn = pages_yn.lower()
+ return pages_yn
+
+
+def ask_num_pages():
+ num_pages = input("How many pages are in this work?")
+ return num_pages
+
+
+def ask_newBoxFolder():
+ new_boxFolder = input("Do you want to add a new work - y for yes, n for no")
+ new_boxFolder = new_boxFolder.lower()
+ return new_boxFolder
+
+
+def ask_workinfo():
+ workinfo = input("What is your work info (ex. v0001)?")
+ return workinfo
+
+
+# Setting file name
+
+
+def setFilename(project_number, project_4letterID):
+ csv_file_name = (
+ project_number + "_" + project_4letterID + "_" + "inventory" + ".csv"
+ )
+ return csv_file_name