diff --git a/README.md b/README.md
index 5c7d5c1..3cce901 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
Sideband
=========
-Sideband is an LXMF client for Android, Linux and macOS. It allows you to communicate with other people or LXMF-compatible systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR Paper Messages, or anything else Reticulum supports.
+Sideband is an extensible LXMF messaging client, situational awareness tracker and remote control and monitoring system for Android, Linux, macOS and Windows. It allows you to communicate with other people or LXMF-compatible systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR Paper Messages, or anything else Reticulum supports.
![Screenshot](https://github.com/markqvist/Sideband/raw/main/docs/screenshots/devices_small.webp)
@@ -9,15 +9,25 @@ Sideband is completely free, end-to-end encrypted, permission-less, anonymous an
This also means that Sideband operates differently than what you might be used to. It does not need a connection to a server on the Internet to function, and you do not have an account anywhere. Please read the Guide section included in the program, to get an understanding of how Sideband differs from other messaging systems.
-The program currently includes basic functionality for secure and independent communication, and many useful features are planned for implementation. Sideband is currently released as a beta version. Please help make all the functionality a reality by supporting the development with donations.
+Sideband provides many useful and interesting functions, such as:
+
+- Secure and self-sovereign messaging using the LXMF protocol over Reticulum.
+- Image and file transfers over all supported mediums.
+- Secure and direct P2P telemetry and location sharing. No third parties or servers ever have your data.
+- Situation display on both online and locally stored offline maps.
+- Geospatial awareness calculations.
+- Exchanging messages through encrypted QR-codes on paper, or through messages embedded directly in **lxm://** links.
+- Using Android devices as impromptu Reticulum routers (*Transport Instances*), for setting up or extending networks easily.
+- Remote command execution and response engine, with built-in commands, such as `ping`, `signal` reports and `echo`.
+- Remote telemetry querying, with strong, secure and cryptographically robust authentication and control.
+- Plugin system that allows you to easily create your own commands, services and telemetry sources.
+
Sideband works well with the terminal-based LXMF client [Nomad Network](https://github.com/markqvist/nomadnet), which allows you to easily host Propagation Nodes for your LXMF network, and more.
-If you want to help develop this program, get in touch.
-
## Installation On Linux, Android and MacOS
-For your Android devices, download an [APK on the latest release](https://github.com/markqvist/Sideband/releases/latest) page.
+For your Android devices, you can install Sideband through F-Droid, by adding the [Between the Borders Archive Repo](https://reticulum.betweentheborders.com/fdroid/repo/), or you can download an [APK on the latest release](https://github.com/markqvist/Sideband/releases/latest) page. Both sources are signed with the same release keys, and can be used interchangably.
A DMG file containing a macOS app bundle is also available on the [latest release](https://github.com/markqvist/Sideband/releases/latest) page.
@@ -113,13 +123,23 @@ You can help support the continued development of open, free and private communi
## Development Roadmap
-- Adding a Nomad Net page browser
+- Secure and private location and telemetry sharing
+- Including images in messages
+- Sending file attachments
+- Offline and online maps
+- Paper messages
+- Using Sideband as a Reticulum Transport Instance
+- Encryption keys export and import
+- Plugin support for commands, services and telemetry
+- Sending voice messages (using Codec2 and Opus)
- Implementing the Local Broadcasts feature
-- Adding a debug log option and viewer
-- Adding a Linux .desktop file
-- Message sorting mechanism
+- LXMF sneakernet functionality
+- Network visualisation and test tools
+- A debug log viewer
+- Better message sorting mechanism
- Fix I2P status not being displayed correctly when the I2P router disappears unexpectedly
-- Adding LXMF sneakernet functionality
+- Adding a Linux .desktop file
+- Adding a Nomad Net page browser
## License
Unless otherwise noted, this work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].
diff --git a/docs/example_plugins/basic.py b/docs/example_plugins/basic.py
new file mode 100644
index 0000000..03f0fc9
--- /dev/null
+++ b/docs/example_plugins/basic.py
@@ -0,0 +1,41 @@
+import RNS
+
+class BasicCommandPlugin(SidebandCommandPlugin):
+ command_name = "basic_example"
+
+ def start(self):
+ # Do any initialisation work here
+ RNS.log("Basic command plugin example starting...")
+
+ # And finally call start on superclass
+ super().start()
+
+ def stop(self):
+ # Do any teardown work here
+ pass
+
+ # And finally call stop on superclass
+ super().stop()
+
+ def handle_command(self, arguments, lxm):
+ response_content = "Hello "+RNS.prettyhexrep(lxm.source_hash)+". "
+ response_content += "This is a response from the basic command example. It doesn't do much, but here is a list of the arguments you included:\n"
+
+ for argument in arguments:
+ response_content += "\n"+str(argument)
+
+ # Let the Sideband core send a reply.
+ self.get_sideband().send_message(
+ response_content,
+ lxm.source_hash,
+ False, # Don't use propagation by default, try direct first
+ skip_fields = True, # Don't include any additional fields automatically
+ no_display = True, # Don't display this message in the message stream
+ attachment = None, # Don't add any attachment field to this message
+ image = None, # Don't add any image field to this message
+ audio = None, # Don't add any audio field to this message
+ )
+
+# Finally, tell Sideband what class in this
+# file is the actual plugin class.
+plugin_class = BasicCommandPlugin
\ No newline at end of file
diff --git a/docs/example_plugins/comic.py b/docs/example_plugins/comic.py
new file mode 100644
index 0000000..f475ffa
--- /dev/null
+++ b/docs/example_plugins/comic.py
@@ -0,0 +1,70 @@
+import io
+import RNS
+import requests
+from PIL import Image as PilImage
+
+class ComicCommandPlugin(SidebandCommandPlugin):
+ command_name = "comic"
+
+ def start(self):
+ # Do any initialisation work here
+ RNS.log("Comic command plugin example starting...")
+
+ # And finally call start on superclass
+ super().start()
+
+ def stop(self):
+ # Do any teardown work here
+ pass
+
+ # And finally call stop on superclass
+ super().stop()
+
+ def handle_command(self, arguments, lxm):
+ comic_source = "https://imgs.xkcd.com/comics/tsp_vs_tbsp.png"
+ response_content = f"The source for this comic is:\n{comic_source}"
+
+ try:
+ image_request = requests.get(comic_source, stream=True)
+ if image_request.status_code == 200:
+ max_size = 320, 320
+ with PilImage.open(io.BytesIO(image_request.content)) as im:
+ im.thumbnail(max_size)
+ buf = io.BytesIO()
+ im.save(buf, format="webp", quality=22)
+ image_field = ["webp", buf.getvalue()]
+
+ # Send the fetched comic as a message
+ self.get_sideband().send_message(
+ response_content,
+ lxm.source_hash,
+ False, # Don't use propagation by default, try direct first
+ skip_fields = True, # Don't include any additional fields automatically
+ no_display = True, # Don't display this message in the message stream
+ image = image_field, # Add the scaled and compressed image
+ )
+
+ else:
+ # Send an error message
+ self.get_sideband().send_message(
+ "The specified comic could not be downloaded",
+ lxm.source_hash,
+ False, # Don't use propagation by default, try direct first
+ skip_fields = True, # Don't include any additional fields automatically
+ no_display = True, # Don't display this message in the message stream
+ )
+
+ except Exception as e:
+ # Send an error message
+ self.get_sideband().send_message(
+ "An error occurred while trying to fetch the specified comic:\n\n"+str(e),
+ lxm.source_hash,
+ False, # Don't use propagation by default, try direct first
+ skip_fields = True, # Don't include any additional fields automatically
+ no_display = True, # Don't display this message in the message stream
+ )
+
+
+# Finally, tell Sideband what class in this
+# file is the actual plugin class.
+plugin_class = ComicCommandPlugin
\ No newline at end of file
diff --git a/docs/example_plugins/gpsd_location.py b/docs/example_plugins/gpsd_location.py
new file mode 100644
index 0000000..33bb60d
--- /dev/null
+++ b/docs/example_plugins/gpsd_location.py
@@ -0,0 +1,100 @@
+import RNS
+import time
+import threading
+
+# This plugin requires the "gpsdclient" pip
+# package to be installed on your system.
+# Install it with: pip install gpsdclient
+from gpsdclient import GPSDClient
+
+class GpsdLocationPlugin(SidebandTelemetryPlugin):
+ plugin_name = "gpsd_location"
+
+ def __init__(self, sideband_core):
+ self.connect_timeout = 5.0
+ self.client = None
+ self.client_connected = False
+ self.should_run = False
+
+ self.latitude = None
+ self.longitude = None
+ self.altitude = None
+ self.speed = None
+ self.bearing = None
+ self.accuracy = None
+ self.last_update = None
+
+ super().__init__(sideband_core)
+
+ def start(self):
+ RNS.log("Starting Linux GPSd Location provider plugin...")
+
+ self.should_run = True
+ update_thread = threading.Thread(target=self.update_job, daemon=True)
+ update_thread.start()
+
+ super().start()
+
+ def stop(self):
+ self.should_run = False
+ super().stop()
+
+ def update_job(self):
+ while self.should_run:
+ RNS.log("Connecting to local GPSd...", RNS.LOG_DEBUG)
+ self.client_connected = False
+ try:
+ self.client = GPSDClient(timeout=self.connect_timeout)
+ for result in self.client.dict_stream(convert_datetime=True, filter=["TPV"]):
+ if not self.client_connected:
+ RNS.log("Connected, streaming GPSd data", RNS.LOG_DEBUG)
+
+ self.client_connected = True
+ self.last_update = time.time()
+ self.latitude = result.get("lat", None)
+ self.longitude = result.get("lon", None)
+ self.altitude = result.get("altHAE", None)
+ self.speed = result.get("speed", None)
+ self.bearing = result.get("track", None)
+
+ epx = result.get("epx", None); epy = result.get("epy", None)
+ epv = result.get("epv", None)
+ if epx != None and epy != None and epv != None:
+ self.accuracy = max(epx, epy, epv)
+ else:
+ self.accuracy = None
+
+ except Exception as e:
+ RNS.log("Could not connect to local GPSd, retrying later", RNS.LOG_ERROR)
+
+ time.sleep(5)
+
+ def has_location(self):
+ lat = self.latitude != None; lon = self.longitude != None
+ alt = self.altitude != None; spd = self.speed != None
+ brg = self.bearing != None; acc = self.accuracy != None
+ return lat and lon and alt and spd and brg and acc
+
+ def update_telemetry(self, telemeter):
+ if self.is_running() and telemeter != None:
+ if self.has_location():
+ RNS.log("Updating location from gpsd", RNS.LOG_DEBUG)
+ if not "location" in telemeter.sensors:
+ telemeter.synthesize("location")
+
+ telemeter.sensors["location"].latitude = self.latitude
+ telemeter.sensors["location"].longitude = self.longitude
+ telemeter.sensors["location"].altitude = self.altitude
+ telemeter.sensors["location"].speed = self.speed
+ telemeter.sensors["location"].bearing = self.bearing
+ telemeter.sensors["location"].accuracy = self.accuracy
+ telemeter.sensors["location"].stale_time = 5
+ telemeter.sensors["location"].set_update_time(self.last_update)
+
+ else:
+ RNS.log("No location from GPSd yet", RNS.LOG_DEBUG)
+
+
+# Finally, tell Sideband what class in this
+# file is the actual plugin class.
+plugin_class = GpsdLocationPlugin
\ No newline at end of file
diff --git a/docs/example_plugins/service.py b/docs/example_plugins/service.py
new file mode 100644
index 0000000..e9c4250
--- /dev/null
+++ b/docs/example_plugins/service.py
@@ -0,0 +1,34 @@
+import RNS
+import time
+import threading
+
+class BasicServicePlugin(SidebandServicePlugin):
+ service_name = "service_example"
+
+ def service_jobs(self):
+ while self.should_run:
+ time.sleep(5)
+ RNS.log("Service ping from "+str(self))
+
+ RNS.log("Jobs stopped running for "+str(self))
+
+ def start(self):
+ # Do any initialisation work here
+ RNS.log("Basic service plugin example starting...")
+ self.should_run = True
+ self.service_thread = threading.Thread(target=self.service_jobs, daemon=True)
+ self.service_thread.start()
+
+ # And finally call start on superclass
+ super().start()
+
+ def stop(self):
+ # Do any teardown work here
+ self.should_run = False
+
+ # And finally call stop on superclass
+ super().stop()
+
+# Finally, tell Sideband what class in this
+# file is the actual plugin class.
+plugin_class = BasicServicePlugin
\ No newline at end of file
diff --git a/docs/example_plugins/telemetry.py b/docs/example_plugins/telemetry.py
new file mode 100644
index 0000000..97f90db
--- /dev/null
+++ b/docs/example_plugins/telemetry.py
@@ -0,0 +1,34 @@
+import RNS
+
+class BasicTelemetryPlugin(SidebandTelemetryPlugin):
+ plugin_name = "telemetry_example"
+
+ def start(self):
+ # Do any initialisation work here
+ RNS.log("Basic telemetry plugin example starting...")
+
+ # And finally call start on superclass
+ super().start()
+
+ def stop(self):
+ # Do any teardown work here
+ pass
+
+ # And finally call stop on superclass
+ super().stop()
+
+ def update_telemetry(self, telemeter):
+ if telemeter != None:
+ RNS.log("Updating power sensors")
+ telemeter.synthesize("power_consumption")
+ telemeter.sensors["power_consumption"].update_consumer(2163.15, type_label="Heater consumption")
+ telemeter.sensors["power_consumption"].update_consumer(12.7/1e6, type_label="Receiver consumption")
+ telemeter.sensors["power_consumption"].update_consumer(0.055, type_label="LED consumption")
+ telemeter.sensors["power_consumption"].update_consumer(982.22*1e9, type_label="Smelter consumption")
+
+ telemeter.synthesize("power_production")
+ telemeter.sensors["power_production"].update_producer(5732.15, type_label="Solar production")
+
+# Finally, tell Sideband what class in this
+# file is the actual plugin class.
+plugin_class = BasicTelemetryPlugin
\ No newline at end of file
diff --git a/docs/example_plugins/view.py b/docs/example_plugins/view.py
new file mode 100644
index 0000000..f8e357c
--- /dev/null
+++ b/docs/example_plugins/view.py
@@ -0,0 +1,325 @@
+# This plugin lets you remotely query and view a
+# number of different image sources in Sideband.
+#
+# This plugin requires the "pillow" pip package.
+#
+# For HTTP and local file sources, no extras are
+# required, but for fetching images from connected
+# video sources, you need "opencv-python" from pip.
+
+import io
+import os
+import RNS
+import time
+import queue
+import requests
+import threading
+import importlib
+from PIL import Image as PilImage
+
+if importlib.util.find_spec("cv2") != None:
+ import cv2
+
+# Add view sources to the plugin
+def register_view_sources():
+ ViewCommandPlugin.add_source("xkcd", HttpSource("https://imgs.xkcd.com/comics/tsp_vs_tbsp.png"))
+ ViewCommandPlugin.add_source("camera", CameraSource(camera_index=0))
+ ViewCommandPlugin.add_source("rocks", FileSource("~/Downloads/rocks.jpg"))
+ ViewCommandPlugin.add_source("osaka", StreamSource("http://honjin1.miemasu.net/nphMotionJpeg?Resolution=640x480&Quality=Standard"))
+ ViewCommandPlugin.add_source("factory", StreamSource("http://takemotopiano.aa1.netvolante.jp:8190/nphMotionJpeg?Resolution=640x480&Quality=Standard&Framerate=1"))
+
+quality_presets = {
+ "lora": {"max": 160, "quality": 18},
+ "low": {"max": 256, "quality": 25},
+ "default": {"max": 320, "quality": 33},
+ "medium": {"max": 480, "quality": 50},
+ "high": {"max": 960, "quality": 65},
+ "hd": {"max": 1920, "quality": 75},
+ "4k": {"max": 3840, "quality": 65},
+}
+
+if not "default" in quality_presets:
+ raise ValueError("No default quality preset defined, please define one and reload the plugin")
+
+class ViewSource():
+ DEFAULT_STALE_TIME = 3.14159
+
+ def __init__(self):
+ self.source_data = None
+ self.last_update = 0
+ self.stale_time = ViewSource.DEFAULT_STALE_TIME
+
+ def is_stale(self):
+ return time.time() > self.last_update + self.stale_time
+
+ def update(self):
+ raise NotImplementedError()
+
+ def scaled_image(self, max_dimension, quality):
+ with PilImage.open(io.BytesIO(self.source_data)) as im:
+ im.thumbnail((max_dimension, max_dimension))
+ buf = io.BytesIO()
+ im.save(buf, format="webp", quality=quality)
+ return buf.getvalue()
+
+ def get_image_field(self, preset="default"):
+ if not preset in quality_presets:
+ preset = "default"
+
+ try:
+ if self.is_stale():
+ self.update()
+
+ if self.source_data != None:
+ max_dimension = quality_presets[preset]["max"]
+ quality = quality_presets[preset]["quality"]
+ return ["webp", self.scaled_image(max_dimension, quality)]
+
+ except Exception as e:
+ RNS.log(f"Could not create image field for {self}. The contained exception was: {e}", RNS.LOG_ERROR)
+ RNS.trace_exception(e)
+
+ return None
+
+class HttpSource(ViewSource):
+ def __init__(self, url):
+ self.url = url
+ super().__init__()
+
+ def update(self):
+ image_request = requests.get(self.url, stream=True)
+ if image_request.status_code == 200:
+ self.source_data = image_request.content
+ self.last_update = time.time()
+ else:
+ self.source_data = None
+
+class CameraSource(ViewSource):
+ def __init__(self, camera_index=0, camera_width=1280, camera_height=720):
+ self.camera_index = camera_index
+ self.camera_width = camera_width
+ self.camera_height = camera_height
+ self.camera_ready = False
+ self.frame_queue = queue.Queue()
+ super().__init__()
+
+ self.start_reading()
+
+ def start_reading(self):
+ self.camera = cv2.VideoCapture(self.camera_index)
+ self.camera.set(cv2.CAP_PROP_FRAME_WIDTH, self.camera_width)
+ self.camera.set(cv2.CAP_PROP_FRAME_HEIGHT, self.camera_height)
+ threading.Thread(target=self.read_frames, daemon=True).start()
+
+ def read_frames(self):
+ try:
+ while True:
+ ret, frame = self.camera.read()
+ self.camera_ready = True
+ if not ret:
+ self.camera_ready = False
+ break
+
+ if not self.frame_queue.empty():
+ try:
+ self.frame_queue.get_nowait()
+ except queue.Empty:
+ pass
+
+ self.frame_queue.put(frame)
+
+ except Exception as e:
+ RNS.log("An error occurred while reading frames from the camera: "+str(e), RNS.LOG_ERROR)
+
+ self.release_camera()
+
+ def update(self):
+ if not self.camera:
+ self.start_reading()
+ while not self.camera_ready:
+ time.sleep(0.2)
+
+ retval, frame = self.camera.read()
+
+ if not retval:
+ self.source_data = None
+ else:
+ retval, buffer = cv2.imencode(".png", frame)
+ self.source_data = io.BytesIO(buffer).getvalue()
+ self.last_update = time.time()
+
+ def release_camera(self):
+ try:
+ self.camera.release()
+ except:
+ pass
+
+ self.camera = None
+ self.camera_ready = False
+
+class StreamSource(ViewSource):
+ DEFAULT_IDLE_TIMEOUT = 10
+
+ def __init__(self, url=None):
+ self.url = url
+ self.stream_ready = False
+ self.frame_queue = queue.Queue()
+ self.stream = None
+ self.started = 0
+ self.idle_timeout = StreamSource.DEFAULT_IDLE_TIMEOUT
+ super().__init__()
+
+ self.start_reading()
+
+ def start_reading(self):
+ self.stream = cv2.VideoCapture(self.url)
+ self.started = time.time()
+ threading.Thread(target=self.read_frames, daemon=True).start()
+
+ def read_frames(self):
+ try:
+ while max(self.last_update, self.started)+self.idle_timeout > time.time():
+ ret, frame = self.stream.read()
+ if not ret:
+ self.stream_ready = False
+ else:
+ self.stream_ready = True
+ if not self.frame_queue.empty():
+ if self.frame_queue.qsize() > 1:
+ try:
+ self.frame_queue.get_nowait()
+ except queue.Empty:
+ pass
+
+ self.frame_queue.put(frame)
+
+ RNS.log(str(self)+" idled", RNS.LOG_DEBUG)
+
+ except Exception as e:
+ RNS.log("An error occurred while reading frames from the stream: "+str(e), RNS.LOG_ERROR)
+
+ self.release_stream()
+
+ def update(self):
+ if not self.stream:
+ self.start_reading()
+ while not self.stream_ready:
+ time.sleep(0.2)
+ if self.stream == None:
+ self.source_data = None
+ return
+
+ frame = self.frame_queue.get()
+ retval, buffer = cv2.imencode(".png", frame)
+ self.source_data = io.BytesIO(buffer).getvalue()
+ self.last_update = time.time()
+
+ def release_stream(self):
+ try:
+ self.stream.release()
+ except:
+ pass
+
+ self.stream = None
+ self.stream_ready = False
+
+class FileSource(ViewSource):
+ def __init__(self, path):
+ self.path = os.path.expanduser(path)
+ super().__init__()
+
+ def update(self):
+ try:
+ with open(self.path, "rb") as image_file:
+ self.source_data = image_file.read()
+
+ except Exception as e:
+ RNS.log("Could not read image at \"{self.path}\": "+str(e), RNS.LOG_ERROR)
+ self.source_data = None
+
+class ViewCommandPlugin(SidebandCommandPlugin):
+ command_name = "view"
+ sources = {}
+
+ stamptimefmt = "%Y-%m-%d %H:%M:%S"
+
+ def start(self):
+ RNS.log("View command plugin starting...")
+ super().start()
+
+ def stop(self):
+ super().stop()
+
+ @staticmethod
+ def add_source(name, source):
+ ViewCommandPlugin.sources[name] = source
+
+ def message_response(self, message, destination):
+ self.get_sideband().send_message(
+ message,
+ destination,
+ False, # Don't use propagation by default, try direct first
+ skip_fields = True, # Don't include any additional fields automatically
+ no_display = True, # Don't display this message in the message stream
+ )
+
+ def image_response(self, message, image_field, destination):
+ self.get_sideband().send_message(
+ message,
+ destination,
+ False, # Don't use propagation by default, try direct first
+ skip_fields = True, # Don't include any additional fields automatically
+ no_display = True, # Don't display this message in the message stream
+ image = image_field, # Add the scaled and compressed image
+ )
+
+ def timestamp_str(self, time_s):
+ timestamp = time.localtime(time_s)
+ return time.strftime(self.stamptimefmt, timestamp)
+
+ def handle_command(self, arguments, lxm):
+ requestor = lxm.source_hash
+
+ if len(arguments) == 0:
+ self.message_response("No view source was specified", requestor)
+ return
+
+ if arguments[0] == "--list" or arguments[0] == "-l":
+ if len(self.sources) == 0:
+ response = "No sources available on this system"
+ else:
+ response = "Available Sources:\n"
+ for source in self.sources:
+ response += "\n - "+str(source)
+
+ self.message_response(response, requestor)
+ return
+
+ try:
+ source = arguments[0]
+ if len(arguments) > 1:
+ quality_preset = arguments[1]
+ else:
+ quality_preset = "default"
+
+ if not source in self.sources:
+ self.message_response("The specified view source does not exist on this system", requestor)
+
+ else:
+ image_field = self.sources[source].get_image_field(quality_preset)
+ image_timestamp = self.timestamp_str(self.sources[source].last_update)
+ message = f"Source [b]{source}[/b] at [b]{image_timestamp}[/b]"
+
+ if image_field != None:
+ self.image_response(message, image_field, requestor)
+ else:
+ self.message_response("The image source could not be retrieved or prepared", requestor)
+
+ except Exception as e:
+ self.message_response(f"An error occurred:\n\n{e}", requestor)
+
+register_view_sources()
+
+# Finally, tell Sideband what class in this
+# file is the actual plugin class.
+plugin_class = ViewCommandPlugin
diff --git a/sbapp/Makefile b/sbapp/Makefile
index 7f4d640..7341ef2 100644
--- a/sbapp/Makefile
+++ b/sbapp/Makefile
@@ -65,6 +65,7 @@ fetchshare:
cp ../../dist_archive/rnsh-*-py3-none-any.whl ./share/pkg/
cp ../../dist_archive/sbapp-*-py3-none-any.whl ./share/pkg/
cp ../../dist_archive/RNode_Firmware_*_Source.zip ./share/pkg/
+ zip --junk-paths ./share/pkg/example_plugins.zip ../docs/example_plugins/*.py
cp -r ../../dist_archive/reticulum.network ./share/mirrors/
cp -r ../../dist_archive/unsigned.io ./share/mirrors/
cp ../../dist_archive/Reticulum\ Manual.pdf ./share/mirrors/Reticulum_Manual.pdf
diff --git a/sbapp/assets/geoids/egm2008-5.pgm b/sbapp/assets/geoids/egm2008-5.pgm
new file mode 100644
index 0000000..01f6deb
--- /dev/null
+++ b/sbapp/assets/geoids/egm2008-5.pgm
@@ -0,0 +1,38014 @@
+P5
+# Geoid file in PGM format for the GeographicLib::Geoid class
+# Description WGS84 EGM2008, 5-minute grid
+# URL http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008
+# DateTime 2009-08-29 18:45:00
+# MaxBilinearError 0.478
+# RMSBilinearError 0.012
+# MaxCubicError 0.294
+# RMSCubicError 0.005
+# Offset -108
+# Scale 0.003
+# Origin 90N 0E
+# AREA_OR_POINT Point
+# Vertical_Datum WGS84
+4320 2161
+65535
+111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000//////////////////////////////////////////////////////////////////////////...................................................................................-------------------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++************************************************)))))))))))))))))))))))))))))))))))))))))((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$########################""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ߟߟߟߟߟߟߟߟߟߟߟߟߟߟߟߟߟߟޟޟޟޟޟޟޟޟޟޟޟޟޟޟޟޟޟޟݟݟݟݟݟݟݟݟݟݟݟݟݟݟݟݟݟݟܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟ۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟ڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ןןןןןןןןןןןןןןןןןןןןןןןן֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟ԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟҟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟӟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟԟ՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟՟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟֟ןןןןןןןןןןןןןןןןןןןןןןן؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟٟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟ۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟۟ܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟܟݟݟݟݟݟݟݟݟݟݟݟݟݟݟݟݟݟޟޟޟޟޟޟޟޟޟޟޟޟޟޟޟޟޟߟߟߟߟߟߟߟߟߟߟߟߟߟߟߟߟ
+
+
+
+
+
+
+
+
+
+
+
!!!!!!!!!!!!!""""""""""""""###############$$$$$$$$$$$$$$%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&''''''''''''''''((((((((((((((((()))))))))))))))))*****************+++++++++++++++++++,,,,,,,,,,,,,,,,,,,---------------------......................////////////////////////000000000000000000000000001111111111111111111111111111112222222222222222222222222222222222333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555554444444444444444444444444444444444444444444444444444444444444444444444444444444444444433333333333333333333333333333333333333333333333333333333333333333322222222222222222222222222222222222222222222222222222222222222111111111111111111111gffffffffffffffffffffeeeeeeeeeeeeeeeeeeeddddddddddddddddddddcccccccccccccccccccbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa```````````````````````__________________________^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUTTTTTTTTTTTTTTSSSSSSSSSSSSRRRRRRRRRRRRQQQQQQQQQQQPPPPPPPPPPPOOOOOOOOOOONNNNNNNNNNMMMMMMMMMMLLLLLLLLLKKKKKKKKKKJJJJJJJJJIIIIIIIIIHHHHHHHHHGGGGGGGGGFFFFFFFFEEEEEEEEEDDDDDDDDCCCCCCCCCBBBBBBBBAAAAAAAA@@@@@@@@?????????>>>>>>>>========<<<<<<<<;;;;;;;;::::::::99999998888888877777777666666665555555544444443333333322222222111111100000000////////.......--------,,,,,,,++++++++*******)))))))(((((((('''''''&&&&&&&%%%%%%%%$$$$$$$#######"""""""!!!!!!!!
+
+
+
+
+
+ ߟߟߟߟߟߟߟޟޟޟޟޟޟޟݟݟݟݟݟݟݟܟܟܟܟܟܟܟ۟۟۟۟۟۟۟۟ڟڟڟڟڟڟڟٟٟٟٟٟٟٟ؟؟؟؟؟؟؟؟ןןןןןןן֟֟֟֟֟֟֟֟՟՟՟՟՟՟՟ԟԟԟԟԟԟԟԟӟӟӟӟӟӟӟҟҟҟҟҟҟҟҟџџџџџџџџППППППППϟϟϟϟϟϟϟϟΟΟΟΟΟΟΟΟ̟̟̟̟̟̟̟̟͟͟͟͟͟͟͟͟˟˟˟˟˟˟˟˟ʟʟʟʟʟʟʟʟɟɟɟɟɟɟɟɟɟȟȟȟȟȟȟȟȟǟǟǟǟǟǟǟǟǟƟƟƟƟƟƟƟƟşşşşşşşşşğğğğğğğğßßßßßßßßßßßßßßßßßßßğğğğğğğğğğğşşşşşşşşşşƟƟƟƟƟƟƟƟƟƟǟǟǟǟǟǟǟǟǟǟȟȟȟȟȟȟȟȟȟȟɟɟɟɟɟɟɟɟɟɟʟʟʟʟʟʟʟʟʟʟ˟˟˟˟˟˟˟˟˟̟̟̟̟̟̟̟̟̟͟͟͟͟͟͟͟͟͟ΟΟΟΟΟΟΟΟΟϟϟϟϟϟϟϟϟϟПППППППППџџџџџџџџҟҟҟҟҟҟҟҟӟӟӟӟӟӟӟӟԟԟԟԟԟԟԟԟ՟՟՟՟՟՟՟՟֟֟֟֟֟֟֟֟ןןןןןןןן؟؟؟؟؟؟؟ٟٟٟٟٟٟٟٟڟڟڟڟڟڟڟ۟۟۟۟۟۟۟ܟܟܟܟܟܟܟݟݟݟݟݟݟݟޟޟޟޟޟޟޟߟߟߟߟߟߟߟ
+
+
+
+
+
!!!!!"""""#####$$$$$%%%%%%&&&&&'''''((((())))))*****+++++,,,,,,-----.....//////00000111111222223333334444445555566666677777788888999999::::::;;;;;;<<<<<<======>>>>>>??????@@@@@@AAAAAAABBBBBBCCCCCCDDDDDDDEEEEEEFFFFFFFGGGGGGGHHHHHHIIIIIIIJJJJJJJKKKKKKKLLLLLLLMMMMMMMMNNNNNNNOOOOOOOOPPPPPPPQQQQQQQQRRRRRRRRSSSSSSSSTTTTTTTTUUUUUUUUUVVVVVVVVVWWWWWWWWXXXXXXXXXXYYYYYYYYYZZZZZZZZZ[[[[[[[[[[\\\\\\\\\\\]]]]]]]]]]^^^^^^^^^^^___________````````````aaaaaaaaaaaabbbbbbbbbbbbbccccccccccccccddddddddddddddeeeeeeeeeeeeeeeeffffffffffffffffggggggggggggggggggghhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiihhhhhhhhhhhhhhhhhhhhhhgggggggggggggggggggg~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|||||||||||||||||||||||||{{{{{{{{{{{{{{{{{{zzzzzzzzzzzzzzzyyyyyyyyyyyyyxxxxxxxxxxxxwwwwwwwwwwvvvvvvvvvvuuuuuuuuutttttttttssssssssrrrrrrrrqqqqqqqqpppppppooooooonnnnnnnmmmmmmmlllllllkkkkkkjjjjjjjiiiiiihhhhhhhggggggffffffeeeeeedddddddccccccbbbbbbaaaaaa``````______^^^^^^]]]]]]\\\\\\[[[[[[ZZZZZZZYYYYYYXXXXXXWWWWWWVVVVVVUUUUUUUTTTTTTSSSSSSRRRRRRRQQQQQQPPPPPPOOOOOOONNNNNNMMMMMMMLLLLLLKKKKKKKJJJJJJIIIIIIIHHHHHHGGGGGGGFFFFFFEEEEEEEDDDDDDCCCCCCCBBBBBBAAAAAAA@@@@@@??????>>>>>>>======<<<<<<;;;;;;::::::99999998888887777776666665555544444433333322222211111000000//////.....------,,,,,++++++*****)))))(((((('''''&&&&&%%%%%$$$$$######"""""!!!!!
+
+
+
+
+ ߟߟߟߟߟޟޟޟޟޟݟݟݟݟݟܟܟܟܟܟܟ۟۟۟۟۟ڟڟڟڟڟٟٟٟٟٟ؟؟؟؟؟ןןןןן֟֟֟֟֟֟՟՟՟՟՟ԟԟԟԟԟӟӟӟӟӟҟҟҟҟҟџџџџџПППППϟϟϟϟϟϟΟΟΟΟΟ̟̟̟̟̟͟͟͟͟͟˟˟˟˟˟ʟʟʟʟʟɟɟɟɟɟɟȟȟȟȟȟǟǟǟǟǟƟƟƟƟƟşşşşşşğğğğğßßßßß~~~~~}}}}}}|||||{{{{{zzzzzzyyyyyyxxxxxwwwwwwvvvvvvuuuuuutttttttssssssrrrrrrrqqqqqqqpppppppooooooonnnnnnnnmmmmmmmmlllllllllkkkkkkkkkjjjjjjjjjjiiiiiiiiiiihhhhhhhhhhhhggggggggggggggffffffffffffffffeeeeeeeeeeeeeeeeeeeeeddddddddddddddddddddddddddddddddcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccdddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffgggggggggggggggghhhhhhhhhhhhhhiiiiiiiiiiiiijjjjjjjjjjjjjkkkkkkkkkkklllllllllllmmmmmmmmmmnnnnnnnnnnoooooooooopppppppppqqqqqqqqqrrrrrrrrssssssssttttttttuuuuuuuuvvvvvvvvwwwwwwwxxxxxxxyyyyyyyzzzzzz{{{{{{{||||||}}}}}}~~~~~~ßßßğğğşşşƟƟƟǟǟǟȟȟȟɟɟɟʟʟʟ˟˟˟̟̟̟͟͟͟ΟΟΟϟϟϟПППџџџҟҟҟӟӟӟԟԟԟ՟՟՟֟֟֟ןןן؟؟ٟٟٟڟڟڟ۟۟۟ܟܟܟݟݟݟޟޟޟߟߟߟ
+
+
+
!!"""###$$%%%&&&'''(()))***++,,,---..///000111223334445566677788899:::;;;<<<==>>>???@@@AAABBCCCDDDEEEFFFGGHHHIIIJJJKKKLLLMMMNNNOOOPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZZ[[[\\\]]]^^^___```aaaabbbcccdddeeeefffggghhhhiiijjjjkkkllllmmmnnnnoooppppqqqqrrrssssttttuuuuvvvvwwwwxxxxyyyyzzzz{{{{||||}}}}}~~~~ՠՠՠՠՠՠՠՠԠԠԠԠԠԠԠԠԠӠӠӠӠӠӠӠӠҠҠҠҠҠҠҠѠѠѠѠѠѠѠРРРРРРРϠϠϠϠϠϠΠΠΠΠΠΠ̠̠̠̠̠̠͠͠͠͠͠ˠˠˠˠˠʠʠʠʠʠɠɠɠɠɠɠȠȠȠȠȠǠǠǠǠƠƠƠƠƠŠŠŠŠŠĠĠĠĠĠàààà ~~~~~}}}}}}|||||{{{{{zzzzzzyyyyyxxxxxxwwwwwvvvvvvuuuuuttttttsssssrrrrrrqqqqqqpppppoooooonnnnnnmmmmmmllllllkkkkkjjjjjjiiiiiihhhhhhggggggffffffeeeeeeddddddccccccbbbbbaaaaaa``````_____^^^^^^]]]]]\\\\\\[[[[[ZZZZZZYYYYYXXXXXWWWWWVVVVVUUUUUUTTTTSSSSSRRRRRQQQQQPPPPPOOOOONNNNMMMMMLLLLLKKKKJJJJJIIIIHHHHHGGGGFFFFEEEEEDDDDCCCCBBBBBAAAA@@@@????>>>>====<<<<<;;;;::::9999888877776666555544443333222211110000////....---,,,,++++****))))(((('''&&&&%%%%$$$$####"""!!!!
+
+
+ ߟߟߟߟߟޟޟޟޟݟݟݟݟݟܟܟܟܟܟ۟۟۟۟ڟڟڟڟڟٟٟٟٟ؟؟؟؟ןןןןן֟֟֟֟՟՟՟՟ԟԟԟԟԟӟӟӟӟҟҟҟҟџџџџППППϟϟϟϟΟΟΟΟ̟̟̟̟͟͟͟͟˟˟˟˟ʟʟʟʟɟɟɟɟȟȟȟǟǟǟǟƟƟƟƟşşşğğğğßßß~~~~~~}}}}}}}||||||{{{{{{{zzzzzzyyyyyyyxxxxxxxwwwwwwwvvvvvvvuuuuuuuttttttsssssssrrrrrrqqqqqqpppppppooooonnnnnnmmmmmmlllllkkkkkjjjjjjiiiiihhhhgggggfffffeeeedddddccccbbbbaaaa````____^^^^]]]]\\\\[[[[ZZZZYYYXXXXWWWVVVVUUUUTTTSSSSRRRQQQQPPPOOONNNNMMMLLLLKKKJJJIIIIHHHGGGFFFFEEEDDDCCCCBBBAAAA@@@???>>>>===<<<<;;;::::9998888777666655554443333222211110000////....----,,,,++++****)))))(((('''''&&&&%%%%%$$$$$#####"""""!!!!!!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
!!!!!""""#####$$$$$%%%%&&&&&''''(((())))****++++,,,,----....////00001112222333344455556667777888999::::;;;<<<====>>>???@@@AAABBBCCCDDDEEEEFFFGGGHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRSSSTTTUUUVVVWWXXXYYYZZZ[[\\\]]]^^___```aabbbcccddeeefffgghhhiiijjkkkllmmmnnnoopppqqqrrsssttuuuvvwwwxxxyyzzz{{|||}}~~~ßßğğşşƟƟƟǟǟȟȟɟɟʟʟ˟˟˟̟̟͟͟ΟΟϟϟППџџҟҟӟӟԟԟԟ՟՟֟֟ןן؟؟ٟٟڟڟ۟۟ܟܟݟݟޟޟߟߟ
+
!!"##$$%&&'(())*++,,-..//0112334456677899::;<<==>??@@ABBCCDEEFFGHHIIJKKLLMMNOOPPQRRSSTTUVVWWXXYZZ[[\\]]^__``aabbcddeeffgghhiijjkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}}~~ àààààààĠĠĠĠĠĠĠŠŠŠŠŠŠŠŠƠƠƠƠƠƠƠƠǠǠǠǠǠǠǠǠǠȠȠȠȠȠȠȠȠȠȠɠɠɠɠɠɠɠɠɠɠʠʠʠʠʠʠʠʠʠʠʠʠˠˠˠˠˠˠˠˠˠˠˠˠˠ̠̠̠̠̠̠̠̠̠̠̠̠̠̠͠͠͠͠͠͠͠͠͠͠͠͠͠͠͠͠ΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠϠϠϠϠϠϠϠϠϠϠϠϠϠϠϠϠϠРРРРРРРРРРРРРРРРРРѠѠѠѠѠѠѠѠѠѠѠѠѠѠѠѠѠѠҠҠҠҠҠҠҠҠҠҠҠҠҠҠҠҠҠӠӠӠӠӠӠӠӠӠӠӠӠӠӠӠӠӠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠՠՠՠՠՠՠՠՠՠՠՠՠՠՠՠՠՠ֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠֠נננננננננננננננננננננؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠ٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠ؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠؠנננננננננננננננ֠֠֠֠֠֠֠֠֠֠֠֠ՠՠߠߠߠߠޠޠޠޠݠݠݠݠܠܠܠ۠۠۠۠ڠڠڠڠ٠٠٠٠ؠؠؠؠנננ֠֠֠֠ՠՠՠՠԠԠԠԠӠӠӠӠҠҠҠҠѠѠѠѠРРРРϠϠϠϠΠΠΠΠ̠̠̠̠͠͠͠͠ˠˠˠˠʠʠʠʠɠɠɠɠɠȠȠȠȠǠǠǠǠǠƠƠƠƠƠŠŠŠŠĠĠĠĠĠààààà ~~~~~~}}}}}}|||||{{{{{{zzzzzzyyyyyxxxxxxwwwwwvvvvvvuuuuutttttsssssrrrrrqqqqqpppppooooonnnnmmmmmllllkkkkkjjjjiiiihhhhggggffffeeeeddddcccbbbbaaaa```____^^^]]]]\\\[[[[ZZZYYYXXXXWWWVVVUUUUTTTSSSRRRRQQQPPPOOONNNNMMMLLLKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAAA@@@????>>>====<<<<;;;;::::99988887777666665555444433332222111110000////.....----,,,,,++++*****))))(((('''''&&&&%%%%$$$$####""""!!!!
+
+
+ ߟߟޟޟݟݟܟܟ۟۟ڟڟٟٟ؟؟ןן֟֟՟՟ԟԟӟӟҟҟџџППϟϟΟΟ̟̟͟͟˟˟ʟʟʟɟɟȟȟǟǟƟƟşşğğßß~~}}}|||{{{zzzyyyxxxwwvvvuuutttssrrrqqqpppoonnnmmmllkkkjjjiihhhggfffeeeddcccbbaaa```__^^^]]]\\[[[ZZZYYXXXWWWVVVUUTTTSSSRRRQQQPPOOONNNMMMLLLKKKJJJIIIHHHHGGGFFFEEEEDDDCCCBBBBAAA@@@@????>>>>===<<<<;;;;:::::99998888777766666555544443333322221111100000////.....----,,,,,++++****)))))((((''''&&&&%%%%$$$$####""""!!!!
+
+
+ ߞߞߞߞޞޞޞޞݞݞݞݞܞܞܞܞ۞۞۞۞ڞڞڞڞٞٞٞٞ؞؞؞؞؞ממממ֞֞֞֞֞՞՞՞՞ԞԞԞԞԞӞӞӞӞӞҞҞҞҞўўўўўООООООϞϞϞϞϞΞΞΞΞΞ̞̞̞̞̞͞͞͞͞͞͞˞˞˞˞˞˞ʞʞʞʞʞʞɞɞɞɞɞɞɞȞȞȞȞȞȞǞǞǞǞǞǞǞƞƞƞƞƞƞƞŞŞŞŞŞŞŞĞĞĞĞĞĞĞĞÞÞÞÞÞÞÞÞÞÞÞĞĞĞĞŞŞŞƞƞƞǞǞǞǞȞȞȞɞɞɞʞʞʞʞ˞˞˞̞̞̞͞͞͞͞ΞΞΞϞϞϞОООўўўўҞҞҞӞӞӞԞԞԞԞ՞՞՞֞֞֞֞מממ؞؞؞؞ٞٞٞڞڞڞڞ۞۞۞ܞܞܞܞݞݞݞޞޞޞޞߞߞߞߞ
+
+
+
!!!"""##$$$%%%&&'''(()))***++,,,---..///00111222334445556677788899:::;;;<<===>>>??@@@AAABBBCCDDDEEEFFFGGGHHIIIJJJKKKLLLMMNNNOOOPPPQQQRRRSSSTTTUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffgggghhhiiijjjkkklllmmmnnnnooopppqqqrrrsssstttuuuvvvwwwxxxxyyyzzz{{{|||}}}}~~~ßßğşşƟǟǟȟɟɟʟ˟˟̟͟͟ΟϟϟПџџҟӟӟԟ՟՟֟ןן؟ٟڟڟ۟ܟܟݟޟߟߟ
+
!"#$$%&'(()*+,,-./0012344567789:;;<=>??@ABBCDEEFGHHIJKKLMNNOPQQRSTTUVWWXYYZ[\\]^^_`aabccdeefgghiijkllmnnoppqqrsstuuvwwxyyzz{||}~~ ààĠĠŠŠŠƠƠǠǠȠȠȠɠɠʠʠˠˠˠ̠̠͠͠͠ΠΠϠϠϠРРѠѠѠҠҠӠӠӠԠԠՠՠՠ֠֠֠ננؠؠؠ٠٠٠ڠڠ۠۠۠ܠܠܠݠݠݠޠޠޠߠߠߠ
+
+
+
+ ߠߠߠߠߠޠޠޠޠޠޠݠݠݠݠݠܠܠܠܠܠܠ۠۠۠۠۠۠۠ڠڠڠڠڠڠ٠٠٠٠٠٠٠ؠؠؠؠؠؠؠננננננננ֠֠֠֠֠֠֠ՠՠՠՠՠՠՠԠԠԠԠԠԠԠԠӠӠӠӠӠӠӠҠҠҠҠҠҠҠѠѠѠѠѠѠРРРРРРϠϠϠϠϠϠΠΠΠΠΠΠ̠̠̠̠̠͠͠͠͠͠͠ˠˠˠˠˠʠʠʠʠʠɠɠɠɠɠȠȠȠȠȠǠǠǠǠƠƠƠƠƠŠŠŠŠĠĠĠĠĠàààà ~~~~}}}}|||{{{{zzzyyyyxxxwwwvvvvuuutttssssrrrqqqpppooonnnmmmlllkkkjjjiiihhhgggffeeedddcccbbaaa```__^^^]]]\\[[[ZZZYYXXXWWVVVUUTTTSSSRRQQQPPOOONNMMMLLKKKJJJIIHHHGGGFFEEEDDDCCBBBAAA@@@??>>>===<<<;;;:::99988877766655554443332221111000////...----,,,++++****)))((((''''&&&%%%%$$$$###""""!!!!
+
+
+ ߟߟޟޟݟݟܟ۟۟ڟڟٟٟ؟ןן֟֟՟ԟԟӟӟҟџџППϟΟΟ̟͟͟˟˟ʟɟɟȟȟǟƟƟşğğßß~~}}||{zzyyxwwvvuuttsrrqqppoonnmmllkkjjiihhggffeeddccbbaa```__^^]]\\\[[ZZZYYXXWWWVVUUUTTSSSRRQQQPPPOONNNMMMLLKKKJJJIIHHHGGGFFEEEDDDCCBBBAA@@@???>>===<<;;;::9998877766555443332211000//..---,,++**)))((''&&%%%$$##""!!
+
+
+ ߞߞޞޞޞݞݞܞܞܞ۞۞ڞڞڞٞٞ؞؞؞ממ֞֞՞՞ԞԞԞӞӞҞҞўўООϞϞϞΞΞ̞̞͞͞˞˞ʞʞɞɞȞȞǞǞƞƞŞŞĞÞÞ~~}}|||{{zzzyyxxxwwwvvvuuutttsssrrrqqqppppoooonnnnmmmmlllllkkkkkjjjjjiiiiiiihhhhhhhggggggggfffffffffeeeeeeeeeeeeedddddddddddddddddccccccccccccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccdddddddddddddddddddeeeeeeeeeeeeeeeeeffffffffffffffffggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhggggggggggggggggfffffffffffeeeeeeeeeddddddddccccccccbbbbbbbaaaaaaaa```````________^^^^^^^^]]]]]]]]]]]\\\\\\\\\\\\\\\\\\[[[[[[[[[[[\\\\\\\\\\\\\\\\\]]]]]]]]]^^^^^^^______`````aaaaabbbbccccddddeeeeffffgggghhhiiiijjjjkkkllllmmmnnnnoooppppqqqrrrrsssstttuuuuvvvvwwwwxxxxxyyyyzzzzz{{{{{|||||}}}}}~~~~~~ÞÞĞŞƞǞȞȞɞʞ˞̞͞ΞΞϞОўҞӞԞ՞՞֞מ؞ٞڞ۞ܞݞݞޞߞ
+
!!"#$$%&&'())*++,--.//0112234456677899::;;<==>>??@@AABBCCDDEEFFGGHHIIIJJKKLLMMMNNOOOPPQQQRRSSSTTUUUVVVWWWXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhhiiijjjkkklllmmmmnnnooopppqqqqrrrsssttttuuuvvvvwwwxxxyyyyzzzz{{{||||}}}}~~~~ßğğşƟƟǟǟȟɟɟʟ˟˟̟͟͟ΟΟϟППџҟҟӟԟԟ՟֟֟ן؟؟ٟڟڟ۟ܟݟݟޟߟߟ
+
+
!!"##$%%&&'(()**++,--../0012233455677889::;<<==>??@AABCCDDEFFGHHIJJKLLMNNOPPQQRSSTUUVWWXYYZ[[\]^^_``abbcddeffghhijkklmmnoopqqrsttuvvwxxyzz{|}}~ ààĠŠŠƠƠǠȠȠɠʠʠˠˠ̠͠͠ΠϠϠРРѠҠҠӠӠԠՠՠ֠ננؠؠ٠ڠڠ۠۠ܠܠݠޠޠߠߠ
+
+
+
!!!!!!!!""""""""#########$$$$$$$$$$%%%%%%%%%%%%&&&&&&&&&&&&&&&'''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((('''''''''''''''''''''&&&&&&&&&&&&&&%%%%%%%%%%%%%$$$$$$$$$$$##########""""""""""!!!!!!!!!! 9998888877777666665555544444333332222111100000////....----,,,,++++****))))((((''''&&&&%%%%$$$####""""!!!
+
+
+
+ ߠߠߠޠޠޠݠݠݠܠܠܠ۠۠۠ڠڠڠ٠٠٠ؠؠؠנננ֠֠ՠՠՠԠԠԠӠӠӠҠҠҠѠѠѠРРРϠϠϠΠΠΠ̠̠̠͠͠͠ˠˠˠˠʠʠʠɠɠɠȠȠȠȠǠǠǠƠƠƠŠŠŠŠĠĠĠĠààà ~~~}}}||{{{zzzyyyxxwwwvvvuuuttsssrrrqqpppooonnmmmlllkkjjjiihhhgggffeeeddcccbbaaa``__^^^]]\\\[[ZZYYYXXWWVVVUUTTSSRRRQQPPOOONNMMLLKKKJJIIHHGGGFFEEDDCCBBBAA@@???>>==<<;;;::99887776655444332211100//...--,,,++**)))((''&&&%%$$###""!!
+
+ ߟޟޟݟݟܟܟ۟۟ڟڟٟ؟؟ןן֟֟՟՟ԟԟӟҟҟџџППϟϟΟΟ̟̟͟˟˟ʟʟɟɟȟȟǟƟƟşşğğßß~}}|{zzyxwwvuutsrrqpoonmllkjjihggfeedcbba``_^]]\[[ZYXXWVVUTTSRRQPPONNMLLKJJIHHGFFEEDCCBAA@@?>>==<;;::98877655443321100//.--,,++*))((''&&%$$##""!!
+
+ ߞޞݞݞܞ۞ڞٞٞ؞מ֞֞՞ԞӞҞҞўОϞΞΞ̞͞˞ʞʞɞȞǞƞƞŞĞÞ~~}||{{zyyxxwvvuutssrrqqpoonnmllkkjjihhggffeedccbbaa`__^^]]\[[ZZYYXWWVVUTTSSRRQPPOONMMLLKKJIIHHGFFEEDDCBBAA@??>>=<<;;:998877655443221100/..--,,+**))(('&&%%$$##""!
+
+
+
+
+
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!"""###$$%%&&&''(())*++,,--.//001223445667889:;;<=>>?@AABCDEEFGHIIJKLMMNOPQQRSTUUVWXYYZ[\\]^_``abccdeefghhijjkllmnnoopqqrrsstuuvvwwxxyyyzz{{|||}}~~~ÞĞŞƞǞɞʞ˞̞ΞϞОҞӞԞ֞מ؞ڞ۞ݞޞ
+!"$&()+-/12468:;=?ACDFHJLMOQSUVXZ\^_acefhjlmoqstvxy{}ğşƟǟȟɟʟ˟̟͟ΟϟПџҟӟԟ՟՟֟ן؟ٟڟڟ۟ܟݟݟޟߟߟ ߟߟߟߟޟޟޟޟݟݟݟݟݟܟܟܟܟܟܟܟ۟۟۟۟۟۟۟۟ڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟڟ۟۟۟۟۟۟۟۟ܟܟܟܟܟܟݟݟݟݟޟޟޟޟߟߟߟ
+
!!""#$$%%&&''(())***++,,--...//000112223334455566667778889999:::;;;;<<<<=====>>>>????@@@@@AAAAABBBBCCCCCDDDDEEEEEFFFFGGGGHHHHIIIIJJJKKKKLLLMMMNNNOOOPPPQQQRRSSSTTUUUVVWWXXYYZZ[[\\]]^^__``aabccddeffgghiijkklmmnoopqqrsstuvvwxyyz{||}~ àĠŠƠƠǠȠɠʠˠ̠͠ΠϠРѠѠҠӠԠՠ֠נؠ٠ڠ۠ܠܠݠޠߠ
+
!!"##$%%&&'(())**+,,--..//0011223344555667788899:::;;<<<===>>>???@@@AAAABBBBCCCCDDDDEEEEEFFFFFGGGGGHHHHHHHIIIIIIIJJJJJJJJJJKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIHHHHHHHHHHHHHHGGGGGGGGGGGGGGFFFFFFFFFFFFFEEEEEEEEEEEEDDDDDDDDDDDDCCCCCCCCCCCBBBBBBBBBBAAAAAAAAAA@@@@@@@@????????>>>>>>>=======<<<<<<<;;;;;;:::::999TSSSSSRRRRQQQQQPPPPOOOOONNNNMMMMLLLLKKKKJJJJIIIIHHHHGGGGFFFFEEEEDDDDCCCCBBBBBAAAA@@@@@????>>>>>====<<<<<;;;;;:::::99999888877777666665555544444333322222111100000////....----,,,,,++++****))))((((''''&&&&%%%%$$$$####""""!!!!
+
+
+
+
+ ߠߠߠޠޠޠݠݠݠܠܠܠ۠۠۠ڠڠڠ٠٠٠ؠؠؠנננ֠֠֠ՠՠՠԠԠԠӠӠӠҠҠҠѠѠѠРРРϠϠϠΠΠΠ̠̠̠͠͠͠ˠˠˠʠʠʠɠɠɠȠȠȠǠǠǠƠƠƠŠŠŠĠĠĠààà ~~}}||{{zzzyyxxwwvvuuttsssrrqqppoonnmmllkkjjiihhggffeeddccbbaa``__^]]\\[[ZZYYXXWWVUUTTSSRRQPPOONNMMLKKJJIIHGGFFEEDCCBBAA@??>>=<<;;::98877655443321100/..--,,+**))(''&&%%$##""!
+ ߟߟޟݟݟܟ۟ڟڟٟ؟ןן֟՟՟ԟӟҟҟџПϟϟΟ̟͟͟˟ʟʟɟȟǟǟƟşşğß~}}|{zzyxwwvuttsrqpponmmlkjiihgfeedcbaa`_^^]\[ZZYXWVVUTSRRQPONNMLKJJIHGGFEDCCBA@@?>==<;::9877654432110/..-,,+*))('&&%$$#"!!
+
+ ߞޞݞܞ۞۞ڞٞ؞מ֞֞՞ԞӞҞҞўОϞΞΞ̞͞˞ʞʞɞȞǞƞƞŞĞÞ~~}|{{zyxwwvuttsrqpponmllkjihggfedcbba`_^]\\[ZYXWVUUTSRQPONMLLKJIHGFEDCBAA@?>=<;:98765443210/.-,+*)('&%%$#"!
+ ߝޝݝܝڝٝٝ؝ם֝՝ԝӝҝҝѝНϝΝ̝̝͝˝ʝɝȝǝƝƝŝĝÝÝĝĝŝƝǝǝȝɝʝʝ˝̝͝͝ΝϝННѝҝӝԝԝ՝֝ם؝؝ٝڝܝݝޝߝߝ
+
+
!!!"""###$$$%%%&&&''((())**+++,,--..//0012233455667889::;<==>?@@ABCDDEFGHIJKKLMNOPQRSTUVWXYZ[\]^_`acdefghijklnopqrstuvxyz{|}~ÞÞĞĞĞŞŞŞƞƞƞǞǞǞȞȞȞɞɞɞʞʞʞ˞˞˞̞̞̞͞͞ΞΞΞϞϞϞООўўҞҞҞӞӞԞԞ՞՞֞֞ממ؞ٞٞڞڞ۞ܞܞݞݞޞߞ
+!"$%')*,./134689;=>@BDEGIKMNPRTVXY[]_aceghjlnprtvxz|}ğƟȟɟ˟͟ϟџӟ՟ןٟ۟ݟߟ
+ "#%'(*+-.0134678:;=>?ABCEFGHJKLMNOQRSTUVWXYZ[\]^^_`abccdeefgghiijjkllmmnnnoopppqqqqrrrrssssssstttttttttttttttssssssssrrrrrrqqqqpppppoooonnnmmmmllllkkkjjjjiiiihhhhggggffffeeeeedddddccccccbbbbbbbbaaaaaaaaaaaa````````````````````````````aaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbbbbbbbbbbbbbbbbbaaaaaaaaaaaaa``````````________^^^^^^^]]]]]]\\\\\[[[[[ZZZZYYYYXXXXWWWWVVVUUUTTTSSSRRQQQPPPOONNMMMLLKKJJIIHHHGGFFEEDCCBBAA@@??>>=<<;;::98877665443322100//..-,,++**))(''&&%%$$##""!! !!""##$$%%&&''(())**++,,--../0011223344566778899:;;<<==>??@@AABBCCDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVVWWXXYYYZZ[[[\\\]]^^^___```aaabbbccccdddeeeefffgggghhhhiiijjjjkkkkllllmmmnnnnoooopppqqqrrrssstttuuuvvvwwxxxyyzz{{|||}}~~ àĠŠƠǠɠʠˠ̠͠ΠϠРҠӠԠՠ֠נؠڠ۠ܠݠޠߠ
+
!"#$%&'(()*+,-./011234567789:;;<=>??@ABBCDEEFGGHIIJKKLMMNOOPPQRRSSTUUVVWWXXYYZZ[[\\]]^^___``aaabbcccdddeeefffggghhhhiiiijjjjkkkklllllmmmmmnnnnnnoooooooppppppppqqqqqqqqqqrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrrrrrrqqqqqqqqqppppppppooooooonnnnnnmmmmmmlllllkkkkkkjjjjjiiiiiihhhhhgggggffffffeeeeeedddddcccccccbbbbbbaaaaaaaa````````_________^^^^^^^^^^^]]]]]]]]]]]]\\\\\\\\\\\\[[[[[[[[[[[ZZZZZZZZZYYYYYYYYYXXXXXXXWWWWWWVVVVVVUUUUUUTTTTjiiiihhhhhggggffffeeeeddddcccccbbbbaaaa`````____^^^^^]]]]\\\\\[[[[[ZZZZZYYYYYYXXXXXWWWWWWVVVVVVUUUUUUTTTTTTSSSSSSRRRRRRQQQQQQPPPPPPOOOOOONNNNNMMMMMMLLLLLKKKKKJJJJIIIIIHHHHHGGGGFFFFFEEEEDDDDCCCCBBBBAAAAA@@@@????>>>>====<<<;;;;::::999988887777666655554444333222211110000////....---,,,,++++****)))((((''''&&&%%%%$$$####"""!!!!
+
+
+ ߠߠޠޠݠݠݠܠܠ۠۠ڠڠڠ٠٠ؠؠננ֠֠֠ՠՠԠԠӠӠҠҠҠѠѠРРϠϠΠΠ̠̠͠͠͠ˠˠʠʠɠɠɠȠȠǠǠƠƠƠŠŠĠĠààà ~}}||{{zzyxxwwvvuttssrqqpponnmmlkkjiihhgffeddcbba``__^]]\[[ZYXXWVVUTTSRRQPPONMMLKKJIHHGFFEDCCBAA@?>>=<;;:99876654332110/..-,,+*))('&&%$$#"!!
+
+ ߟޟޟݟܟ۟۟ڟٟ؟ןן֟՟ԟӟҟҟџПϟΟΟ̟͟˟ʟʟɟȟǟƟşşğß~}||{zzyxwwvuutsrrqpoonmllkjiihgffedcbba`__^]\[[ZYXWWVUTSSRQPONNMLKJIIHGFEEDCBA@@?>=<;;:987665432110/.-,,+*)(('&%$##"!
+
+ ޞݞܞڞٞ؞֞՞ӞҞОϞ̞͞ʞɞǞƞĞÞ~|zywusqonljhgeca`^\ZYWUTRPOMLJHGEDBA?>=;:8764320/.-,+)('&%$#"!
+
+
+ ߝޝݝܝڝٝٝ؝ם֝՝ԝӝҝѝНϝΝ̝͝˝ʝɝȝǝƝŝĝÝ~}}|{zyyxwvvutssrqpponmmlkkjihhgffeddcbba`__^]]\[[ZZYXXWVVUTTSSRQQPPONNMMLKKJJIIHHGGFFEEDDCCBBAAA@@???>>===<<<;;;::::9999888887777776666666665555555555555555555555555666666666666677777777778888888889999999999:::::::::::;;;;;;;;;;;;<<<<<<<<<<<==========>>>>>>>???????@@@@@AAAABBBBCCCCDDDEEEFFFGGGHHHIIJJJKKLLMMNNOOPPQQRRSSTTUVVWWXXYZZ[[\]]^^_``abbccdeefgghiijjkllmnnoopqqrssttuvvwwxyyzz{{|}}~~ÝĝŝŝƝǝȝɝɝʝ˝̝͝ΝΝϝНѝҝӝԝԝ՝֝ם؝ٝڝڝܝݝޝߝ
+
!"#$%&'()*+,-.0123456789:;<=>?@BCDEFGHIJKLMNPQRSTUVWXYZ[\^_`abcdefghijkmnopqrstuvwxyz|}~ÞĞŞƞȞɞʞ˞͞ΞϞОҞӞԞ֞מ؞ٞ۞ܞݞߞ
+ !!"#$%&'()*++,-./00123345667899:;;<==>??@AABCCDDEFFGHHIIJKKLMMNNOPPQRRSTTUVVWXXYZ[[\]]^_`aabcdeefghijkklmnopqrstuvwxyz{|}~ßşƟǟɟʟ̟͟ΟПџӟԟ՟ן؟ڟ۟ܟޟߟ
+
!#$&')*,-/0235689;<>?ABDEGHJKMOPRSUVXY[]^`acdfgiklnoqrtvwyz|} àŠƠǠȠɠʠˠ̠ΠϠРѠҠӠԠՠ֠נؠ٠ڠ۠۠ܠݠޠߠ ߠߠߠߠߠޠޠޠݠݠݠݠܠܠܠ۠۠۠۠ڠڠڠ٠٠٠ؠؠؠנננ֠֠֠ՠՠԠԠԠӠӠҠҠҠѠѠРРРϠϠΠΠ̠̠̠͠͠ˠˠʠʠɠɠȠȠǠǠƠƠŠŠĠĠà ~~}}}||{{zzyyyxxxwwwvvvuuuutttttssssssrrrrrrrrrrrrrrrrrrrrssssssstttttuuuuvvvvwwwxxxyyyzzz{{|||}}~~~ ààĠŠƠǠȠɠʠʠˠ̠͠ΠϠРѠҠӠԠՠ֠נؠ٠ڠܠݠޠߠ
+
!"#$%'()*+-./012356789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]]^_`abcddefghiijkllmnoppqrrstuuvwwxyyz{{||}~~~~~~~}}}}}|||||{{{{{zzzzzzyyyyyyxxxxxxwwwwwwvvvvvvuuuuuuuttttttsssssssrrrrrrqqqqqppppppooooonnnnnmmmmmlllllkkkkjjjj{{{zzzzyyyyxxxxwwwwvvvvvuuuutttttsssssrrrrrqqqqqqppppppooooooonnnnnnnnmmmmmmmmmlllllllllkkkkkkkkkjjjjjjjjjiiiiiiiiihhhhhhhhgggggggfffffffeeeeeeeddddddccccccbbbbbbaaaaaa`````______^^^^^^]]]]]\\\\\\[[[[[ZZZZZYYYYYXXXXXWWWWWVVVVVUUUUUTTTTSSSSRRRRRQQQQPPPPOOOONNNNMMMLLLLKKKKJJJIIIIHHHGGGGFFFEEEEDDDCCCCBBBAAAA@@@????>>>====<<<;;;;:::9999888877766665554444333322211110000///....----,,,++++****))))((((''''&&&%%%%$$$$####"""""!!!!
+
+
+ ߠߠޠޠݠܠܠ۠۠ڠ٠٠ؠؠנ֠֠ՠՠԠԠӠҠҠѠѠРϠϠΠΠ̠͠͠ˠˠʠʠɠɠȠȠǠƠƠŠŠĠĠàà ~}}|{{zyyxwwvuutssrqqpoonmllkjjihhgfeedccba``_^]]\[[ZYXXWVUUTSRQQPONNMLKKJIHGGFEDDCBA@@?>=<<;:9887654432110/.--,+*))('&%%$#""!
+ ߟޟݟܟ۟۟ڟٟ؟ן֟֟՟ԟӟҟџППϟΟ̟͟˟ʟɟɟȟǟƟşğß~}|{{zyxwwvutsrrqponnmlkjjihgfeedcba``_^]\[ZZYXWVUTTSRQPONMLLKJIHGFEDCCBA@?>=<;:98876543210/.-,++*)('&%$#"!
+ ߞޞݞ۞ڞٞ؞֞՞ԞҞўОΞ͞˞ʞȞǞŞĞ~|zxusqnljgec`^\YWTRPMKHFCA?<:7520.+)&$"
ߝޝܝٝם֝՝ӝҝНϝΝ̝˝ʝɝȝƝŝĝÝ~|{zxwvtsqpnmljigfdcb`_]\ZYWVUSRPOMLKIHFEDBA?>=;:97654210/-,+*)'&%$#"!
+
+
+
+
!!"##$%%&''())*++,--.//0112334456677899::;;<<==>>??@@AABBBCCDDDEEFFFGGGHHHIIIIJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQRRRRSSSTTTUUUVVVWWWXXYYYZZ[[\\]]^^__``aabbcddeefgghiijkklmnnoppqrsstuvvwxyyz{||}~ÝĝĝŝƝƝǝȝȝɝʝ˝˝̝͝͝ΝϝННѝҝӝԝԝ՝֝ם؝؝ٝڝܝݝݝޝߝ
+
"#$&'(*+,./1235689;<>?ABDEGIJLMOQRTVWY[]^`bdegikmnprtvxy{}ÞŞƞȞʞ̞͞ϞўӞԞ֞؞ڞ۞ݞߞ "#$&'(*+,./01345789:<=>@ABDEFHIJLMNPQRTUVXYZ\]^`abdefhiklmopqstuwxy{|}ßßğşƟǟȟȟɟʟ˟̟̟͟ΟϟϟПџџҟӟԟԟ՟֟֟ן؟؟ٟڟڟ۟ܟܟݟݟޟߟߟ
+
!"##$%&'(()*+,-../01234566789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWYZ[\]^_`bcdefhijklnopqstuvxyz{}~àĠƠǠɠʠ̠͠ϠРҠӠՠ֠ؠ٠۠ܠޠߠ
"#$&'()+,-/01245678:;<=>@ABCDEGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghhijklmnoopqrsstuvwwxyyz{||}~~~}|{zywvutsrponmkjihfedca`_]\[YXWUTSQPOMLJIHFECBA?><;:8754310.-,*)'&%#"
+ ߠޠܠ۠ڠ٠ؠנ֠ՠԠӠҠѠѠРϠΠ̠͠ˠʠɠɠȠǠƠŠŠĠà àààĠĠŠŠƠǠǠȠȠɠɠʠʠˠ̠̠͠͠ΠϠϠРѠѠҠӠӠԠՠՠ֠נؠؠ٠ڠ۠۠ܠݠޠߠ
+!"#$&'(*+,./0234678:;<>?@BCDEGHIKLMOPQRTUVWYZ[\^_`abdefghiklmnopqrsuvwxyz{|}~~~~}}}}||||{~~~~~}}}}}||||{{{{{zzzzyyyyyxxxxwwwwwvvvvuuuuutttttsssssrrrrrqqqqqpppppooooonnnnnmmmmmllllllkkkkkjjjjjiiiiihhhhhgggggfffffeeeeeedddddcccccbbbbbaaaaaa``````_____^^^^^^]]]]]]\\\\\\[[[[[[ZZZZZZYYYYYYXXXXXXWWWWWWVVVVVVUUUUUUTTTTTTTSSSSSSRRRRRRQQQQQPPPPPPOOOOOONNNNNMMMMMMLLLLLKKKKJJJJJIIIIHHHHGGGGFFFEEEEDDDCCCBBBAAA@@???>>>==<<;;;::99887766655443221100//..--,++**)((''&&%$$#""!!
+
+ ߠߠޠޠݠݠܠ۠۠ڠڠ٠٠ؠננ֠֠ՠՠԠԠӠҠҠѠѠРРϠϠΠ̠̠͠͠ˠˠʠʠɠȠȠǠǠƠƠŠĠĠàà ~~}|{zyxwvuttsrqponmlkjiihgfedcba`_^]]\[ZYXWVUTSRQQPONMLKJIHGFEEDCBA@?>=<;;:98765432210/.-,++*)('&%%$#"!
+ ߟޟݟܟ۟۟ڟٟ؟ן֟՟ԟԟӟҟџПϟΟ̟͟˟˟ʟɟȟǟƟşğß~}|{{zyxwvutsrqponmllkjihgfedcba`_^]\[ZYXWVUTSQPONMLKJIHGFEDBA@?>=<;987654310/.-,+)('&%$"!
+ ߞޞݞݞܞ۞ڞٞ؞מ֞՞ԞӞҞўўОϞΞ̞͞˞ʞɞɞȞǞƞŞĞÞ~}{zxwusrpnmkigfdb`_][YWUTRPNLJHFDBA?=;97531/-+)'%#"
ޝݝܝٝ؝ם֝ԝӝҝѝНϝΝ̝͝˝ɝȝȝǝƝŝĝÝ}|{yxwutrqpnmkjhgedba_^\ZYWVTRQOMLJHGECB@>=;986431/.,*)'%$"
+ߜݜܜۜڜٜל֜՜ԜӜҜќМϜΜ̜͜˜ʜɜȜǜƜƜŜĜÜÜĜŜƜƜǜȜɜʜ˜̜͜ΜМќҜӜԜ՜֜לٜڜۜܜݜߜ
+
!""#$$%&&''(())**++,,--..//001122233445566778899::;;<<=>>??@AABBCDDEFFGHHIJJKLMMNOOPQRRSTUUVWXXYZ[[\]]^_``abbcddeffghhiijkkllmmnnooppqqqrrssstttuuuuvvvvwwwwwwxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzz{{{{{{{||||||}}}}}~~~~ÝĝŝƝǝɝʝ˝̝ΝϝНҝӝԝ֝ם؝ڝݝޝߝ
+
!#%&(*,-/13468:<=?ACDFHJKMOQSTVXZ\]_acefhjlnoqsuwyz|~ĞƞǞɞ˞͞ϞўӞ՞מٞ۞ݞߞ
+
"$%')*,./124679:<=?@BCEFHIJLMOPQSTUWXY[\]^`abdefgijklmopqrsuvwxy{|}~ßşƟǟȟʟ˟̟͟ΟПџҟӟԟ֟ן؟ٟڟ۟ݟޟߟ
+
!!""##$$%%&&''((())**+++,,---..///0001122233344455566677788899:::;;;<<===>>???@@AABBCCDDEEFFGGHHIJJKKLMMNOOPQRRSTUUVWXYYZ[\]^__`abcdefghijklmnopqrstuvxyz{|}~ àĠƠǠȠɠʠˠ̠͠ΠϠРҠӠԠՠ֠נؠ٠ڠ۠ܠݠߠ
!#$%'()+,./0234679:<=>@ACDFGIJLMOPRSUVXY[\^_abdeghjkmnprsuvxy{|~¡ġšơǡȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡۡܡݡޡߡ
+
!!!""###$$$$%%%&&&&''''((((()))))*******++++++++,,,,,,,,,,-------------............/////////000000001111112222223333334444455555666677777888899999::::;;;;;<<<<<=====>>>>>>???????@@@@@@@@@@@@@AAAAAAAAAA@@@@@@@@@@@???????>>>>====<<<<;;;:::998887766554433221100//.--,++**)(''&%%$#"!!
+ ߡݡܡڡ١ס֡ԡҡѡϡΡ̡ʡɡǡšġ¡}{ywusqomkigeca_][YXVTRPNLJHFECA?=;:86431/-,*('%$"
ߠߠߠޠޠޠݠݠݠݠܠܠܠܠ۠۠۠۠۠ڠڠڠڠڠڠڠ٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠٠ڠڠڠڠڠڠڠڠ۠۠۠۠۠۠ܠܠܠܠݠݠݠݠޠޠޠޠߠߠߠ
"#$&'(*+-./124578:;<>?ABDFGIJLMOPRSUVXY[]^`acdfgijlmoqrtuwxz{|~¡áġġšơơǡȡȡɡʡʡˡ̡̡͡͡ΡϡϡССѡѡҡҡӡӡԡԡԡաա֡֡֡ססءءء١١١ڡڡڡۡۡۡۡܡܡܡܡݡݡݡݡޡޡޡޡߡߡߡߡߡߡߡߡߡޡޡޡޡݡݡݡܡܡܡܡۡۡۡڡڡڡڡ١١١١ءءءסססס֡֡֡աաաաԡԡԡӡӡӡӡҡҡҡѡѡѡССССϡϡϡΡΡΡ̡̡̡͡͡͡ˡˡˡʡʡʡɡɡɡȡȡȡǡǡǡơơơšššġġġáá¡¡¡~~~~~~~~~~~~}}}}}}}}|||||||{{{{{{zzzzzyyyyxxxxxwwwwvvvvvuuuuttttsssssrrrrqqqqpppppoooonnnnmmmmmlllkkkkjjjjiiihhhgggfffeeedddccbbaaa``__^^]]\\[[ZZYXXWWVVUTTSRRQQPOONMMLKKJIIHGGFEEDCCBAA@??>==<;;:9987766544322110//..--,++**))(('&&%%$$##""!
+
+ ߠߠޠޠݠܠܠ۠ڠڠ٠ؠؠנ֠ՠՠԠӠҠҠѠРϠϠΠ̠͠ˠˠʠɠȠǠƠŠĠĠà ~}|zyxwvutsrqpomlkjihgfedcb`_^]\[ZYXWVTSRQPONMLJIHGFEDCA@?>=<;:87654321/.-,+*)('%$#"!
+ ߟޟݟܟ۟ڟڟٟ؟ן֟՟ԟӟӟҟџПϟΟ̟̟͟˟ʟɟȟǟƟƟşğß~}|{zyxwvutsrqpnmlkjihgfedcba_^]\[ZYXVUTSRQONMLKIHGFECBA@?=<;:8765321/.-,*)(&%$#!
+ ߞޞݞ۞ڞٞ؞֞՞ԞҞўОϞ̞͞˞ʞȞǞƞŞÞ~}|{zyxwvutsrponmlkjihgfedcba`_^][ZYXWVUTSQPONMLKIHGFECBA@?=<;:8764321/.-+*)'&%#"!
+ ߝݝܝڝٝם֝ԝҝѝϝΝ̝ʝɝǝƝĝ}{ywusrpnljhfdb`^\ZXVTRPNLJHFDB@><:86420.,*(&$"
+ ߜݜۜڜ֜՜ӜќМΜ̜˜ɜȜƜĜÜ~~~~~~~~~~~~~~ÜŜǜɜ˜͜МҜԜٜ֜ۜݜ
+
!#%'*,.024579;=>@BCEFHIKLMOPQRSTUVWXXYZ[[\\]]]^^^^^_____^^^^^]]]\\[[ZZYYXWWVUTTSRQQPONMLKKJIHGFEDCBBA@?>=<;;:9876654332100/..-,,+**))((''&&%%$$##"""!!
+
+
+
+
+
+
+
+
+
!"#$%&'()*+,-.012345789:<=>@ABDEGHIKLNOQRTUWYZ\]_abdfgikmnprtuwy{}ĝƝȝʝ͝ϝѝӝ֝؝ڝܝߝ !$&)+.0358:?ABCDEFFGHIJKLMNOPQRRSTUVWWXYZZ[\]]^_``abbcddeffghhiijjkllmmnnooppqqrrsstttuuvvwwwxxyyyzzz{{{|||}}}~~~~ßßßßßğğğğşşşşşƟƟƟƟƟǟǟǟǟȟȟȟɟɟɟɟʟʟ˟˟˟̟̟͟͟͟ΟΟϟϟППџҟҟӟӟԟ՟՟֟ן؟؟ٟڟ۟ܟܟݟޟߟ
+
!#$%&'()*+-./0123456789:;<>?@ABCDEFGHIJJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiijklnopqrstuvwxyz{|}~ ĠƠȠɠˠ͠ϠѠӠՠנؠڠܠޠ
+ "$&(+-/1358:<>@BDGIKMOQSUWY[]_acegikmoqsuwyz|~¡áġơǡȡɡʡˡ͡ΡϡСѡҡӡԡ֡סء١ڡۡܡݡޡߡ
+
!""#$%&'()*++,-./0012344567889:;;<==>??@AABCCDDEFFGGHHIIJJKKLLMMNNOOOPPQQQRRSSSTTTUUUVVVWWWWXXXXYYYZZZZZ[[[[\\\\\]]]]^^^^^^_____``````aaaaaaabbbbbbbccccccccdddddddddeeeeeeeeefffffffffffgggggggggghhhhhhhhhhhhiiiiiiiiiiijjjjjjjjjjjjkkkkkkkkkkkkkkkkkklllllllllllllllllllkkkkkkkkkkkjjjjjjiiiihhhhgggfffeeddcccbaa``_^^]\\[ZYYXWVUTSRQPONLKJIHFEDBA?><;986421/-+*(&$"
+ޡۡ١֡ԡѡΡ̡ɡơġ~|zwusqomkigedb`^\[YWVTSQPNMLJIHGEDCBA@?>=<;::9877655433221100///..---,,,,++++****)))))((((('''''&&&&&%%%%%$$$$$####"""!!!! !"#$$%&'()*,-./01345689:<=?@ACDFGIJLNOQRTVWY[\^`bceghjlnoqsuwxz|~¡áġơǡɡʡˡ͡Ρϡѡҡӡԡ֡סء١ڡܡݡޡߡ
+
+
+
+ ߡߡޡޡݡݡܡܡۡۡڡڡ١١ءءס֡֡աաԡԡӡӡҡҡѡѡССϡϡΡΡ̡̡͡͡ˡˡʡʡʡɡɡȡȡǡǡơơơššġġġáá¡¡¡ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡϡΡΡΡΡΡΡΡΡΡΡ̡̡̡̡̡͡͡͡͡͡͡͡ˡˡˡˡʡʡʡʡʡɡɡɡɡȡȡȡǡǡǡǡơơơššššġġġááá¡¡¡~~~}}}||{{{zzyyxxxwwvvuutssrrqqpoonnmllkjjihhgffeddcbba``_^^]\\[ZZYXXWVVUUTSSRRQQPPOONMMLLLKKJJIIHHHGGFFEEEDDDCCBBBAA@@@??>>>==<<;;::9988776655443321100/..-,,++*))('&&%$$#""!
+
+ ߠޠޠݠܠ۠ڠ٠ؠנ֠ՠԠӠҠѠРϠΠ̠͠ˠʠɠȠǠƠŠĠà ~}|{yxwutsqpomlkihfedba_^\[ZXWUTRQONLKIHFECB@?=<:9764310.-+*('%$"! ߟޟܟ۟ڟٟ؟֟՟ԟӟҟџПΟ̟͟˟ʟɟȟǟƟşğß~}||{zyxwwvutsrqponmmlkjihgfedcba`_]\[ZYXWVUTSQPONMLKIHGFECBA@?=<;:87653210.-,*)('%$#!
+ ߞݞܞ۞ٞ؞מ՞ԞӞўОϞ̞͞˞ɞȞǞŞĞÞ~}{zxwvtsqpomljigfecb`_^\[YXVUTRQONLKJHGEDCA@>=;:9764310/-,*)'&$#"
+ ޝܝٝ؝֝՝ӝѝНΝ̝˝ɝȝƝĝÝ~|ywusqomjhfda_][XVTQOMJHFCA?<:7520.+)&$!
ߜݜڜ֜ӜќϜ̜ʜȜƜÜ~}{zxwutsqpomlkjhgfedcba`_^]]\[ZYYXWWVVUUTTSSRRRRQQQQQQPPPPPPQQQQQQRRRSSSTTUUVVWWXYYZ[[\]^__`abcdefghijklmnopqrtuvwyz{|~ĜƜȜʜ̜ΜМҜԜ֜ۜݜߜ
#%')+-/13468:<=?ACDFGIJLMNPQRSTUVWXYZ[[\]]^^___``````````___^^]]\[[ZYXXWVUTSQPONMKJIGFECB@?=<:975420/-+*(&$#!
+ ߜݜܜڜٜל֜ԜӜќМϜ̜͜ʜɜȜƜŜĜĜŜǜɜ˜̜ΜМҜԜٜ֜ۜݜߜ
!$&(+-/2469;=@BEGJLNQSVX[]`begjloqtvy{~Ýŝȝʝ͝ϝҝԝםڝܝߝ
+ #%(+-0257:<>ACFHKMPRUWY\^acehjmoqsvxz|ÞĞŞƞǞȞɞɞʞ˞˞̞͞͞ΞΞϞϞОООўўўҞҞҞҞҞӞӞӞӞӞӞӞӞӞӞӞӞӞӞӞҞҞҞҞҞҞҞўўўўўўОООООϞϞϞϞϞΞΞΞΞΞ̞̞̞̞̞͞͞͞͞͞˞˞˞˞˞ʞʞʞʞʞɞɞɞɞȞȞȞȞȞǞǞǞǞƞƞƞŞŞŞŞĞĞĞÞÞÞ~~}}||{{zzyyyxxxwwwvvvvvvuuuuuuuuuuuuvvvvvwwwxxxyyzz{{||}~~ÞĞŞŞƞǞȞɞʞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ڞ۞ܞݞޞߞ
+
!"#$&'()*+-./012346789:;<=>?@ABDEFGHIJKLMNOPQRSUVWXYZ[\]^_`bcdefghiklmnoprstuvwyz{|}ßşǟɟ˟͟ϟџӟ՟ןٟ۟ݟߟ
"%'*-0258;=@CFIKNQTWZ]_behknqtvy|àŠȠˠ͠РҠՠؠڠݠߠ "$&(*,.13579;=?ACEGIKLNPRTVXZ[]_acdfhjlmoqstvxy{}~¡ġšǡɡʡ̡͡ϡѡҡԡաסءڡۡݡߡ
+
!!"##$$%&&''(())**+++,,--...//00011222333445556667788899:::;;<<===>>??@@@AABBCCDDEEFFGGGHHIIJJKKLLMMNNOOPPQQRRSSTUUVVWWXXYYZZ[[\\]]^^__``abbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyyzz{{|||}}~~~~}}|{zyxwvutsqpomlkihfeca`^\ZXWUSQOMJHFDB?=;8631/,)'$" ߡܡ١סԡѡΡ̡ɡơġ~}{zywvutsrqponmmlkkjiihhhgggfffffeeeeeeeeffffffgggghhhiiijjkkkllmmmnnoooppqqqrrrssstttuuuvvvvvwwwwwwwxxxxxxxxxxxwwwwwwwvvvvvuuuutttsssrrrqqqpppooonnmmmllllkkkjjjjjiiiiiiiiiiiiiiiiiijjjkkkllmmnnoopqrrstuvwxyz{|}~¡ġơȡʡ̡Ρϡѡӡաס١ڡܡޡ
+ !"#$%%&'()**+,--.//01123344566778899::;<<<==>>??@@AAABBCCCDDDEEEFFFGGGGHHHHIIIIJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJIIIIHHHHGGGGFFFEEEDDDCCBBBAA@@@??>>==<<<;;::998877665544433221100//..--,,+++**))(('''&&%%%$$###""!!!
+
+
+ ߡߡޡޡݡݡܡܡۡۡۡڡڡ١١ءءءסס֡֡֡աաաԡԡԡӡӡӡӡҡҡҡҡѡѡѡѡСССССϡϡϡϡϡϡϡϡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡߡߡߡޡޡޡݡݡݡܡܡܡۡۡۡڡڡڡ١١١١ءءءءסססס֡֡֡֡֡աաաաաաԡԡԡԡԡԡԡӡӡӡӡӡӡӡӡҡҡҡҡҡҡҡҡҡҡѡѡѡѡѡѡѡѡѡѡССССССССϡϡϡϡϡϡΡΡΡΡΡΡ̡̡̡̡͡͡͡͡͡ˡˡˡˡʡʡʡʡɡɡɡɡȡȡȡǡǡǡǡơơơơšššġġġġáááá¡¡¡¡¡¡¡¡¡áááááġġġġġššššššơơơơơơơơơơǡǡǡǡǡǡǡǡǡǡơơơơơơơơšššššġġġġáááá¡¡¡~~}||{{zzyxxwwvvuuttssrrqqppoonnmmllkkjjiihggffeeddcbba``__^]]\[[ZYXXWVUUTSRQQPONMMLKJIHHGFEDCCBA@?>==<;:9987655432210//.--,++*))(''&&%$$##""!
+
+ ߠޠݠݠܠ۠ڠ٠ؠנ֠ՠԠӠҠѠРϠϠΠ̠͠ˠʠɠȠǠƠŠĠ }{zxvusqpnljigecb`^\ZYWUSQONLJHFDBA?=;975310.,*(&$"
+ߟݟܟڟٟן֟ԟӟџПϟ̟͟ʟɟȟƟşğ~}}|{zzyxwwvutssrqponnmlkjihggfedcba`_^]\[ZYXWVUTSRQPNMLKJIHGEDCBA@>=<;:87653210.-,*)('%$#!
+ޞܞ۞ٞ؞֞՞ӞўОΞ͞˞ʞȞƞŞÞ~|zywvtsqpnmkjhgedba_^\[YXVUSRQONLKIHFECB@?=<:875421/.,+)'&$#!
ߝݝٝם՝ԝҝНΝ̝ʝȝƝĝ}zxvtrpnkigec`^\ZXUSQOMJHFDA?=:8631/-*(%#! ߜܜڜל՜ҜМ͜˜ȜƜÜ~|zxvtrpnljhfdb`^\ZYWUSRPNMKJHGEDBA?>=<:9876543210/.--,++*))(('''&&&&%%%%%%%%%&&&&'''(())*++,-../012345689:;<>?@BCEFHIKMNPQSUWXZ\^`acegikmoqsuwy{}ĜƜȜ˜͜ϜќӜ՜ڜܜޜ
"#%')*,-/1245689;<=>@ABCDEFGHHIJKKLLMMNNNNOOOOOONNNNMMLLKJJIHGFEDCBA?>=;:875320.,*(&$" ޜܜٜ֜ӜќΜ˜ȜƜÜ}zxvtrpnljhfdba_][ZXVUSRPOMLKIHGEDCBA?>=<;:98876544321100//..--,,,+++****************++++,,,--..//011233456789:;<=>?@ABDEFGIJLMOPRSUVXZ[]_abdfhjlnprtvxz|~ÜƜɜ˜ΜќԜٜ֜ܜߜ
+
!$'*-/258;>ADGILORUX[^`cfiloqtwz}ĝǝɝ˝ΝНӝ՝؝ڝܝߝ
"#%')*,./124578:;=>@ABDEFHIJKLNOPQRSTUVWXYZ[\]]^_`aabccdeefgghhiijjjkkklllmmmmmmmmmmmmmmmmmlllkkkjjiihhgffeddcba`_^]\[ZYXWVUTRQPOMLKIHGEDBA?><;9865320/-,*)'&$#!
+ ߝޝܝڝٝם֝՝ԝҝѝНϝ̝͝˝ɝȝǝƝĝÝÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ڝܝݝޝߝ
+ "#$%&'()*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOQRSTUVWXYZ\]^_`acdefgijklnopqstuwxy{|}ĞƞȞʞ̞͞ϞўӞ՞؞ڞܞޞ !$'*-0369ADGJMPSVY\_behknqsvy| ŠǠʠ͠ϠҠԠנڠܠߠ
!#&(+-02579<>ACEHJMOQTVY[]`bdgiknprtwy{~¡ġơǡɡʡ̡͡ϡСҡӡԡ֡סءڡۡܡݡޡ
+
+
+
!!""##$$%&&'(()**+,,-./001234567789:;<=>?@BCDEFGHIJKMNOPQRSUVWXYZ\]^_`abdefghijkmnopqrstuvwxyz{|}~}|zywvtsqonljhfeca_][YWUSQOMKHFDB@=;97420-+)&$"
+ޡܡڡء֡ԡҡСΡ̡ʡɡǡšġ¡¡áġššơǡȡɡɡʡˡˡ̡͡͡ΡϡϡССѡѡҡҡҡӡӡӡԡԡԡԡԡաաաաաաաաաաաաաԡԡԡԡԡӡӡӡӡҡҡҡѡѡѡССϡϡϡΡΡΡ̡̡̡͡͡ˡˡˡʡʡʡɡɡɡɡȡȡȡȡȡǡǡǡǡǡǡǡǡǡǡǡȡȡȡȡȡɡɡɡʡʡˡˡ̡̡͡ΡΡϡСѡѡҡӡԡա֡סء١ڡۡܡޡߡ
+
!#%&()+-.0134678:;=>?ABCDFGHIJKLNOPQRSSTUVWXYYZ[\\]^^_``abbccddeeffgghhhiijjjkklllmmmmnnnooooppppqqqqrrrrrrsssssssstttttttttttttttttttsssssssrrrrrqqqqpppooonnnmmlllkkjjiiihhggffeeddcbbaa``__^^]]\[[ZZYYXXWWVVUTTSSRRQQPPPOONNMMLLLKKJJJIIHHHGGGFFFEEEDDDCCCBBBBAAAA@@@????>>>====<<<;;;;:::999888777666554443332211100//...--,,+++**))(((''&&%%%$$##"""!!
+
+
+
+ ߡߡߡߡߡޡޡޡޡޡޡݡݡݡݡݡݡݡܡܡܡܡܡܡۡۡۡۡۡۡڡڡڡڡ١١١١ءءءססס֡֡֡աաաԡԡӡӡҡҡѡѡССϡϡΡΡ̡̡͡ˡˡʡɡɡȡǡǡơššġáá¡~}|{{zyxwvutsrqponmljihgfedcba`_^][ZYXWVUTSRPONMLKJIHGEDCBA@?>=<;9876543210/.-+*)('&%$#"!
+ ߠޠݠܠ۠ڠ٠ؠננ֠ՠԠӠҠѠРϠΠΠ̠͠ˠʠɠȠǠƠƠŠĠà ~}{zxwutrqonljigedb`^][YWUTRPNLJHFDBA?=;97531/-+)'%#!
ߟݟܟڟٟן֟ԟӟҟПϟΟ̟˟ʟɟǟƟşğß~}|{zyxxwvutsrqponmlkjihgfedcba`^]\[ZYXWVUTSQPONMLKIHGFEDBA@?><;:98654310/-,+)('&$#!
+ ޞܞڞٞמ՞ӞўϞ͞˞ɞǞŞÞ~|zxvtrpnljhgeca_]\ZXVTSQOMLJHFECA@><;986431/.,+)'&$#!
+ ޝܝڝ؝֝ԝѝϝ͝˝ɝƝĝ}zwuromjgdb_\YWTQNLIFC@>;8530-*'$" ޜٜۜ֜ӜМ͜˜ȜŜ~|ywtqoljgeb`][XVSQOLJHECA?<:86420-+)'&$"
+
+
!#%')+.02479;>@CEHJMORUWZ]`behkmpsvy|ŜȜ˜ΜМӜٜ֜ܜޜ
+
!"$%'()+,-./01223445556666666665554432210/.-,+*('&$#!
+ݜۜ՜ҜϜ̜ʜǜĜ}zwtqnkhfc`]ZXUROMJHEB@=;8631.,*'%#
+ ߛޛݛܛۛڛٛٛ؛כ֛֛՛ԛԛӛӛқққћћћЛЛЛЛЛЛЛЛЛЛЛЛЛћћћқққӛӛԛ՛՛֛כ؛؛ٛڛۛܛݛޛ
+ #&)+.147:=@CFILORUY\_beilorvy|ÜƜʜ͜МӜٜ֜ܜߜ
+"$'*,/1469;>@CEHJMORTWY[^`cegjlnqsuxz|ÝĝƝȝɝ˝̝͝ϝНѝӝԝ՝ם؝ٝڝܝݝޝߝߝޝݝݝܝڝٝ؝ם֝՝ԝӝҝѝНϝΝ̝˝ʝɝȝƝŝĝÝ}|zywvtsqpnmkjhgedba_^\[YXVUSRPOMLJIGFDCA@?=<:98654210.-,+*('&%$#"!
+
+
+
+
+
!!!!"""###$$$%%%&&'''(())**++,,--../00112234455677889::;;<==>??@@ABBCDDEFFGGHIIJKKLMMNOOPQQRSTTUVVWXYYZ[\\]^__`abbcdeffghijkklmnopqqrstuvwxxyz{|}~ÝĝŝƝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝܝݝޝߝ
+
"#%')+-/1358:<>ACEHJLOQTVY\^acfilnqtwz}Þƞɞ̞ϞӞ֞ٞܞߞ #&),/369<@CFILPSVY]`cfjmptwz}ğǟ˟Οџ՟؟ܟߟ #'*-147;>BEHLORVY\`cfimpswz}ĠȠˠΠѠԠؠ۠ޠ
+
#&),/258;>ADGJMPSVY[^adgjlortwz}ášǡɡʡ̡ΡСҡԡաס١ڡܡޡߡ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
"#$%&')*+,./0234679:;=>@ACDFGIJLNOQRTUWXZ\]_`bcefhjkmnpqstvwyz|}}{yxvtrpnljigeca_][YWUSQOMKIGECA?=;:86431/.,*)'&%#"! !!""#$$%%&&''(()))***+++++,,,,,,,,,,,,+++++***)))(((''&&%%%$$##""!! !!"#$%&'()*+,./01345789;<>?ABDEGHJLMOPRSUWXZ[]_`bcefhiklmopqstuwxyz|}~~~}}}||{{{zzzyyxxxwwvvvuuutttsssrrrqqpppooonnnmmmlllkkkjjjiiihhgggfffeedddcccbbaa```__^^]]]\\[[ZZYYXXXWWVVUUTTSSRRRQQPPOONNNMMLLKKKJJIIIHHGGGFFFEEEDDDCCCBBBAAA@@@???>>>===<<<;;;:::999887776655444332211000//..--,,++**))((''&&%%$$##""!! 0//..--,,,++**))((''&&&%%$$###""!!! !!!!""""#####$$$$%%%%%%&&&&&''''''(((((()))))))******+++++++,,,,,,,--------........../////////////////0000000000//////////////.......-----,,,,,++++***))))((('''&&&%%%$$$###""!!!
+
+ ߡޡݡܡۡۡڡ١ءס֡աԡԡӡҡѡСϡΡ̡̡͡ˡʡɡȡǡơšġá¡}|{yxwutsqpomljihfecba_^\[ZXWUTRQONMKJHGEDBA?>=;:875421/.,+)(&%$"!
+ ߠޠܠ۠٠ؠ֠ՠԠҠѠϠΠ̠ˠɠȠǠŠĠ ~}|zyxwvtsrqpnmljihgedba`^]\ZYWVTSQPNMKJHGECB@?=;:865310.,+)'&$"! ߟޟݟ۟ڟٟ؟֟՟ԟӟџПϟΟ̟͟ʟɟȟǟƟşğß~}|{zzyxwvutsrqponmlkjihgfecba`_^\[ZYWVUTRQPNMLJIHFECBA?><;9865320/-,*('%$"
+ߞݞڞ؞֞ԞҞϞ͞˞ɞƞĞ}zxuspnkifda_]ZXUSQNLJHECA?=:86420.,*(&$" ޝܝٝ؝֝ԝӝѝϝΝ̝ʝȝǝŝÝ~{yvsqnkifca^[XURPMJGDA>;852/,)&" ޜۜלԜќ͜ʜƜÜ~{wtqmjgc`\YVROLIEB?<952/,) ߛݛۛٛכԛқЛΛ̛ʛțǛśÛÛśǛɛ̛ΛЛӛ՛؛ڛݛߛ
+#&*.159=@DHLPTX[_cgkosw{ĜȜ̜ϜӜלڜޜ
+
"%'*-/2479<>@BDFHJLMOPRSUVWXYZ[[\\]]]]]]]]\\[[ZYXWVUSRPNMKIGDB@=;8520-)
+ޜٜ՜ќ̜ȜĜ|xtokgc_ZVRNJFB>;73/,(%!
+ߛݛ֛ۛٛԛӛћϛ͛˛ʛțǛśěÛśƛǛɛʛ˛͛ΛЛћӛԛ֛؛ٛۛݛޛ
"$&(*,.02468:<>@BDFHJLOQSUWY\^`begiknpruwy|~Ŝǜɜ˜͜ϜќԜ֜ڜܜޜߜ
!""#$$%&''())*++,-../00123345667899:;<<=>>?@AABCCDEEFFGGHHIIJJKKKLLLLMMMMMMMMMMMLLLLKKKJJIIHHGFFEDCCBA@?>=<;:987653210.-,+)('%$#!
+ ߜݜܜٜۜל՜ԜӜќМϜΜ͜˜ʜɜȜǜƜĜÜÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜לٜڜۜܜݜޜߜ
+
+
+
!""#$$%&&'(()**+,,-../00112334556677899::;;<<==>>??@AABBCCDDEEFFGGHHIJJKKLLMNNOPPQQRSSTUVVWXXYZZ[\]]^_``abcddefgghijkklmnoopqrsstuvvwxyzz{|}}~ÝĝƝǝȝɝ˝̝͝ϝНҝӝԝ֝םٝڝܝݝߝ
"$&(*,.13579<>@BDGIKMPRTWY[^`begilnpsuwz|ĞǞʞ͞ϞҞ՞؞۞ޞ #'*-148;?BFIMPTW[^bfimptx{ğȟ̟ϟӟןڟޟ
+ $'+/26:=AEHLPSW[^bfimqux|àƠʠΠѠՠ٠ݠ "%),037:>AEHLORVY]`cfjmpswz}¡šǡʡ̡Ρѡӡ֡ءڡܡߡ
+
!!""##$$$%%&&&''''((()))))****++++,,,,----....///000112223344556677889::;;<=>>?@AABCDEEFGHIJKLMNOPQRSUVWXYZ\]^_abcefgijlmnpqstvwyz|}¢âĢŢƢǢȢɢʢˢ̢͢ϢТѢҢҢӢԢԢբ֢֢עآآ٢٢ڢڢۢۢܢܢݢݢޢޢߢߢ
+
+
+ ߢݢۢ٢֢ԢҢϢ͢ˢȢƢâ}{zxwutsqponmlkjiihggffeeeddddddddddddeeeffggghhiijkkllmmnooppqrrssttuuvvvwwwxxxyyyyyyyyyyyyyyxxxxwwwvvuuttsrrqqponnmllkjihhgfeedcbba`__^]]\\[ZZYYYXXXWWWWWWVVWWWWWWXXYYYZ[[\]]^_`abcdefghiklmopqstvwxz{}~¢¢¢¢¢¢¢¢¢¢¢âââââââââââââââââââââââââââââââ⢢¢¢¢¢~~}}||{{zzzyyxxwwvvuuuttsssrrqqqppooonnnmmmlllkkkjjjjiiihhhggggfffeeeedddccccbbbaaa```__^^^]]]\\[[ZZZYYXXWWVVVUUTTSSRRQQPPOONNMMLLLKKJJIIHHGGGFFEEDDDCCBBBAA@@@???>>===<<<;;:::99988777665554433221110SSSRRQQQPPPOONNNMMMLLLKKKJJJIIIHHHHGGGGFFFFEEEEEDDDDDDCCCCCCCBBBBBBBBAAAAAAAAAA@@@@@@@@@????????>>>>>>>>>========<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;<<<<<<<<<<<========>>>>>>??????@@@@@@AAAAAABBBBBBBCCCCCCDDDDDDDEEEEEEEFFFFFFFGGGGGGHHHHHHHIIIIIIJJJJJJKKKKKKLLLLLLMMMMMMNNNNNNOOOOOOPPPPPPQQQQQQRRRRRRSSSSSSTTTTTUUUUUUVVVVVWWWWWWWXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWVVVVVVVVVVVVVVVUUUUUUTTTTSSSSRRRQQQPPOONNMMLLKKJJIHHGGFEEDCCBA@@?>>=<;;:9887654432110/..-,+**)(''&%$##"!
+ ߡޡܡۡڡ١ءסաԡӡҡѡϡΡ̡͡ˡʡȡǡơšġ¡~|{yxvtsqpnlkigedb`^][YWUSRPNLJHFDB@><:86420.,*(&$"
ޠܠڠؠ֠ӠѠϠ͠ˠɠǠŠà}|zywvtsrpomlkihfedba`^]\ZYXVUTRQPNMLJIHFEDBA@>=<:98654210.-,*)'&%#"!
+ ߟޟݟܟ۟ڟٟ؟ן֟՟ԟӟҟџПϟϟΟ̟͟˟ʟɟȟǟƟşşğß~}|{yxvutrqomljigedb`_][YXVTRQOMKIGEDB@><:86531/-+)(&$"
+ ߞޞܞڞ؞֞ԞҞОΞ̞ʞȞƞŞÞ}{ywtrpnkigeb`^\YWUSQNLJHFCA?=;86420.,)'%#!
+ ޝܝڝ؝֝ԝҝНΝ̝ʝȝƝĝ}zxvsqnligdb_]ZWUROMJGDB?<9630-*'$!ݜٜ֜ҜϜ˜ȜĜ}yuqnjfb^ZVROKGC?;740,($!
+ ݛڛכӛЛ͛ʛǛě}{yxvtsqpnmkjigfedcba``_^]]\\\[[[[[[[[[[\\]]^_`abcdeghjkmoqsuwy|~ƛʛϛӛ؛ܛ
"'-27=BGMRX]chnsx~ǜ̜ќ֜ڜߜ"&)-036:>=<<;::98877665443322211000////....------------------....///00011122334456677899:;;<=>>?@ABCCDEFGHIJKLMNNOPQRSUVWXYZ[\]^_`abcdefghijklnopqrrstuvwxyz{|}}~ÜÜĜŜƜƜǜȜɜɜʜ˜˜̜̜͜͜ΜΜϜϜММќќќҜҜҜӜӜӜԜԜԜ՜՜՜՜֜֜֜֜לללٜٜٜڜڜڜۜۜۜܜܜݜݜݜޜޜߜߜ
+
!"#$%&'()*+,-./00123456789::;<=>>?@ABBCDDEFGGHIIJKKLMMNNOPPQQRSSTUUVVWXXYZZ[\\]^__`aabcddefghhijklmmnopqrsstuvwxyz{|}}~ÝĝŝƝǝȝɝ˝̝͝ΝϝНѝҝӝԝ֝ם؝ٝڝܝݝޝߝ
+
!"$%&')*+-./0234678:;=>?ABDEFHIKLNOQRSUVXY[\^_abdfgijlmoprtuwxz|}Ğƞɞ˞ΞОҞ՞מڞݞߞ !$'*-147:=ADGJNQTW[^aehkorvy|şɟ͟Пԟ؟۟ߟ "&*-159=ADHLPTX[_cgkorvz~ Ơɠ͠Ѡՠؠܠ #&*.159=@DHLOSW[_bfjnquy}áơʡ͡ѡԡסۡޡ
+!$&(+-/13579;=?@BDEGHJKLNOPQRSUVVWXYZ[\\]^^_``aabbccddeefffgghhhiiijjkkkllmmnnnooppqqrssttuvvwxxyz{||}~¢ĢŢǢȢʢ̢͢ϢТҢԢբעآڢܢݢߢ
+
!#$%'()*,-.012345789:;<=>?@ABBCDEFFGHHIJJKKLLLMMMNNNNNNNNNNNNNNMMMLLKKJJIIHGGFEDCBA@?>=<;:9765421/.-+*('%$"
+ ߢݢۢڢآעբԢҢѢϢ̢ˢʢȢǢƢĢâ¢~}|{{zyyxwwvvvuuutttttttttuuuvvwwxyyz{|}~âŢƢȢɢˢ̢ϢѢҢԢբ֢ע٢ڢۢܢݢޢߢߢߢޢޢݢݢܢܢۢۢڢ٢٢آآעע֢֢բբԢԢӢӢҢҢѢТТϢϢ̢̢͢͢ˢˢʢʢɢȢȢǢǢƢƢŢŢĢâ⢢~~}}||{{zzyyxxwwvuuttssrrqqppoonnmmllkkjjjiihhgggfffeedddcccbbbaaa```____^^^]]]\\\[[[ZZZYYYXXXWWWVVVUUTTTyyyxxxxxxwwwwwwwvvvvvvvuuuuuuuuttttttttssssssssssrrrrrrrrrrrqqqqqqqqqqqqqqqqqqpppppppppppppppppppppppppppppoooooooooooonnnnnnnnmmmmmmmmlllllllkkkkkkkkjjjjjjjjjiiiiiiiiiiiiihhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiijjjjjjjjjkkkkkkllllllmmmmmmnnnnnoooooppppqqqqqrrrrssssttttuuuvvvvwwwxxxyyyzzz{{{|||}}~~~~|{zywvusrqpnmljihgedca`_^\[ZYWVUTRQPOMLKJIGFEDCA@?>=<:987653210/.,+*)('%$#"!
+ ߡޡݡۡڡ١ס֡աԡҡѡСϡ̡͡ˡɡȡǡơġá¡}{ywusqpnljhfdb_][YWUSQNLJHFCA?<:8631.,*'%#
+ ߠݠڠؠՠҠР͠ˠȠƠà~|zxvtrpnljhfdb`^][YWUTRPNMKIGFDBA?><:975421/.,+)(&%#"
+ ߟޟޟݟܟ۟۟ڟٟٟ؟ןן֟՟՟ԟӟӟҟџџППϟΟΟ̟̟͟͟˟ʟʟɟɟȟȟǟǟƟƟşşğğß}{ywvtrpnljheca_][XVTROMKIFDB?=;9642/-+)&$"
ߞޞܞ۞ٞמ֞ԞӞўОΞ͞˞ʞȞǞŞĞ}{ywusqomkigeca_][YWUSQOMKHFDB@>;97530.,*'%#
+ ޝܝٝ֝ԝѝΝ̝ɝƝĝ}zxurpmkhec`][XUSPMKHEC@=:752/,) ޜۜלԜМ͜ɜƜ|xtplhd`\XTPLHD@;73/+'#
+ܛ؛ԛϛ˛ǛÛ~{wtqmjgc`]ZWTQNKHEB@=:8531.,*'%#!
+
#%(+-036:=@DGKNRVZ^bfjosx|ěʛϛ՛ۛ$*06=CIPV\ciov|ŜʜМ֜ۜ $(,/37:=ADGILOQSUWY[]^_abccdeeeeeeeddcbba_^][ZXVTRPNLIGDB?<9630-*
+ݜٜ֜ҜΜʜǜÜ}zwtqoljgec`^\ZXVTRPNLJIGEDBA?>=;:986543210/.-,,+*))(''&%%$$###"""!!!!!!!!!!!!"""##$$%%&''()*+,-./01345789;<=?@BCDFGIJKMNOQRSTUVWXYZ[\]]^^__`````````___^]]\[ZZYXWVTSRQONMKJHGEDBA?><;9864310.-+*)'&$#"
+ ߛݛۛڛ؛כ՛ԛқћϛ̛͛ʛɛǛƛěÛÛÛěśƛǛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛܛݛޛߛ
+
!"#$%&'()*+,-./01234456789::;<=>??@ABBCDEFFGHIIJKLLMNOOPQRRSTTUVWWXYYZ[[\]]^^_``aabccddeeffghhiijjkkllmmnnooppqqrrssttuuvwwxxyzz{{|}~~ÜĜŜƜȜɜʜ˜̜͜ΜϜМҜӜԜ՜֜לٜڜۜܜݜޜߜ
+
!"#$&'()*+,-./023456789:;<=>?@ABCCDEFGHIIJKLMMNOPQQRSSTUVVWXXYZZ[\\]^^__`aabccdeefgghiijkklmmnoopqrrstuvvwxyzz{|}~ĝŝƝȝɝʝ̝͝ΝНѝҝԝ՝ם؝ڝݝޝ
"#%'(*+-/0235689;<>?ABDEGHJKMNOQRTUWXY[\]_`bcdfghjklnoprstuwxy{|}~ÞĞŞƞǞǞȞɞʞ˞̞͞ΞΞϞОўҞҞӞԞ՞՞֞מ؞؞ٞڞ۞۞ܞݞޞޞߞ
+
"$&(*,.02469;=?BDFHKMORTVY[]`begjloqtvy{~şȟ˟Οҟ՟؟۟ޟ #&)-037:=ADGKNQUX[_beilosvy}àǠˠΠҠ֠ڠޠ
+#'+048@BDFHJKMOQSUWY[\^`bdegijlnoqrtuwxy{|}~~}|zywvtsqomkjhfdb`][YWURPNKIFDB?=:8530.+)&$! ޢݢܢڢ٢آ֢բԢӢҢѢТТϢ̢͢͢ˢˢʢʢʢɢɢɢɢȢȢȢȢȢȢȢȢȢȢȢɢɢɢɢɢʢʢʢˢˢˢ̢̢͢͢͢ϢϢТТѢѢѢҢҢҢӢӢӢԢԢԢբբբբ֢֢֢֢֢עעעעעעעעעעעעעע֢֢֢֢֢բբբԢԢԢӢӢҢҢѢѢТТϢϢ̢͢͢ˢˢʢɢɢȢǢƢŢŢĢ⢢ĢƢǢɢˢ͢ϢѢҢԢ֢آڢܢޢߢ
+
+
+ ߢߢޢݢݢܢۢۢڢ٢٢آעע֢բբԢӢӢҢѢѢТϢϢ̢̢͢ˢˢʢɢɢȢȢǢǢƢƢŢŢĢĢâ⢢~~~}}}}||||{{{{{zzzzzyy¢¢¢ââĢĢĢŢŢƢƢǢǢȢȢȢɢɢʢʢˢ̢̢͢͢ϢϢТѢѢҢӢӢԢԢբ֢֢עآآ٢ڢڢۢܢܢݢޢޢߢߢߢޢݢܢۢڢ٢آעբԢӢҢТϢ̢ˢɢȢƢŢâ¢}|zxwutrpomljigfdcb`_]\[YXWUTSQPONLKJIGFEDCA@?>=;:987643210.-,+*)'&%$#!
+ ߡޡݡܡڡ١ءסաԡӡҡСϡΡ̡ˡɡȡơšġ¡}{xvtromkhfda_]ZXUSPNLIGDA?<:752/-*'%"
+ݠڠנԠѠϠ̠ɠƠĠ}{yvtromkifdb`^\ZWUSQOMKIGECA?=;976420.,*)'%#"
+ ߟޟݟܟܟ۟ڟٟ؟ן֟՟՟ԟӟҟџџПϟϟΟ̟͟͟˟˟ʟʟɟȟȟǟǟƟƟƟşşğğßßß~|{ywusrpnljhfdb`^\ZXVTROMKIGECA><:8641/-+)'$"
ߞݞ۞ڞ؞֞ԞӞўϞ͞˞ʞȞƞĞÞ~|zxvtrpnljhfeca_][YVTRPNLJHFDB@><97531/,*(! ݝ؝՝ҝН͝ʝǝŝ|yvsqnkheb_\YVTQNKHEB?<952/,) ݜٜ֜ҜϜ˜ȜĜ}yuqmiea]YUQMIEA=840,(#
+ޛڛ՛ћ͛țě{wsokgc_\XTPLIEA>:730,)
+ ߚݚܚښؚך֚ԚӚҚњКϚΚ͚͚̚˚˚˚ʚʚʚʚʚʚʚʚʚ˚˚͚͚̚ΚϚКњҚӚ՚֚ךٚۚܚޚ
+
!$(+/36:>BFJNRVZ^bgkotx}ƛ˛Л֛ۛ
$*05;AGMSY_ekqv|ǜ͜Ҝלݜ
"&*-148;>ADFIKNPRTVWYZ\]^__``aaaaaaa`__^]\[ZXWVTRQOMKIFDB@=;8630.+(%"ߜܜٜ֜ԜќΜ̜ɜǜŜ~|{zyxwutsrqonmljihgfdcba_^][ZYWVUSRQONLKIHFDCA?=;98631/-+(&$!ޛۛ؛ԛћ͛ʛƛÛ~{yvtqomkhfdb`^][YWVTSQPNMLJIHFEDCBA@>=<;:987654320/.-,+*('&%$"!
+
+
!"#$&'()*,-./02345789:<=>?ABCDEGHIJKMNOPQRSTUWXYZ[\]^_`abcefghijklnopqrtuvwyz{}~Ûśƛțɛʛ̛͛ϛЛқӛԛ֛כٛڛۛݛޛߛ
+
+
!"#$%&'()*+,-./02345689:;=>?ABCEFGIJLMNPQSTUWXZ[\^_abcefgijlmnpqrtuvxyz{}~ÜŜƜǜȜʜ˜̜ΜϜМќҜԜ՜֜לڜۜܜݜޜߜ
+
!"#$&'()*+-./012456789:;<=>?@ABCDEFGHIJJKLMNOOPQRRSTUUVWWXYYZZ[\\]]^^_``aabbccddeefffgghhiijjkkllmmnnooppqqrrsttuuvwwxyyz{||}~ĝŝǝɝʝ̝ΝНҝӝ՝םٝݝߝ
+!#%(*,.1358:BFIMQUY]aeimptx|¡ơʡ͡ѡա١ܡ !%(,/369=@CFJMPSVY\_behknqtwy|âŢǢɢˢ̢ТҢӢբעآڢܢݢߢ
!"$%&()+,./124679;<>@ACEGIJLNPRTVWY[]_acegikmoqsuwy{}£ããģģţţƣƣǣǣǣǣȣȣȣȣȣȣȣȣȣȣȣȣǣǣǣƣƣƣţţģģãã£~|zxusqoljgec`^\YWTRPMKHFDA?<:8531/,*(&$" ߢߢޢޢݢݢܢۢۢڢڢ٢آآע֢֢բԢӢӢҢѢТТϢ̢͢͢ˢʢʢɢȢǢǢƢŢŢĢâ⢢âĢŢƢǢȢɢʢˢ͢ϢѢҢԢբעآڢܢݢߢ
!#$&()+,./02345789:;<=>??@ABBCDDEEFFGGGHHHIIIIJJJJJJJKKKKKKKKKKKKKKKKKKKJJJJJJJJJIIIIIIHHHHGGGGGFFFEEEEDDDCCCBBBAAA@@@???>>>===<<<;;;:::9988877766655444332221100///..--,,++**)((''&&%$$##"!!
+ ߢߢޢޢݢܢܢۢڢڢ٢آעע֢բբԢӢӢҢѢѢТϢϢ̢͢͢ˢˢʢɢɢȢǢǢƢŢŢĢĢ⢢٢٢٢٢٢٢٢٢٢٢آآآآآآآآآآآآآآآآآעעעעעעעעעעעעעעעעעעעע֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢֢բբբբբբբբբբբբԢԢԢԢԢԢԢԢӢӢӢӢӢӢӢҢҢҢҢҢҢѢѢѢѢѢѢТТТТТТТϢϢϢϢϢϢϢ̢̢̢̢̢̢̢̢̢̢̢̢̢͢͢͢͢͢͢͢͢͢͢͢͢ˢˢˢˢˢˢˢˢˢˢˢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢʢˢˢˢˢˢ̢̢̢̢͢͢͢ϢϢϢТТТѢѢҢҢӢӢԢԢբբ֢֢עעآآ٢٢ڢڢۢۢܢܢݢޢޢߢߢ
+
+
+
+ ߢݢۢڢآעբԢҢТϢ̢͢ʢȢǢŢĢ¢~}{zywvusrqpnmljihfedba`^]\[YXWUTSRPONMKJIHFEDCBA@>=<;:9876543210/.-,,+*)('&&%$#"!
+ ޡۡ١סաҡСΡˡɡǡġ¡~{xurolieb_\YVSPLIFC@=9630-*
+ߠܠ٠֠ӠР͠ʠǠĠ~|zwurpnkigdb`][YWURPNLJHECA?=;97531/-+)'%#!
+ߟݟ۟ڟ؟֟՟ӟџПΟ͟˟ʟȟƟşß~}|{yxwutsqpnmljhgedba_]\ZXWUSRPNLKIGEDB@><;97531/.,*(&$"
ޞܞڞ؞֞ԞҞϞ͞˞ɞǞŞÞ~|zxvtrpnmkigeca_][YWUSQOMKJHFDB@><:8531/-+)'%#
+ ݝڝ؝՝ҝН͝ʝȝŝ~{xurolheb_\YVSPLIFC@<963/,)%"
+ ܜ՜ќ͜ʜƜ~zvrokgc_ZVRNJFB>951-($
+ݛ؛ԛϛ˛ƛ}yuplhc_[WRNJFB>;73/,($!
+ޚܚښٚך՚ӚҚКΚ͚̚ʚɚȚƚŚĚÚÚĚŚƚȚɚ˚̚ΚКҚӚ՚ךښܚޚ
+!%)-15:>BGKPTY^chlqv{Ư̈̀қ؛ޛ
%+17>DJPV\bhntzƜ˜ќ֜ܜ
"&*.259<@CFILORTWY\^`bdfhjlmopqstuvwwxyyzz{{{{{|{{{{{{zzyyxxwvvutsrqpponmkjihgfedba`_^\[ZYWVUTRQPONLKJIGFEDCA@?>=;:987654210/.-,+*)('&%$#"!
+ ޜۜ՜ӜМ͜ʜǜÜzvrmid`\WSNJEA<84/+&"
ޛڛכӛЛ̛ɛś|yvspmjfc`]ZWSPMJFC@<962/,(%"
+ ߚܚ֚ٚҚϚ͚ʚǚĚ~}}||{{{zzzyyyxxxwwwwvvvvuuuuttttsssssrrrrrrrqqqqqqqqqqqrrrrrsssttuuvvwxxyzz{|}~Ěǚɚ˚͚ϚњԚؚ֚ښݚߚ
!"$&(*+-/124679;<>?ACDFHIKLNPQSUVXZ[]_abdfhikmoqrtvxz|~ÛěśƛǛțɛʛ˛̛̛͛ΛϛЛћқӛӛԛ՛֛כ؛؛ٛڛۛܛܛݛޛߛ
+
!"$%&()*,-/0134678:;=>@ACDFGIJLMOPRSUVXY[\^`acdfgiklnoqstvxy{|~ÜĜĜŜƜƜǜǜȜɜɜʜʜ˜˜̜̜͜͜ΜΜϜϜМММќќҜҜҜӜӜԜԜԜ՜՜՜֜֜֜ללללٜٜٜٜڜڜڜڜڜۜۜۜۜܜܜܜܜܜݜݜݜݜݜޜޜޜޜߜߜߜߜ
+
+
!"#$%&''()*++,-../011223445566778899:::;;<<===>>??@@@AABCCDDEFFGHHIJKKLMNOPQRSTUVWYZ[\]_`acdeghiklnoqrtuwxz{}~Ýŝȝʝ̝ΝНӝ՝םٝܝޝ
!$&(+-0257:?@ACDEFGHIJKLMNOQRSTUVWXZ[\]^`abcdfghiklmnpqrtuvwyz{|~ ĠƠǠɠˠ̠ΠРҠԠՠנ٠۠ݠߠ
+!$&),/147:=@CFILORUX[^adgjnqtwz~áǡʡΡҡ֡١ݡ"&*.259=AEIMPTX\`cgkorvz~¢ŢȢ̢ϢҢբעڢݢ
+ "#%'(*+,./1235678:;<=?@ABCDFGHIJLMNOQRSTVWXZ[]^`abdfgijlnoqsuvxz|~ãţǣɣˣͣϣУңԣ֣ף٣ۣܣޣ
+
+
ޣܣ٣֣ӣУͣʣǣģ~zwsplieb^[XTQNKGDA><9631.,)'%"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "$&(*,.02468:<>ACEGIJLNPRTUWY[\^_abdefgijklmnopqqrsstuuvvwwwxxxxyyyyyyyyyyyyyyyyyyyyyxxxxxxxwwwwwwvvvvvuuuuttttssssrrrqqqqpppoonnnmmlllkkjjiihhggffeeddcbbaa`__^^]\\[[ZYYXXWVVUTTSRRQPPONNMLLKJJIHHGFFEDDCBBA@@?>>=<<;::9887665543321100//.--,,++**))(((''&&%%%$$$###"""!!!!
+
+ ߢߢߢߢޢޢޢݢݢݢݢܢܢܢܢܢۢۢۢۢۢۢڢڢڢڢڢڢڢ٢٣
+
+
+
+
+
+
+
+
+
!""#$%&''()*+,-../012344567889:;<<=>>?@@ABBCDDEEFFGGHHHIIIJJJKKKKLLLLLMMMMMMMNNNNNNNNNNNNNNOOOOOOOOOOOOPPPPPPPPQQQQQQQRRRRRSSSSSSTTTTTTUUUUUUUUUVVVVVVVVVVUUUUUUUTTTTSSSRRRQQPPOONMMLKKJIIHGFEDDCBA@?>=<;987654310/.-+*)(&%$"!
+ ޢݢܢۢ٢آע֢ԢӢҢѢϢ̢͢ˢɢȢǢƢŢĢ¢~}|{yxwvutsrponmlkjiihgfedccba``_^^]\\[[ZYYXXWVVUUTSSRRQPOONMLLKJIHGFECBA@>=<:975420.,*(&$!
+ݡڡ֡ҡϡˡǡġ~zvrnjfc_[WSOLHD@=952.*'# ݠڠנԠѠΠˠȠŠ }{xvtromkigdb`^\ZWUSQOMKIGDB@><:8631/-+)'$"
+ݟٟ۟ן՟ӟПΟ̟ʟȟƟğ~~}||{zyyxwvutsqponmkjhgfdca`^\[YWVTRQOMKJHFDBA?=;976420.-+)'%#"
+ޞܞڞ؞֞ԞҞОΞ̞ʞȞƞÞ}{yxvtrpnmkigecb`^\ZXVTSQOMKIGECA?=;97531/-+)'%#!
ݝڝ؝՝ӝН͝˝ȝŝÝ|yurolieb_\XUROKHEA>:740-)&"
+ߜۜԜМ̜ɜŜ~zuqmid`\XSOJFB=940,'#ۛכӛΛʛƛ|xtplhea]ZVROKHDA=:63/,)&"
+ߚݚۚٚך՚ӚҚКΚ͚˚ʚȚǚƚĚÚÚĚƚǚɚ˚̚ΚКҚԚؚ֚ۚݚߚ
+!&*.37<@EJOSX^chmsx~ś˛қ؛ߛ ")07>ELSY`gnu|ĜʜМ֜ܜ
!%*.26;?BFJNQTX[^adgjmpruwz|~ÝĝĝŝƝƝǝȝȝɝɝʝʝ˝˝̝̝̝͝͝͝͝ΝΝΝΝΝΝΝΝΝΝ̝̝͝͝͝˝˝ʝɝɝȝǝƝŝĝÝ|yurnjfb^ZVRNJEA=84/+&!
+ ݜӜ͜ȜÜ|wqkf`ZUOIC>82,&!
+֛ۛЛʛś~ytnid_ZUPKGB=84/*&!ܚؚ՚њΚʚǚÚ~|zwuspnljgeca_][YWUSQOMKIGECB@><:975421/-,*)(&%$"! !"#$%&'()*+-./012356789:<=>?@ABCEFGHIJKMNOPQSTUVXYZ\]^`acdfgijlnoqsuwxz|~Ěƚɚ˚ΚКӚ՚ؚښݚߚ
+
!$&(*-/1468;=?BDFHKMORTVX[]_adfhjlnqsuwy{}ÛěěśƛǛțțɛʛ˛̛͛ΛϛЛћћқԛ՛֛כ؛ٛڛۛܛޛߛ "$%')*,-/124578:;=>?ABDEFHIJKMNOPQRTUVWXYZ[\]^_`abbcdefghiijklmnnopqrsttuvwxyzz{|}~ÜÜĜŜƜƜǜȜɜɜʜ˜̜͜͜ΜϜМќҜӜӜԜ՜֜לٜڜۜܜݜޜߜ
+
!"$%&()*,-/024579:<>?ACEGHJLNPRTVWY[]_acegikmoqsuwy{}Ýŝȝʝ̝Νѝӝ՝؝ڝܝޝ
!#&(+-0258:=?BEGJMORUWZ]_begjmoruwz}ĞƞȞ˞͞ϞҞԞ֞ٞ۞ޞ!$&),/247:=@CEHKNQSVY\_adgjmoruwz}şǟɟ̟ΟПҟ՟ןٟ۟ޟ
+ "$&(*+-/13579:<>@BCEGIKMNPRTVXY[]_aceghjlnprtvxz|~àŠǠɠʠ̠ΠРҠԠ֠ؠڠܠޠ !"$%&()*,-.01245679:;=>?@BCDFGHIKLMOPQSTUVXYZ\]^`abdefhijlmnpqrtuvxy{|}ášȡˡΡѡԡסڡݡ
+!%)-26:>BFJNSW[_dhlpuy}ĢȢ̢ТԢעۢߢ
+
"%(+-0358:=?BDFHKMOQSUWY[]_acefhjlnoqsuvxz|}£ģƣȣɣˣͣϣѣңԣ֣أ٣ۣݣߣ
+!"#$&'(*+,-/01345689:;=>?ABCDFGHIJKMNOPQRSTUUVWXYYZZ[\\\]]]]]]]]]]]\\\[ZZYXWVUTSRQONLKIGEDB@><97520.+( ޣۣףԣѣͣʣƣã}zxuspnkigeca^\[YWUSQPNMKJHGEDCA@?>=<;:9876654432211000///......-----.......////00001112223334445555666777788888999999:::::::::;;;;;;;;;;<<<<<<<<<=======>>>>>?????@@@@@AAABBBBCCCDDDEEEFFFGGHHIIJJKKLLMNNOPQQRSTUUVWXYZ[\]^`abcdeghijlmnpqrtuvxyz|}~~~}}|{{zzyxxwwvuuttsrrqqpponnmmllkjjiihhggfeeddccbbaa``__^^^]]\\[[[ZZZYYYXXXXWWWWVVVVUUUUTTTTTSSSSRRRRQQQPPPOOONNMMMLLKKJJIHHGGFEEDCCBAA@??>==<;::988766544322110//..--,,,++***))(((('''&&&&%%%%$$$####""""!!!
:9998887776665555444333322221110000////....----,,,,+++****))))(((('''''&&&&&%%%%%%%%$$$$$$$$$$$$$%%%%%%%&&&&'''((()))**++,,,--..//00122334455677889::;;<==>??@@ABBCCDEEFGGHHIJJKLLMMNOOPPQQRSSTTUUVVWXXYYZZ[[\\]]^__``abbccdeefgghijjklmnoopqrstuvwxyz{|}~~|{ywvtrqomkjhfdba_][YWUTRPNLJIGECA?><:875310.,+)'&$"!
ߢޢޢݢܢۢڢ٢آע֢բԢӢѢТϢ͢ˢʢɢǢƢŢâ¢}|{zyxwvutsqponmlkjihgfedcb`_^]\ZYXVUSRPNMKIHFDB@><97520-+( ޡڡ֡ҡΡˡǡá~zvrnjfb^ZVRNJGC?;730,($! ޠڠנԠѠ͠ʠǠĠ}{xuspnkigdb_]ZXUSQNLIGEB@>;9642/-*(! ޟܟڟ؟֟ԟҟПΟ̟ʟɟǟşß~}|{zyxwvutsqpomlkihfecb`_][ZXVTSQOMKIGECA?=;97531/-+)'%#!
ߞޞܞڞ؞מ՞ӞўϞΞ̞ʞȞƞĞÞ~|{ywvtrqonljigfdca`^][YXVUSRPOMKJHFECB@><;975420.,+)'%#!
ޝܝٝם՝ҝϝ͝ʝȝŝÝ}zwtqmjgd`]ZVSPLIEB?;840-)&" ߜۜלӜϜ˜ǜÜ|xsojfa]XTOKFA=83/*%!
+ ܛ؛ԛϛ˛ǛÛ}zwtroljgec`^\YWUSQOMKIGECA?=;97531/-+)'%#!
ߚݚۚښؚך՚ԚҚКϚ͚̚ʚɚȚƚŚÚĚƚɚ˚ΚњԚؚۚޚ$)/4:@FLRY_flszě̛ԛܛ%-5>FNV^fnv~ɜМ֜ݜ $).38=BFKOSW[_cgknruy|ĝƝȝʝ͝ϝѝӝ՝םٝݝޝ ݝ؝՝ѝΝ˝ǝĝztoic]WQKE?92,&ܜ՜Μǜ{tmf_XQJC=6/(!
ߛ؛қ̛śztnhb\VPJE?93.("֚ۚК˚ƚ|wsnjea\XTPLGC@<841-)
ߙߙޙݙݙܙܙۙۙۙڙڙڙؙؙؙٙٙٙייי֙֙֙֙ՙՙՙԙԙԙәәәҙҙҙҙљљљљљљљЙЙЙљљљљљҙҙҙәәԙՙՙ֙יؙٙڙۙܙݙߙ
!#%')+-/13578:<>@ACEFHIKMNPQSTVWYZ\]_abdegijlnoqsuvxz|~Ěǚɚ˚͚КҚԚ֚ٚۚݚߚ
"%'*-0258:=@BEHJMORUWZ\^acfhjlnqsuwyz|~ÛÛěśƛǛțțɛʛ˛̛͛͛ΛϛЛћћқӛԛ՛՛֛כ؛؛ٛڛڛۛܛܛݛޛޛߛ
+
!!"#$%&'()*+,-../01234556789::;<=>?@@ABCDEFFGHIJKLMNOPPQRSTUVWXZ[\]^_`acdefhijlmnpqstuwxz{}~ÜĜŜŜƜǜȜɜʜ˜˜̜͜ΜϜМќҜӜӜԜ՜֜לٜڜۜܜݜޜߜߜ
+
"#%&(*+-/02468:<>@BDFHJLNPSUWY\^`cegjlnqsvx{}ĝƝɝ˝ΝНҝ՝םٝܝޝ
+
"%'*,.1368;=@CEHJMORUWZ\_bdgiloqtvy|~ÞƞȞʞ̞ΞОҞ՞מٞ۞ݞߞ
!#%'),.03579<>ACEHJLOQTVY[^`cehjmortwy|~ßşǟɟ̟ΟПҟԟ֟؟ڟܟޟ
+!#%')+-/13579;=?BDFHJLNPRUWY[]_bdfhkmortvy{} ĠǠʠ͠РӠ֠٠ܠߠ #&(+.147:ADGJMPSVY]`cgjnruy}ƢʢҢעۢߢ
!%(,047;?BFIMPTWZ^adgknqtwz}ãţǣɣˣͣΣУңԣգף٣ڣܣݣߣ
+
"#$&')*,-/023568:;=?@BDEGIJLNOQSTVWY[\^_abcefgijklmnopqrsttuvvwwwxxxxxxxxwwwvvuutsrqponmlkjhgedba_]\ZXVTRPNLJHFDA?=;8641/,*'%" ޣۣ٣ףԣңϣͣˣȣƣģ}{ywusrpnlkigfdca`_]\[ZYXWVUTSSRRQQPPPOOOOOOOOPPPPQQQRRRSSSTTUUUVVVVWWWWWXXXXXWWWWWWVVVUUTTSSRRQQPPOONNMLLKKKJJIIIHHHHHHHHHHHHHHIIIJJKKLLMMNOPPQRSTUVWWXY[\]^_`abcdfghijkmnoprstuwxy{|}~£ãģţƣǣȣɣɣʣˣ̣̣ͣΣΣϣϣУУѣѣңңӣӣӣԣԣԣԣԣգգգգգգգգգգգգգգգԣԣԣԣӣӣӣӣңңңѣѣѣУУϣϣΣΣ̣̣ͣͣˣˣʣʣɣɣȣǣǣƣƣţģģ㣣~~~~}}}|||{{zzzyyyxxwwvvuuttssrrqqppoonnmllkkjjiihhggffeeddccbbbaa```____^^^^^]]]]]]]\\\\\\\\\\\\\\[[[[[[[[[[ZZZZZZYYYYXXXXWWWVVUUUTTSSRRQQPPOONNMMLLKKJJIIHHGFFEEDDCCBBAAA@@??>>===<<;;;::jjiihhgffeeddccbbaaa``__^^]]]\\[[ZZZYYYXXXWWWVVVUUUTTTTTSSSSSSRRRRRRRRRRRRSSSSSSTTTTUUUVVVWWXXYYZZ[[\]]^^_`aabccdefgghijklmmnopqrstuvvwxyz{|}~££ãģţţƣǣȣȣɣʣʣˣ̣̣ͣͣΣϣϣУУѣѣңңӣӣԣԣգգգ֣֣ףףأأ٣٣ڣڣۣۣܣܣݣޣޣߣ ߣޣݣܣۣڣ٣أ֣գԣӣңУϣΣ̣ˣʣȣǣţģ£~|zywusrpnlkigedb`_][ZXVUSRPNMKJHGEDBA@>=;:97654210/-,+*)'&%$"!
+ߢݢۢآ֢ӢТˢɢƢĢ~|zxvtrpnmkigedb`^][YWVTRPOMKJHFDCA?=;:86420.-+)'%#!
+ݡڡסԡѡΡˡȡš¡|xtqmieb^ZVROKGC?<840,(%!
+ޠڠנӠР̠ȠŠ|yvsolifc`]ZXUROLIFCA>;8630-+(
+ޟݟٟ۟؟֟՟ӟҟџϟΟ̟͟ʟɟȟǟƟşğß~|zywusrpnlkigecb`^\ZXWUSQOMKIGECA?=;97531.,*(&$"
+ޞܞ۞ٞמ՞ԞҞОΞ͞˞ɞȞƞŞÞ~|{ywvtrqomljhgedb`_]\ZYWUTRQONLKIHFECA@>=;:875320/-+*(&%#!
+ ߝܝڝ؝՝ӝНΝ̝ɝǝĝ}zwspmjgc`]ZVSPLIFB?;841-*
ޜڜ֜ҜΜʜƜ|wsokfb^ZUQMID@<73/+&"
ߛۛכӛϛ˛ǛÛ}{xvsqomkigeca_][ZXVUSQPNMKIHFECB@?=<:975421/-+*(&%#!
+ ߚݚۚٚךԚҚКΚ̚ɚǚŚÚ~}{zyxwvuttsrrqqqqpppqqqrrstuvwxy{|~ÚȚ͚Қؚݚ#*19@HPX`hpyțћڛ$-6?HQZbkt|Ŝ͜Ԝۜ
+"(.38>CHMQVZ_chlptx{ŝǝɝ˝͝ϝѝӝ՝ם؝ڝܝݝߝޝٝ֝ԝѝΝ˝ǝĝzuoic]VPJC<5/( ݜ՜͜Ŝ|tlc[RJB91( ݛ՛͛ě|tle]UNF?70(!ܚ՚ϚȚzuoje_ZUPKFA=83/*&"
ߙܙٙ֙әљΙ˙șƙÙÙřǙșʙ̙ΙЙҙԙؙ֙ڙܙޙ !$'),/1469<>ACFHJMORTVY[]_bdfhjlnqsuwy{}ĚƚȚʚ̚ΚњӚ՚ךٚܚޚ #%(+-02579<>ACEHJLOQSUWY[]_aceghjlmoqrtuwxyz|}~ÛěƛǛɛʛ̛͛ϛЛћӛԛ֛כٛڛۛݛޛ
+
"#%&()+,./134689;=?ACEGIKMPRTVY[^`cehjmpruwz}ÜÜÜĜĜĜĜĜĜĜĜĜĜĜĜĜĜĜĜĜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜĜĜĜĜĜĜŜŜŜŜƜƜƜǜǜǜȜȜɜɜʜʜ˜˜̜̜͜͜ΜϜϜММќҜӜӜԜ՜֜לٜڜۜܜޜߜ
!"$%&()*,-./12346789:;=>?@BCDEGHIKLNOPRTUWXZ\^_acegikmoqsuwz|~ĝƝȝ˝͝ϝѝӝ՝םڝܝޝ
"$&)+.0257:=?BDGJLORTWZ\_bdgjmoruwz}ĞǞɞ˞͞ОҞԞ֞؞ڞܞޞ
+
"$%')+-/12468:<>@BDFHJLNPRUWY[]_adfhjmoqsvxz|ßşǟɟ˟͟ϟџӟ՟ןٟ۟ݟߟ
+ "$&(*,.02468:<>@BDFHJLNPRTVXZ\_acehjlnqsvx{} Šɠ̠ϠҠ֠٠ܠ
"&*-159<@DHLOSW[_cgkosw{áǡˡϡӡסۡߡ
+
"%),/258;=@CEHJLNPSTVXZ\]_`abdefgghijjkkkllllllllllllkkkjjiihggfeddcba`_^]\[ZYXWVUTSRQPONMLKJIHGFFEDDCCBBBBAAABBBCCDDEFGHIKLMOQSTVY[]_bdgjlorux|Ţɢ͢Ѣբ٢ݢ
+#'+/37<@DHLPTX\`dhlpsw{ģǣʣͣϣңգأڣݣߣ !"$%&'()*+,-./12345678:;<=>@ABDEFHIJLMOPQSTVWY[\^_abdfgijlnoqrtuwxz{}~}{yxvtrpnkigeca^\ZXUSQOMJHFDB?=;97531/-,*(&%#!
+ ݣۣ٣֣ԣѣϣ̣ʣǣģ£}{yxvusrqpnmlkjiihgffeddcbba``__^]]\[[ZYYXWVVUTSRRQPONMMLKJJIHGGFFEEDDCCCCBBBBCCCCDDEEFFGHIJKLMNOQRSUVXY[\^`acegiklnprtvxz|~ãţǣɣˣͣϣѣӣգף٣ڣܣޣ
+
+
+
+
+
+
+
+ ߣޣޣݣݣܣܣۣڣڣ٣٣أأף֣֣գգԣӣӣңѣѣУϣϣΣ̣ͣͣˣˣʣɣɣȣǣƣƣţģģã£~~}}||{{zzyyxxwvvuuttsrrqqpoonnmmlkk£ãţƣȣɣˣ̣ΣϣУңӣգ֣أ٣ۣܣݣߣ
+
+
+
+ ޣݣۣ٣ףգӣѣϣͣˣɣǣģ£}zxvtqomkhfca^\YVTQNKIFC@=:741-*'$!
+ ܢ٢֢ӢТ͢ʢǢĢ¢|zxusqoljhfca_][XVTRPMKIGEB@><:7531.,*'%#
+ݡڡ֡ӡС͡ʡǡġ{xtqmifb^[WSPLHDA=962.*'# ߠ۠נԠР̠ȠŠ~zwsplieb_[XURNKHEB?<9741.,)'$"
ޟݟܟ۟ڟ؟ן֟՟ԟӟҟџПϟΟ̟͟͟˟ʟɟɟȟǟƟƟşğğß~|zxvusqomkigecb`^\ZXVTRQOMKIGECA?><:86420.,*(&$"
+ޞܞڞ؞֞ԞҞОΞ̞ʞȞǞŞÞ}|zxvtsqomljhfdca_]\ZXWUSRPOMKJHGEDBA?><;9865320/-,*)'&$#!
ߝݝٝם՝ӝѝϝ͝ʝȝƝĝ~{xurolieb_[XTPMIEA=951-)%
+ ޜٜԜϜʜŜ}xtokgb^ZVRNJFB>:62/+'$ ߛܛ؛՛ћ͛ʛƛ|zwtromkhfdb`^\ZYWUTRQONMKJIGFEDCA@?>=;:9765320/-+*(&$" ݚښ֚ӚϚ̚ȚŚ{xtqnjgd`]ZWTQNKHEC@=;8631/-+)'%#! "$&)+.0369BGKOTX\`dhlptx{âŢƢȢʢˢ͢ТѢҢӢԢբ֢עآآ٢٢٢٢٢٢٢٢آآע֢֢բӢҢѢТ̢ˢɢǢŢâ~|zxvtrpomlkihggfeedddddddddeefghhijkmnoqrtuwxz|~¢Ƣɢ͢ТԢآۢߢ %)-26;?DHMQVZ_chlqvzţɣͣѣգ٣ݣ"$')+.024689;=?@BCEFGIJKLNOPQRSTUVWXYZ[\]^_`abcdefghijlmnopqstuvxyz{}~}{ywusqnljhfeca_][ZXVUSRPOMLKIHGEDCA@?><;:875421/-,*(&$" ޣڣ֣ӣϣˣȣģ}zxuspnljgecb`^\[YWVUSRQPNMLKJJIHGGFEEEDDCCCCCCCCCDDDEEFGGHIJKLMOPQSTVXY[]_acegiknpruwz|~£ģƣȣˣͣϣѣӣգأڣܣޣ
+
!"##$%%&&''(()))***++++++,,,,,,++++++****)))(('''&&%%$$#""!!
+
+ ߣߣߣޣޣݣݣܣܣܣۣۣڣڣ٣٣٣أأףף֣֣գգգԣԣӣӣңңңѣѣУУϣϣϣΣΣ̣̣̣ͣͣͣˣˣˣʣʣʣɣɣɣȣȣȣȣǣǣǣƣƣƣƣƣţţţţģģģģģãããã㣣££££ԣӣӣңңңѣѣѣУУУУϣϣϣϣϣϣϣϣϣϣϣϣϣУУУУУУѣѣѣѣңңңңӣӣӣӣԣԣԣԣԣգգգգգ֣֣֣֣֣֣ףףףףףףףأأأأأأأ٣٣٣٣٣٣٣٣٣٣ڣڣڣڣڣڣڣڣڣڣڣڣڣڣڣڣڣۣۣۣۣۣۣۣۣܣܣܣݣݣݣޣޣߣߣ
!"$&(*,-/124578:;<=?@ABCDDEFGGHHIIIIJJJJJJIIIIHHHGGFFEEDCCBBA@@?>>=<<;::98877655443321100//..--,,++**))(((''&&&%%%$$$$############$$$$$%%%&&&'''(()))***+++++,,,,,,,,,,,++++***))((''&&%%$$##"!! !"$%&')*+-.0134679;<>?ACDFGIJLMNPQRSTUVWXYYZZ[[[[[[[[ZZYXXWVUSRQONLJIGECA?=:8631/,*'%"
ݣۣأգӣУΣˣȣƣã~{xtqmifb_[XTQMIFB?;840-)&"
+ ܢ٢֢ӢТ͢ʢǢĢ~|yvtqoligda_\YWTQOLIFC@=:852.+(%"ܡ١աҡϡˡȡġ|yurnkgd`]YVROKHEA>:73/,(%!ߠ۠ؠԠР̠ȠĠ{xtqmjfc`\YVSPMJGEB?=:8530.,*'%#!
+ ߟޟݟܟ۟ڟٟ؟ן֟՟ԟӟҟџПϟΟ̟͟˟ʟɟȟǟƟşß~|zywusrpnmkihfdca_]\ZXVUSQOMLJHFDBA?=;97531/-+)'%#
ߞޞܞڞ؞מ՞ӞўОΞ̞˞ɞǞŞĞ~|zxusqnljhfca_][YWUSQOMLJHFDCA?><;9764310.-+*('%$"! ߝݝٝם՝ӝНΝ̝ʝȝƝĝ~|yvspmifc_[XTPKGC>950+&
+ٜӜ̜Ɯztnic]XSMHC?:51-($ ޛ֛ۛٛӛЛ͛ʛǛě|yvsolifc`][XUSQNLJHFDB@?=<:986543210/.-,+*)('&%$#"!
ߚؚۚԚК͚ɚŚ|xsojfa]XTPKGC>:62.*&" ߙݙۙٙי֙ԙҙљЙΙ͙̙˙ʙəəșșǙǙǙƙƙǙǙǙǙșșəʙ˙̙͙Ιϙљҙԙՙיٙۙݙߙ
!%*.38=BGMRX^djpv}ǚКؚ!+5?IS]gr|ƛћۛ$.8BKU^hqzĜ̜Ӝۜ !&,16;@EJOSX\`eimqtx|~yupkf`[UOIC<6/(!ޜ֜ΜƜ|skbZQI@8/&
ٛЛțypg^ULC:2) ٚКǚ{skc[SKD<5-&
+ܙ֙Йʙę~yuqmiea^ZVSPLIFC@=:8520.+)'%#!
"#%'(*,.01358:<>@CEGJLOQTWY\_behknqtx{~ęș̙Йәיۙߙ
+
#&(+.1368:=?ACEGIKLNPQSTUWXYZ[\]^_`abbcdeefghiijklmnopqrsuvxy{|~Ěǚ˚ϚӚךۚߚ"&*-148;>ADGJMORTVXZ\^_abdefgghiiijjjjjjjiihhggffeddcbba`__^]\\[ZYYXWWVUUTSSRQQPONNMLKKJIHGGFEDCBBA@?>=<<;:9987766554433322222222223333444556678899:;<<=>?@@ABCDEFGHIJKLMNOQRSTUWXY[\]_`acdeghjkmnpqstvwyz|}Ûśțʛ̛Λћӛ՛כٛܛޛ
+
!"#%&'(*+-./124579:<>@ACEGIKMPRTVY[^`cehkmpsux{~ÜŜǜɜ˜͜ΜМҜԜ՜לڜۜݜޜߜ
+
"$&')+-/13579;>@BDFHJMOQSUWY[]_aceghjlnoqrtuwxz{|~Ýŝǝɝ˝͝ϝѝӝ՝םٝݝߝ
"#%')+-/12468:<>@BDFHJLNPRTVX[]_acfhjmoqtvy{~ĞƞȞʞ˞͞ϞўӞԞ֞؞ڞ۞ݞߞ
+!#%(*,.03579;=@BDFHJLOQSUWY[]_acegikmoqsuwy{}ğƟȟ˟͟ϟџӟ՟ןڟܟޟ
+ #%')+-02468:=?ACEGILNPRTVY[]_adfhkmoqtvy{} ŠȠˠΠѠԠנڠݠ #'+/26:>BFJNRVZ^bgkosx|ġɡΡҡסܡ
+"&+/48=AFJOSW\`dhlquy}¢Ƣɢ̢ТӢ֢٢ݢ
+
"$&')+,-./011222222100/.-+*('%#! ߢܢ٢֢ԢѢˢɢƢâ¢ŢȢˢҢբآܢߢ "%)-159=AFJNRV[_dhlqvz£ǣ̣ѣգڣߣ
"&*.159<@CFJMPSVX[^acfhjmoqsuwy{}~¤¤äĤŤƤǤȤȤɤʤˤ̤ͤΤФѤҤӤԤդ֤פ٤ڤۤܤݤޤߤޤܤۤ٤פդӤФΤ̤ɤǤĤ¤|yvspmjheb_]ZXUSPNLJHFDB@><:875320/-,*('%$"!
ݣڣ֣ӣУͣɣƣã~|zxvtrpomljihfedccbaa``_________``aabccdefgijkmnpqstvxz|~£ţȣˣͣУӣ֣٣ۣޣ
+ !#%&()+,-/013456789:;<=>?@AABCDDEFFGGHHIIIJJJKKKKKLLLLLLLLLLLLLLLLKKKKKJJJJIIIIHHHGGFFFEEEDDCCBBBAA@@??>>===<<;;::9998877766555444333222111000///...---,,,++***))(((''&&&%%$$###""!!!
+
+ ߣߣޣޣݣݣܣۣۣڣ٣٣أأף֣֣գգԤ !""##$%%%&&'''((())))))))******))))))))))))))))(((((((((((((((((((((((((((((())))))***++,,--../01123456789;<=>@ACDEGHJKMOPRSUVXZ[]^`acdfgijlmnpqrtuvwxyz{|}~~~}}||{{zyyyxxwwvvuutttssrrrqqqpppoonnnmmmlllkkjjjiiihhggfffeeddccbbaa``__^^]\\[[ZYYXWVVUTTSRQQPONMMLKJJIHGGFEDDCBBAA@??>>===<<<;;;;::::::::::::::;;;;<<<===>>??@@ABBCCDEFFGHIJKLMNOPQRSTUWXY[\]_`acdfgijlnoqrtuwyz|}~|zxvsqomjhfca^\YWTROMJHEC@>;8631/,*'%" ޣܣ٣֣ӣУͣʣǣģ{xtqnjgc`\YURNKGD@=962/+($!ݢڢ֢ӢТ͢ʢǢĢ~{xtqnkgda^ZWSPLIFB>;740-)&" ޡۡסԡС͡ʡơá~{wtqnkhea^[XUROLHEB?<852/+(%! ޠڠ֠ҠΠʠƠ }zvsplifc`]ZWUROMJHEC@><:8631/.,*(&%#!
+ ߟޟܟڟٟן՟ԟҟПΟ̟˟ɟǟşß}{zxvtsqomkjhfdb`^][YWUSQOMKIGECA?=;986420.,*(&$"
ߞݞ۞ڞ؞֞ԞҞОΞ̞ʞȞƞÞ~{wtqnjgda^[XUROLIFDA><9642/-*(&$" ߝݝٝ؝֝ԝҝНΝ̝ʝȝƝĝ~|ywtroljgdb_\YVSPMJFC?<840,($ܜ֜МʜĜysmga\VPKE@;50+'"ߛܛ֛ٛӛЛ͛˛țś|xuqnjgc_\XUQNJGC@=:630-*'$!
+ ߚޚݚۚښؚך՚ӚњКΚ̚ʚȚƚÚ{wtplhda]YUQMJFB>;730,(%" ߙݙܙؙۙٙי֙ՙԙәҙљљЙϙϙΙΙ͙͙͙͙͙͙͙͙͙͙ΙΙϙϙЙљҙәԙՙؙ֙ٙۙݙޙ $)-27