Showing preview only (8,225K chars total). Download the full file or copy to clipboard to get everything.
Repository: nivwusquorum/6.006-2015-notebooks
Branch: master
Commit: 60d406e00096
Files: 93
Total size: 7.8 MB
Directory structure:
gitextract_8z7fqhuo/
├── .gitignore
├── Lecture 17.ipynb
├── challenge1/
│ ├── .gitignore
│ ├── README.md
│ ├── coins.cpp
│ ├── coins.py
│ ├── run_tests.sh
│ ├── tests/
│ │ ├── mon0.in
│ │ ├── mon0.out
│ │ ├── mon10a.in
│ │ ├── mon10a.out
│ │ ├── mon10b.in
│ │ ├── mon10b.out
│ │ ├── mon10c.in
│ │ ├── mon10c.out
│ │ ├── mon1a.in
│ │ ├── mon1a.out
│ │ ├── mon1b.in
│ │ ├── mon1b.out
│ │ ├── mon1c.in
│ │ ├── mon1c.out
│ │ ├── mon1d.in
│ │ ├── mon1d.out
│ │ ├── mon2a.in
│ │ ├── mon2a.out
│ │ ├── mon2b.in
│ │ ├── mon2b.out
│ │ ├── mon2c.in
│ │ ├── mon2c.out
│ │ ├── mon3a.in
│ │ ├── mon3a.out
│ │ ├── mon3b.in
│ │ ├── mon3b.out
│ │ ├── mon3c.in
│ │ ├── mon3c.out
│ │ ├── mon3d.in
│ │ ├── mon3d.out
│ │ ├── mon4a.in
│ │ ├── mon4a.out
│ │ ├── mon4b.in
│ │ ├── mon4b.out
│ │ ├── mon5a.in
│ │ ├── mon5a.out
│ │ ├── mon5b.in
│ │ ├── mon5b.out
│ │ ├── mon5c.in
│ │ ├── mon5c.out
│ │ ├── mon6a.in
│ │ ├── mon6a.out
│ │ ├── mon6b.in
│ │ ├── mon6b.out
│ │ ├── mon7a.in
│ │ ├── mon7a.out
│ │ ├── mon7b.in
│ │ ├── mon7b.out
│ │ ├── mon8a.in
│ │ ├── mon8a.out
│ │ ├── mon8b.in
│ │ ├── mon8b.out
│ │ ├── mon9a.in
│ │ ├── mon9a.out
│ │ ├── mon9b.in
│ │ └── mon9b.out
│ └── url.txt
├── challenge2/
│ ├── .gitignore
│ ├── README.md
│ ├── download_test.sh
│ ├── pilots.cpp
│ ├── pilots_n.py
│ ├── pilots_n2.py
│ ├── pilots_n3.py
│ ├── pilots_nlog2n.py
│ ├── pilots_nlogn.py
│ ├── run_tests.sh
│ └── url.txt
├── hello.txt
├── lecture1/
│ ├── Fast exponentiation and fibonacci sequence.ipynb
│ └── Stock Exchange.ipynb
├── lecture11/
│ └── BFS.ipynb
├── lecture12/
│ ├── DFS.ipynb
│ └── Google BFS.ipynb
├── lecture15/
│ └── Dijkstra's algorithm.ipynb
├── lecture16/
│ └── Bignums.ipynb
├── lecture2/
│ ├── Document distance.ipynb
│ └── binary_search.ipynb
├── lecture4/
│ └── Heaps.ipynb
├── lecture5/
│ └── BST.ipynb
├── lecture6/
│ ├── AVL_and_more.ipynb
│ └── Counting BST.ipynb
├── lecture7/
│ ├── Radix Sort Performance.ipynb
│ └── Understanding Radix Sort.ipynb
├── lecture8/
│ └── Hashing and hashtables.ipynb
└── lecture9/
└── Hashing.ipynb
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
.ipynb_checkpoints/
================================================
FILE: Lecture 17.ipynb
================================================
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# LCS "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def LCS(s1, s2):\n",
" # initialize state\n",
" n, m = len(s1) + 1, len(s2) + 1\n",
" dp = [\n",
" [ 0 for _ in range(m)] \n",
" for _ in range(n)\n",
" ]\n",
" pred = [\n",
" [ (-1,-1) for _ in range(m)]\n",
" for _ in range(n)\n",
" ]\n",
" \n",
" for i in range(1,n):\n",
" for j in range(1,m):\n",
" # CASE 1: ignore character in s1\n",
" dp[i][j], pred[i][j] = dp[i-1][j], (i-1,j)\n",
" # CASE 2: ignore character in s2\n",
" if dp[i][j] < dp[i][j-1]:\n",
" dp[i][j], pred[i][j] = dp[i][j-1], (i,j-1)\n",
" # CASE 3: extend\n",
" if s1[i-1] == s2[j-1] and dp[i][j] < dp[i-1][j-1] + 1:\n",
" dp[i][j], pred[i][j] = dp[i-1][j-1] + 1, (i-1,j-1)\n",
" \n",
" print (np.array(dp))\n",
"\n",
" # recover the solution\n",
" x,y = (n-1,m-1)\n",
" solution = []\n",
" while pred[x][y] != (-1,-1):\n",
" if pred[x][y] == (x-1, y-1):\n",
" solution.append(s1[x-1])\n",
" (x,y) = pred[x][y]\n",
" solution.reverse()\n",
" \n",
" return solution"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 0 0 0 0]\n",
" [0 1 1 1 1]\n",
" [0 1 2 2 2]\n",
" [0 1 2 2 2]\n",
" [0 1 2 3 3]]\n"
]
},
{
"data": {
"text/plain": [
"['b', 'a', 'b']"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LCS(\"bacb\", \"babd\")"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 0 0 0 0 0 0 0 0 0]\n",
" [0 0 0 1 1 1 1 1 1 1]\n",
" [0 0 0 1 2 2 2 2 2 2]\n",
" [0 1 1 1 2 2 2 2 2 2]\n",
" [0 1 2 2 2 2 2 2 2 2]\n",
" [0 1 2 3 3 3 3 3 3 3]\n",
" [0 1 2 3 4 4 4 4 4 4]\n",
" [0 1 2 3 4 4 4 5 5 5]\n",
" [0 1 2 3 4 4 4 5 6 6]\n",
" [0 1 2 3 4 4 5 5 6 7]]\n"
]
},
{
"data": {
"text/plain": [
"['t', 'h', 'i', 's', 'l', 'c', 's']"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LCS(\"isthislcs\", \"thisislcs\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Viterbi algorithm"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"states = ('Healthy', 'Fever')\n",
" \n",
"observations = ('normal', 'cold', 'dizzy')\n",
" \n",
"start_probability = {'Healthy': 0.6, 'Fever': 0.4}\n",
" \n",
"transition_probability = {\n",
" 'Healthy' : {'Healthy': 0.7, 'Fever': 0.3},\n",
" 'Fever' : {'Healthy': 0.4, 'Fever': 0.6}\n",
" }\n",
" \n",
"emission_probability = {\n",
" 'Healthy' : {'normal': 0.5, 'cold': 0.4, 'dizzy': 0.1},\n",
" 'Fever' : {'normal': 0.1, 'cold': 0.3, 'dizzy': 0.6}\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def viterbi(obs, states, start_p, trans_p, emit_p):\n",
" V = [{}]\n",
" predecessor = [{}]\n",
" \n",
" # Initialize base cases (t == 0)\n",
" for y in states:\n",
" V[0][y] = start_p[y] * emit_p[y][obs[0]]\n",
" predecessor[0][y] = None\n",
" \n",
" # Run Viterbi for t > 0\n",
" for t in range(1, len(obs)):\n",
" V.append({})\n",
" predecessor.append({})\n",
"\n",
" for y in states:\n",
" highest_probability, best_y_prev = 0.0, None\n",
" for y_prev in states:\n",
" probability_from_y_prev = V[t-1][y_prev] * trans_p[y_prev][y] * emit_p[y][obs[t]]\n",
" if probability_from_y_prev > highest_probability:\n",
" highest_probability, best_y_prev = probability_from_y_prev, y_prev\n",
" V[t][y] = highest_probability\n",
" predecessor[t][y] = best_y_prev\n",
" \n",
" print(*dptable(V), sep='')\n",
" \n",
" # Return the most likely sequence over the given time frame\n",
" n = len(obs) - 1\n",
" (prob, state) = max((V[n][y], y) for y in states)\n",
" \n",
" # Recover the path\n",
" path = []\n",
" for t in range(n,-1,-1):\n",
" path.append(state)\n",
" state = predecessor[t][state]\n",
" path.reverse()\n",
" \n",
" return (prob, path)\n",
"\n",
"# Don't study this; it just prints a table of the steps.\n",
"def dptable(V):\n",
" yield \" \"\n",
" yield \" \".join((\"%7d\" % i) for i in range(len(V)))\n",
" yield \"\\n\"\n",
" for y in V[0]:\n",
" yield \"%.5s: \" % y\n",
" yield \" \".join(\"%.7s\" % (\"%f\" % v[y]) for v in V)\n",
" yield \"\\n\""
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0 1 2\n",
"Fever: 0.04000 0.02700 0.01512\n",
"Healt: 0.30000 0.08400 0.00588\n",
"\n"
]
},
{
"data": {
"text/plain": [
"(0.01512, ['Healthy', 'Healthy', 'Fever'])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"viterbi(observations, states, start_probability, transition_probability, emission_probability)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
================================================
FILE: challenge1/.gitignore
================================================
coins
================================================
FILE: challenge1/README.md
================================================
# The coins challenge
To run c++ solution run
```bash
g++ coins.cpp -O2 -o coins
./run_tests.sh ./coins
```
To run Python solution run
```bash
./run_tests.sh python2 coins.py
```
================================================
FILE: challenge1/coins.cpp
================================================
#include <algorithm>
#include <cstdio>
// OVERALL COMPLEXITY: O(n lg n)
// (due to sorting)
// maximum number of coins
const int MAXN = 1000005;
// n - number of coins
// k - we need k as many tails as heads
int n, k;
// c - buffer to hold all the characters
char c[MAXN];
// array of (prefix_sum[i], i) values
std::pair<long long, int> seq_and_index[MAXN];
int main() {
scanf("%d%d", &n, &k);
scanf("%s", c);
// for prefix sums it is important to add an extra element
// for empty sequence at the beginning.
// this is so that when we compute
//
// seq_and_index[n].second - seq_and_index[0].second
//
// we get sum of elements for indexes 1 <= i <= n
// We reuse seq_and_index for two things
// initially it just stores values k and -1
// later we compute prefix sum
seq_and_index[0] = std::make_pair(0,0);
for (int i=0; i <n; ++i) {
// we convert R to k and O to -1
if (c[i] == 'R') {
seq_and_index[i + 1].first = k;
} else {
seq_and_index[i + 1].first = -1;
}
seq_and_index[i+1].second = i + 1;
}
// NEW PROBLEM: find longest contiguous subsequence of
// sum 0 (sum zero implies k times as many heads)
// compute the prefix sum
for (int i=1; i <=n; ++i) {
seq_and_index[i].first += seq_and_index[i-1].first;
}
// new problem: find a pair of elements in the array,
// that have the same value and that are furthest
// away possible.
int res = 0;
// sort by value.
std::sort(seq_and_index, seq_and_index + n + 1);
// for all groups with the same value
// compute max and min index in that group.
// update result with the difference between those indexes
int min_index, max_index;
for (int i=0; i <=n; ++i) {
if ( i == 0 || seq_and_index[i].first != seq_and_index[i - 1].first) {
min_index = seq_and_index[i].second;
max_index = seq_and_index[i].second;
}
min_index = std::min(min_index, seq_and_index[i].second);
max_index = std::max(max_index, seq_and_index[i].second);
res = std::max(res, max_index - min_index);
}
printf("%d\n", res);
}
================================================
FILE: challenge1/coins.py
================================================
# OVERALL COMPLEXITY: O(n)
# here we use a dictionary
def main():
# n - number of coins
# k - we need k as many tails as heads
n, k = [int(v) for v in raw_input().split()]
# coins - buffer to hold all the characters
coins = list(raw_input())
assert len(coins) == n
coins_as_numbers = []
for coin in coins:
if coin == 'R':
coins_as_numbers.append(k)
elif coin == 'O':
coins_as_numbers.append(-1)
else:
assert False
# NEW PROBLEM: find longest contiguous subsequence of
# sum 0 (sum zero implies k times as many heads)
# for prefix sums it is important to add an extra element
# for empty sequence at the beginning.
prefix_sums = [0]
# compute the prefix sums
for coin in coins_as_numbers:
prefix_sums.append(prefix_sums[-1] + coin)
# new problem: find a pair of elements in the array,
# that have the same value and that are furthest
# away possible.
# this dictionary maps from array values,
# to the index of prefix_sums, where the value
# occurs for the first time
# Specifically leftmost_index_of_value[S]
# is equal to smallest such i that prefix_sums[i] = S
# NOTE: it is build iteratively left to right
leftmost_index_of_value = {}
for s_idx, s in enumerate(prefix_sums):
if s not in leftmost_index_of_value:
leftmost_index_of_value[s] = s_idx
res = 0
for s_idx, s in enumerate(prefix_sums):
res = max(res, s_idx - leftmost_index_of_value[s])
print(res)
if __name__ == '__main__':
main()
================================================
FILE: challenge1/run_tests.sh
================================================
#!/bin/bash
# stop script on error and print it
set -e
# inform me of undefined variables
set -u
# handle cascading failures well
set -o pipefail
SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
for filename in $SCRIPT_DIR/tests/*.in; do
output_filename=${filename::-3}.out
time $@ < $filename | diff -bs - $output_filename
done
================================================
FILE: challenge1/tests/mon0.in
================================================
15 3
RORROOROOROOORO
================================================
FILE: challenge1/tests/mon0.out
================================================
8
================================================
FILE: challenge1/tests/mon10a.in
================================================
1000000 2
RRRRRROORRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROOORRRRRROORRRRRRRRORRORRRRRORRORRORRRORRORRORRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRORRRRRORORRRRORRRORRORROORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRORRRRORRRRRORRORRRRRORRRORRRRRRRRORRORRRRRRRORRRORORRRORRRORRRRORRROORRRRRRRORRRRRRORRORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRORRRRRROROORRRRRRRRORRRRRRORORRORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROORRRORRORRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRROORORORRRORRRORRRRRRRRRRRRRORRRORRORRRRRRRRORRRRORRRORORRRRRORRRRROROORORROORRRORORRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRRORRRORORRRRRRRRRRORRORRRRRROROORORRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRORRRRRRORORORRRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRORRRORRRRRROORRRRRORRRRRRRROOORRRRRRORRRRORRRRRORRRRRRRRRRRORRRRRRROROOORRRRORORRRRRRRRRRRRRRRRRRROORRORRRRRRRORRRRRRRRRRORRRRRORORRRRRRORRRRRORRRRRRRRORORORORRORRROORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRORRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRROORRRORRRRRRORRRRRORRRRRRORORRRRRORRRORORRRRRRRRRORRRRRORRORRRRRRROOROOORRRORRRRRRRRRRRRORORRRORORRRRRRRROROORRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRORRRRORRRRRORRRROORRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRROROORORRORORRRRORRRORORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRORORRORRRORRRRRRRRORRRRRRRRRRROROORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRROROORRRRRRRRRRRRRORRRRRROORORRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRORRORORRRRRRRRORRRRRROORRORRRRRRROROOORRRRRRRRRRRRORRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRORRORRRORRORRRRRORORRRRORRRRRRRRRORRRRRRRRRRRROORRRRORRRRRRRRRRORORORRROORORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRORORRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRORRRORRRRRRORRRRRORRORRRRRRRRORRORROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRORORORRORRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRORRRRRRRRORRRRRORRRROORRRRRRRRRRRRRRORRRORRORORRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORORORRRRROORRRRRRRORORRROORRRRRRRRRRORRRRRRRRRRRRORRROORRRRROORRRRRRORORRRRRRRRRRRRRRRRORRRRRORRRORORRRRORRRRORRRRRRRRRROOROOORORRORROORRRRORRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRORRRRRRORRRORRRROORORORRRORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRRRRORRRRROORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRROORRRRRORRRRRRORRRRRORRORRRRRRRRROROORORRRRROOORRORORRORRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRROORORRRRORRRRRRRRRORRORRRRRORRORRRORRRRRRRRRORRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORRROORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRRORORRRRRRRRRRORRRRORORRRRRRRORRRRRRRRRRROORRRROORRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRROORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORRRRORORRRRRORRRORRRRRRRRRRORRORRRRRRRRORORRRRRORORRRRRRRRRORRRRRRRRRRROORRORRRRRRRRRRORRRORORORRRRORORRRRRRRRORORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRORRRRRRRRRORRRRORRRRRRRRORRORRORRRRRRRORROORRRORRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRROORORORROORRRRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORROORORRRRROORRRRROORRRRRRRRRRRRRORRORRRRRORRROROORRRRROORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRROORORORORRRRRRRRRRRRRRRRRRRRROROOORORRORRRRRRRRRRRORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRROORRRRRRRRRRRROORRRRRRORRRRRRRRRORORORRRRRRRRRROORRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORROORRRRRRORRRRRROROORRRRRRROROORORRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRROORORRRRORRORRRORRRRRRRRROOORRRRORRRRRRRORRRRRRRRROORORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRROROOORRRRRRRRORORRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRRRRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRORORORRRRRRRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROOORRRRRRRRRRRRRRRRRRRORRORRRORORRRRRRRRRRRRRORRORRRRRORRRORRRRRORRRRRRRRRRORORRRRRRORROORRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRROROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORROOROORRRRRORRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORORORORRRRRRRRORROORRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORROORRRORRRRORRRRRRRRRRRRRORORRRRRRRRRROORRORORRRRRRRRRRORRRRORRRORORRRRRRORRRRRORRRORRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRORRRRROORORRORRRORRRRRRRRRRRRORRRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRORRRRRRRORORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRORRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRORRRRRRRRROORRRRROORRRRRORRRRRRRRRRORRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRORRRORRROORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRRRRORRRRRRRORRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRORRRRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRORRRROORRRORRRRRRRRORRRRRRRRRORORRRORRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROORROORRRRRRRORORRRRRRRRRRRORRRRORRORRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRORRROOROORORRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRROORORRRRRRRRORORRRRRRORORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRORRORRRRRORRORRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRORRRRRRORRRRRRRRRRRORRRORORRRRRRRRRROORRRRORRRORRORRRRRRRRRRRRROORORRRRORRRRRRRROORORRRRRRRRRRRRORRRRRRRRRRRRRROOROROORORORRRRORORRRORRRRRRRRRRRORROROROORRRRRRRROORRRORRRRRORRORRRRRRRRRRRORORRORRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRORRRRRORRRORRRORRORORRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRORRRRORRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRORRORRRRRRROOORORRRRRRRORRRRRRORORORRRRRRRRRRORRRRRRRRRORORRRRRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRRORRRRRRRORRRROROROORRRORRROORRRRORRRRRORRRRORORRORRRRRRRRRRRORRRRRRRRRROORORRRORORRRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRROROORRROORRRRRRORORRRRRRRRRRRRRORRRRRORRORRRRRORRRRORORRRRRRRORRRRRORRORRRRRRRRRRRRORRORORRRRORRRRRRORRORRRROOORRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRRORORRRRRRRRORRRRRRRORORRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRROOOROORRRRRRRRRRORRRRRRRRRRRRRORRORRORRORRRRRRRRRRRRRRRRROOOOOORRRRRRRRRRRORRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRORORRRRRRRORORRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORORORRRRRRRRRORRORORRORRRRRRORROORORRRRRRRRRRRRRORRRRRRRRRRRRORORORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRORRROOORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRROORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORORRRRRRRRORRRRRRORRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRORRRRORRRRRORRRRRROORRRRRORRRORRRORRORRRRRRRORRRRRRORRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRROORORRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRORRRRRORRORORRRORRRRRORRRRORRRRRRRROORRRRRRRORRRRORRORORRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRROROROORORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORORRRRORRRORRRRRRORRORRRRRRRRRORRROORORRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRORORRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRROORRRRRRRRORRORRRRRORRORRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRROORRRRROORRRRRORRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORROORRRRRRRORRRORRRRRROORRRORRORRRRORRRORRRRRRRRRRRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORORRRRRORORRRRORRRORRRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRORRRORRRRRRORRRRRORORORRRRRRRRRROORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRROORRRRRRRRORRRRRRRRORRRRORRRRRORRORRRRROORRRRRORORRRRORRRORORRORORRRRORRRRRRRORRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRORRRRORRORRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRROOOORRROORRROORRROROORORORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRORRRROORRRRRORORRRRRORRRROROORRORRRRRORORORRORRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRORRRRRRRRORRRRRRRRRRRORORRROORRRRORRRRRORORRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRROROORRORRRRRRRRRRRRROOORRRRRRRORRRRRRROORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRORRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRORRRRRORRRRRRRRROOORRRRRRRRORRRRRRROORRRRRRROOROORORRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRROORRRORRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRROORRRRRORRRORORRORORORRRORRRRORRRRROORORRRORRRORRRORRRRRROROOORRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRORRORORRORORRRROORRRRORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRORRRRORRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRORORRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRROROORRRRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRORORRRRRORRRRRRRORRRRRORORRRRRORRRRRRRRRRRORRRRRRRRRRRROOORRRRRORRRORRRRRRORRRRRORRORRORRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRORRRORORRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRORRRROORRORRRRRRRRORROOORRRRROORRRRRRRRRRRRRRORRRORROORRRROROORRRRORRRRRRRRORRRORRRRRRRORRRRRRORRORORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRORORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRORRORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORORRORRRORRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRROORRRRRRRRRORRRORRRORORRORRRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRORRORRRRRORRRRRRRRRROORRRRRRORORORRRRRORRRRRRORRRRRRRRRRROORRRRRROORROOORRRRRRRRORRROROROORRRORRORRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRROOORRRRRROORRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRORRRRRRRROORRRRRRRRRRRORRRRRORRORRRRRRORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRORRRORRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORROROORRRRORRRRORRRRRORRRRRRRRORRORRORRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRORORRRRRRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRRRRORORRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRORRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRORRRRRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRORRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRORRRRRRRROORRRRRRRRRRRORRRRORRRRRRORRORRRORRRRRRORRORRRRRRRRRORRRRORRORRRRRRRRRORRORORRRORRRRRRRRRRORRRRORRORRORORRORRRRRRRORRORORRRORRRORRRRRRORROORORRRRRRRRRRRRRRRRRROROOORORRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRROORRORORRRRRORRRRRRRRORRRRRORORRORRRRRRORRORRRRORRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRORRRORRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRORRRRRRRRRRROORRRRRORRRORRRROORRORORRRRRRORROROORRROORRRRORRORRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRORRRRRRRRORRRRROORORRRRRRRRRRRRRRRORRRRORRRRRORRORRORRRRORRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRORROOROROROORROORRORRRRRRRRORORRRRRRRRROROORRRRRRORORRRRORRRRRRRRRORRORRRRORROORRRRROORORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORRRRRROORROORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRORORRRRRORRRRRRRRRROORRRORRRORROORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORORRORRORRRRROORORRRRRRRRRRRORRRRRRRRRRRRRORORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRROROROROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRROORRRRRORRROORRRRROORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRROORRRORRRORORRRRORRRRRRRORRRRRRRORRRORRORRRRRRORRRRRRRRRORORRRRRRRRRRORRRORRRRORRRRORRRROOORORRRORORRRRRRROOROORRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRROROORRORRRRRRRORRRRORORRRROORRRORROOORRRORRRORROORORRRRRRRRORRRRRRRRRRRRRRROOROORRRORORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRRRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRROORRRRORRRRRROORRRRRRRRRRROOORRRRRORRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRORRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRORRRRRORORRRRRRRORROORRRRRRRRRRRORRRRROORRRRRRRRRRROORRRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRORRRORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRRRRORRRRRRRRRRRRRRRRRORRORRRRROORRRORORRRRRORRRRRORROORRRRRRRRRORRRRORRORRORORRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRORRROORRRORRRRRRRROORRRROORRRRORORRRRRORRRRRORRRRRROROROOORRRRRRORRRRORRRORRRORRRRRRRRRRRORRRRRRRRRROOORRRORRRRRORORORRRRRRRORRRRRRRRRORORRRRROROORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRRRRRORRRORRRRORRRORRRORRRRRROORORRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRORRROORRRRRORRRORRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRORRROORRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRORRORRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRORORRRRRORORORRRRORRRRRRORRRRRRRRORRRORORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRROROROORRORRRRRRRRRORRRRRRRRRORRRRRRRROORRORRRRRRRORRRRORRRRRRRRRRORRORRRRORRRRRORRRRRRRRRORRORRRRRRORRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORROORRRRORRRORRRRRRRRORRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORORRRORRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRROORRRRRRROORROORRRRRRORRRORRRRORRRRRRRRRRROROORRRRORRRRRRORRROORRROORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORRRRRORRRRRROORRRRRRRRORORRRRRORRRRRRRRRROOORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRORORORRORRORORRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRORRRRRRRORRRORRRRRRRRRRRRRORRORRRRRRRORRORRRRORRRRRRRRRRRRRRRRORRROORRORRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRORRRORRRROORRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRROORRROORRORRRRRRRRORRRRRRRRORRORRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRORORRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRROROROORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRROORRRORORRRRRROORRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRORRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRORRRRRRORORRRRRRRRRRRRORRROROROORRRORORORRRRORRRRORRRRRRRRRRRRRRORRORRRORRRRROORRRRRORRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRORRRRRRRORRORRRORRRRRRRRRROOORRORORRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRROORROROORRRRRRRORORRRRRORRROORRRRORRRRRRRRRRROORORRRORRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRORRRORRROORRRRORRORRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRROORRROORRRORRRRRRORRRRRRRRRRROROORRORRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRORRRRORRRRRRROORRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRORRRRORRORRRORRRRRRRRORRRRRRORRORRRRRRORRRORORORRRRRRRRRRRRRRORRRRORROORRRORRRROOORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRROOORRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORORRORRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRROOORRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRROORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRORRORORRRRORRRRRRRRRRRRRORORRRRRROORRORRORRRRRRRORRRRRRRRORRRRORRORRRORRRORORRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRROORRRORORRORORRRORORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRORORRROORRRRRORRORRRRROORRRRRRORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRROORRORRRRRRORORORRORORORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRROORRRORRRROORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORORORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRROORORRROORRRRRRORRORRRRRRORRRORRRRRRRRRRRRROOOORRRORROROORRRORORRRRRORRROORROROORORROORRRRRRRROORRRRRRRORRRRRRRORRRRRRRRRRRRRRROORROORORORORRRROORRRRRRRRRRRRRRRRORRRRRRRROOOROORRRRRRRRRRRRORRRRRRORORORRORRRRRRRRRRRORRRRROORRORRRRRRRRRROORRRRRROOORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRORRORORORRRRRROOROROORRORORRRRORRORRORRORRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRROROORRRRRRRRRRRRRRRRORRRRRRRROORRRROORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORORRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRORORRRRRRRRRRORORRRRRRRRRRRROROOOORRRRRRRRRORRRRRORRRRORORROORRORRRRRRRRRRRORRRRRROROORORRRRRRRRRRRRRRRRRRRROOORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRORORRRORRRRRRRRRRROORRORRRRRORRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROOORRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRORRRRORORRORRRRRORRRRRRRRRRORORRRRRRRORORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRORRORORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRORORRRRRORORRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRORRRORRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRORRRRRRRRRRRRRORROORRRORRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORROOROOORRORORRRORRRROORRRRRRORRRRRRRRORRORROORRRRORROORRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRORRRORORORRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRRORRRRORORRRRRRRRRORRRORRORORRRRRRRRORORRRRRRORRROOORRRRRRRRRRRRORRROORORRRORROORRRRRROORRORORRORRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRROORRRRORRRORRRRRRROORRRROORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORORRRROORRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORORRROORRRRORRRRORORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRORRRRRRRORRORORRRRRRRRRORRRORORRORRRRORRRRRRRRRORRRRRORRRORRORRORRRRRORRRRRRRRRORRORORRRRRRRROORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORORORRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRRROROORRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRROORRRRRROORRRRRRRRROROORRRRRRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRORORRRORROORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRORRORRRORRRRRRORORRRRRRRRRRRRRRRRRRORROORORRRRRORRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRORRORRROORRRRRRRRRRRRORRRRRRRRRORROORRRRRROROORRRRRRRRRORRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRRROROORRRRRRRORRRRRROORRRORRRRRRRRRROROROROORRRORRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRROORRRORRRRRRRRRRRRORRRRORRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRORRRRORRRORRRORRRRRRRROORRRRRRRORRRRRRROROORRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRORRRROORRRRORRRRRRORRORRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRORRRRRORRRRRRRRRRRRORRRORRRRRRRORRRORRORRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRROORRRRRRRRRRRRRORROORRRORRORRRRRRRRRRRRRRRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRROORRRRRRRRORROORRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRRRRRRROORORRRRRRRRRORRORRRRRRRRRRRRRORRORRRRRRRRRORRORROROORRROORORRRRRRRRRRRRORRROOROORRORRRRRRRRRRRRRROROORRRROORRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRROORRORRRRORRRRRORORRRRRRRORRRRRORRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROROORRRORRORRRORRRRORRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRORRRRRRRRORRRRORRROORRROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRROOORRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRORORRORORRRRRRORORRRORRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRORRORORRRRRRORORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRORRORRRRRORRRORRROORRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRORRORRRRORRRORRORORRORRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRORORRRRRRORRRRORRRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRORRRRORRORRROOROORRRRRRRRRRRRRRRRORRRRRRROROORRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRROORORRRRRRROORORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRORRRRORRORROORRORRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRRRRROORROORRROROORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRROORRRORRRORORRORRRORORRRRRRORORRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRORRRROROORRRORRRRRRRRRRORRRRRORROORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRORRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRORORORRRRRRRRRROORRRRRRRRRORRRORRRRRRRORRRORORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRROORORRRORRRRORRRRRRRORRRRRRRORORORRRRRRRRORRRRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRROORRRRRROORORRRRRORRRRRRRRRROOROORORRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRROORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRORRRRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRORORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRORRRRRORORRRRRRRRRRORRORRRRRROORORRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRORORRROOORORORRRRRRRORRRORRRRRRRRRRRORRRRRRRRROOORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRRRRORRRRRRORRORORRRRORORRRRRRORRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRRRORRRRRRORROOROORRRORORRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRORRRRRORRORRRRORRRRRRRROOROORRRRRRRRRRORRRROROORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRROORROORRRRRRRRRORRRROOOORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRROOROORROORORRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRRRRRRORORRRRRRORORRORRRRRORRRRRRRRRRORRRRRORRORRRRRORRRORRRRRRRRROORRRRRRRRRRRORRORRRRRRORRRRRRRRRRROORRRROORRRRRORRRRORRORRRRRRORRORRRRRORRRRORRRRORRRRORRROROORRRRRRRORROROORRRRRRRORORRRRRRRRRORRRRRRRRRRORORRRRRRRRORRROORORRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRRRRRRRROORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRORRORRRRRRORORRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROOOORORRRRRRORRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRRRROORRRRRRRRORORRRRORRRRRRRRRRORRORRORRRROORRORRRRRRRORRRORRRRRRRRORORRRRRORRRRRRRRRRRRROOROORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRORRORRRRRORRORRRRRRRRORRRORRRRROROORRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRORRRRRORRRRORRRRORRRRRORRRRRRRRRORRRORRRRRRRORROROORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRORORORRRORRRROOORRRRRORRORRRRRRRORRRRORRRORRRRRRROORRRRRRRRORRRRRRRRRRRRORORRRRORRORORRRRORRRRRRRRROORRORRRRRORRRRRRORRRROORORRRRRRRRORRRRRRRRRORRRRORORORRORORRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRORRRRRRORRRORRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRROOOROROROORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRORRRRORRRRRORRRRRORRROORRRRRORRORORRORROORRRRRRRRRRRRRRRROORORRRRRRORRRRROOORORRORRRRORORRRRRRRRRRRORRRRRRRRRRORRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRORRRRRRORRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRORRRROORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRRORRORORRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRROORRRORRRRRRRRRRRORRRROORRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRRRRORRRRRORRRROORRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRORORRRRRRRRRORRROORRRRRRRRORRRRRRRRRRORRORRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRROOORRRORORRORRRRRRRORRRRRRORRORRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORORRRORRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRORRRRORRRRRRRORRORRRRRRRRRRRRRROORORRRRRRRORRRRRORORORRRRRORRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROOORRRRRRRRORRRRORRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRROROORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRORORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRORRRRRORRRRRRROORRRRRORRRRRRROOORRORRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRORROOOOORRRORORORRRRRRRRROOROORRRRRORRRORORRRRRORRORRRRORRORRRRORRORRRRORRRRORRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRROORRRROORRORRRORRRRRORRRRRORRRRRRRRRORRORRRRORRRORRRRROROORRRRRRORROORRRRORROORRRRRRRROORORRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRORORRRRRRRRRRORORRRORRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRROOORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRORRRORRROORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRORORRRRRRORRRRRORRRORORRRRORRRRRORORRRRRORRORRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRROORRRRRRORRRRRORRRRORORRRRRRRORRRRRRRRRROORRRRRRRRROORRRRRRORRRORORRRORROORORRRRRRRRRRRRRRRRRORRORRRRRRRRRRROORROROORRRRRRRORORRRRORRRRORROORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRROROROORRRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRRROORRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRORRRRROORRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRORRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRORRRRRRRRRORRRRRRRROOORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRRRRORRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORORRRORRRRRRRRRRRRRRORRRORRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRORRRORROORRRRRRRRROOORROORRORRRRRRRRRRRRRORRRRORRRORRRORORRRRORRRORRRRORRRRRRRRRORRRRRORRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRORRORRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRORRRRRRORRRORRRRRORRRRRORRRRRORRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRROORRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRRRRORRORRRRROORRRRRRRRRRRRRRRRORRRRRRROOROROORRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRORRRRORORRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORORORRRORRRRRRORRRRRRRORRRRORRORRRRRRRRRORRORRRORRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRORORRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRRORRRRRORRRRRRRRORRRRROORRRRRORRRRROOOORRRROORRRRRRRRRRRRRRRRRRRROORRROORRORRRRRORRRRRORRRRORRORRRRORRORRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRORRRORRRRORRORRRROOORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRORROOORRRRRRRROORRRRRRORRRORRRRRORRRRORRORRRORRROORRRRRRORRRRRRRRRRRRRRROOORRRRORRRORRRRRRRORRRRORRRRRORRRRRORRRRRORRRORRRRRRRRRRRRRROORRRRRRORRRRRORRRRRRRRRRRORRRRRRROORRRRRORRRRORRRRRRRORRORRRRRRRRROORORRRORRRRRRRRRRRRRROORRRRRRRORRORORRRRRRRRORRRRRRRRRRORORRRORORRORRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRORRORRORORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRORRRRRROORORRRRORRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRORRRRORORORRROROORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRRROOORRORRRRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRROOORRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRRRORRRRRRRRORRRRORRRRRORRRRRRRRRRRRORRRORORRRRORRRRRRRORRRRRORRRORRRORRRRRRRRRRRRRRROOORRRORORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRROORRRORRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRORRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRORRRRRRRRRRRRRRRRRRORRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRORRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRORRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRROORRRROORRRRRRROORRRRORRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRROROORRRRRRRRRRRRORRORRRRRRORRRROROORORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRROORRRORRROORRRRRRRRRORRRRRROORRRRRRROORRRRORORRROORORRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOOORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRRORORORRORRRRRRRROORRROORRRRRRRRRRRRRRORRRROOORRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRORRRRRORRRRROORRRRRORRRRRRRORORORORRRORRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRRRRRRORRORRRRRRORRRORRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRROORRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRROORRRRROORRORRORORRROORROORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRRRORORRORORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRROORORRRRRRRRRRRRRRRRRRORRORRRRORRRORRRORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORORRRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRORRORRRRRRORRORRRRORRRRORRRRRRRRRRRRRRORROORORRROORRORRRORRRRORRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRROORRRRROROROROROORRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRORORRRRRRRRORRRRRRRRRRRRRRRRRRROORRROOORORRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRROROORRRRRRORRRRRORORRORRORRRRRRORRRRRORRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRROORRRRRORORORORORRRRORORRRRROOROORRORRORORRRRROORRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRORRRRRORRORRRRRRRRRRORRRRORRROORRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRORRRRRRRRRRRRRRRRORRROOORORRRRRORRRORRRORRRRORRORRRRORRRRRORRRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRROROROORRRRRORRORRRRRRORROOORRRORRORRORRRRORRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRROORRRRROROORORRRORRRRRRRRRORRRRROORRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORRRRORRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRROROOORRRRORRRRRRRRRRORRRORRRRORRRRORRORRORRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRORRRRORRRORORRRRRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRORRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRORRRRRRORRORRRRROORRRRRORRRRRORRORORRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROROORRRRORRRRRRRRRORORRRRRORRORORRRRRRRRRRRRORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRORRRORRRRRRRRRORROOORORRORORRRRRRRRRRRORRRRRRRRRRRRRRROOOORRRRRRRRRRRORRRRRRRORRRORRRRRORORRRRORRRRRRRRRRRRRRRRRROORRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRORROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRORRRRORRRRRRRORORRRRROOORRRRRRRRORORRRORRRORORRRRORRORRRORRRRRRRRRRRORRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRORRORRRRRRRRORROORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORRRORORORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRROORORRRRRRRRRROORRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRROORRRORRROOORORRRRRRRROORORRRRORRRRRRRRORRORORRRRORRRRORRRRRRRRORRRRRRRRRORRRRRRRRRORRORORORRORRRRRRRRROROORRRRRRRRORRRRRRRRRRROORRRRROORRORRRRRRRRRRRRRRRROROORRRRRRRRRRRORRORRRRORRRRRRRRRRRORRRORRRRORRRRRRORRRORRRRRRRRRORRORRROORRORRRRRRORRRRORORRRRRROORRRRRRROORRORRRRORRRRROOORORRORRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRORRRRORORRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORORRRRRRRRORORRRRRRRORRRRRRROORROORRRRRRRRRRORRRRROROORRRRROORORRORRRRRRORRRRRRRRORRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRROORRRRRRORRRRRRRRRORRRRRRRRRRROORORRRRRRRORRRRRRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRORORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORORRRRRRORRRRORRRRRRRRORRRRROORRRRRRRRRRRORRORORRRRRRRRRRORRRRRRORRRRORROORORRRRRRORRRRRRRRRRRRRRROROOROOORRRRRORRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRORRORRRRRRRRORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRORRRRORORRORRRRRORRRRRORRORRRRRRRRRORROOROORORRRRRRRORRRRRRRRORRRRRRRRRROORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRROOORRRORRRRORORRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRORORROORRRRRRRRRRORRRROORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRROOORRRRROORRRRORRRORRRRRRRRRRORRORRRRRRRRRRRORRRORRRORRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRORRORORRRRRRORRRRRRRRRRRRORORRRRRRORORRRRORRROORRRRRRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRRORORRRORRRRRRRRROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRROORORORRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRROORRRRRORRRRORRRRRRRORRORROORRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROROOORRRRRRRRRRRRRRRRORORRRORRRRORRORRRRORRRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRROOORRRRRORRRRORRRRRORRRORRRRRRRRRRRRORRRRORORRRORRRRRORORRRRRRRRRRORRRRRROROORORRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRORORRRRRRROOORRRORRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRROORRRORRRRRROORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRORRORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORROORRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRROOORRRRRRORRRRRRORRRRORRRRORRRRRRORRRRRORRRROOORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRORORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRORRRRORRRORORRRRRRRRRRRRORORRORRRRRRORORRRRRRRRRRRROOORRRRRRROORRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRORRRORORRRRRRRRRRRRORRRORRRRRORRRRRORRRRRRRRRRORRRRORORRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRORRRRRRRROORRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORROOORRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRORRORRORRRRORRRRRRRRRRROORRROOORORRRRRORRRRRRORRRRRORORRRRORRORRRORRRORRRRORRRRORRRORRRRRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORORRRRRRRRRRRORORRORRRRRRRRRRRRRROORRRROORORRRRRRRORRRRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRORRRRRORRROORRRRRORRRRRRROORRRRRRRRRRRRRRROORRRRRRORRRORRORRRRRORRRRRRRRORRRRRORRRORRORRRRRRORRRRRRRRRORRRRRRORRROORRRORRRROORRRRRORRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRORROROOORRRRRRORRRRORRRORRORRORRRRRORORRRRRRRRRRROORRRRRRRRRRRRRORORORRRRORRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORRRRORRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRORORRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRROORROORRRRRRRRRRROOOORRORRRRRRRROORORORRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROORRROORORRRRRRRRORROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRRORRRORRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRORRORRRRRRORRRRRORORRRRRRORRRORRRRRRRRRRRRRRRRROROORRORRORRORRRRROORRRRRRRRRROROORRRRRRRRRORRRRRRRRORRRRRRORRRRORRRRRRRORRROORRROROROROORORRRRRRRRORRRROROROROORRORRRORRRROORRRORRRORRRRRRORRORRRRRRRRRRRRORRRRRRRORRRRRRRORRRRRORRRROORORRRORRRRRRORRRRORRRRRRRRRRORORRRRRRRORRRRRRORROORRRRORRRRROORRRORORORRRRRRRRRRRORRRRRRRRRRRROOROORORRRRRRRRORRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRORORRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORROORRRORORRRRRRRRRORORRORRRRRORRORRRORORRRRRRRRRRRORRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRORRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRROORROORRORORRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRROORRRRRRRRRORRRRRORORRRRORORRRRRRORRRRORRRRRRORRRRRRRORRRROORRRRRRRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRROROORRRRROORRORRORRRRRORRRORRRRRRROORRRRRORRRRRRRRORRRROORRRORRRRRRORRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRRRORRRRORRROOORRRRORRORRRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRORRRRRRROORRRRRORRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRORRRRRRRRROROORORRRRRRRORRORRRRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRORRRRRRRORRRRRORRORRRRRRRRRROORRRRRORRRRRRORRRRRRRRRRORRRRORRRRORRROORRORRRRRORROORRORRRRRRRRRROORORRRRORRRRORRRRORRORRRRROROORORRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRRROROROROORROORRRRRRRRRRRORRRRRRRORRRORRORRORORORRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRROORRROORORRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRROROORRRRRORRRRRRRORRRRRRRRROROORRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRORRORRROORRRORROORORROORRRRRRRRRRRORRRRRRRRRROROORRORRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRROORRRRORRRRRRRRORORRRRORORRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRORRRRRRROROORRRRRRRORRRRRRRRORRORRRROOOORRRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRORORRORRRRRRRORORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRRRORRRRRRRRRRRORRRRRORRORRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRROORORORORRRRORORRRRORRRORRRORORORRRRRRRROORORRRRRRRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRORROORRRRRRRRRORRRRORRORORRRRRRRRRRRRRRORRRORRORRRRRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRORORRRRORRRORRRRRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRORRRRRRRRRORROORRORRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRROORRRORRRRRRROOORRRROORRRORORRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRRROOOORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRROORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRORORRRROOORORORRRORRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRROORRROOROROOORRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRORRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRORRRRRRORRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRORRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRORRROORRRRRRRORRROORRRRRORRROORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORORROORRRORORRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORORORORRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRORRORORRRRORRRRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRROORRRRRRORRRRRRRORRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRRRORRRRRRRRRORRRROORRRRRROORRRRRRRRRROORORRORRRRRRORRRRRRRORRRORRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRORRRRRRRRORRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRORRRROROROORRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRORRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRORORRRORORRORRRRRRORRORRRRRRRRRRROORRRRRRORRRRROORRRORRRROORRORRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORORRRRRRRRRRORRRRORRRRORRRRRORRRRRRRRRRROOROORROORRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRORRORORRRRRRRRRRRRRRRRORRRRRRORORORRORRRRORORRRORRRRRRRRRRRRRRRRROOROORRRRRRRRRRRROORRRRRRORRRRORRRORORRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRORRRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORORORRRORRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRORRRRRRRRORORORRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRROORRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRROORRORORRRORRORRRRRRORRROORORRORORRORRORRRRRRRRRRRORROORRRRRRRORRRORORRRRRRRRRORROROORRRRRRRORRRRRRRRRRROORRRORRORRRORRRRORROORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRROROORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRRORRORRRORRRORRRRORRRRRRORRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRROORORORRRRRRORRRRRRORRRRRRORRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRRRROORRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRORRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRORRRRRRRRROROORORRRRRRRORRRRRORRRRRRRRRROROORRRRRRRRRRRRRRORORRRRRRROORRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRROORORRRORORRRRRORRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRORRRRRRORRRRRRRORRORORORRRRRRRRRRRRRRRRRRORRRORORRRRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRROOORORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRROOORRRRRRROORORRRRRRRRORRRRRRRRRRRORORORRORORORRRRORRRRRRRRROORRRRORRORRRORRRRRRORRRRRRRORRORRRRRRRRRRORRRRORRRRRRRRORRORRRRRRORRORRRRRRRROOORRRORRRRRRORRRORRRRRRORRRRRRRRRRROOORRRRRRRRRRRRRRRRRORRRORORRRORRROORRRORRRRRORRRROROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRRRORRRORORRRRRROORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORORRRRROORRRRROORORRRRRRRRRORROORRRRRORRRRRRRORRORRRRORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRORROORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRROORORRRORRRRRROOORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRORRRORRRORRRRRORORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRORRRRROORRRRRORRRRRRORRORRRRRORRORRRRRRRRRRRROORRRRRRRRRORRRRORRRRRRRRORRRORRRROOORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRORORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORROORRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORROORRRRRROORRRROORRRRRRRRORRRORRRORRORRRORRRRRRRRRRRRORRRRRRORORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRRRRRRRORRORRRRRRROORORRRORRRRRRRRORRRRRRORORRRROORRRRRRRROORRRORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRORORRRRRRRRRRRORRRRRROORRRRRRORRRRRORORRRRRRROORORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRROORORRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRROOORRRRRRRRRORRROORRRORRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRRRORRRRRRORRRRRRRRRRROROORRRRRRORRRRRRRRRRRORRRRRRRRRORRRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRORROOORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRRORRORRRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRRROROORRRRRRRRRORRRORRRRORRRRRRRRRRRRRORORRRRRROROORRRRRRRRORROROORRRRRRRRRORRORRORORORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRROORRORRRRRRRORRRRRRORRRRRRROORRRRRRRORRRORRRRORORRRRRORORRORRRRRRRORRRRRRRORRRRRRORRRORRRRRRRRRRRRRORRRRORRORORRORRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRROORRRRRRRRRORRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROROORRROORRORRRORRRRRROROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRORORRORRRRROORRRORRRRRRRRORRRRRORRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRROORRRRRORRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRORRRORRRRRORRRRRRRORRRORORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRORRROORRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRORORORRORRRRRRRRRRRRORORRRRRRRRRRORRROOROORRRRRRORORRRRRRRRRRRRRRORORRORRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORROORRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRORRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRORRRORORRRRRRRRRROROORORRRRRRRRRORRRRRRRRRRRORORRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRORRRRRRRORROORRRORRORORRORRROROORRRRRRRRORRRRORROORRORRRRRORRRRRRRORORRRRORRRORROORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRORROORRRRRRORRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRORORROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRORRRROORRRORRRRRRRRRORRRROORRRRRRRRRRRROOORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRROORROORRRRRRRRRRRRORRRORRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRROORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRORORRRRRRRORRRRRRROORRRRRRRRRRRRRRRORRRORRRRRORORRORRORRORRRRRRRRRRRRRRORROOORORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRORRRRRRRRRRORRRORRORRORRRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRORRRRRRRORRRROROORRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRROORRRORORRORORRRRRRORRRRRRRRRRRRRORROORRRRRRRRROORRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRROORRRRRRRRRRRORORRRRRORRRORROROORRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRORRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRROORROORRRRRRROORRRRORRRRRRRRRRORRRRRRRRRRORRRRROORRRORRRRRRROORRRRRRORRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROROORRRRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROOROOORRRRRORRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRORRORORRROROOORRRRORRRRRORRRRRROORRRRRRORRORORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRROORRRRRRRROORRRRRRRRRRRROORORRROORORRORRRRRRRRRRRRRROORORRRORRRRRROORORRRRRRRRRRRORRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORRRRORRRROOORORRRRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRORORRRRROORRRRRORRRRRRORRORORRRRRRRRRORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRRORORRRRRORRRRRORRRORRORRRRORRRORRRRRRRRORORRRRRRRRRRRRRRORORRRRRRORRROORORRRRORRRRRORRORRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRORORRROORRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRROORRRRRRRRRORRRRORRRRRRRRORRRROROORRRORRRRRRRRRORRRRRORROORRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRROOORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRORRORRORRRRRRORRRRRRRRRRRRRRRRRROORRRRRORRRORRORORORRRRRROORRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRORRRORRRRRRRRRRROOORORRRRRRRRRORRRRRRRRRORRRRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRORROORRRRRORRRRRRROOORRRRRRRRRRRRRRRORRRORORRRRORRRRRRRORORORRRORRRRORROORORORORRRORRRROORORORRORRRRORRRRRRRRRRRRRORRORORRRRRRRROORRRORORRRRRRRRRRRORROORRRRROOORRRORRRRRROOORRRRROROORRRRRRRRRRORRRRRRRORRORRORRORRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRORORRORRRRRRORORORORRRRRRRRRRRORRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORORORRRRORRRRRRORRRRRORRRROORRRRRRRROORRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRROORRRORRORRRRRRRORORRRRRRRRRRRRRORORRRORRRRRROORRRRRRRRORRRRRRRRRORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRRRRRRROORORRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRORORRRRRRRORRRRRRROORRRRORORRRORRRRRRORRORORRRRORRORRRORRRRRRRORRRRROROOROORRRRRRRORRRRORRROORRRROORRORORRRRRORRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRORRRRRORRORRRRRRORORRORORRRRRRRRRRORRRRRRRRRRRRORRORRROORRORRRORRRORRRORRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORROORRRRORORRRRRRRRRORRRRRORRRORORRRORRRRRRRRRRRRORRORRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRROORRRRRRRRRORRRRRRRRRORRROROORRORRRRRRRRRRRRORORRRRORRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORROORRRRRRORRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRRRRORRRRRRROOORORRRORORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRROOOORRORORRORRRRRRRORRORORRRRRRRROOOROORRROORRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRROORRRRRRRRRRRRORRRORRROORRRRRRRRRRRRRRRORRRRRRROOORRORRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRROORRRRORRRORRORRRRRRRRRRRRROROOORRRRRRORRRRRRRORRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRORRRORRRRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRORRORRRRRRRRRORRRRORRRORORRRRORROORRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORRRRRRRORRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRORRRRRORRRRRROORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRROROORRRRROROROROROOOORRRRRROORRORRRRRRRRRRORRRRRORRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRROORRRROOORRRRORORRROROORRORRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRRRRRROROORRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORRRROORRRRRRORORRRORRRRRRRRRRRRRORROORORRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRORRRRRORRRRRRORROORRRRRORRRORRRRORRRORRRRRRRRRRRROORRRRRRRRRRRORRORRRRORRRRORORRORRRRRRORORRRRRRRRRRRROOORRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRROORORRRRRRRRRRORORRRRORRRRROORROORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRORRORORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRORRRORRRROORRRROOORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRRROORRRRRROORRRORRRRRRRORRRORRRRROORRRORRRRORRORRRRRORORRRORORRRRRRRRRRORRRORRORRORRRRRRRRRRRRRRRRORRRRROORRRRRRRRORRRRRRRRORRRORRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRROORRRRRORRRRRRORRORRRRRRRORRORRORRRORRRRORORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRORRRRRORROORRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRROROORORRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROROROOORRROROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRORRORORRRRRRRORRRRRRRRRRRRRORORRRRRORRRRRRRRRRROROORRRRRRRORRRRRORORRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRRROORRRRORRRRORRRRRROORRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRORRORORRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRORRRRRRRRRRORRRORRRRRRRORRRRORRRRRRRRRORRRORRRRRRRRRRORORRRORRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRORRORRRRRRRRROORRRRRRRRRRRRORRRRORORRRRRRRRRRROORRRRRRRRRRORRRRORRRRRRRRRRRRORORRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRORRRRRORORORRORORRRRRRRORORRRRRRRRRRRRRRROORRRRRRRRRRORRORRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRROOORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRORRORRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRORRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORORRRRORRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRROOORRRORORRRRRROROORORRRORRRORRORRRRRRRRROORRRORRRORORORORRORRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRORRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRORRRORRRRRORRRRRROORRORRORRRRRORRRRORRRRORORORRRRRRRRRRRRRRRRRRRRROORRRORRRRRRORRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRRRRRRORRRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRROORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRORORRRRRRRRRRRRRRRRRRRORORROOORORRRRRRRRRRRRRRRROORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRROORRRORRRORROORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRORORRRRRRRRORRRORORRRRORRRRROOORRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRORRORRRRRRRRRROROORRRRRRRROORRRRRORRRRORRRRRRORRORRRORRRRORRRRORRRRRRRRROORRORRRRRRRRRRORRRRROORRRRRORRRROORRROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRRRRRRORRRORRRORRROOOROORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRORORRRRRRORRRRRORRORORORRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRORRORORORRROORRRRRORRRRRRROORRRROOORORRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORORRRORORRRRRRRRRRORRRRRORRRRRRRRRRRRRROORRRORRRRRRRRORORRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRORRRRRRORRRRORRRRORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRROORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRROORRRRORRRRRRRRRRRRRRRORORRRRRRRORORRRRRRORRRRRRRRRRRRRRRORRORROORRRRRRRRRROORRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRORRRRRORRRORRRRRORRRRRRRORRRRRRRRRORRORRRRORRORRRRRORROORRRRRRRRRRRRROORROOOORRRORRRORORRRRRRRRRRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRORRORRORRRRORRRORRRRRRRORRRRRORRRRRRROORRRRRRRRRRRRRRRRRORRORRORRORRORRORRRRORRRRRRORRORRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRORORRORRRORRORRRRRRORRRRRRRRRRORRRRRRRRORRRRROORORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRORRRRRRRRRRRRORRRRORRRRRRROORRRORRRRRRRORRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORORORORRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRORRORROOORRRRRRRRRRRORORRRRRRORRRRRRRORRRRRRRROORRRRROORRRRRRRRRRRRRRRRROORRRRRRRRRORRRORRRORRRRRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRRRORRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRROORRRRROORRRROORRRORRRRRRROORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRORORRRRORRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROORRORRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRROROORRRRRRRRRRORRRRRORRRRORRROORRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRORRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRROORRRORRRRRRORORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRORORRRORRRRRRRRROORRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRORRORRRRRRROORRRRRRORORRRORRRRRORRORRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORRROORRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRORRRORRRRRRRRORRRRRRRORORRRRROORORRORRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRORRRORRRRRRRORRORRORRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORORROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRORRRORRRRRRROORRRRRORRRORRORRORRORRORRRRRRRRRORRRRORRRRRRRRRRORRRORRRRRRRORROORORRRRRRORRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRRORRORRRRRORROORORRORRRRORRRRORRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRROORRROORORRRRRRRRRRRRRORRORROOOOORRRRRRRRRORRRRRRRRRRORRORRORRRRORRRRRRORORRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRRRRRRORRORROORRRRRRRRRRRRRORRORRRRRRRRROORRRRRRRRRRRRROORORRORRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRORRRRORRRRROORRORRORRORRRRORRRRORRRORORRRORRRRRRRORRORRRORORORRRRRRRRRRRRRRRORRRRRRRROORRRRORRRORORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORRRRRRRRRRROORRRRRRORRORRORRRRRORRRRRRORRRRRRORRRRROORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRORRRRORRRROORRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRROOOOORRRRORORRRRRRRORRROROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORORRROORRRRRRRRRRRORRRRRROORRRRRRORRORRRRRORORORRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRRORRRORRROORORRRRORRRRORRRRRORRRRRRORORRORRORORRORRRRRRRRRRRRRROROROORORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRORRORRRRRRRRRRRROORORRRORRRRRRRRRRRRRRRRRRRROORORRRRRORRORRRORRRRRRORRRRRORRROROORRRORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRORRRRRORRRRORRRORRRRRRRORRRRRRRRORRRORORRRRRRORRRRRRRORORRRRORRRRORRRRRORORRRRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRORORORRRRRORRRRRRRRRRRRRRRRRORROORRRRRORRRRRORRRRRRRRRRRRRRROOOORRRRRRRRRRRRRORORRRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRORRORRRRROORRRRRRRRRRRORORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRROOORRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRORRORROORRRRRRRRRRRRRRRORRRRRRRRORRRROORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROOORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRORORRORRRRRRRRRRORRRORRRRRRROORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRORRRROORRRRRRRRRRRORRORRRRRORRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRORRRORORRORRORRRRORRORRORRRRORRRRORRROORRORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRORORORRROORRRRRRRRRRRORRRORRRRRROROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRORORRRRORRRRORRROROOORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRROOORRRROORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRRROORRRRRORRRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRROORRORORRRRRRRRRROORORRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRORRRRORRROORRRRRRRRRORRRORRRRRORORRRRRRRRRRRRRORRRRRRRRRORRRORRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORORRORRRRRRRRRORRRORRRRRRORRRRRRRRORORRRRORRRRORRORRRRRRRRRRRRORRRRRRRRORORRORRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRROORRRRRRRRRRORROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRROORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORRRORRRRRRORRRRORORORRRORRRRRRORRRRRRRRRORRRORRRRRRRORRRRRRRORORRRRRORRORRRRORORRRRRRRRRRRRORRRRRRRRROROORRRRRORRRRRRRRRRRRRRRRORRRRORRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRORORRRRRRRORRRRRRRRRORROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORRORRRRORRRRRRORRRORRRORRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRORRRRRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRROORRRRRORRORRRRRRRRRRRORRORRRORRRRRRROROORRRORRRRRRRRRRRROORRRRORRRRRRRRRORRRRRORRRRORRORRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORORRRRRRRRORRRRRRRRRRRORRRRRRROORRRORORRRRRORORORRRRRRRRRRRRORRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRORRRORRRRORORRRRRORRROOORORRORORRRRRORRRRRRROORRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRORRRRRRRRRRORRRORORRRRRRRORRRRRRORRORROORRRRRRRORRORRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRORRRORRRRORRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRORRRRROOORORRRRORRRRRRORRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRRRRRRRRRRORRROORORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRORRRORORRRROORRRORRRRRRRRRRRRRORRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRORORRRRRORRORRORRRRORRROORORRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORROOORRRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRORORORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORORORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRROORRRRRRRRRRROORRRRORRORRRRRROOORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORORRRORORRRRRRRRRRRRORRORORRRROORRRRRRRORORORRRRRRRRROORRRRRRRRRROORRRORRRRRORORRRRRRRORORRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRROORRRORRRRRROORRRRORRRRRRRRRRRRRRRRORRORRRRRORRRORORRRRRRRRRRRRORRRRORRRRORRRRORRRRRRRRRROOORRRORRRRRRORRRRRRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRROOORROORRRRRRRRRRRRRRRRORORRRRRRRROOORRORROOORRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRORRRRORRORRRORRROOORRRORRRORRRRRRRRRRORRRRORRRRORRRRRORRRRRRORRRRRRORRRRRRRRRRORRRORRRRRRORRRRORRRRRORRRRORRORRRRRRRRRRRRRRRRRRRROORRRORRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRORORRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRORORRRRRRORRRRRRRRRORRORRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRRORORORRRRRRRRRRORRRORRRORRORRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRORRRORRRRRRROOOORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRORRORRRRRRRRRRRRROOROORRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRROROOOORRRRRRRORRRORRRRRRRRRRORRORRRRRRROORRRRRRRRRRRRRRORORRROORRRRRRORRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRROORRRORRRRRRRRROORRRORRRRRORRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRROORRRRRRRRRRORORRRRRRRROOORRRRRRRRRRRRRORRRRRRRORRRRRORRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORROORORRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRORRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRORRRRRRORRRORORRRRRORRRROORRORRRRRRRRRRRRRRORRRRRRRRORROORRORRRRORORRRRRRORRRROORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRORRRRRRORRORRRRORORRRRRRRRRRRORRRORRRRRRORRRORRRRRRORORRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRORRRRRRRRRROORRRORRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRROORRRRRORRORRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRROORRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRORRORORRRRORRORRORRORRRRRRRORRRRRRORORRRRORROROORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRORORRRROORRRORRRRRRRRRORROROORROORRRRRRRRRRRRRRRRRRRORRRORROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRORRRRORRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRORORROORORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRORRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRROORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORORRORRRRRRRRRRRORRORORRRRROORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRORRRORORRRRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRROROROORRRRRRRRRRRORRORRRRRRRROORRRORRRRRRORRORRRORORRRRRRRRRRRRORRRORRRORRRRRORRORRRRORRRRORRRRRRRORRRRRORRRRRRRRROORRRORRRRRROORRRORRRRRRORRRRRRRORRRRRRRRRRORRRORRRRRRRRRORRORRORRRRRRORRRRORRORRORRRRRORRRRRRRRRRORRRRRRRRRRRRRORRORRORRRORRRRRRRRRORRRRRRORRRRRRRRRRORRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRORRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRRROORRORORRRRORRRORRRRRRRRRRRRORRRRRORRRORRRRROOORRRORRRRRRRRRRRRRORORRORRRRRORRRRRORRRORRRRRORRRRORRRRRRRRRRORRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRORORORORRRORRRRRRRORRORRRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRORRRRRROORRORRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRRROROORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORROORORRRRORRRRRRRRRRRRRRRRRRRORROOORRROORRRRORRRRROORORRRRRRORRRRRRRRRRRORRRRRORRORRRRRORRRRRRORRRRROOORRRRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRORRROOORRRRRRORRRRRRRRRRRORORORRRRRRRRORORRRORORRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRROORRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORRORORRRRRORRRRRRRRRRROORRRRRRORRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRORORRRRRORRRORRRRRRRRORRORRRRRRRRRORORRORORRRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROOORRRRRORORRRRRRRRRRRROORRRRRRRRRRORRRRRRORRRRRORRRRRRORORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRORRORRRRRRRRRORRRRRRRROOOORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRRORRORRRRRRORRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRRRORRRORRRRRRRRRRORORRRRORRRRROORRRRRRRRRRRRROORORRORRRRORRRORORRRRORRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRROROORRROORRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORORORROOORRRORRORRRRRRRRRRRRRRORRRRRRRRRORORRRRORRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRRRRRRORRRRRRORRORROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRORRORRRRRORRRRROORORORRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRORRRRORRRRORRORRORRRRORRRRRRORRRRRRRRRRRRORRRORRORRRRRRROORRRRRRORRRRRRORRRRRRORORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRROORORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRRRORORRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRRORRRRRROORRORRRORRRRRRRRRRRORORRRRRRORRORRORORRRRRORRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRORRRRRORRRRRORRRRORRORORRRORRRRRRRRRRRRORORRRRRRRRRRRROORORORRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRORRRORRRRRORRRRORRRRORRRRRORRRRROORRRRRRORRRRORRORRORRRRRORRRORROROORORRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRORORRRORRRRRRRRORORRRRRRRRRRRRRRORORRORRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRORRRORRRRRRRRRRRORRRORRRORRRRRRRORROROORRRRRRRRRRRORRRORRORRRORRRRRRRRORRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRORRRRROORRRRRRRORRRORRRRRRROORRORRRRORORRRORORRRRRRRRRRROROORRORRRORRRRORRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRORRRRRROORRRRORRRORRRRRRRROORRRRORORRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRRROOORRRRRROORRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRRORRRORRRRRORRRRRRRRRRROORROORRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRORORROORRRORRORRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRROORRRRRORORORRRRRRRRRRRRRRRRRRRRORRRRORROORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRROORRORRRRRORRRRORORRRRORRRRRORRORRRRRRRRRRRORROORRRORRRROROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRORRRRORRRRORRRRROORRRRRRORRRRRROORRROOOORORORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRORRRORRRRRRRORRROORRROORRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRORORRRORRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRORROROORRRRRRRRRORRORRORRRORRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRORORRRRROORORRRRRRRROOORRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRROORORRRRRRRRORRORORRORRRRRORRRRRORRRRRRRRORORRRROORORORRRRRRRORRRRRRORRORORRORRRORRRRRRRRRRORRRRORRRRRRRRORROOORRORRRRRRORRORRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRORRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRORRRORORRRRRRORRRORRRRRRRRRRRRRORORRORRRRRORRRORORRRRRRRRRRORRORRRORRORRRRRRRRRRORRRRRORORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRORRORRRRRORRRRRRRRRROORRRORRRRORRRRRRORRRRRRORRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRORRRRORRRROORRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRORORRRRRORRRRRRRROOORRRRRRRRRORRRRORORRORORRROORORRRRORRRRRRRRRRRRRRRRRRROOROOROROROORORRRRRORRRRORRRRRRRRRRRRRORRRRRRROORRORRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRROOROORRRRRRRRORRRORORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRORRRORRRROOORRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRROROORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRROORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRROORROROROORRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRORRORRRRORRRRRORRRRORORRRROROORRRRRORRRORRRRRRRRROORROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRRORORRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRRRRRRRRORRORRRRRORROORRRRRRRORRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRROORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRORRRRRORRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRROORRRRRRRORRRORRRORRRORORRRRORRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRRRRORRROORRRRORRRRRRORRRORRRORRORRORRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRORORRRRORORRRRRRORRRRRRRRORRROORRRORRRORRORORRORRROORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRRORRORRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRORRROORRRRRRRRRRRORRRRROORRRRRRRRORRORRRRRRRRRRRRORRRRRRORRRRORRROORORORRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRRORRRRRRRROORORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRRRROROORRRRRRRRRRRORRRRRRRRRRRRRROOROORRRRRRRRORRORRRRRRORRRRORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRORRROROORRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORORRRRORRRRRRRORRRRRRRRRORRRORRRRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRORRRRRRORRRRRRRRRRORRRRRORRRRRORORROROORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRROORRRRRRRRRROOORRRRRRRRORRRRORRRRORRRRRROORRRRRROORRRRRRORRRRRORRRRRRRRRRRRRRRORRRORRRRRORRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRRRRORRRRRRRROORORRRRRRRRRROOORRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRORRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRORRRORRRRRRORRRRRRRRRORORRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRORORORRRRRRRRROOOORORRORORORRRRORRRROOORRRRRRRRRRRRORRORRRRRRRRRORORRORROORRROORORRRORRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORROORRRRRRRRRRRRRORRRRRRORRORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORROOOROORRRRRORRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORORRRORRRRRRRRRRRRORORRRRRRRROROORRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRORRRORRRORRORRORROORRRRRRRRRRRRRRRRRRRRRORRRRORROORRRRORRRORRRROORRRRROOOOROORRRRRORRRRRRORRRRRRRRRRROROOOOORRRRRRRRRRORRRRRRRORROORORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRORRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRORRRRRORRRRRORRRRRRRORRRRRRROORORRRRORORRRRRRRRRRRRORORRRORROORRRRRRRRRRRRRORRROROORORRRRRORORRRRRRRRRORRRRRRRRRRRORRRORRORRORRRRRROORRRRRORRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRORRRRORRORORRORORRORRRRRRRRRRORRRORRRRRRRORRRRRROORRORRRROORRRRORRRRRRRORRRROROORRRRRRRRRRRRRRRRRORRRORRORRORRORRRRRRORRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRORORRRRORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRROROROORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRORRRRRRRRORRRORRORRRORORORRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRROOORRRRRRRRRORORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRORRORRRRRORROORRRRRRRORRRRRRRROORRORORRRRRRRRORRRRRORRRRRRORRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORRRRORRORRRRRRORRRRRORRRRORRRRRRRRRROORRRORRRRORORRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRORRRROORORRRRRRORRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRORRRRRRROOORRRRRRORRORRRRRRRRRRRRRRRORRORRORRRRRORRROROOORRRRRRRORRRRRRORORRRRRRRRRRRRRRORRRORRRRROORRORRRORRRRRRRRRORRORRORRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRROORORRRRRRRRRRROORRRRRRRRRRRRRRRRRORRORRRRRRRRRROORORRRRRORRRRRRRRORORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORROORRRRRRRRORRORORRRRRRRORRRORRORRORORRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRRRORRRRRORRROORRRRRRRRRRRRRORRRORRRORRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRORRRRRORRRRORORRRRORRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRORORORORRRRRRRRRRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRORRRORRRORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRORRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRORRRRRRRRRRRROORRRRRROORRRRRROOORRRRRRRORRRRRRRRROORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRORRROORRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRRRORROOORRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRORRRRORROORRRRORRORRRRRROORORORORRRORRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRORRRORRRRORRORORRRRRRRRRRRORRORORRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRORROOORRRRRROROORORROORORORRRRRRRRRRRRRRRRORRRRRRORRORORRRORRORRRRRRRRRRRRORRRRRRRRORORRRORRORRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRORRORRRRRRRRRROORRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRROORRRRRRRRRRRRRRORRRORRRRRORRRRRRORRRRRORORRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRORRRRORRORORRRRRRRORRRRORRRRRRORRRRRORRRRRRRROOOORRRRRRORRRRRRRORROOORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRROORRRROROROORRRRORRORRRRRRRRORRRRRRRRORRRRRRRRRORROORORRRRRRRRRRORORORORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRRRRRRORRRRORRORRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRORRRORRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRROROORRRRRRRRRRRRRROORRRRRORRRRROORRRRRRORRRRRRRRRRRRROORRROORRRRRORORRORRRRRRRORRRRRRRROORROROORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROOROOORORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORROORRRRRRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRORRRRRRORRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRORRRRROORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORROROORRRRRORRRRRRRORORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRORRORRRRORRRRORRORORORRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRORRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRROORRRRRRROORRORRRORRRRRRRRRROORRORRRRRRRRRRRROORROORORRRRRRRRRRORRRRRRROORRRRRRORRRORRRRORROORRRRORRORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORORRRRRRORRRROROOORRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRORRROOORORRRORRRRORRORRRRRRRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRROORRORRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRORRRORRRRORRRRORRRRRROORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRRRORROOORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORORRRRORRRRRRRRORRRRRRROORRRRRRRRRORRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRORRRRRRORRRRRORRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRORRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRORRRORRRRRRRROORRRROORRRORRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRROORORORRRRORRRORRRORRORRRRORRRRRRROORRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRRORORRRRRRRRRRORORORRRORRRRRRRRRRRRRRRRORORRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORORRRORRRRRRRRRORRRRRRRRRRRRRRRORORRRRRORRROORRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRRRORRRRRRRRORRRRORRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRORRRRORRRRROORROROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRORRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRORRRRORRORORRORRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRORRORORRORRRRORRRRRRRRRRORRRRRORRRRORRRRRRORRRRRRRROORRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRROOORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORORRRRROORRORRRRRRRRRORROORRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRORRRRRROORRRRRRRORRRRRRRROOORRRRRRROORORRRRRRRRRRRRRRROROORRRORRRRRRORRRRRROORRRRRRRRRRRRORRORRRRRRRRRRRRORRORRORORORRRRRRRRROORRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRORRRRRRORORRRRORRRRRRRRRRRRRORRORRRROOROOORRRRRRORRRRRRRRRORORRRORORRRRRRRRROROORRRRRRRRRRORRRRRORRRRRRROORRRRRRRRORRRRRRORRORRORRRRRORRRRRRRRORRORORRRRRRRRRRRRRORRRRRORRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRORORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORORRRRRRRRROORRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORRRRRRORRRORRRRRRRRORRRRRRRRRRORRRRRORRORRORRRRORRRRORROROORRORRRRORORORRORRRRRORRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRROORRRRORORRORRRRRRRRORRRRRRRRRORRRRRRRRROORRRORORRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRRORRRRRROORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRORRRRRORRRORRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORORRRRRRRORRROORRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRROORRRRRRRRORRRRRRRORRRRORRRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRORORRRRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRORRRRORRORORRRRRRORRRRRORRRRRRRRROOOOORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRORRRRRRRRORRORORRORRRRRRRRRORRRRRRORORRRRRRRRRRRRORROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORORRRRRORRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORROORRRRORRORRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORORORRROORRRRRORRRRRRRRRRORORRRROORRRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRROORRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRORRRRRRRORRRORRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRORRORRRORRRRRRRRORRORRRRORORRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRRORRRRRRORRRORRRORRROROORRRROORRORRORRRRRRRRRRRRORRRRRRRRRRRRROROORRRORRRRORRRRRRRRROORRROOROROORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRORORRRRRORRRRRRRORRRRRRRRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRRORRRRRRORROORRRRRRORORORRROROORROORRORRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRORORRRORRORORRROOORRRORRRRRRORRRRRRRRRORRRRRRORRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRROORRRRRRRRRRRORRRRRROORRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRROORRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRROORRROROROORRRRORRRRORRRRRORRRORRRRRRRRRRRRRORRRRRRRORRORRRRRORRRRRRRRRRRRRORRRRORRRRRRORRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRORROORORRROORRRRRORRORRORRORRRRRROORRRRROORRRRRRRRRRRORORRRRRORRRORRRRRRRRRROORRRRRRRRRRRRRRRORROORRRRRRRORRRRORRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRROORRORRRRRRRROORRRRRRRORORRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRROORRRRRORRRRORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRROROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRORRRORRRRORRRRRRRRRORRROORRORORRRRRRORRRRORRORRORRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRORORRRRRRROORROOORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRORRRRRROORRRRRORROORRRRRRRORRORRRRRRRRORRRORRRRRROORRORRRRRRRRRRRRRRRORRRRRORRORRORROORORRRORRRRRROORRORRRRRRRRRRRRORRORRRRRRRRRRRRRORORRRRRRRRRRORORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRORRRRORORRRRRROORRRRRRRORRORRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRORORRRROORRORRRRRRRRRRRRRRRORRRRRRRORROORRORRRRRRRRRRORRRRRRRRRORRORRRRROOORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRORRORRORRRRORRRRRRRRRRRRRRRORRRORRRRORRRRRRRORORRRRORORRRRRRRRROORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRRROORRORRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRORRRRRORRRRRRORORRRRRORRRORRRRRRRROOORRRRRRRRRRORRRRRRRRRRORRRRRRRORORRORRORRRRRORRRRRRORRRRORRRRORRRRRRRROOORRORRRRRRRRRORRRRRRRORRRRRORRRRRRROORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRROROORORRORRRORRROORRRRRRRRRRROORRORRRRRRRRRORRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORROORRRORORRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRORRRRORRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORORRRRRORRRRORORRRROROORRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORORRRRRROROORRRRRRRRORRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRORRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRORRRORRRRRORRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORORRRRROROORRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRORORRRORRRRRRRORORRRRRORRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRORRRRRRRRRORRORORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORROORRORRRRORRRRRORRRRRRRRRORROOORORRORRRRORRRRRORORRRORRRRRORRRORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRORRRORRRRRRORRRRRRORRORRRORRORRRORRRRRRORRRRRRRRORORRRRRRRRRRORRRRRRRRORORRRORROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRORRRRORRRRORRRRRORORRRRRRRORRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRROOORRROORRROOOORORRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRROORRROORRORRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRORORRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRROOORRRRRRROROROORRRRORRRRRRRORRRRRRORRORRRRORRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRORRORRRRRRRRRRRRRRRRRORRRORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRORRRRRORRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRROORRRRRRRRRRORRRRRRRORRRRROORRRRRRRRRRROROOORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORROORRRROORRRRRRORRRRORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRROORRORRRRRRORORRRRRRRRRRORRRRROORRRRRRRORRORRRORRRRRORRRRRRRROORROORRRRRRRRORRRRRRRRRRRRRORRORRORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORROORORORRRRRRRRORRORRRRRRRORRRRORRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRORRRRRRORRRRRRORRROORRORRRORORORRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRORORRRRRRORRRRORRRORORORRORRRRORRORRRRORRORRRRRRRRRRRRRORRRRRRRRORORRRRORRRRRORRRRORRRORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRRRRRORROOORRRRRORROORRRRRRRRRORRRRORRRRRORRROORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRORRRRRORRRRRORRRRRRRRRRRORRRORRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRRRRRRRRORRRORORRRRORRORRRRROORRRRRORRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRORRORRRRORORRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRROORRRORRRRRRRRRRRRRRORRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRORORRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRROORRRORRORRRRRRRRRRORRRRRRRROORRORRORRRRORRRRRRORRORORRRRRRORRRRRORRRRRRORRRRRRROROORRRRRRRRRRRROORRRRORRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRORRORORRRRRRRRRRRRRRORRRRRRRORROORRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORORRORORORRRRORRRRRRRRRRRORRORRORRRORORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRORRRORRRORORROROORRRORRORRRRRRRROORORORRRRRORROORRRRRRRRORRRRRRRRRRRRRORORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRORROORRRRORRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRRRRORRRRRRRRRRRORRRORRRROORORRRORROROORRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRORRRORRRRORORORRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRORRORORORRRRRORRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROORRORRRRRORRRRRORRRRRORRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRROOROORRRRRRRRRRRRRRRRRORRRRRRORRRRRRROORRRRRRORRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRORRORRRRRRRRRRRRRRORRROORRORRRRRRRRRRRRRRRROOROOORROORRRRRRRRRORRRRRRRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRORORORRRRRRRRORORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRORRRORRRORRRRROORORORORRRORRRRRORRRRRRRRRORRRRRRRRRRRRRORORRRRRORRRRRROORRRRORRRORORRRORRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRRORRRROORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRORROORRRRORRRRRRRRRRORRRORRRRORRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRROORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRROORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRROORORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORORORRRRRORRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRORRRROOORRRRORRRRRRRRRRRRORRORRROORRRRRRRRORRRRRRRRRRROORRRRRORRRRORRRRRRRORRRRORRRORRORRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRRORRROORRRRRRRRRROORORROORORRRRRORRRRRRRRRRRORRRRRRRORORRRORORRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRORRRRORORRRRRORRRRRRRORRRORROORORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRROROORORRRRORORRORORRRRRRRRORORRRORRRRRORRRRORRORRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRORORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRORORORORRRRRORRRRRRRRRRRORORRRRRRRRRORORRRRRORRRRORRRORORRRRRRORRRRRORRRRRRRRRRRROORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRORROORRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRORRRRORRRORRRRRORRRRRRORORRRRRRRRRRRRRRRROROORORORRRRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRORRRRRORRORRRROORORRRRRRRRRORRRRRRRRRRRRRRRRRROORRRRRRORRRRROORRRRORRRRRRRRORRORRRRRRROORRRRRORRRRRRORRRRRRORRRORRRORRORRRRRORRRRRORRRRORRORRRRRRRROROORRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRORRRRRRRRORRRRRRORROORRRORROORRORRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRRRROORRRRORRRROORRRRRRRRRRRRRRRROORRRRRORRRROROORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRORRRORRRRRRRORORRORRORRRORRRRRRRRRORRRORRORRORRORORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRORORORRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOROROORRRRRRRRRORRRRORRRRRRRRRORRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRORORROORRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRROOORRRRRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRORRRRRRRRORRRRORRRRRRRORRRORRRRORRROROROORRRRRRRRRRORORRRRORRRRRORRRRRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRORRRRRRRRRORRRORRRRRORRORRRRRRRRRORRRRRRRROOOORRRORORRORRRRRRORRRRROORROORORRRRRRRRORORRRRRRRRRORRRRORRRRRRRRRRORROORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRORRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRRRORORORRRORRRRRRRRRRRRRRRRRRORRRROROORROORORRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORORRRRRRORROORRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRORORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRROORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRROROORRRRRRRRRRORRORRRORRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRROORRRRRRRRROORRRRRORRRRRORRRRROORRRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRORRRRRRRRORRRRRRRRORRRRORRORRRORRRRRRRORRRRRRRRORRRORORRRRRRRRROOORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRROORRRRRORRRRRORRRRRRORRORORRROROOORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRORRRORRRORRRROORRRORRRORORRRORRORRORRRRRRRORRRRRRRORRORRRRRRROORRORRRRORRRRORRRRRORRRORRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRROORRRRRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRORORRRRROROORRRRORRORORRROORRRORRORRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRORRRRRRRRORRRRRRORORRRRRRRORRRORRRRRRRRORRRRRRRORRRORORORRRORRRRRRRRRRRRORORRROORRORRRRRORRROORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORROORRRORRRORRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRROORRRRORRRRORRRORRRRRRRORRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRROORRRRRORRRRORRRRRRRRORRRROORRRRRRRRRORRRRRORRRROORORRORRRRRORROROROORRORRRRRORRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRROORRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRROOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRORRRRRRORRRRRRRRORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORRORRORRRRRRRRRORRRRRORRORRRRRRRRROORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRROORROORRORRRRRRRRRROORRRORORRRORRRRRRRRRRRRRORORRRORORRRRRRRORRRRORRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRRORORORRRRRRRRORORRRRRRRROROROORORRRORRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRRRRROORRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRROORRORRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRORRRORRRORRRRRRRRRORRRRRRRRRORRRRORRRORRORRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRROOORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRROOORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRRRORRRRRRRRROROORORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRRORRORRRORRRRRRRRRRRRRRRORRORORORORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRORORRRRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRORRRRRRRORORRRROORRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRORRRRRRRRRRRORRROORRRRRRRORRORRRRRRRRRRRRRRRORRORRRRORRRRORRRRORRRRRRRRRRRRRRRORRRRRROORRROOORRRRRRRORRROORRRRRRRRRRRRRORRROORRRORORRRRRRRRRRRRROORORRRRRORRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRROOORRRORRORRRRRRRRRRRRRRRRORRRRRRRRRORORORRRRRRRRROORRRRRRRORRRRRRORRRRRORRRRRRORRORRRRRORRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRROORRORRRRRRRRORRRRRRRRRRRRRORRRRORROORRRRRRRRROOORRRRRRRRROORRRROORORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRORRRRRRROOORRRORORRRRRRRORRRORRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRORROORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRRORRORRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRORRRRORRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRORORRRRRRRRRORRRORRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRORRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORORORRORRORRRRRRORRRRRRRRRRRROROORORRRRRRRROROORRORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRORORRRRRRORRRROORRRRORRRORRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRORRRRORRRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRROORRRRRRRRORRRORRRRROORORRRORRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRRRORRORRORRORRRORORRRROORRRRRRORRRRRRRRRRORRRRRORORRRRRRRRRRRORRRRRRRRROOORRROORRRRORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRORRRROORRRRRRRORRORRRRRRRRRRRRRROOORRROROORRRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRROROOORORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRORRRRRORRORRORRRRRRRRRRRRRROROORRRRRRRORRRRRORORRRRRRORRRRRORRROORRRORRRORRORRRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRRRRORRROORRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROORORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRRROORRRRRRRRRRRRRRRRORRRRRORRRRRORORRRRRRRRRRRRROORRRRRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORROROORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORORRORRROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORROOORRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRORRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRROORRRORRRROORRRRORRRRRRRORRRRORROORRORRRRRORRRRRORRRRORORORRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRROORORRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRORROROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROROOORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORORROORRRRRRORRRRRRRRRRORRRRRORRRRRROORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRROORRRRRRRRRORORRORRRORRORRRRRORRRRRRRRRRRRRROROORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRROORRROROORRRRRRRRRROORRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRORORORRRORORRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRORRRRRRRRRORRRRRRORORORROROROORORRRRRRRRRRRROROORRRROORRRORORRRORORRRRRRRRROOOORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRROORRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORROORORRRRORRORRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRORRORRRORORORRRRRRRRRRORRRORROORRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRORRRRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRORRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRORRORRORRORRRRORRRRRRRRRRRRRRRRRRRROORRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRRROORRORORRRORRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORORRRORRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRORORRRRROORRRRORRRRRRRORRRRRORRRRRORRRORRRRRRRRRROORRORRRRORRRORRORRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRORORRRRRRRRROORRRRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRROORORORRRRRRRRRRRRRRRRORRRRRRORRRROORRRRRRORRRRRRORRRRRRRROROORRORRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRORRRRRORRORRRORRRRRROORRROORRRRRRRRORRRORRRRRRRROORORRRORORRRRORRRRRORRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRORRRRRROORRRORRRRRORORRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRRRRROORRRRRRRRRORRORRRRRORORRRRORRRRRRRORRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRORORRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORORORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRROOORRRRRRRORRRRORORRRRRROORRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRORRRRRRRRRRRRRRRRORRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRORRRRRORORRRORRRRRORRRRRRRORRRRRORRRRROOOORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRORORRRRRRRRRRORRRRRRORROORRORRRRORRRORRRRRRORRRRRRRRRORRROROORRORROROOORROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRORORROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRORORRRORRORORRRORORORRRRRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRROOROROORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORORRRRRORRRORRRRRRRRRORRRRRRRRRRRORORORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRORRRORRRORRRRRORRRRRORRRRORRRRRRRRRRRRORORRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRORRRRROORRRRRRORRRRORORRRRRORROOORRORRORRRRRRROORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRORRRRRROOOORRORRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRORRRORRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRORRRROOORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRROORRROORORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORORORRRRRRROROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORRRRRRRORRRRRRORRRRRRRORORRRROORRORORRRRRRRRORRRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRORRRRRORRRRRRRRRRRORRROROORRORRRRRRRRRRRRRROORRRRORRRORROROROORRRORRRRRRRORORRRRRRORRRROORRORORRRRROORRORRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORORORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRORRRORORRRRRRRRRRRRORRRRRORROOROORRRRRRRRRRORRRRRRRORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRORROORRORRRRRRORRRRRRRRRRRRORRORRRORRRRRRRRRRORRRORRRRRRRRRRRORORRRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRRRRRRRRROORORRRRRORRRRRRRORRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRORRRRORRRROORRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRROORRORRRRRRRRRRRRRRRRRORRRRORORRRRORRRORRORRRRRRORORRRRRRRORRRRRRORRRRORRRORRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRROORORRRRRRRRRRORRROORRRRRRORRRORRRRORRRRRRROORRRRRRORRRRRRORROORRRRRORRRRRRRRRRRRRRRORRRRRORRORRRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRROORRRORORRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRROORRRORRRORRRRRORRRRRRRRRORRRORRORRRRRORRRRRORRRRRRRORRORRORRRRRORORRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORORRRRRORORRRORRRRORRRRRRRRRRRRRRRORRRRRORRORORRRRRRRORRROORRRRRORRROOROORRRRORRRRRRRRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORRRORRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRROORRRRRRRRORRRRORRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRORRORRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRROORORRRORRRRRRRRRORRRORRORRRRORROROORRRRRRRRORRRORRRRRRRRRRORRORRRRORRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRRRORRORRRRRRRRRORRRRORRRRRRORRRRRORRORRRRORRRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRORRORRORRRORRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORROORORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRORROORORRRRRRRRRRRRRRRORORORRRRRRRORRORRRRRRRRROORRRROORRRRROORRRRRRORRRRRRORRRRRRRORRRRRRRRRRRORRORORRRRRRORRRORROROORRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRRRRROORRRRRRRRORORRRRRRORRRORRRRRRRORORRRRRRORROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRORRRRRRRRRRRRORRORORRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRORRROOOORRRORRRRRRRORORRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRORRRRRRROORRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRORORRRRRRRRRRROORRORRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRRRORRRORRORORRORRRRRRORRRROROORRORRORRRRRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRROROORRORRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRORORRRRORRORRRRRRORRRRORRRRRORROROROORRRORRRRORRRRRRRRRRRROROORORRRRORORRRRRRRRRORRRRRRRRRROROORRRORRRRRORRRRRORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRORROORRRRRORRRRORORRRORRRRORRORRROORRRORRRRRRORORRRRRRRRORORRRRRRRRRRRRRRRRRRROORRRRROORRORRRRRORRRRRRRRRROORRORRRORROORRRRRRORRRRRRRORORRRRRROROORRRRRRORROORRRRRRORRRORRRORRRROOORRORRRRORRROOROORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRORRRRORRRRORROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORORRRRORORRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRRRRRRRROORRRORRRRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRORRRRORORRORRRRRRRORRRROROORRRRRORRORRORRRRRRROOORORORRRRRRRRRRRRRRROORRRRRRRORRRRORRRORRRORRRRORRRRORORRRRORRORRRRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRORRRRRRRRRRORRORRRRRROORRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRORRRRRRORRRRRRRRORRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRROORRRRORORRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRROORRRRRRORRRRRRRORRRRRRORRRRORRORORRRROORROORRRORRRRRRORRRRRORRORRRORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRROOORRRRRRRRROORRRRRORRRRRRRORRRRRRORRRRRRRRRROORRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORORRORRRRRRRRRRRRRRRRORRRRRRRORRRRRROORORRRRRRRRORRRRRRRRORRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRORORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRORRRRRRRRRRRRORRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRROORRRRRRRORORRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRORRRRROORRORORRRRRRRRRRORRRRORRRRRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRORORROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORORRRRRRRORRRRORRRRRRORRRRRRRORRORRRRRRRRRORRRRRRORRRRRRRORRORRORRRRRRORRORORRRRRRRRRRRORRRRORRRROORRRORRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRRRORRRRRRRRORRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRROORORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRROORRRRRRRRRORRRROORORRRRRRORRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRROORRORRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRROOORRORRRRRRORORRORRRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRORRRORORRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRRROOROORRRRRRORRRRRRRRRRRORRRORRROROORRRRRRRRRRRRORORRRRRORRRRORRRRRRRRRRRRRRRORRRRRORRRORRRORRRRRRORORRRRRRRRORRROROORORRRRRRRRRRRORRRRRRRRRRORRORRRORORRRORRRRORRRRRRRRRRORRRRRROOROORRRRRRROORRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRRORRRRRRORRRRORRRRRRORRROORRRRRRRRRRORORRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRORRRRRRRORRORRRRRRRRORRROORRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRROORRRRORRRRROROOORRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRORORRRRRORRRORRRRORRRRRRRRRRRRRRRORRRRORRRRRRRORRROORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRORRRRRRRRORORRRRRRRRORRRORRORRRRRORRRRROROORRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRORORRRROORRRORRORRORORRRRRRRRRRRRRRRRRRRORRRRRRROROORRORRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRORRRORRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRORRRRORORROORRRROORRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRROORRRRROOORRORRRRRRRRRRRRRORRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRORRRRROORORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRORROORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRROORRORRRORRRRRRRRRROROORRRORROROORRRRRORRRRRORRRRRORRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRORORRRRORRRRRRRRORRORRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRROORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORROOOOORRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRORORRORRRRRRRORORRROORRRRRRRRRRRRRRRROORRRRRRRRRORRRRRORRRRRRRRRRORRRORRRRRRRRRRRORORRRORRRRRORROORRRORRRRRRRORRRRRORRORRRRRRRRRRRRORORRRRRRRRORRRRRRORRRRRRORORORRORRRRRRRRRRRRRRRRRORRRRORRRRORRRRORRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRRRRRRRORRORRRRORRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRORORRORORRORRRRRRRRRRRRRRRRRRRRRROROORRRRRORORROORRRRRRRRRRRRRRRRORRRORORRRRRRRRRRORRORRRRRRRRRRRROORROORROORRRRRRRRRRRRRRRORRRRRRROORRRRRROORRRRORRRRRORRRRRRRRRORRORRRRRROORRRRRRRRORORRRRRRRORRORRRRRORRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRORORORORRRRRRRRRORORRRRRRRORRORRRRRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRORRRRRRRRRORRRRRRRRRRORRORRRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRORRRRRORRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRROORRORRRRRRORRRROORRRORRRRRRRRRORORRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRORRRRORRORRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRORRRRRRRRRRRORRRRRORRRRRORORRRORORRRRRRORRRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRORRRRRRRRRRRRRRRRROORRRRRRRRORRORRRRROROORRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRORRRORRRRORRORRRRROOORRRORRROOORRORRRRRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRRRRRRROORRRRRROORRRORRORRRRRRRRRRRRRRRRRRROORRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORORRORRRORRRRORRRORRRRRRRRORRRRRRRRRRRROORRRRRORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRORORRRRRRRROORRORRRRRRRRRRORRRRRRRRRORRORROORROOORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRORORRRRORRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRORORRRORRRRROORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORRRRRRRRRRRRRRORRRORORRRORORRORRRRRROORRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRROOORRRRORRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRORORRRRRROORRORORRRORRRRRRORRRRRRRRRROROORORRORRRRRRRROORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORORORRORRRRRRRROORORRRRORRRRRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRROOORRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORRRORRRRRRRORRROOORRRRRRRRORRRRRRORRRRRRRRRRORORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRORRROORRRRRRRORORRRRRRRRRORRRORRRRRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRORRORRROORRRRRRRRRRRRRRORRRRORRORRRRRRRRRRRRORRRRRORRRRRRORRRRRROORORRRRRRRORRRORRROOOORORRRRRRRRRRRRRRRORRORORRORRRRRORRORRRRRRRORRRRROORRRRRRRRRRRRROOORRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRORRRRRRRRRRRRROORRROORRRROORRRORRRRRRRRRRRRRRRRRRORRRRRRRRROROORRRRRORRRRRORRRRRRRRRRRRRRRRORRRRORRORRRRRRRRRRORORRRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRRRROORRRRRRRRRORROOROORRRRRRORRRORRORROORRORRRRRRRORRRRRRROOORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRORORRRORORRRRRRRRRRRRRRRORRRORRORRRORRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRRRROROORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRORRRRRRRRORRRRORRRRORORRRRORORRRRRRRRRRRRRORRRRORRORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRORRRROORRRORRORRRORRRRRRRRRROORRRORROORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRORRRRRORRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRROORORRRRRRRRRRORRRORRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRROORRRRRORRRORRORRRRORRRRORRRRRRRRRRRRORRRORRRRRRRORRORRRRRRRRORRRRROORRRRRRRRORRRRORRORRRORRRRRRRRRORRORRRRRRORRORRRRORORRRRRORRRRRRRRRORORRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORRRRRRORRORRRRORORRRRORORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRRRRRROORRRRORRRRRRRORRRRRRORRORRRRORROROORORRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRORRORRRRRRRRROORRRRORRRRORRRRRRORRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRORRRRRROORRRRORRORRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRORRORRRRRORRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRORORRRRRRRRRORROOORRRRRRRRORRROORRRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORRRRORROORRRRORORRRRRRORRRRRRRORRRRRRRRRRRORRRRRORORROORRRRRRRORRRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRRRRRRRORORORRRRRRRRRRRRORRORRORRRORRRORORROORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRROOORRORRORRRORRRRRRRRROORRRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRRRROORRRRRRRRRORRRRRRRRRRORRORRORRORRRORRRRRRRRROORORRORRRORRORRRRRRRRRROORRORRORRRRRRRORRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRRRORROORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRORRRORRRRORRRRRRRRRROORRROROORROORROORRRRRORRORRRRROORORRRRRRRRRRRRRRRRRORORRORRORRRRRRRRRRORRRROORRRRRRRORRORRRRRORRRRRRRRRRRRRRORROORROORRRRRRRRRRRORRRRORRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRRRRRRORRORORRRRRRRRORORRRORRRORRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRORRRRRRRRRRRORRRRRRRRRORRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRORRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRORORRRORORRRRRRRRRRROORRRRRRRROORRRRRRRROORRRORRRRORRROORORRORRRRRRRORRROORRORRRRRORRRRRRRORRRRRORRORRRRORRORRROORRRRRRORRRRRORRROORRRORRRORRRRRRRRRORRRORRORRRRRRRRORRORRRRRRRRORRRRRROOOORRRRROROORRORRRRRRRRROORRRRRRRORORORRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRRRRRRRRRRORRRRRRRORORRRORRRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRORRRRORRORRRORRROORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORORORRRRRRRRORRRRRRRRORRRRRRRRRRRRORORRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRORORORRRRRRRRRRRRRORRRRRRORRRRRRROORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRORRRRRORORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRROORRRRRRRRRRRORORRRRRORRRRRRORRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRORRRORRORRRRRRRORRORRRRRRRRORRRRRRRRRRORRORRRRRRRRRORRRRORRRRRRRRRRORRRORRORRRRORRORORRORRORROORRRRORORORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRORRROORRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOORRORRRRRRRRRRRORRORRROORRRRRRRRRRORORRRORRRRRRRRROROORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRROROORRRRRRRRRRORORRRORROORORRRRRORRRRRRORRRRORRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRORORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRROORRRRRRRROORRORRRRRRRRRRRORRRRRRRORORRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORROORROORRRRRRRORORORRORROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRORORRRROORRRRORRORORRRRRRRRRRRRRRRORRRRRRRRRRROORORRRRRRRRRRRRORRORRORRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRORORRRRORRRRORRRRRRRRRRRRORRORRRRRRRORROORRRRORRRRROOORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORORRORRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORORORRRRRRORRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRRRROORRRRORROORRRRORRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRRROROORRROORRRRRRRRRRRRORRRRRRORROOORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRORORRRORRROORRRRRROORRRRRRRRORORRORRORORRORRORORRRRRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRORRRORORRRRRRRRRRORRORRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORORRORRRRRRRRRRRRORRRORRRORORRORORRRRRORRORRRRRRRRRRRORRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRROORRORRRRRRRRRORRRRRRRRRRORRORRORORRRRRRRRORRORRRORRRRRRRRRRORRRRRRRRRRORRRRRROORORRRRRRRRRRRRORORRROORRRRORRRRRRRRRRORRORRORRRORRRRRRORORRRRRORRORRRRORRRRRRRORRRRRRRORRRRRRORROORRRRRRRRORRRORORRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRORRRORRORRROORRRRORRRRORRRRROORORRRRRRRRRRRRORRRRRORORORRRORORRRRROORRRRORRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRORRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRORRRORRRRRRRRROROORROROORRRROORORRRRRRRRRRRORRRRRRRRRRRRROORRRRROORRRRRRRRORORRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORORRRRRRRRRRRRRORRRRRRROORRRRRRRROORORRRRRORRRRRRORRRRRRORRRRORRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRORORRRRRRORRRORORRORRRORRRRRORRORRRRRRRRRRRRORRRRRRRRRROORRORRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRORRRRRRORRORRRORRRRORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRORROORRRRRRRORORRRRRORRRROOROROORRRRRRROORRORRRRRRORORRRRORRRORRRRRRRORRORORRRRRRRORRRRRRRRRRRORRRRRRRRRORRRRRORRORRROROORRORRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRORRRORRRRRRRRRRRRORRRROOOOOORRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRORRORRRRRRRRRRRRRRRRRRRRRRRRORROROORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRORRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRROOORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORROORRRRRORRRRRORRRRRRRROORRRRRRRRORRRORRRRRRRROORRRRRRRRRRROORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRROORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRORORRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORORRRRRRORRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRRROROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRROORRRRRRRRORRORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRORORRORRRRRRRRRRRRRRORRRRRRROROORRRRRRRRRRRORRRRORRORRRRRRORRRRRRRRRRRRRRORRRRRRORRORRRRRRRROORRRRORRRRRRRORRRRRRRRRRRRRRORRORRRROORRRORRORRORRRRRRROORRRRRRRRRRROROORRRRORRRRORRRRRORRRORORROORRRRRORRRRRRRRRRORRRRRRRRRRRRROORRRRRRRRRORRRORRRRRRRRRORORRRORRRRORRRRRORRORRRRORRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORRRRRORRRRRRRRORRRRRRORORRORRRRRRORROOORRRRRRRROORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRRORORRORRRRRRORRRRRRRRRRRRRRRRRORRORRRRRRRRORORRRRRRRRRORRRRORRRRORORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRROORORRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRORRRRRRROORORRORRRRRRRRORROORRRRROORRORRROOORORORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRRRRRRORRRORRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRORRRRRRRRROORORRRRRRRRRORRRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRORORRRRRRORRRRRRROORORRORRRORRRRRRRRORRRORROORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRORRRROOORRRRRRRRRRRRORRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRROROOORRRRRRRRORRRRRRRRRRRORORRRRORRORRORRRRRRRORRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRORRORORRRRRORRORRRRRRORRRORRORRRRRRRRRRRRORRRRRROORROORRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROOORRRRORRRRRRRRORRRRRORORRRRRRORRRORRORRRRRRRRRORRROORRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROORRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRROOORRORRRRRRRRRRRRRRRRRRRRRRORRRORRROOORRRRRRORRRRORORRRORRRRRRORRORRRRORRRRRRRRRRRRRRRROORORRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRORROOORORRRRROROORORORRRRROORRRRRRORRRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRORORORRRRRRRRRRRORORRRORRRRORRRRRORRRRRORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRROORRRRRRORRRRORORORRROORRRORRRRRRRRRRRRORORRRORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRROORRRRRORRORRORORRRRRRRRORRRORRRRORRRRRRRORRRRRRORORRRORRRRRRRORRRRRRRRORRORRRRRRRRRRRRORRRRRORRRRORRRRORRRRORRRORRRRRRRORRRRRRRRRRRORRORRRRRRRRRRRRROOORRRRORRRRRRORRRRRRRRRRRROOROORORRORRORROORORRRORRRRRRRORRORROORRRRRRORRORRRRRRROORRRRRRRRRRRRRRRROROORRRRRRRRRRRORROORORORRRORRORRRRRORORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRROOORORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRORORRORRRRRRRORRRORRRRRRRRRRRROORORRRORRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRORRRRRORRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROROORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRORRRORORRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRROORRRROORRRRRRORRRORRRRRRRRRRRRRRROOOOOROORRRRRRRRRRRRORORRRRROOROOORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRROORRRORROORRRRRRRRRRRRRRRORRORRORRRRRORRORRRRRORRRRRRRRRROORRRRRRRORRRRORORORRRRRRORRRORRORRRORRORRRRRORORRRRRRRRRRORRRORRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRROORRRRRORRORRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRORRORRRRORRRORRORORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRORRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRORRRORORRRRORRRRORRRRRRORRRORRRRRROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRROORORRRRORRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRORROORRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRORROORORORRRROORRRRRRRORORRRRRORRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRROORRRRRRRRRRRROORRRORRRRORROROROORRORRRRORRRRRRORRORRORRRORRORRRRRRRRROORRRRROORRRORRRRRRRRORRRROOROROORRRRRRRRORRRRRRORRRRRORRRRRRRRORRRRRROORRRRORROROROROORROORRRRRORRRORRRORRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORORRRRRRORRRRRRRORRRRRRRRORRRRRRRRROORRRRORRRRRROORRRORRORRRRRORRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRORRRROOORRRRRRRORRRRORRRRRRRRRRRRROORRORRRRRRRRRRRRRRRROORRRRRRRRORRRRRRRRORORRRORRRORRRRRRRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRORORRRRRRRRORORRRRRRORRRRRRRRRRRRRRORRRRORRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRROORROORRRRORORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRORRRRRORRORRRRRRRORRRRRRRORORRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRROROOROORRROORROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRROORORRRORRORRRRRRRORRRRORRRRRORRORRRRRORROORRRRORRORRRRRRORRORRRRRRRRRRRRRRRRORRRORRRROORORRRRRRRRRRRORRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRROOORRRRORRRRRRRRORRORRRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRRORRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRORRRRORRRRRRRRRRORRRORRRROORRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRORRRRROORORRRRRRRRRRROORRRRRRRRRRRRRRORROORRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRORRRRRORRRRROORRRRRRRORRRRRORORRRRRRRRRRORROORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRORRORROOORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRORORRRRRORORRRRRORRROORRRROORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRORRRROORRRROORRRRRORORRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRORRRRORRRRRRRRRRORRROORRRRRRORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRORRORORRRRRRRRRORRRRRRORRORRRRRROOORRROROORRRRRORRRRRROORRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRORRRRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRORORRRRRRRRRORRORRRRORRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRROORORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRORRRRRRRRRORROORORRRRRRRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRORRRRRORORRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRORRRRRRORRRRRORRRRRROORRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRORROORRRRRRRROORRORRRRRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRROOORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRROORORORRRORRRORRRRRRRRRRRRRRORRRRRRORRRORORRRORRRRRORRORORRORRRORRROROORRRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRORRRRRORORROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRROROORRRORORRRRRORRRORRRRRRRORRRRORRRORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRRRORRRRRORRORRRRRRRRROORRRRRRRRRRRRORRRRRRRRROOORRRRRRORRRRRRRRORRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRROORRRORRORRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRROORRRRORRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRORRRRORORRRROORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRROROORORRRRRRORRORRRRORRRRRRROROORORRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRORROORORRRRRRRRORORRRROORRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRROOORRRORRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRORRRORRRRRRRRRORRRRRRRRRORRRRRORRORRRRRRRRRRRRORRRRORRRRRORRRRRRRRRRRRRORRRRORRORRORRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRORRORRRRRORRRRRRORORORRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRROORRRORRORRROORORRRRORRRRRRRORRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRROORRRRRRRRORRRRRRRORRRRRRRRRRORRORRRROORRRRRRRRRRRRORRRROORRORRRRRORRORRRORRRRRRRRRRRRRRRRORRRRORRRRRRRRORORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRORRRRRORRRRRRRRRORROORORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRROROORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRROOOOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORRRRRRORRRRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRORORORRRRROORRORORRORORRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRROORRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRROORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRROOORRRRRRRRORRORRRORRRORRRRRRORORRRORRROORORRORORRRRORRRORORRRRRORRRRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORORRORRRRRRRRRRRORRRRRRRORRRRORRORRROOORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRORRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRRORRRRRRRORRRRRORRRRRRRRORRRRRRORROOORRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRORORRRRRRORRORRRRORRORRRRRRRORRRRRRRRRRRRRRORRROORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRORRRORRRRRRRRRORRORRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRORRRRRORRRRORRRRORRORRRORRRROORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORROOORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRROROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRORRRRRRRORORRRRORRRRRORRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRROORRRRRRRRRRRRRORORORRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORROORRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRRRRORRRROORRRRRRRRRRRRRORRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRORRRORRRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRORRORRORRRRRRRRRRORRRRRORRRRORRROORRRRROORRRRRRROORRRRRRRRRRRORRRRRRRRORRRRRRORRRRRRORRRRRRRRRRRRORRRRORRRRRRORORRROORRROORRRRRRRORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRORORROOORORORRRRRRRRRRRRRRRRRRORRRORRORROORORORRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRORRRRROORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRRRORROORRRRRRRRRRORRRRORRRRRRRORRORRORORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRORRRRRORRRRROORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRORRORRRRRRROROORRRRRRRRRRRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRROROROORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRROORRRRRRRRRRRORRRRORORRROORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRRORORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRRRRRRRRRRRORRRORORRRORRRRRORRRORRRRRRRRRRRRRRRRROORORRORRRRRRRRRRROOORORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRORRORRRRRRRRRRORRRRROORRRRRORORRRRRRRRRRORORROROORRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRRRRRRORORRRRRRRRORRRRRRROORRRRRRORRRRRRRRRROORRRORRRRRRRRRRRRRRRRORRRRORRRRRRROORRRRRORRRRRRROORRRORRRRRRORRORRRRRRORORRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRORORRORROOOORRRORRRRRRRRROOORORRRRRRRRORRRRRRRRORRRRRRRRORRRRRRORRRORRRRRRORRRRRRROORRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRROORRRRRROORORRRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRROORORRRRRORRRRRRRRRRRRRORRRRRRORRRRRRORRRRRORRRRRRRRRRRRORORRORRORRRRRRRRORRROOORRRRORRORRRORORRRRRRRRRRRRRRRRRORORRRRRORRRRORRORRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRRRRRROOOOORRRRRRRRROORRRORRORRRRRRORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORROORRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRORRRRRRORRRRRRRRORRRRRRORRORRRRRORRRORRRRRRRORRRRRRRORROORRORRRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRORRRRORRORRRRORRRRRRRRRRRORRRRORRRRRRORRROROORRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRORRRRRRRRROROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRORRRRORRRRRORRRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORORRRRRORORRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRRRRRRORRORRRRRORORRRRRORRRRRORRRRRRRRRRROORRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRROORRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORORRRRRRORRRRROOORRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRORRRRRRORORRRORRRRRORRRRRRORROORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRRORRRRRORRRRRRRRRRRRRRORORRRRORRORRRRRRRRRRRRRRRRORRORRRRORROORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRROORRRRRORRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRORRRRRRORRRORORRORRRRRRRORRRRRRORRRRRRRRRRRORRRRRORRORRRRORROORRRORRRRRORRORORORRRRORRRRRORORORRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRRORRRRRRRORRORRORRRORRRRRORRRRRRRRROORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRROORRRRRRORRRRRRRORORRRRORRRORRRRRRRRRRRROOORRRRRRRORRRORRORRRRORORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRROOORRRORRRRRRRRRRRRRRRRRRRORORRRORORRORRORRRORRRRRROOOOOROOROROORORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRORRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRRROORRRRRRRRRRRRROORRRRRRRRRRRRORRRRRORRRORORRRRRORRORRRRRRRORRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORROORRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRROORORRRRRRRRROORRROORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORRRRRORRRRRRRRRRRRRORORRRROORRRRRRRRRORRRRRORORRRRORORRRRRRRROORRRORRRRRRRRRRORROORORRORRRORRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRORRORRRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRROOORRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRORRRRRRRRRORRRRORRRRRRRORRORRRRRRRRORRORORRRRRRORRRRRORORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRORRRRROOORRRRRRRRORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRROOORRRRRORRRORRORRRRRRRRROORRRORRORORRRRRORRRRRRRRRRORRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRORRRRRRORRORRROORRRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRROROORRRRRRRRRORRORRRRROOORRRRROROOORROOORRRRRRRRRORRRRRRRRORRORRRRRRRRRROORRORRRRRRORRRRRRRRRRRRRRRRRRRROORRRRORRRRRRORRRRRRORRRRRROORRRRORRRRORRRRROOORRRRORRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRORRRORROORORRORRRORRORRRRORRRORRRRRRRRORRORRRRORRRRRRRRRRRRRORRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROORRRRRRRRORRRRRRRRRRRRRRRORRRORRORORRRRRRRRRRRRORRRRRRORRORRRRRRRORRRRORORORRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRORROROORRRRROORRROORRRRRRRORRRRORROROORRRRORRRORRRRORORROORRRRRRORRRRRRRRRRRRRRORRRRORRORROORRRRRRRROORRRRRRRRRORRRRRRRORRRRRORORRRRORRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRRORRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRORRROORRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRROROOORRORRRRRRRRRRRRRROORRRRORROORORORRRORRORROORRORRRRRRRRROORRRORRRRRRORRRRRRORRROORRRRRRRRRRRRRRRORRRORRRRRRRORRORRRRRRRRRRRRORRRRRRRORORRRORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRORORRRRRRORRRRRRRRROOORRORRORRRORRRORRRRRRRRORORROROORRRRRRORRORRRRRORRRRRORRORRORRRRRROORORRRORRRRORRRRRRORRRORRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRORRORRORRRRRRRRRRRRRRRRRORRRRRRRRRORORRRRROORRRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRORRRORORORRRRRROOORROORRORRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORRRRRRORRORRRRRORRRORRRRROORRORRRRRRRRORRROORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRORRRRROROORRRRRRRRRORRRRRRORRRRROORRRRRRRRORRRRRRRRRRORRRORRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRROORRRORRORRROORRRORRRRRRORRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRORRRROOORORRRRRRRRRRRRRRRORRRRRRORRRRRRORRRRRROORRRRRRRRRRRRORRORRRRORRRRRRORRORRRORRRRRRRRRRRRRRRRORRORRRRRRRORRRROORRRRRORRRROORORORORRRORRRRRRRRROROOOORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRORRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRORRRRORRRRRROORRRORORRRRORRRRRRRRRRRRRRRRRRORORRORRRRRORRROORRRRRRRRRRRRROROORRRRORRRRRRRRRRRRORORRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRROORRRRRRRRRRORRRORRRRRRORRRRRRRRRRRRORRRRRRRRROORRRROOORRRRRRRRRORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRRORRRRRRRRRRORORORRRRRRRORRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRORORRRROROORRRRORORRRRRRORRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORORRRRRRRRORORRRRROROORRRRRORROORRRRRRRORRROORRORRRRRRRRRORRRRRRRRRRRRROORRRRRRRORRRORRRRRORRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRROORRRRROORRRRRRRRRRRRRORRRRRROORRRRRORRRRORORRRRRRRRRROORRROROOORRRRRORRORRORRRRROORRORRRRORRORRRRORRRORRRRRRRRRRRORORRRRRRRORRRRORRRORRRORRRORRORRRORRRRRORRORRRRORRRORORRRRORRRORRRRORRORORORRRRRRRORRRRRRRRRRRRRROOORORRRRRORRRORRRRRRRORORRRRRRRRRRRRRRRRROORORORRRROORRORRRRRRORROORRRRRRRROORRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRORRORRRRRRRORRRRRRRRROOORRORRRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRROROORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRORORORRRRRRRORRRRRRRRRRRORRRORORRRORRORRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRORORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRROORORRRORRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORROORRRRRRRRRRRRRRORORROORRRRRORRORRRROOORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRRRRORRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRORRRORRRRRORRRRRORORRRORORRRRORRROORRRRRRRROROORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRORRORORRRRRORRRRRRRRRRORRORRRORRRROOORRRRROOORRRRORRRORROOROORRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRROOORRRRRRRORRRRRRRRRRRRRORORORRORRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRROORRRRROROORRORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRRRRORRRRRRRRRRRRRRRRORRRRRRRRORROORRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRORORRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRROORRRORRRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRORRRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRROORRORRORRRORRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRROORRORORRRRRRRRRRRRRROROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRORRRRROOORRRRRRRORRRRRRRRRRRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRROORRORRRRRRRRRRORRRRRRRRRORORRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRRORRRRORRORRRRRORRRRRRRORRRRRORRRRRRRRRORRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORRRORRORRRORRRRRORRORRRRRRRRORRRRRROORORRORRRRRORRORRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRORORRRRRROOORRROORRRRRRRRRRRRRORRRRRORORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRORRRORROORRORORRRRRRORRRRRRORRRRROORRRRORRRRRRRRRRROORRRRRORRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRORORRORRRORRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORORORRRRRRRRRRRRRRRRRRRRRORRRRORRRROORORORRROORORRRORRRRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRRORRRORRRORRORRRRRRRORRRRRORORRRRRRORRRRRRRRORORRRRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRRRRRRRRORRRRROORRRRRORRROOORRRRRRORORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORORRRRORRRRRRORRRRRRRRRROORRRRORRRRRRROOORRRRRORRRRORRRRRRRRRRORRRRRRORORRRRRRRORRORRRRRRROROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORORRRORRRRRRORORORRRRRRRRRORORROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRORORRRROORRORRRRRRRRRORROORRRRRRRRRRRRRORRORRRRRRRRRRRORRRRRRROORRRORRORRORORRRRRRRRRORRRRRRORRRRRRORRRRORRORRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRORRRORRRRRRRRRRRRRORRRRRRORRRORRRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRRORORRRORRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRROORRRRRRRRRROORRORRORRRRRRRRORRRRRRORRRORRRRORRORRRORRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRROORORRRRORORRRRRORRROORRRRRRORRRRRRRRRRRROOORRRRRORRORRRRRRRRRRRORORRORRRRRRORORRRRRRORORRRORRRRRRRRRRRRRRRRRROORRRRRROORRORORRRRRRORRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRROORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRRRRRRORRRRRRRORRRRORRRORRRRORORRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRORRROOORRORORRRRROORRRRRRRRRORRRRRRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORROORORRRRRORRRRORRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRRRRRROORRRRRRORRORRRRRROORRRRRORRRRRRORORRRORORRRRRRRRRRRRRORRRRRROORRRORRRORRRORRRRRORRRRRORRRORRORORRORRRORRRRRORORRRRORRRRROORORRORRRRRRRRRRORRORRRRORRORRORORORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRROORORRRRORRRRRORRRRRRRROORRRORRRRRRRRRORORRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRORRRRRORRRRRORRRRRRROORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRORRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRORRRRROORRRRRORRRRRRRRRRRRRRRORORORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRRRRRRRORRRRRRRRROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRORRROORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRROROORRRORRRRRRRRRRRRRRRORRORORRORORRRRRRRORRRRRRRRROORRRRROORORRRRORRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRROORRRORRRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRORRRORRRRRRRRRRRROOORRRRRRROORRORRRRRRRRRRRRRROROORRRRRRRORRRRORRRRORRRRORORRORRRRRORRRRRRRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRORRRRRORRRRRRORRRRRRRORRRRRRRRRRRRORRORORRRRRRRORORRRRRRRRORRRRORRRRRRRROORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRROORORRROORRRRRRRRRRRRRRRRRRRORRORRORORRRRORRRRRRRRRRRRORRRRRRRORRROORRRRRRRRRRRORORORRRRRRRRRRORRORRRRRRORRRRORRORRRRRRRRRRRRRRRORRRRRRROOOORORRRRRORORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRORRRRRORRRRRRRROORRRRORRRRRRROORRRRRORRORRRRRRRORRRRRRRRRORRRRROOORRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRROORRRRROORRRRROROORRORRORRRRRRRRRRRRORRORRRRRRRRRRRRROOORRRORRORROROORRRRRRRRORRRORRRRROORRRRRRRROORRRRRRRROORRORRROORRRORRRRRRRRRRRRRORRRRORRORRRORRRRORRRORORRORORRORRRRRORORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRROOORRORRRRORRRRORORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRRORORRRRORRRRORRRRRRRRORRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRROROORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRORORRORRRRRORORRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRRROORRORRORRRRORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRORRRRRORRORRRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRORRRRRRRRORRRRRRRRORORRRORRRRRORORRRRRRRRORRRRRORRORRORRRRRORRRRORRRRORRRRRRRRRRRRORRRRORRRORRRRRRRRRRROORRRRRRORRRORRRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRRORRRRORORRORRRORRRRRRRRORRORORRORRRRRRRRRRRRRRRRORRORRORRRRROORRRRORRRRORRRRRRRRRORRRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRORRRRORORRRRRORRROOORROOORRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRORRRRRROORORRORRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRORRRRRRRRORRROORORRRORRORRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRRRRRRORORRRRRRRRRRRRRRRORRRRORRRRORORRRRRRRRRRORRRRRRRRRRORRORRRRRRRROORRRRRRRRORRRRORRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRORRRRRROOORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRROORRRRRRRRRORRRRRRRORORRRRRORORRORORRRRORRRRORRRRRRRRRRRORRRRORRORRRRRRRORRORRROORRRRRRRRRRRROOOORRRRRRRRRRRRRRRRRORRRRRRRORRORRRRRRRRRORRORRORRRRRRRRORRORRORORORRRRRRROORRORRRRRRRRRRRRRORRRORRRORROORORRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRROORRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRORRRORRRRRRRRRRRRRRORORORORRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRROROROORRRRROORRORRRRRRRRORRRRRORRRRRRROOORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRRRRORORRRRRORRRRRRORORRROORRRRORRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRORRRRROORRRRRRRORRORRRRORRRRRRRORORRORRRRRRROORRRRRRRRRRRRRORROORRORRRRRORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRORRRRORORRRRRRORRRRRRRRRORRRRRRRORRORRORRRRRRRRORORRORRRRRRRORRRORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRORRRRRRROROORORRRRORORRORRORRRORRRRRRRRRRRORRRRRRRRRRRORORORRRRRORORRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRROORRORRRRRORRRROORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRRRORRRROORRRRRRRRRORRRORRRRRRRRRRRRRRORRRRORRRORRORRRRRRRRORRRRRRRRORRRORRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRROROORRRRRRRRRRORRORRRRRRRRRRRRRRRROORRRORRRRRORRORRORRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRRROORRRRRROROROORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRROROORORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRORRRRORRRRRRRRORRRRRORRRORRORRRRRORRORRRRRRRRRRRRORRRRORRRRRRRRORRRRRRRRRRRRRRRORRRRROORRRROROORORRRORRRRRRORRRORRRRRORRRORRRRRRRRRRRROORRORRRRORRRRRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRORRRRRRORRRRRRRRORORRRRRRRRRRRRRRRRRORRRORORORRRRORRRRRRORRRRRRRORRRRRRRORRRRRRRRRRRORRRRRORRRRRRRORORRORRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRORROROORRRRRRRRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRORRRRRRRRRORRRRRRRORRRRRORORRRRRRRRORRRRRRRRRRRRRRRRRORROORRRRRRRRRORRRORRRORRRRRRRRRRROORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORORRRRRRRRORRRRRRORRORORRRRORRRRROORRRRRRRRORRORRRRORRRRORORRRRORRRRRORRRRRRRRRROORORRORRRRRROOORRRRROORRRORRRRRRORRRRRRRORRRRRRRRRRORRRRRORRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORRRRRRRORRRORRRRRRRRRRRRRRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORORRORRRRORRROORROROOORRRRORRRRORRRORRRRORRRRRRRRRRRRRRRRRORRRRRRORRORRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRROOORRRRRORRRRRRRRRORRRRRRRROORRORRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRORORORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRORRRORRRRRRORRRORRRRORRRRORROORORRRRRRRORRRRROORRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRORRRRRRRRRRORRRRRRRRRORRRORRORRORRRRRRORRRRORORRRRRRRORRRRRRRRRRRROORORRRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRROOORORRORRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRROOORRRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRROORRRORRRRRRRORRRRRORRRORRRROROORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORORRROORRORRRRROROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRORRRRRRRRRORORRORRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRORORRRRRORRRRRRRRROORRRRROORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORROORRRRRORRRRRORRRRRORRRRRRRORRRRRRRRRRRROROORORORRRRRRORRRRRRRRRRRRROORRRRRRRRORRRRRRRRRRRRRRRORRRROORRRRRRRORRRRRRRRRRORORRRORRRRORRRRORRRORRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRORRORORORRRRRRRRROORRORRRRRRRRRRRORORRRRRORRRROORRRRRRRRRRRRRRRRROROOORRORRRRRRRORRRRRRRORRORRRRRRRORRRRRRRROROORRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRORRRRORRRRRRRROOORRRRRRRROORRRORRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRORORRRRRRRRROORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRORRRRRRRRRRRRROOORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRORRRRROOORRORORORRRRORRRRRRROROROORRRRRRRRRRRRRRORRRRORRORRORRRRRORRRRRRRRRRRRRRROROORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRORRRRRRORRRRRRORORRROORRRORRRRRORRRRRRRORRRORRRRRRRRRRRRROORRRORRRRORRRRRORROORRRRRRRRRRRRRROORRRRRRRRRRRRRRRORROORRRRRRRRRRRRORRRORRRRRRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRROORRRRORRRRRRRRRRRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRORRRROORRRRRORRRRRRORORRRRRRORRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRROROORRRRRRRRRRRRORROORRRRRRORRRRRRRRRRORRRRRRORRRORORRRRRRRRRRRRRRRRRRRORRROORRORRRRRRORRRRORRORRRRROORRORRRRRRORRRRRORRRORRRRRRRRRRRRORRRRRRORRRRRRRRRORRRRORRRROORRORRRORRRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRROORRRRRORRORRRRRRORRROORRRRRROORORORORRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRORRRRRRRROORRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRRRRRRRROORRRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRORRRRRORORRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRRRRRRRRRROORRROROORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRROOORRRRRRRRRRRROORRRORRRRRORRRRRRRRRRRRRRROORRRRRRRRRRRRRRROORRRRRRORORRRRRRRRORRRRRRRROORRORORRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRORRRRORRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORORRRRORRORORRRRRRRRORRRRRRRRRORORRRRRRRORRRROORRRRRRRRRRRRRROORRRRRRRRRRORRROORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRORRRORRRRRORRRRRRRRRRROORRRRRORRRRRRRRRRORRRORRRORRRRRRORRRRRORRRRRRORRORRRRRRRORRRRRRROORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRORORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRORRRORRRRRORRRRRRRRRRORORRRORORRRRRRORRRROOORRRRRRRRRROORRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRORRRRRROORRRRORRRRRRRRRRORRORRRRRRRRRRRROORRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRORRRORRRRRRRRRRRRRORRORRORRRROOROOROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRORRRRRRORRRORRRRORORORRRORRRRRORRRRRRORORRRRRRROORRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRROROORRRRRRRRRRRRRRRRORRRRRRRORRORRRRORRRRORRORRRRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRROORRRRRRRORRRRRRORRRRRRRRRRRRORROROROORRRRRORRRRRRRRORRRORORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRROORRRRROOORRRRORRRRRRRRRRRRRRRORRRRRORRRRRRROORRRRRRORRRRORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRORRORRRRRRRRRRORRRRRRORORRORRRRRRORRRRRRRRRORRORRRRORRORRRROOORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRROORRRRRORORRRORRRRRRRRRRRORORORRRRRRRORROORRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRORRRRROORRRRORRRRRRRRRRRORRROORRRRORRRRRRORORRRRRORRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRRRRRRRRRORORRRRRORRRORRRRORRRRRORRORRRRRRRRRRRRRRORORORRORRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORORRORRRRRRRRORRRRRRRRRRORRORRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRORRRRRRRRRRRRORRRRORRRRRORRRRRRRORRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRROORRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRORRRRRORRRRORRRRRRRRORRRRRRRRRORRRRRRRRRRRRORORRRRRRRORRRRRRRRROOORRRRORRRRRRRORRRRRRRRRRRRROORRORRRRORRRORRRRRRORRRRRRRRRRRRORORRRRRORRRRROORROORORRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRORRRRRORRRORRRRRRRRRORRRRRRRRRRORRORRORRRRRRORRRRRRRRRRRORRRRRRROORRRRRRORORRRRROORRRRRRRRRRRORRRRRRRORORRRRRRRRRORRRRORRORRORRROROORRORRRRROORRORROORORROORRRRRRRRRRRRRRRRORORORORORRRORRRORRRRRRRRRORRORRORRORRRRRRRRORRRRRRRRRRORRORRRRRORORRRORRRRRRRRROORRRRRRRORRRRRRRRORRORRORRRRRORRRRORRRRRRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRORRORRRRORORRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROORRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROROROORRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORORRRRRRRORRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORORRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRORORRRRRRROORRRRRRRRRRRRRRRRRORRRRRRORORRORRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRROORRRRORRRRRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRORORRORRRRRRRRRRRRORORORRRRORORRRRRRORORRRRRRORRORORRRRORRRRORRRRORRORRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRROORRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRROORRRORORRRRRRRRRRRRRRRRRRRORORRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRROOORRRRRRRRRRRRRRROORORRRRRRRRRRRRORORRRROROORORRRRRRRRRRRRORRORRORRRRRRRRRRRORORRRRORRRRORRRRRORRORRRRRRRRRORORRRRRRRRRORORRRRRRRORORRRRRRORRRORRRRORROORRRRRRRRRORORRRRRRRORRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRROORRRORRORRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRRORRROORRRRRRRRRORRRRRRRORRRRRORRRRRRORRORRRRRRRRORRRRORORRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRORRRRRRRRORRRORRRORRRRRRRRRRRRRRRRROROROOORRRORRRRRORRRRRRRRRRRRRORRORRRORORRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROROORORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRORRORORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRORRORRORRORRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRORORRROORRRRRRRRRRRORRRRRORRRRORORRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRROOROORRRRRRRRORRRRRRRORRRRRORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRROORRRRRRRRRORRROORRRRRRRRRROROORRRRRRRORRRRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROROORRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRORRRRRRRRRRORRROORRORRRORRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRORROORRRORRRRROORRRORRRRRRRRRRRRRRRRRRRRRRRORRRORORRORRROORRRRRRRORROORORRRRRRORRRRRORRORRORRRRRRROORRORRRRRRRRORRRRORROORRRRORRRRRRRRRRROOOROORRRRRRRRRORORRRRRRORRROORORRRRRRRRRRRRRRRRRRRORRRROORORRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRRORORRRRRRRORRRORRROORRORRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRRRRRRRRRORRRRROOORRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRORRRORRRRORRRRRRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRORRORRRRRRORRRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRROROORRORRRRRRRRROORRRORORRRRORRRRORRRRRRRRRORRRRORRRROORRRORRRRRORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRROOORRRRRRROORORRRROOOORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRORRRRRRROORRRRRRRORORROORRORORRRRRRRRRRRRRRRRRRRRORROOORORRORRRRRRRROORRRRRRRRRRROORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRROOORRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRORRRRRRRROOORRRRRRRRORRRORRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRRROORORRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRORORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRORROOORRRRRRORORRORRRRRRRORRRRORORRORRORRRRRRORORORRRORRRRRRRRROORRRRRRRRRRRROROOORORRRRRRRRRRRRRRRRRRRRRRRRRORORRORRRRORRRORRRRORRRORRRRRRRRORRRRRRORRRRORRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRORRRRRRRORRRORRRRRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRROROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRORRRORRRRRRRRRORRRORRRRROORRRRRRRRROORRRRRRRRORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRORRRRRORORRRRRRRRRRRRRRRRRRRORRRROORRRRRRRRRRRRRRRRORRRRRRORRRORRRRORRORRRRRRORRRRRRORORRRRRORRRRRRORRRRRRRRRRRORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRRORRRRRRRORRRRRRORRRRRORRRORORRRRRRRRORRORORRRRRORORORRORRRRRRRRRRORROORRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRROORRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRROOOROROOORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORORRRRROORRORRRRORRRRORRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRORRRRROORRRRRRROORRRRRRRORRRORRRRRORORRRRRRRRRRORRRRRRRRRRRRRORRRORRRRRRORRRRORORORRRRORRRRORRRRRORRRRORORORRRRRRRRRRRRRROORRRRRRORORRRRRRRRRRRRRORORRORRORRRRRRRRRRRRORRRRRRRORRRRRORRRRRRROORRRRRRRRORORRRRRRRRRRORRRORRRRORRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRORORRRORRRRORRROORRRRRRRROORRRRRRORRORRROORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORORRORORRRRRRORORRRORORRRRRRRRRRRRRRRRRORRRRRRRORRRRRORRRRRRRRRROOORORRRRORORROORRRRRRRRRRRRRRORRRRRRRORORORRROORRRORRRRRRRORRRRRRRRROORRROORORRORRRRRRORROORRRRRRRRRRRRROOORRRRORRRORRRRRRRRRRRORORRRRRRRRRORORRRRRRORRRRRRRORRRRORRRRRRRORRRRRRRORRRORROORORRRRRRRRRORRRRRRRRRRRRRORORRORRRORRRRRRRRRROORRRRRRRRRRRROORRRRRRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRORRRRRORRORRRRRRRRORRRORRRRORRRRRRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRROOORRRRRORRRRRRRRRRRRRRRRRORRRORRRRORRRRRRRRRRRRORRRRRORRORRRRRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORORRRRRORRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRORRRRRRRRORRORRRRORRRRRRRORRRRRRORRORORRRORRORRRRORRRRRRRRORRRRRRRRORRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRROROORRORRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRORRROORRRRRORRROORRRRRRRRRRRRRRRRRORORRROORORRRRRRRRRRRRRRRRRORRRRRRRRRORRORORRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRORRROORORRRRRORRRRRORRORRRRRRRRRRRRRRRRRRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORROORRRRRRRRRRRRRRRRRRRRRORRRRRORRORRORRRORRRRRRORRRRRRRRRRRRORRRRORRRRRRORORRORRROROORRORRRRROORRRRRRROORRRORRRRRRRRRORRRRRRRRRRRRRRORRRRORRRRORRRRRRRRORRORRRRRRRORRRORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRORRRRORRORRORRRORRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRROORRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRORRORRRRRRORRORRRRRRORRRORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRORORRRRRRRRRRRRRRORORRRRRRRRRRORRROOOORRRORRRRORRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRORRROORRRRRRRRRRRRRORRRRRRRRRRORRRORRRRRRRRRRORRRRRORROORORRRRORRRORRORRRRRRRRRRORRRORRRRRROORRRRRORRRRRRRORRRORORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRROORRRRRRRRRRRORORRROORRORRRORRRRRRRRRRRRROROORRORRRRORRRRRRRRRRRRRRRRRRRRORROORRRRORRRORROORRRRRRRRRORRRRRORRRRRRRRRORRRRRORRORRRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRORRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRORORRRRRORRORORRORORRRRORRRRRRRRORRRRRRRRRRORRRORRRORRRRORRORRRRRRRRRRRORRRRRRRRRRRRRORRORRRRRORRRRORRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRROOOORRRRRRRRRRRRRRRORRORRORRRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRORRRORRRRRRRRRORRRRRORRRRRORRRRRORRRRORRRRRRORRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRORRRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRRRORRRRRRORRORORRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRORRRRRRORROORRRRRRRRRRORRRRRRRRRRRRRORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRROORRRRRRRRORORRRRRRRRRORORRRRRORRRRRRRRROORRRORORRRORRRRORRRRRROOORRRRRRRRRRRRRRRRRRROORRRRROORRORORRRRRRRRORRRRRRRRORORRRRORORRRROOORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRORRORRRRRRRRORRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRRRRRORRORRRRORRRROORRRRRRRRRRORRRRRRORRRRRORRRRRRRRORRORRRRORRRRRRRRRORRRRORRRORRRORRRRRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRORRRRRRRORRRRRRRRRORRRRRRRRORRRRRRRORRORRRRRRRRRRRRRRRRRORORRORROORRRRRRRRRORRRRORRRRRRRRRRRORRRRRRRRRRRORRRRRORRRRRORRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORROOORRRRRROOORRRRORRRRRRRRRRORRRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRORRORRROOROORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRROORRRRRRRORRRRRRRRRRROOORRRORRORRRRORRRRRRRRRRRRRRRORORORRRRRRRRRORRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRORRRORRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORORORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRORROROORORRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRORRRRRRRRORRRRRRRORRRRRRRRRRORRRRROORRORRRRRROORRRRRORRRRRRRRROORORRRRROORRRRRRORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRORRRRRRRRRORRRRRRORRRRRROROORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRORRRRRRRRRORRRORRRRRRRRORRRRRRRRRORRORRRORRRRRRRRRRROORRRRRORRROORRROORORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRRRRRRRORRRRORRRRRORRRRRRRRRROROORORRRRRORRRRRRRORRRRRRRRRRRRRRRORRRORRORRRRORRRRORRRRRRRORORRRRRRRRRRRRORROORRRRRRRRRRRRORRRRRRRRRRORRORRRRRRRRRRRRORRRRRRRRRORRORORRORORRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRORRORRRRRRRRRRORRRRRRRRRRRORRRORRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRROROORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRORORRRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRROOORORRRRRRRRRROORORRRRORRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRORORRORRORRRRRRRRORRRORRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRORORORRRRRRORRRRRRROOORRRRRRRRRRRRRRROORRRRRRROORRRRRRRRORRRORRRORRRRRRRRRRORRRRRRRRRORRRRRRORRRRRRORRORRRRRRRRRRRRRRRRRORORRRRRRORORRRORRRRRRRRRRRRRRORRORRRRRRRRRRORRRORRRRRRRRORRRORRORRRORRRRRORRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRORORRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRRRORRRORORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRORRRRROORRRRRRRRRRORRRRORRRRORRRORRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORORRRROORRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRORRORRRRRORRRRRRRORORRRRORRRRORRRRRRRRRRRRRRRRRORROOOORORRRRORRRORRRORRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRROROORRORRRRRRRRRRRRRRORRRRRRRORORRRORRRORRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRORRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRORRRRRORORRRRRRRORRORRRRRORRRRRRRRRRRRRRRRORORRRRRRORRRRRRORRRRRORRRRRRRRROOORRRRRORORORRORORRRROOORRRRRRRRRRRROORRRRORRRRRRORRRORRRRRRRRRRRORRORRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRORRRRRORORORRORRRORRRRORRRRRRRRRROORRRRRRRRRRRRRRORRRRRRRRRRRROORRRRORORRORRRORRRRRRRORORRRRRRRRRRRORRRRRRRORRRRRRRRORRRRRRRRRRRRORRRORRRORRRRRRRRRRORRRRORRRRRRRRRORRRORRRROORORRRRRRRRRRRRORRRRRORRRRRRRORRORRRORRRRRRRRRRRRRRRRRRRROOORRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRRRRRORRRORRRRRORORRRRRRRRRRRRORORRRRORRORRRRRRRORRRRRRRRRORROROORRRRRRRRRRRRRORORRRRRRRRRRRRRRRORRRROOORRRRRRRRRORRRORRRRROOORRRRORRRRORRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRORRROOROORRRRRRRRRORORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRORRRRRRRORRORRRRORRRRRRRROORRRRRRRRRORRRRRRRRROORRRRRORORRRORRORRRRORRRRORRORRRORRRRRRRORRORRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRORRRORORRRRRRRRORRRRRRORRRRRRRORRRRRORRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRORORRRRRRRRRRRRORRORRORRRORRRORRRRRRRORRRRRRRRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRORRRORRRRORRRRORRRRROORRRRORRRRRRRRORORRORRRORRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRORORRORRRORRRRRRRORRORRRROROORRORRRRRRORRRRRORRRORRRRRRRRRRRRORORRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRORORRRORRRORORRRRRRRORRRRRRRRRORRRRRORRRRORRRRRRRRRRRRRRRRRRRRRORRORRORROORRRRRROORRRRRRRROORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRORRRRRRRORORRRRRRRRORORRRRRRRRRRRORRRRORRRRORRRRRRRRRRORRORRRRRRRRORRORORORRRORRRRRRRORRORRRRRRROORRORRRRORRORRRRRRRRRRRRRRRORRORRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRORRROOORRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRORRRORRRRORROORORORRRRORORRRRRRRORROORORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRROORRRORRRRRRRORRRRRRRRRRRORROROORRROORRORRRRRRRRRRRRRRRRRRRROORRRRRRRORRRRRRRRRRRRRRRRORROOOOORRRROORRRRORORRRRRORRRRRRRRRRRRRRROORROROORRRRRRRRRRRRRRRRRROORORRORRRRRRORRRORORORRRROROOORORRRORRRRORRRRRRRRRRORRRORRORRRRORRORRRRRORRRRORRRRRRRRRRRRRORRRRRRORRRRRRRORRRRRRORORRRRRRROORRRRORRRRRRRRRRRRRRRRRRRRRRRRRROORRORRRORRRRRROROORRRORRRORRRORORRRRRRRORRRRRRORRRRRRRORRRRORORORRRORORRRRORRRORRRRRRRRRRRRORRORRRRRRROROORRRRRORRRRRRRORRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRORRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRROOOORORRRORRRRRRRORRRORORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRORRRRRRRRROORORRRRRORRRRORRRRORRRRROROOORRRRRORRRROORRRRRRRRRORRRRRRRRRRRRRRRRORRORRRORRRRORRRORRRRRRORORRORORRRRRRRRRRRRRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRORORRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORRORRRRRORRRRORRROORRRORRRRRRRRORRRRRRRRRRRRRRROORRRORRRRRORRRRRRRRORORRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORRORRRRRRRRORRRRRRORORRRRRRRRRRRRRORRRRRRRRROORRRRRORRRORORRRRRRRRRORRROORRRRRRRROORRRRRRRORRRRRRRORRRRRORRRRRRRRRRRRORRRRRRRRRORRROOROORRRRRRORRRRORRORRORRRRORORRORRRORRRRRRRRRRRRORRRRORORRRRROOORRORRRRORRRRORRORORRRRRORRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRORRRRROORRRRORRRRRRRRRORRRORRRORRRRORROORRRRRORRRRRRRRORRRRORRRRRRRRRRORRRRRRRRRRRRRORORORRRRRRRORRRRRRRORROROORRRORRRRRRRRRRORRRORORRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRRRORORRRRRRRRRRRORORRORRRRRRORRRRRRROORRRRRRRRRRRRORRORRRRRRRORRRRRROORRRRRRRRORRORRORRRRRRRRORROOROROORRRRORRRRRRRORORRRRRRRRRRRRRORRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRRRRRRRORORRRORORRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRORRRRRORRORRRRRRRRRORRRORRRRRRORRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRROORRRRRRRORRRRRRRRRRORRRRORRRRRRORRRRRRRRRRRRRORRRRRRRRORORROORORRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRORORORRRORRRRROORRRROORRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRORRRRRRRRRORRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRORRRRRRRRORRRRRRRRRRORRRRRRRRORRRRRRRRRORRRRRRRORRRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRORORRRORRRRRRRRRRORRRORRRRRORORRRRRRRRORORRRRRRRRORRRRORRRRRRRRRRRRRRRORORRRRRROORRRRORRRRRRORRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRROROORRRRRRRRRRRRRRRRORRRORORORORRORRRRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRORORORORRRRRRRRRRORRRRRRRORRRRORRRORRRRORRORRRRRRRORRRRRRRRRRRRORRRRORORRRRRRORRRORRRORRRROORRRORRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRORORORRRRRRRORORRRRRRRRRORORRRRRRORORRRRRRRRRRRRORORRRRRRRRORRORRRRRRRRORRRRRRRRRORORRRRORRRRRORRRRRRORORRRROORRRRORRRRRRRRRRRRORRRRRRRRRRRORRORRRRROORROORRRRRORORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOORRRRRORRORRRRRRRRRRRRRRRORORROORRRRRRRRRRRORRRRRRRRRRRRORRORRORRRRRRRRRRRRRORORRRRRRRRRRRRRRRRRRRRRORRRRORRORORRORRRRRRRORRRORRRRRRRRRRORORRRRRRRRORRRRRRRRRRROORRRORRRRORRRRRROORRRORRRRRRRRRRRRORRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRORRRRRRRRRRRRRORORORRORRRRRRRRRRRORRORRRRRRRORRRRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRRROORRRROORRRRORRRRRRRRRRORORRRRRRRRRRRRRORRRRRRRRRORRRORRORRRRRRRRRORRORRRORRRRRORRRORRRRRORRRORRRORRRORRORRRRRORRRRRRORRRRORRRRRRRRRRRRRRRRRRROOORRRRRORRRRRRRROORRRRRRRRRRRORRRRRORRRORORRRORRRRRORRRRROOORRRRORRORORRRRRORRORRORRRORRORRRRRRRRRRORRROORRRORRORRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRORRRRRRORRORRRRRRRRRORRROOORRORRRRRRRRRRRRRRRRRORRRRRRORRORRORRRRRRROORRRORRRRRORRRRRRRRRORRRRRRRORORROORRRORRORRRRRRRRORRRORRRRRRRROORRRORORRRRRRRRRRRRRRRROORRORRORRRRRRRORRRRRRRRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORORRRRRORRORRRRRRRRORRRRRRORRRRRRORRRRRRRRORRORRRRRRRORORRRORRRRRRROORRRRRRRRRRRROROORRRRRRRRORROORROORRRRORRROORRRRRRRRRRRRRRRRRORRRRRORRRORRRRRRRRROORRRRRRORRRRRRRRRRRORRRRRRROORRORRRRRRRORRRRORRRORRRRRRRRRRRORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRORRRRRRORORRRRRRRRRRRROROORRROORRRRRORRRRRRRRRRRRRRRRRRRRRORRORRRORRRRRRORORRRRRRORRRRRRRRRRORRRRRRRRRRRORRRORRRORRRRRORRRRRRORRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRORORRRRRRORORRRRRRRRRRORRRRORRRRRRRRRRRRRRRRRRORRRORRRROROORRRRRRRRRRORRRRRRRRRRRRORORRROORORRRORRRRRRORRRORRRRRRROORORRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRROORRRRRRRRRRRORRRRRORORRRRRRRRRRRRRRRRORRRORRRRRRRORRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRROORRORRRRRRRRRRRRRRRRRORRRRRORRORRRRORRRRROROORRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRORRRRRRRRRRRRRRORRRRRORRRORRRRORRRRRRRRRORRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRRRRROORRRRRRRRRORRRRRRRRRRRORRRRRRRRRRORRRRROORRRROORRROROORRRRRRRRORRORRRORRRORRORRRROROORRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRORRORRRORORRORRRRRRRRORRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRRRRRRORORRRORRRRORRRRRRRRRORRRRRRROORRORRRRRRORRRRRRRRRRRRRORORRRRRRORORRRRORRORRRRRRORRRRRRRRRRRRORRORORRRRRRRRROORRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRRRRORORRORRRRRRRRRRRRORRRRORRROORROORRRRRRORRRRRRRRRRRRRORORRRRRRRRRRRRORRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRRRORRRRRRRRRRRRRORRORRRRRORRORRRRRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRORRROORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRORORRRRRRRRRRORRRRRRRORRRRRRRRRROORRRRRRRRRORRRORRORRRRRROROORRORRRRORRRRRRRRRRRRRRRRORORRRRORRRRRRRRRRRRRRRRRRRRRORRRRORRRRRORRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRORRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRORRORROOORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRORRRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRORRROROORRRRRRRORRRRRORORRORRRRRRRRRRRRRORRRRRRRRRRRRRROORRRRRRROORORORRRORRRORRRRRRRRRRRRRRRRRORRORRRRRRORRORRRRRRRRRRRRRRRRORROOROORRORRRORRRORRRRRRRRRRORORRORRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRROORRRRRRRRRRRRRRRRRRRRORROORRRRRRRRROORORROORRRRRORRRORRORORRRRRRRRRRRRORRRRRRRORRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRORRRRRRORRRORORRRRRRORRRRORRRRRRRRRRRRROORORORRRRRRRORRRRRRRRRRRRORORRRRORRORRRRRRRORORRRRRRRRRRRRRRRRRRRRORRRRRRORORRRRORRRRRRORORRRORORRORRRRRORRRRRRRORRRRORRRORORRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRORRRRRRRRRRORRORORRRRORRRORRRRRRRRRRRRRRRORRRRRRORORRRRRRORRRRRRRRROOORRORRRRRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRORORROORRRRRRRRRRRORRRORRORRRRRRRRRORRRORRORRRORRRRRRRRRRRRRRRRRRORORRRRRRRRRRORORORRORRRRRRORRRRRROORRRRORRORRRRRRORRRRRRRRRROORRRORRRRRRRRORORRRRRORRRRRRRRRRRRRRRORRRRRRRRRORRRRRRRRRRRRORROORORRRRRRRRRORRRRRRRRRORROORRRRRRRRRRORRRRRRRRORRRRRRORRORRRRRRORROORRRRRRRORRRRORRRRORORRRRRORORRRRRRRRRRRRRORRRRRRRRRRRRRRRORORRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRORORRRRORRRORRRRRRRRRRRRORRRROORRRRRRRROORRRRRRRRRORRRRRRRRRRRRRRRRRRRRROORRRROORRRRRRRRRRRRRORORRRRRRRRROORRRRRRRRRRRORRRORRRRRRRRRRRORORRRRORRORRRORRRRRRRRRRRRRORRRORRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROORRRRRRRRRRRRORRRRRRORRRRRRRRORRRORORRORRRORRRRRRRRRRRRRRORRORRRRRRRRRORRRRRORRRRRRRRRORRRRRRRORRRRRRRRRORRORRRRRRRORRRRRRRRRRRROORRRRRRRRRRRRROORRRRRRRRRRORRRRROROORRRRRORRRORRRRRRRRRRRRRRRRRRRRRRRRRRRORRRORRRRRRRRORRRRRRRORORRRRRRORRRRRRRRRORRRRRRRRORRRRORRRRRRRRRRRRRRRRRRRRRRRORRORRRRRRRRRRRRRRRRRRRRRRORORRORROOORRRORRRRRRRORRROORRRRORRORRRORORRRRRRRRRRRRORORRRRRROORRORRRORRRRRORORRRRRRRRRRRRRRRRRORRRRRRRRRRRRROOORRRRRRRRRRORRRORORRRRORORORRRRROORRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRROROROORRRORRRRRRRRRRRRRORRRRRRRR
gitextract_8z7fqhuo/
├── .gitignore
├── Lecture 17.ipynb
├── challenge1/
│ ├── .gitignore
│ ├── README.md
│ ├── coins.cpp
│ ├── coins.py
│ ├── run_tests.sh
│ ├── tests/
│ │ ├── mon0.in
│ │ ├── mon0.out
│ │ ├── mon10a.in
│ │ ├── mon10a.out
│ │ ├── mon10b.in
│ │ ├── mon10b.out
│ │ ├── mon10c.in
│ │ ├── mon10c.out
│ │ ├── mon1a.in
│ │ ├── mon1a.out
│ │ ├── mon1b.in
│ │ ├── mon1b.out
│ │ ├── mon1c.in
│ │ ├── mon1c.out
│ │ ├── mon1d.in
│ │ ├── mon1d.out
│ │ ├── mon2a.in
│ │ ├── mon2a.out
│ │ ├── mon2b.in
│ │ ├── mon2b.out
│ │ ├── mon2c.in
│ │ ├── mon2c.out
│ │ ├── mon3a.in
│ │ ├── mon3a.out
│ │ ├── mon3b.in
│ │ ├── mon3b.out
│ │ ├── mon3c.in
│ │ ├── mon3c.out
│ │ ├── mon3d.in
│ │ ├── mon3d.out
│ │ ├── mon4a.in
│ │ ├── mon4a.out
│ │ ├── mon4b.in
│ │ ├── mon4b.out
│ │ ├── mon5a.in
│ │ ├── mon5a.out
│ │ ├── mon5b.in
│ │ ├── mon5b.out
│ │ ├── mon5c.in
│ │ ├── mon5c.out
│ │ ├── mon6a.in
│ │ ├── mon6a.out
│ │ ├── mon6b.in
│ │ ├── mon6b.out
│ │ ├── mon7a.in
│ │ ├── mon7a.out
│ │ ├── mon7b.in
│ │ ├── mon7b.out
│ │ ├── mon8a.in
│ │ ├── mon8a.out
│ │ ├── mon8b.in
│ │ ├── mon8b.out
│ │ ├── mon9a.in
│ │ ├── mon9a.out
│ │ ├── mon9b.in
│ │ └── mon9b.out
│ └── url.txt
├── challenge2/
│ ├── .gitignore
│ ├── README.md
│ ├── download_test.sh
│ ├── pilots.cpp
│ ├── pilots_n.py
│ ├── pilots_n2.py
│ ├── pilots_n3.py
│ ├── pilots_nlog2n.py
│ ├── pilots_nlogn.py
│ ├── run_tests.sh
│ └── url.txt
├── hello.txt
├── lecture1/
│ ├── Fast exponentiation and fibonacci sequence.ipynb
│ └── Stock Exchange.ipynb
├── lecture11/
│ └── BFS.ipynb
├── lecture12/
│ ├── DFS.ipynb
│ └── Google BFS.ipynb
├── lecture15/
│ └── Dijkstra's algorithm.ipynb
├── lecture16/
│ └── Bignums.ipynb
├── lecture2/
│ ├── Document distance.ipynb
│ └── binary_search.ipynb
├── lecture4/
│ └── Heaps.ipynb
├── lecture5/
│ └── BST.ipynb
├── lecture6/
│ ├── AVL_and_more.ipynb
│ └── Counting BST.ipynb
├── lecture7/
│ ├── Radix Sort Performance.ipynb
│ └── Understanding Radix Sort.ipynb
├── lecture8/
│ └── Hashing and hashtables.ipynb
└── lecture9/
└── Hashing.ipynb
SYMBOL INDEX (6 symbols across 5 files)
FILE: challenge1/coins.cpp
function main (line 18) | int main() {
FILE: challenge1/coins.py
function main (line 4) | def main():
FILE: challenge2/pilots.cpp
function test (line 15) | bool test(int x) {
function main (line 36) | int main() {
FILE: challenge2/pilots_n.py
function ok (line 18) | def ok():
FILE: challenge2/pilots_nlogn.py
function ok (line 18) | def ok():
Condensed preview — 93 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,253K chars).
[
{
"path": ".gitignore",
"chars": 20,
"preview": ".ipynb_checkpoints/\n"
},
{
"path": "Lecture 17.ipynb",
"chars": 7118,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# LCS \"\n ]\n },\n {\n \"cell_type"
},
{
"path": "challenge1/.gitignore",
"chars": 6,
"preview": "coins\n"
},
{
"path": "challenge1/README.md",
"chars": 182,
"preview": "# The coins challenge\n\nTo run c++ solution run\n```bash\ng++ coins.cpp -O2 -o coins\n./run_tests.sh ./coins\n```\n\nTo run Pyt"
},
{
"path": "challenge1/coins.cpp",
"chars": 2227,
"preview": "#include <algorithm>\n#include <cstdio>\n\n// OVERALL COMPLEXITY: O(n lg n)\n// (due to sorting)\n\n// maximum number of coins"
},
{
"path": "challenge1/coins.py",
"chars": 1619,
"preview": "# OVERALL COMPLEXITY: O(n)\n# here we use a dictionary\n\ndef main():\n # n - number of coins\n # k - we need k as many"
},
{
"path": "challenge1/run_tests.sh",
"chars": 352,
"preview": "#!/bin/bash\n\n# stop script on error and print it\nset -e\n# inform me of undefined variables\nset -u\n# handle cascading fai"
},
{
"path": "challenge1/tests/mon0.in",
"chars": 21,
"preview": "15 3\nRORROOROOROOORO\n"
},
{
"path": "challenge1/tests/mon0.out",
"chars": 2,
"preview": "8\n"
},
{
"path": "challenge1/tests/mon10a.in",
"chars": 1000011,
"preview": "1000000 2\nRRRRRROORRRRRRRRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRORORRRRRRRRRRRRORRRRRRORRRRRRRRRRRORRRRRRRRRRRRRRRRR"
},
{
"path": "challenge1/tests/mon10a.out",
"chars": 7,
"preview": "405963\n"
},
{
"path": "challenge1/tests/mon10b.in",
"chars": 1000012,
"preview": "1000000 17\nOOOOOOOOOOROOOOOOOOOROOOOOOOOOOOOOOOOOOROOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOROOOOROOOORROOOOOOOOOOOOOOOOOOOOOO"
},
{
"path": "challenge1/tests/mon10b.out",
"chars": 6,
"preview": "37260\n"
},
{
"path": "challenge1/tests/mon10c.in",
"chars": 1000011,
"preview": "1000000 3\nOOORRROOORRRRRROOOOOOOOORRROOOOOOOOOOOORRRRRROOOOOOOOORRRRRRRRROOOOOOOOOOOOOOORRROOOOOORRROOOOOOOOOOOOOOOOOOOO"
},
{
"path": "challenge1/tests/mon10c.out",
"chars": 8,
"preview": "1000000\n"
},
{
"path": "challenge1/tests/mon1a.in",
"chars": 23,
"preview": "17 3\nOROOOOOROOOOORRRR\n"
},
{
"path": "challenge1/tests/mon1a.out",
"chars": 3,
"preview": "12\n"
},
{
"path": "challenge1/tests/mon1b.in",
"chars": 20,
"preview": "14 2\nORROOOOOOORROO\n"
},
{
"path": "challenge1/tests/mon1b.out",
"chars": 3,
"preview": "12\n"
},
{
"path": "challenge1/tests/mon1c.in",
"chars": 18,
"preview": "12 6\nOORROROOROOR\n"
},
{
"path": "challenge1/tests/mon1c.out",
"chars": 2,
"preview": "0\n"
},
{
"path": "challenge1/tests/mon1d.in",
"chars": 26,
"preview": "20 2\nRRORRROROORRROORRRRO\n"
},
{
"path": "challenge1/tests/mon1d.out",
"chars": 2,
"preview": "3\n"
},
{
"path": "challenge1/tests/mon2a.in",
"chars": 36,
"preview": "30 3\nOORROOOOORRROROOOOOROOOOOOOROR\n"
},
{
"path": "challenge1/tests/mon2a.out",
"chars": 3,
"preview": "24\n"
},
{
"path": "challenge1/tests/mon2b.in",
"chars": 39,
"preview": "33 4\nORROOOOOOOROORROROOOROROOOOOOOOOO\n"
},
{
"path": "challenge1/tests/mon2b.out",
"chars": 3,
"preview": "30\n"
},
{
"path": "challenge1/tests/mon2c.in",
"chars": 35,
"preview": "29 3\nRRRRRRRRRRRRRRRRORRRRRRRRRRRR\n"
},
{
"path": "challenge1/tests/mon2c.out",
"chars": 2,
"preview": "0\n"
},
{
"path": "challenge1/tests/mon3a.in",
"chars": 1000,
"preview": "993 7\nOOOOOROOOOOOOORORROOROOOOOOOROOOOOOOOOOOOOOOOOOOOROOOOROOOOOROROROOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOROROORROOROR"
},
{
"path": "challenge1/tests/mon3a.out",
"chars": 4,
"preview": "960\n"
},
{
"path": "challenge1/tests/mon3b.in",
"chars": 1254,
"preview": "1243 1242\nOOOOOOOOOOOOOOOOOOOOOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
},
{
"path": "challenge1/tests/mon3b.out",
"chars": 5,
"preview": "1243\n"
},
{
"path": "challenge1/tests/mon3c.in",
"chars": 428,
"preview": "421 3\nRRRRRORRRRRORRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"
},
{
"path": "challenge1/tests/mon3c.out",
"chars": 2,
"preview": "0\n"
},
{
"path": "challenge1/tests/mon3d.in",
"chars": 1843,
"preview": "1835 4\nROOORRRORRRRRORRRRORRROOORORRRRRRRRRRRRRRRRRRRRRRRRORORRRRRRRRRRRORORRORROORRROORORRRRRRRRORROORRRRRRRRRORRRRRROR"
},
{
"path": "challenge1/tests/mon3d.out",
"chars": 2,
"preview": "5\n"
},
{
"path": "challenge1/tests/mon4a.in",
"chars": 32321,
"preview": "32311 15\nOOOOOOOOOROOOOOOOOROOOOOOOOOOOOOOOROOOROOOOROOOROOOOOOOOROOOOOROOROOOOOOOOORORROOOOOOOOOOOOOOORROOOOOOOOOOOOOOO"
},
{
"path": "challenge1/tests/mon4a.out",
"chars": 6,
"preview": "10032\n"
},
{
"path": "challenge1/tests/mon4b.in",
"chars": 21255,
"preview": "21243 1242\nOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
},
{
"path": "challenge1/tests/mon4b.out",
"chars": 5,
"preview": "9944\n"
},
{
"path": "challenge1/tests/mon5a.in",
"chars": 140323,
"preview": "140313 3\nROOROOROOOOOOORRRROROOOOOOROOOOOOOORORRROOROORRROOROROROOOORORROOOOOORORRRRRRRROOOOOOOORROOROOOORORRORORROOOROR"
},
{
"path": "challenge1/tests/mon5a.out",
"chars": 5,
"preview": "9120\n"
},
{
"path": "challenge1/tests/mon5b.in",
"chars": 90325,
"preview": "90313 5321\nOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
},
{
"path": "challenge1/tests/mon5b.out",
"chars": 6,
"preview": "47898\n"
},
{
"path": "challenge1/tests/mon5c.in",
"chars": 42220,
"preview": "42211 7\nRRRRORRRRORRRRRRRRRRORRRORRRRRRRRRRRRRORRRRRRORRRRRRRRRRRRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRORRRRRRR"
},
{
"path": "challenge1/tests/mon5c.out",
"chars": 2,
"preview": "0\n"
},
{
"path": "challenge1/tests/mon6a.in",
"chars": 125843,
"preview": "125831 152\nOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
},
{
"path": "challenge1/tests/mon6a.out",
"chars": 7,
"preview": "120258\n"
},
{
"path": "challenge1/tests/mon6b.in",
"chars": 125841,
"preview": "125831 2\nORRROOOROOOOOOOOROROROROOOOORROOROOOORROOOROROOROOROORRRRRORROOORROOROOORRORROOOORROROOROOORRROORROOROOROOORROO"
},
{
"path": "challenge1/tests/mon6b.out",
"chars": 5,
"preview": "4806\n"
},
{
"path": "challenge1/tests/mon7a.in",
"chars": 332542,
"preview": "332532 4\nOOOOOROOOOOOOOOOOOOOORROOOOROOOOOROROOOORRORORROOORRORROOOOOOORORROOOOOORRRRROOOROOROOOOOOOOOROORORRROORORROOOR"
},
{
"path": "challenge1/tests/mon7a.out",
"chars": 6,
"preview": "14240\n"
},
{
"path": "challenge1/tests/mon7b.in",
"chars": 483226,
"preview": "483212 30242\nRORRRRRRRRRRRORRRRRRRRRORRORRRRRRRRRORRRRORRRROORRRRRORRRRRRORRRRRRRRRRRRRRORRRRORRRRRRRROORRRRRORRRORRRRRR"
},
{
"path": "challenge1/tests/mon7b.out",
"chars": 7,
"preview": "332673\n"
},
{
"path": "challenge1/tests/mon8a.in",
"chars": 843222,
"preview": "843212 3\nORRRRRRRRRRORRRRRRROORRRRRRRRRRRRRORRRRRORRRRRRRRRRRRRRRRORRRRRRRRRRRORRRRRRORRRORRRRORRRORRRRRRORRRRORRRRRRORR"
},
{
"path": "challenge1/tests/mon8a.out",
"chars": 7,
"preview": "141284\n"
},
{
"path": "challenge1/tests/mon8b.in",
"chars": 432139,
"preview": "432124 225122\nOOOROOOROOOROORRRROORROORRRROOORORORORRRORRROOOOORROOOOOROOORROOORRRORORROORRRORRROOORROOORRRROOROOORRRRRO"
},
{
"path": "challenge1/tests/mon8b.out",
"chars": 2,
"preview": "0\n"
},
{
"path": "challenge1/tests/mon9a.in",
"chars": 1000009,
"preview": "999999 2\nOROOOOORRRRROOOOROOOOOROORORROROOOOOOROOROOOOROOROOOROROOOROORRRROROOORRORRRRORRRORORROOROROOOORROOROORORRORROO"
},
{
"path": "challenge1/tests/mon9a.out",
"chars": 6,
"preview": "11859\n"
},
{
"path": "challenge1/tests/mon9b.in",
"chars": 853226,
"preview": "853212 41329\nOROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
},
{
"path": "challenge1/tests/mon9b.out",
"chars": 6,
"preview": "82660\n"
},
{
"path": "challenge1/url.txt",
"chars": 42,
"preview": "http://main.edu.pl/en/archive/pa/2010/mon\n"
},
{
"path": "challenge2/.gitignore",
"chars": 24,
"preview": "pilots\ntests.zip\ntests/\n"
},
{
"path": "challenge2/README.md",
"chars": 187,
"preview": "# The pilots challenge\n\nTo run c++ solution run\n```bash\ng++ pilots.cpp -O2 -o pilots\n./run_tests.sh ./pilots\n```\n\nTo run"
},
{
"path": "challenge2/download_test.sh",
"chars": 253,
"preview": "#!/bin/bash\n\n# stop script on error and print it\nset -e\n# inform me of undefined variables\nset -u\n# handle cascading fai"
},
{
"path": "challenge2/pilots.cpp",
"chars": 937,
"preview": "\n#include <cstdio>\n#include <algorithm>\n#include <queue>\n#define ST first\n#define ND second\nusing namespace std;\ntypedef"
},
{
"path": "challenge2/pilots_n.py",
"chars": 1380,
"preview": "# n solution\n\nfrom collections import deque\n\n# read in the first line of input\nk, n = [int(x) for x in raw_input().split"
},
{
"path": "challenge2/pilots_n2.py",
"chars": 858,
"preview": "# n^3 solution\n\n# read in the first line of input\nk, n = [int(x) for x in raw_input().split(' ')]\n# read in the second l"
},
{
"path": "challenge2/pilots_n3.py",
"chars": 638,
"preview": "# n^3 solution\n\n# read in the first line of input\nk, n = [int(x) for x in raw_input().split(' ')]\n# read in the second l"
},
{
"path": "challenge2/pilots_nlog2n.py",
"chars": 12,
"preview": "# LAZYYYYYY\n"
},
{
"path": "challenge2/pilots_nlogn.py",
"chars": 1170,
"preview": "# n * log n solution\n\nfrom bintrees import FastAVLTree\n\n# read in the first line of input\nk, n = [int(x) for x in raw_in"
},
{
"path": "challenge2/run_tests.sh",
"chars": 382,
"preview": "#!/bin/bash\n\n# stop script on error and print it\nset -e\n# inform me of undefined variables\nset -u\n# handle cascading fai"
},
{
"path": "challenge2/url.txt",
"chars": 40,
"preview": "http://main.edu.pl/en/archive/oi/17/pil\n"
},
{
"path": "hello.txt",
"chars": 16,
"preview": "hi\nhow are you?\n"
},
{
"path": "lecture1/Fast exponentiation and fibonacci sequence.ipynb",
"chars": 20626,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "lecture1/Stock Exchange.ipynb",
"chars": 14363,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 5,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "lecture11/BFS.ipynb",
"chars": 36321,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 11,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "lecture12/DFS.ipynb",
"chars": 106994,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 65,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "lecture12/Google BFS.ipynb",
"chars": 9493,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# Google BFS question\"\n ]\n },\n "
},
{
"path": "lecture15/Dijkstra's algorithm.ipynb",
"chars": 35508,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 58,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "lecture16/Bignums.ipynb",
"chars": 11975,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "lecture2/Document distance.ipynb",
"chars": 28641,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# Document distance\\n\",\n \"\\n\",\n "
},
{
"path": "lecture2/binary_search.ipynb",
"chars": 22222,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 75,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "lecture4/Heaps.ipynb",
"chars": 8253,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 10,\n \"metadata\": {\n \"collapsed\": false\n },\n \"ou"
},
{
"path": "lecture5/BST.ipynb",
"chars": 42604,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 38,\n \"metadata\": {\n \"collapsed\": false\n },\n \"ou"
},
{
"path": "lecture6/AVL_and_more.ipynb",
"chars": 211827,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "lecture6/Counting BST.ipynb",
"chars": 31059,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 60,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "lecture7/Radix Sort Performance.ipynb",
"chars": 17687,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 26,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "lecture7/Understanding Radix Sort.ipynb",
"chars": 24401,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## Understanding radix sort\\n\",\n "
},
{
"path": "lecture8/Hashing and hashtables.ipynb",
"chars": 29610,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 51,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "lecture9/Hashing.ipynb",
"chars": 12627,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# Rabin-Karp method\\n\",\n \"\\n\",\n "
}
]
About this extraction
This page contains the full source code of the nivwusquorum/6.006-2015-notebooks GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 93 files (7.8 MB), approximately 2.1M tokens, and a symbol index with 6 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.