From 162542b5eadfe2481ef6a08e8df9f9ea7e543f1a Mon Sep 17 00:00:00 2001 From: LucaCappelletti94 Date: Tue, 10 Sep 2024 21:36:41 +0200 Subject: [PATCH] Updated birthday coefficients --- hash_list_correction/gap_hash_correction.csv | 90 +- hash_list_correction/src/main.rs | 1 + .../src/ramer_douglas_peucker.rs | 221 + hash_list_correction/src/utils.rs | 64 +- .../switch_hash_correction.csv | 90 +- measure_variant/comparison.png | Bin 93104 -> 118456 bytes optimal-gap-codes/optimal-gap-codes.csv | 794 +-- optimal-gap-codes/src/main.rs | 30 +- src/composite_hash.rs | 2 +- src/composite_hash/gap_birthday_paradox.rs | 5848 ++++++----------- src/composite_hash/gaps.rs | 139 +- src/composite_hash/gaps/bitwriter.rs | 56 +- src/composite_hash/gaps/optimal_codes.rs | 504 +- src/composite_hash/switch_birthday_paradox.rs | 4340 ++++-------- 14 files changed, 4094 insertions(+), 8085 deletions(-) create mode 100644 hash_list_correction/src/ramer_douglas_peucker.rs diff --git a/hash_list_correction/gap_hash_correction.csv b/hash_list_correction/gap_hash_correction.csv index 4e1a68a..532793c 100644 --- a/hash_list_correction/gap_hash_correction.csv +++ b/hash_list_correction/gap_hash_correction.csv @@ -1,46 +1,46 @@ precision,bits,rate_of_improvement,uncorrected_error,corrected_error -4,4,88.86,0.10,0.00 -4,5,114.84,0.19,0.00 -4,6,321.85,0.21,0.00 -5,4,374.00,0.10,0.00 -5,5,171.85,0.15,0.00 -5,6,91.44,0.15,0.00 -6,4,237.23,0.09,0.00 -6,5,88.95,0.10,0.00 -6,6,140.74,0.12,0.00 -7,4,95.07,0.06,0.00 -7,5,105.34,0.08,0.00 -7,6,191.71,0.10,0.00 -8,4,107.41,0.04,0.00 -8,5,138.87,0.05,0.00 -8,6,196.99,0.06,0.00 -9,4,217.83,0.02,0.00 -9,5,330.99,0.03,0.00 -9,6,399.49,0.04,0.00 -10,4,68.54,0.02,0.00 -10,5,142.40,0.02,0.00 -10,6,208.17,0.03,0.00 -11,4,192.85,0.01,0.00 -11,5,154.71,0.02,0.00 -11,6,250.10,0.02,0.00 -12,4,196.71,0.01,0.00 -12,5,308.11,0.01,0.00 -12,6,390.63,0.02,0.00 -13,4,244.59,0.01,0.00 -13,5,242.39,0.01,0.00 -13,6,448.92,0.01,0.00 -14,4,346.10,0.01,0.00 -14,5,278.19,0.01,0.00 -14,6,629.92,0.01,0.00 -15,4,529.22,0.00,0.00 -15,5,275.43,0.01,0.00 -15,6,1108.07,0.01,0.00 -16,4,699.21,0.00,0.00 -16,5,1037.62,0.01,0.00 -16,6,740.38,0.01,0.00 -17,4,634.79,0.00,0.00 -17,5,718.83,0.00,0.00 -17,6,490.78,0.01,0.00 -18,4,549.52,0.00,0.00 -18,5,447.08,0.00,0.00 -18,6,1994.33,0.01,0.00 +4,4,34.54,0.10,0.00 +4,5,12.91,0.19,0.01 +4,6,52.81,0.21,0.00 +5,4,60.29,0.10,0.00 +5,5,45.72,0.15,0.00 +5,6,31.58,0.15,0.00 +6,4,208.68,0.09,0.00 +6,5,31.29,0.10,0.00 +6,6,44.81,0.12,0.00 +7,4,38.90,0.07,0.00 +7,5,116.65,0.09,0.00 +7,6,111.08,0.12,0.00 +8,4,147.23,0.06,0.00 +8,5,155.03,0.08,0.00 +8,6,56.54,0.11,0.00 +9,4,78.23,0.06,0.00 +9,5,50.94,0.08,0.00 +9,6,62.57,0.10,0.00 +10,4,235.59,0.05,0.00 +10,5,72.32,0.07,0.00 +10,6,239.29,0.10,0.00 +11,4,66.73,0.04,0.00 +11,5,272.52,0.07,0.00 +11,6,269.94,0.09,0.00 +12,4,165.10,0.05,0.00 +12,5,414.81,0.07,0.00 +12,6,1206.77,0.09,0.00 +13,4,292.16,0.05,0.00 +13,5,489.75,0.07,0.00 +13,6,469.96,0.09,0.00 +14,4,573.18,0.05,0.00 +14,5,1510.12,0.07,0.00 +14,6,1476.07,0.09,0.00 +15,4,1554.05,0.05,0.00 +15,5,1751.94,0.07,0.00 +15,6,1665.32,0.09,0.00 +16,4,398.07,0.05,0.00 +16,5,644.39,0.07,0.00 +16,6,622.48,0.09,0.00 +17,4,815.35,0.05,0.00 +17,5,1391.01,0.07,0.00 +17,6,1709.16,0.09,0.00 +18,4,1876.76,0.05,0.00 +18,5,2064.07,0.07,0.00 +18,6,2135.24,0.09,0.00 diff --git a/hash_list_correction/src/main.rs b/hash_list_correction/src/main.rs index 673f669..275735c 100644 --- a/hash_list_correction/src/main.rs +++ b/hash_list_correction/src/main.rs @@ -12,6 +12,7 @@ use switch_hash::compute_switch_hash_correction; mod gap_hash; use gap_hash::compute_gap_hash_correction; mod utils; +mod ramer_douglas_peucker; fn main() { compute_switch_hash_correction(); diff --git a/hash_list_correction/src/ramer_douglas_peucker.rs b/hash_list_correction/src/ramer_douglas_peucker.rs new file mode 100644 index 0000000..db03867 --- /dev/null +++ b/hash_list_correction/src/ramer_douglas_peucker.rs @@ -0,0 +1,221 @@ +//! Submodule providing the Ramer-Douglas-Peucker algorithm for line simplification. + +#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)] +pub struct Point { + x: f64, + y: f64, +} + +impl From<(f64, f64)> for Point { + fn from((x, y): (f64, f64)) -> Self { + Self { x, y } + } +} + +impl Point { + fn distance_to(&self, other: &Point) -> f64 { + ((self.x - other.x).powi(2) + (self.y - other.y).powi(2)).sqrt() + } + + /// Get the x-coordinate of the point + pub fn x(&self) -> f64 { + self.x + } + + /// Get the y-coordinate of the point + pub fn y(&self) -> f64 { + self.y + } +} + +// Compute the perpendicular distance from point 'p' to the line segment from 'start' to 'end' +fn perpendicular_distance(point: &Point, start: &Point, end: &Point) -> f64 { + let line_length = start.distance_to(end); + if line_length == 0.0 { + return point.distance_to(start); + } + + // Compute the projection of 'p' onto the line segment + let t = ((point.x - start.x) * (end.x - start.x) + (point.y - start.y) * (end.y - start.y)) + / line_length.powi(2); + + // If the projection is outside the line segment, return the distance to the closest endpoint + if t < 0.0 { + point.distance_to(start) + } else if t > 1.0 { + point.distance_to(end) + } else { + // Otherwise, return the distance to the line + let projection = Point { + x: start.x + t * (end.x - start.x), + y: start.y + t * (end.y - start.y), + }; + point.distance_to(&projection) + } +} + +/// Recursive function for the Ramer-Douglas-Peucker algorithm +/// +/// # Arguments +/// * `points` - The list of points to simplify +/// * `tolerance` - The maximum distance from the simplified line +/// * `max_points` - The maximum number of points to return +pub fn rdp(points: &[Point], tolerance: f64, max_points: usize) -> Vec { + if points.len() < 2 { + return points.to_vec(); + } + + // Find the point with the maximum distance from the line segment connecting the first and last points + let (index, max_distance) = points + .iter() + .enumerate() + .skip(1) + .take(points.len() - 2) + .map(|(i, point)| { + ( + i, + perpendicular_distance(point, &points[0], &points[points.len() - 1]), + ) + }) + .fold((0, 0.0), |(max_index, max_dist), (i, dist)| { + if dist > max_dist { + (i, dist) + } else { + (max_index, max_dist) + } + }); + + // If the maximum distance is greater than the tolerance, recursively simplify + if max_distance > tolerance && max_points > 2 { + let mut result1 = rdp(&points[..=index], tolerance, max_points / 2); + let mut result2 = rdp(&points[index..], tolerance, max_points / 2); + + // Combine the results, removing the duplicate point at index + result1.pop(); + result1.append(&mut result2); + + result1 + } else { + // If no point is farther than the tolerance, return just the endpoints + vec![points[0], points[points.len() - 1]] + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_no_simplification() { + let points = vec![ + Point { x: 0.0, y: 0.0 }, + Point { x: 1.0, y: 0.0 }, + Point { x: 2.0, y: 0.0 }, + Point { x: 3.0, y: 0.0 }, + Point { x: 4.0, y: 0.0 }, + ]; + + let tolerance = 0.001; + let simplified = rdp(&points, tolerance, 10); + + // With a low tolerance, no simplification should occur + assert_eq!(simplified.len(), 2); + assert_eq!(simplified, [points[0], points[points.len() - 1]]); + } + + #[test] + fn test_full_simplification() { + let points = vec![ + Point { x: 0.0, y: 0.0 }, + Point { x: 1.0, y: 0.0 }, + Point { x: 2.0, y: 0.0 }, + Point { x: 3.0, y: 0.0 }, + Point { x: 4.0, y: 0.0 }, + ]; + + let tolerance = 1.0; + let simplified = rdp(&points, tolerance, 10); + + // All points are on a straight line, so the algorithm should return just the endpoints + assert_eq!(simplified.len(), 2); + assert_eq!(simplified, vec![points[0], points[points.len() - 1]]); + } + + #[test] + fn test_partial_simplification() { + let points = vec![ + Point { x: 0.0, y: 0.0 }, + Point { x: 1.0, y: 0.1 }, + Point { x: 2.0, y: -0.1 }, + Point { x: 3.0, y: 5.0 }, + Point { x: 4.0, y: 6.0 }, + Point { x: 5.0, y: 7.0 }, + ]; + + let tolerance = 1.0; + let simplified = rdp(&points, tolerance, 10); + + assert_eq!(simplified.len(), 4); + assert_eq!(simplified, vec![points[0], points[2], points[3], points[5]]); + } + + #[test] + fn test_high_tolerance() { + let points = vec![ + Point { x: 0.0, y: 0.0 }, + Point { x: 1.0, y: 2.0 }, + Point { x: 2.0, y: 1.0 }, + Point { x: 3.0, y: 4.0 }, + Point { x: 4.0, y: 3.0 }, + Point { x: 5.0, y: 6.0 }, + ]; + + let tolerance = 5.0; + let simplified = rdp(&points, tolerance, 10); + + // With a high tolerance, the algorithm should return just the first and last points + assert_eq!(simplified.len(), 2); + assert_eq!(simplified, vec![points[0], points[points.len() - 1]]); + } + + #[test] + fn test_single_point() { + let points = vec![Point { x: 0.0, y: 0.0 }]; + + let tolerance = 0.1; + let simplified = rdp(&points, tolerance, 10); + + // A single point cannot be simplified + assert_eq!(simplified.len(), 1); + assert_eq!(simplified, points); + } + + #[test] + fn test_two_points() { + let points = vec![Point { x: 0.0, y: 0.0 }, Point { x: 1.0, y: 1.0 }]; + + let tolerance = 0.1; + let simplified = rdp(&points, tolerance, 10); + + // Two points cannot be simplified further + assert_eq!(simplified.len(), 2); + assert_eq!(simplified, points); + } + + #[test] + fn test_identical_points() { + let points = vec![ + Point { x: 0.0, y: 0.0 }, + Point { x: 0.0, y: 0.0 }, + Point { x: 0.0, y: 0.0 }, + Point { x: 0.0, y: 0.0 }, + ]; + + let tolerance = 0.1; + let simplified = rdp(&points, tolerance, 10); + + // If all points are the same, the algorithm should return just one point + assert_eq!(simplified.len(), 2); + assert_eq!(simplified, vec![points[0], points[0]]); + } +} diff --git a/hash_list_correction/src/utils.rs b/hash_list_correction/src/utils.rs index 607b54d..7c8b916 100644 --- a/hash_list_correction/src/utils.rs +++ b/hash_list_correction/src/utils.rs @@ -1,5 +1,6 @@ use hyperloglog_rs::composite_hash::CompositeHash; +use crate::ramer_douglas_peucker::{rdp, Point}; use hyperloglog_rs::prelude::*; use hyperloglog_rs::utils::VariableWord; use indicatif::MultiProgress; @@ -85,13 +86,9 @@ struct CardinalityError { cardinality: f64, } -impl CardinalityError { - fn relative_error(&self) -> f64 { - (self.exact_cardinality - self.cardinality).abs() / self.exact_cardinality.max(1.0) - } - - fn correction_factor(&self) -> f64 { - self.exact_cardinality - self.cardinality +impl From for Point { + fn from(error: CardinalityError) -> Self { + Self::from((error.cardinality, error.exact_cardinality)) } } @@ -106,7 +103,7 @@ where } else if CH::Precision::EXPONENT < 10 { 1_000_000 } else { - 1024 + 10_000 / u32::from(CH::Precision::EXPONENT) }; let progress_bar = multiprogress.add(ProgressBar::new(iterations as u64)); @@ -161,7 +158,8 @@ where let cardinality = f64::from( hll.duplicates().unwrap() + hll.number_of_hashes().unwrap(), ); - let exact_cardinality = f64::from(u32::try_from(hash_set.len()).unwrap()); + let exact_cardinality = + f64::from(u32::try_from(hash_set.len()).unwrap()); report.push(CardinalityError { exact_cardinality, cardinality, @@ -206,7 +204,7 @@ where ); // We convert the hashmap to a vector. - let mut total_report: Vec = total_report + let mut total_report: Vec<_> = total_report .into_iter() .filter_map(|(_, (count, report))| { let mut report = report; @@ -216,51 +214,29 @@ where }) .collect(); - // We sort the results by the estimated cardinality, which most likely will be the - // already sorted but it is not guaranteed. - total_report.sort_by(|a, b| { - a.exact_cardinality - .partial_cmp(&b.exact_cardinality) - .unwrap() - }); - // We store the mined data-points to a CSV so to avoid recomputing them // in the future. write_csv(total_report.iter(), &output_path); + // We sort the results by the estimated cardinality, which most likely will be the + // already sorted but it is not guaranteed. + total_report.sort_by(|a, b| a.cardinality.partial_cmp(&b.cardinality).unwrap()); + // We expect at least one value in the report. assert!(!total_report.is_empty()); total_report }; - let k = core::cmp::min( - (CH::Precision::EXPONENT as usize) * 4, - total_report.len() / 2, - ); + // We convert the total_report to a list of points. + let points: Vec = total_report.iter().copied().map(|report| report.into()).collect(); + + // We determine the maximal number of points to consider. + let k = usize::from(CH::Precision::EXPONENT) * 4; // We split the data into k partitions, and we identify the largest discontinuity // in each partition. - let top_k_reports: Vec = total_report - .par_chunks(total_report.len() / k) - .map(|chunk| { - let mut max_discontinuity = 0.0; - let mut max_discontinuity_index = 0; - for (i, report) in chunk.windows(core::cmp::min(5, chunk.len())).enumerate() { - let discontinuity = (report[report.len() - 1].relative_error() - - report[0].relative_error()) - .abs() - / (report[report.len() - 1].cardinality as f64 - report[0].cardinality as f64) - .abs() - .max(1.0); - if discontinuity > max_discontinuity { - max_discontinuity = discontinuity; - max_discontinuity_index = i + report.len() / 2; - } - } - chunk[max_discontinuity_index].clone() - }) - .collect(); + let top_k_reports: Vec = rdp(points.as_slice(), 0.0000001, k); // We create the correction. let correction = HashCorrection { @@ -268,11 +244,11 @@ where bits: CH::Bits::NUMBER_OF_BITS, relative_errors: top_k_reports .iter() - .map(|report| report.correction_factor()) + .map(|report| report.y() - report.x()) .collect::>(), cardinalities: top_k_reports .iter() - .map(|report| report.cardinality.round() as u32) + .map(|report| report.x().round() as u32) .collect::>(), }; diff --git a/hash_list_correction/switch_hash_correction.csv b/hash_list_correction/switch_hash_correction.csv index de569ac..67e0ab2 100644 --- a/hash_list_correction/switch_hash_correction.csv +++ b/hash_list_correction/switch_hash_correction.csv @@ -1,46 +1,46 @@ precision,bits,rate_of_improvement,uncorrected_error,corrected_error -4,4,44.17,0.05,0.00 -4,5,38.77,0.00,0.00 -4,6,39.91,0.00,0.00 -5,4,31.90,0.00,0.00 -5,5,55.58,0.00,0.00 -5,6,58.44,0.00,0.00 -6,4,99.53,0.00,0.00 -6,5,144.97,0.00,0.00 -6,6,202.20,0.00,0.00 -7,4,320.86,0.00,0.00 -7,5,481.32,0.00,0.00 -7,6,646.05,0.00,0.00 -8,4,18.06,0.00,0.00 -8,5,78.43,0.00,0.00 -8,6,19.56,0.00,0.00 -9,4,15.03,0.00,0.00 -9,5,11.09,0.00,0.00 -9,6,18.95,0.00,0.00 -10,4,22.71,0.00,0.00 -10,5,31.14,0.00,0.00 -10,6,120.49,0.01,0.00 -11,4,48.96,0.00,0.00 -11,5,138.17,0.01,0.00 -11,6,30.64,0.00,0.00 -12,4,121.56,0.00,0.00 -12,5,52.35,0.00,0.00 -12,6,48.54,0.00,0.00 -13,4,61.26,0.00,0.00 -13,5,64.79,0.00,0.00 -13,6,73.32,0.00,0.00 -14,4,110.82,0.00,0.00 -14,5,114.20,0.00,0.00 -14,6,150.22,0.00,0.00 -15,4,91.53,0.00,0.00 -15,5,39.68,0.00,0.00 -15,6,115.89,0.00,0.00 -16,4,47.82,0.00,0.00 -16,5,149.57,0.00,0.00 -16,6,43.83,0.00,0.00 -17,4,149.72,0.00,0.00 -17,5,245.20,0.00,0.00 -17,6,442.70,0.00,0.00 -18,4,547.75,0.00,0.00 -18,5,765.14,0.00,0.00 -18,6,673.54,0.00,0.00 +4,4,inf,0.05,0.00 +4,5,inf,0.00,0.00 +4,6,inf,0.00,0.00 +5,4,inf,0.00,0.00 +5,5,71.02,0.00,0.00 +5,6,67.43,0.00,0.00 +6,4,inf,0.00,0.00 +6,5,569.57,0.00,0.00 +6,6,192.19,0.00,0.00 +7,4,248.23,0.00,0.00 +7,5,213.43,0.00,0.00 +7,6,178.76,0.00,0.00 +8,4,67.72,0.00,0.00 +8,5,116.71,0.00,0.00 +8,6,157.62,0.00,0.00 +9,4,210.48,0.00,0.00 +9,5,77.34,0.00,0.00 +9,6,124.99,0.00,0.00 +10,4,14.14,0.00,0.00 +10,5,150.12,0.00,0.00 +10,6,59.27,0.01,0.00 +11,4,21.94,0.00,0.00 +11,5,162.23,0.01,0.00 +11,6,88.66,0.00,0.00 +12,4,127.53,0.00,0.00 +12,5,237.55,0.00,0.00 +12,6,221.48,0.00,0.00 +13,4,316.01,0.00,0.00 +13,5,297.83,0.00,0.00 +13,6,356.30,0.00,0.00 +14,4,356.79,0.00,0.00 +14,5,519.63,0.00,0.00 +14,6,524.38,0.00,0.00 +15,4,459.60,0.00,0.00 +15,5,100.29,0.00,0.00 +15,6,197.35,0.00,0.00 +16,4,779.76,0.00,0.00 +16,5,1231.53,0.00,0.00 +16,6,719.36,0.00,0.00 +17,4,281.44,0.00,0.00 +17,5,81.63,0.00,0.00 +17,6,381.84,0.00,0.00 +18,4,223.41,0.00,0.00 +18,5,304.24,0.00,0.00 +18,6,96.34,0.00,0.00 diff --git a/measure_variant/comparison.png b/measure_variant/comparison.png index 4156be7c7a57f2fb1361d5ec3fd887d118c0959f..60b81e2a191fcf6073b77ee6b9f3fd93df8cebd4 100644 GIT binary patch literal 118456 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

L&l=FID1H4~sm5G`OkvR5*J^Wq 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 literal 93104 zcmcG$2RxVU`#*dcMM8w^5m6|zvqwfLl9@6Jkz|vR70D)*NMt25itLrLii|R{h3r-K z>^V;3{@%aW^Z);T&+B=fzt`P;-|_MJT-SLX=W)E>@8f-30cxsBBt>1FYKPRt_ zVR&Qc58;0Jj!IJNF#Jc*GHcg&4g?%uSsH@CJD;1S{B zKgn{-!NJB}jF;E)pBM00+nMol>i_bDH#uN)PS+m84&6Y1a8jjH%rP7cJ1;M*=^QiF z>vBc&<~qUL?CGf!se~s21H}suDi~Q6S(IC`N9&rd9n96%YrA${-x+B?bDw~*?tH0kXJldB`Px4wzw>qXK8_gq_E$LLbuZPOZ<-L$#8d2iw-e_-FZKFA_tNl? zO#PB0{Le3L+BiBYOn2q+xvkjf71~rL8qaj*67WAKzPB{RxoFY!QZi_{@7^JuEWMU) z5!Z!Vg14GKBuc@xhP!NEbLWp}A&W;bF~N-DcLx?b3~NWezWBZH{nF6Z<~mhZSgu*q z;O26_2u*xbtT;8jh*f6u78yCYmT*@73`S0V`DRDX%?t91inv(u-D#p^^#G@ScWUXs z8v+I{zo_V!Ra;Xpvt4saXtlGq|2aN>;Q7VZ1-!?P6ZG}<9bvwfrYV=8_Tkf~q?7u` zSXsYSk~_d+i?i*UEU@bR*6A_zgKuNf@UL75ozTGec);E1uAhF)9w&Y~*M>5Fn)~^w zC0-WK*~KM6)@MHrpAmkRL0P(0?%nCD5`Q=5F)yp$;%7IUZq~+&FzW)6A^S+lCR{G})ccJ}gsIK%O`@RA}{p;QN zmNWvU#JIS)1JlzX8yjv8(_K`juH{#iyRVZmGLl$ZTL;q$?8hEGd-jmp(2e~5{rhus zb23-1&`51AXryX#ExyavE5dz#@nM+s77eq<%2BzqXVHiCmN>m=^Mw1gx5bb3_pfVw z_4+j~7At&iEeCcy!F_0t*WYGft5>A3KMoM<<`lH*UdGh zk#ak8yEXOx!h*xeYx%^NB!1&J!iK|+CVKweijww}GW{Cu%YNZmy!-kR7918+0rwXr z;lj_OSLnr|5}jIL-JMS&V%?`1wvnO9Ma*!9Y<+pQ7VZe{EhIxHd$8B3Ujf$87WM*` zns)l0dH-@0pK)`Ar{~6U#oy|o+OVG^Bm1#)moC)?@s|733YcEs+E}%*wXKX5cS7&t z?Tza;S4nWIIUdJjb5ZAFoD^dukN(GR$rl_$%Wk!>3R-qi#<~4D;O6e`*e3!ZRYV5o zua2WVQ%()&Y4ree#a)WD?X;nc-T`y1I%r#)_LQtb{R1e(bic2&oC7|J2q-m6es1s-8^5B<&IW z^eJV~+SKf97!Kb4fywL&?G&H>3QuNu-;Wn~%U;c_XIE?m-fm03@c|Olrd4jt%fGfogSZ_ST)#=qBRD~8~Bd}v8hA}1sB>gmx7T9-6!py?^J#p^DxCcrYU6_Bp3 zu8NtDLT32rLvUzdW+tm+IXIa3$!7krI|OL=z&m2gihIjhmD81#l@psI3@`lsQ%h|~ zAz6oq`1<;$9sJ}t*-oOId>GD7)!(gUX^G_?`&8Xr4vd9|M>S<7Iv>soZO_Yy2wy|b zO{&@Qbsp2kn6$o^adBbymS-Z;`pfPuE85tch9L3jE4yd>HCo6&Fi_6fxv*FT{{JT| z_?v45bP|fNmmy63kC!b|jY{54Z*6VC;ppi0m>*GzosV?51H1p{>JhR{qrUwiH+!F3j}OL()-< z6?3$i?UQ`<>eWD10L9AhT4oZa`i>52IOa7Ke>bgLGj%CQ=mbB&(!9If#-*8|t&(C{ z|LhbF#;u(x18V~LKcKl;ZDoC(etHr<>8;IAxzf3h2j~9$k-K;?xN+;}C%>VR+48d$ z9-F6K{+OVkgQM|jakAqbWJHvlVCRKh-7fSOh`v^h4YV#_-M_iMTwCfguU6sVzOmG8 zeWloevnGr=TSFlZwx4xp`x#w_LPXTE4I~?0h#Z0dfV=<1?749t9f2=TImcR(2;g_Z zpa8~0h;xK3LcvSAR$zrz;~_Dvw{dOgjrFDJx%v6;=G1g_fe#+w$4I%;LE@>VxFm7k z&||fF_#K?Cz_GDgdKDgwXCD%`h`-k3L8X+>qW$Cslv5fB=hOR1=pO7lc;v(P?-XyY z=JC61dAWXihlmJo4O(jGEfdEYAH%#osM)sjU@bx8K#&H^qb@fZ0vFSqSrI z@OL1_<(swJl@cKn@$J)x081U|X_@2bTdb@(c*M;CJ0NBX!$UtouY5U2hA-i^LI&r^#+Gw^MFekw$PR+{!Gi}sis^R%k7i?* ze#ygP$H`}_XNa4*&%yTM`2V#jFE1CKA=$ag2(7z!h2`YrT7Mhp^2ubgs9!C~&gR{_ zn&avQ-=lPoh3Q= z@+>;?Csy}BTtv8Bf{dyvske{M&*^E)$r&}#KY#whwo&@Vs8lr0`tzjEbP+x*^6a2;=dnRGG#^5wr-|Lu;XKBkj&6@>UOX|aH076g$Q zVd1$n)rkkdf#49+(@9&#eS1syuZ>)ATk15s)s{}>=H^Cr_^|f@3XTCtqF7b`O^~M-cLJ|_+$Vh5B;XD2=^CPm! z>JgLo*tXZR_BbJ~9TBCl3!%3f&unFN^}e7Zr#?bH_Jx{7he``z6AWuU%m_-|DJ+}A;`%f;Y>E!kzE_-xfL)P=gH*0wovJNkQ&1%j;qRhct|Zxcl!yL zHD3Su(HE6Vh)-1Cu@6P|qmSTynxy}h>h%RB+2lDAD0B1ik!!rZSP4+2<(;vT+v=~# zvF-w1gs@x}C&u$Gsi-KRTxHdB#%+DN;EeMe3lumnfRV(EVw4yH)lpG22>hVa4-4Rb zJ^gJNAlKo7p_xZ_jow25E9@5~%Gjz0X zt>66ObSGtR^uDfQan19?N4Uth8fS$?mpfg`eoh-KsaZoFo0vU&_U!LU0_N)*E5A`9 z?CI_OIXX%JAp|EPts9`qfywqaD4&uuFc4!=Qtn~^sRD&8+7V9}J|$4PHjzOie)lBCa`Y$;%2dxzU3<8);#{@_ zH=|VMy7=hPBMc)vc<|FZ!(5QY$9`^%8Q9RO-)UH6&2Fh^>44v(@1+r zWRi5f4j|`NZ*g8*e;AuhDpnRBkJW}T*ET#CaLiwxXglaf%E-SGJv?l(Fwu6w z?AmN!87gRiLO*`}O7i*h=O{79bOU zaY^oucKvwex_Xt++I`J)ROb7$VYl!oGqr_Uyi~ z=g*(3aYYak5q;}qqNIEPu*fI-b6wr(9|j3(ECK=)kllp46xXAyD>j95a&nphHbWvj z5uxn1(4qv?=|ScE$ml4Ww6x)-gt&N#=4=E?%U_fda@cXn#!b$8`i5CHH1yq2VqqN*6i4EgBCk1JI*HLN^5q=xQ` zRDI4vB!wjTM`ux#)vr* z!TFN~%w^!Qdb7;FrnYtnkMSZtc zp^_{reqhhL-Nyf;udPi>lHlVN`f20x#rA7aqV^mQ4>5;ozqxt?C^3qlN|#x$Ghve4 z+!rI=;GX$Xpivd`NJt21Z?y@$UQMBiJYE32r>(T z4uG5YW0|_S`+3V24)?jus|Z@O6C-ercnFj_j7+KaxN405+qb6?r38Ta3DOx3<~Y$> z39vitxqun#i4%m7U0tiUPT#r6@l=Ooi|8;Fm9M`);i5DP_Q222c;LhR{XV}6`aS3? zHvSxh{Fl)u?6KjD_6Lpw<^|V+0K@t7=O=`LXez)8v?>g4Y;OJr!fpiFXhQh+@84H) zO-UN#qz#QKa&vPbG5KX?o?Ka5d$tvV&U&~4UBiaTresi6c;4`@Ux+f5F$juM8~-i; z#W*Ue7r6f3{QGG@y&yIup7kTW^3G`Aw{PFb=;;s2Fcg*B4(&$-1e3XQ=j0JygJART zuWtZ-IH#&wldhG~dS3*)_)>xvVbzbm2l;FUWbSmmKOla03bHXlt0jt=FsU^{D1m38 z;Mn{bK94FZF#n6yTi7l};S|;LVxpk%DRG)L>ML~tP_G2=HvH++2M{-S7^+0ip1rnW z288(P)v=4QVpJENokYP4+5MG)5eb=w0D$u_QTvhWGd)GOT2sjnQ&6;7#N&Mc;ov?L zAft~D4ivht3j^%<-DQ#eGuEjutx)9B4&qX+|Eb=?NTtz(fZZJ*&KXVesKJ>YF0Sg{ zgutrp(1~~`mzLv5?eE`EgXo37e~h+j!pzk#7n#^u@BQ;FtNT`7Sw?QE@^^!Gz>(;i zL7d{pL3 zNgkVPbIZ#GsfPgM94Tw;+(lq1T5kAdYL%2uiGvan5^5RRr&`}!qlPL4jDr|1`E_4~ z=~uc3zP^=!TmTE#!r^FJH{quZWtI*_*o5QB&$8t{JPc7$K0dxwgEBFQYZO3wMRp3C z#elYqo8x8u!@`tcr$N5Cn%?35=kxJY{SsmHLfb)kC>-hC!=t0dHNmum2M*l#^CO5B zH1`ICnzkG#dG82f^$}cJWRSTpCn+8k5Xg=3On%}j3z zdP8H#OIJ$nzH$8vLc#+862|cE=gyz61i*)im7`~g!?-uB>mU@ZA3!qUlY9a6M68`G{G`m*+0DDW z$DS1jRcx(sr)#F+LUk#X;H&#PmD_}2%x-fys1hOCjFG{aLrP^mZ$%aS2?o4V37Uvj zx~42JEer!C>tRsPLG3I(P#{Y=f$7r$KP3T)R5sh748tGtP1>jH)e-ua=nX%Gnj2wYD!)p(g31f{ zAqfz=;yRKM7yXO#;V*nU%rNI!kCDP)A*q;F;b?_$`6cZ;HNPKaH(0M{S3g@$qXAMN zXw^f5y#-ay0ko3Yioa3@o|}%CQS?1c&8LkP@9~BQHMyt&sn3BfI6i%lkg!=an?3u< zw^?>L-CPkw*ubw}H{Tn66Ga&naQDP?hJH!@=MHWBy_K*F3W?94iPuoDpMUS(t?s(q z>x5K>U}kA1RFi(yN1_6qYuI1ze(x9u2kYt6WWXx5J!A8sb^=wn0dQ=Ba(QqR=_Yi7 zw=f-@^@D!9Ofu$~N1!;KL*nCYmGouY^|E1R{&>PfwH#ED5^jb zI&D-%2r>?Hq1!4y0+@WpH8N?M&uknfjd$}W9N{d@&QvyeQq!*Y<|`8!+0B6GGWCiM z1KCr6&1_D-K#k=5goFe|!%5JYp@=2`Eu-N#A^iC9<7tq>hDS!C8E6X@9IHWmCT@~k zW3;qqijTMFuLgfHG%#RN*U%uRqa(U>X)-zPi6zbY z@~PP~O-luYsI2&BzFJ{$;K@~#U)n1nr_kR*AN-U2>oYkuV;-o=FYS_as4;9~1iYqQ zsmJBz+5cIX6@~>lcKe=yI*;85O*yvB|HQhZ+tP0*^{L&gRLF^WlJ5PwwotoHcl*P+ zuH0AOmv-x(yQj5Y*$X^try@&n1=V_h<`9BTGd;30G8jm&Z%X8U$&lewg2WGcDd^Gn zOG-+#nre3|z@yO7##J+Fa?`Ge!A>+q{n5=UJGw{A^$?Tpcy0U%q^K>&M%p&v*^9I!u8y5*|9_2legar%&%}hZJKsK@jx1 z$npK&#h5ei^!n)$Oo<4Kk$V>?9#lmho@7&qN$!$ts9?4LyBsE34ie#257b)VM;OqD z0bumiko#IEZ%01{f+{U7ZF2KwWk*NH)ba%c=AJ#@8ZzIQU2$v}`%cVkElGf-{+bN< zlv~_gXeK{=@{4$*eJc3^$XyK59t?n0zIFCx=TPq zvv5tQu9}(`P`e`lF!;F7APq1vFp^u#*6B%-d)aNwi|>-iTYV7sln2ysTun_mpatgb z?d_0Huy5Z{HnvX#7X1AD#Q8cWD3LPXS@VO>6H=Xo^BjhHOfrEg zpgh-l=`j{3+thkP)^rnwKNRUJsd+4f97;JPdA#Lig0*^ix2e{arh^6st|yHKhlTmY z#l@|WA3kjK{?v8|RK(!EI~S9p9e#%3Melj}h+rVGkcc1X@pRC4LT4?%kFf9+`=8;@(7_TwtPaSB z5l~V9OCTGZiMO``nG@Dw;8&#K!;Fkin`7v{xTw<3#ZY&^u_gFvbJ-Mt>r7u+5P;L8 zl9G&24dm6;4^MPtA3{C24qXaKK|xAjVn8vuo}JY7hAlXG^*tdlCar>i(9jx4a(rfu z3=PoDg}$nskr8WRVxmK1nQ<-YtK{Sx4N-hl^QPOU#i&bRa9Dx7IPfe2{tQ-(4ocOI z+qyEB_K%)7b*D6q`mgoAb?aw$^E^hPaZj*%m`UYMuMn%<;Rsl+Z9UIERnuEFu%z@B zY4KxYjeqfn&l)G%`tR94hgXyBCaCdqR6RH!Kr6Z6#Ds_O^thU2z!8n`-z_SPX)-Y> zFAnPInVhlVqrl!S&Jtg{8{}ViY!_KLw9Ys64hzp5AP?Uaa>KuWZn|7#)EY4kkFa{O-U0ILj4ZpSW2+@R_bLi4$v%+1^!B z#`*A^%6&b^Z}G3&2_K2Sz&XQD84@obb(~dvk8Fi{1eO%)Uxz~Y57}Z|BrJY$rCMKG zkU+nBCB}b>W;bh#6)9--B$GSPg6JKNw`(m>RpL5a%QYiEd~T0;g{${S_P%1ZW&JOC zJk%h(Fp5Y;Bf!^%)hSnGw0KGS>E(PQf=Ggtm}IPQT1hu zW3y!&8*Ad@z0&eT;{;Fch*oK!IGY1&j`7|CoU?B(>j4l+E=s!hIe|L1k+!hqcG%vF zD6xP zy&c0C(5c&PvBU(zmPI>}rViPoYOTLltrgM-XOe}ydA=%)VnCt=c5hUZIJvOo9Oq2_ z7#Vr^^M5Wx$F_r3mb$_Y*6%+rwNufuHTyRur{b*ctyi&6%V3ff{!cvv9x z&zxOdQRM~xEYj%#NDnfES4zrpB&Gv+p3Lh6TnzOWc?_U)d#9)Ha`x8{dXc%oAYRC% z%;3DZ1sz}Dw+2?TK`6g`QRO;3`UY;`Cn35f(0M5+DEMxEp=@|5Nq_v(OZgPl*k*v} zkRE97#6?F30@qFeqH)IM&oN{#IRAtLC?3g#Fla$g7%QO`qXs4_&G79{;cQB+mPkqq zWfVsO>b3kkl_1?B4KopVTDwO*%Cee7q7#%(C?acF|9`E?cvwS>Co#Jq~Zvp54wM4Vf#;US3DQ!`ldQ5tsSg!v6aQ97tWjOPn^?lkYxU?AQhfD zN-i4oCv=|SHvXitTAVnrskAoaD zFgckqziqIZe3D*xugLrj%B(dgDWVGmVHqy_15j&6Kyu}b(Dd1F_&wn)LD>?xa?YBV z9P8=nxtQM~WeQlx7MvEb!lO-bN+744@{rz+sVzI=;P?y1W5G=Tn8$fZ%}1dv@DPbC z{QQR*#T-5aQgI{W4#?D)(d|_@C9U?KjE#-o{om_$RwF3}7*uhzG4>twtx+=?`6(c# zZ3aHzIKD{JNMRKdqeJ2gG?eCQnLV#p2U3AZsjw>`*1al~+r)YmB)uESUU?HdC< zsqo%150E%NXidJq(|H&vsNqxam)Q67aMX{nv)_Pj-IW}Z1E2}M16mG^CCy$A_#o8d ziV?Lx?KGnYz7oQKfB^#ds972CuM&`cKjR^PcG9`BSeo4&;%wqf7wI93D)Y) z-daILst&5^b$ev-UzcBidpX)qF-2rpD}+fv>jo4CY*A~A8KM+_31;{SdyOiBqv$FS7+rB?WT0iyPvu?xj?7gyD z$1SK=$=Lj6Fv|#mt-xK(=*zHp*dohy-K3dLHv26Tph?o*4IonYni+rX8NmI$s|w5% zIXb)R!#R8;P+^cbBp&UIDDG}8r+h`eFnA#o$LsFrGw>~we?GUlK~_Zbm?}l00EEmG z)!v)GPA{Cy^f9;$CIK$?|1YK6?C-tVGU(vGp5Jyfl=C7~ofGr=T+BEY%Z9Fmfk)=j z#fw!>IW~#CV{RHtq;Yj6#$B90JD--ffvQZn>3(7IPuM$XSMGU;qJ_XB=tgNh9 zw~x1Xa36l%e;TXXWmr)`;pYqM@=8!kLqWhLqNSw;npp$3E0UKY($dVGot?1iqnIbO+(db}DatvK;kO)c8T=U4JDln-ZfEbs7hFup7Gx-ZbI$D|;;aRK@?2WgFMxWAN(tx7&!QdGt;fO2baU8)-;4H8z?)Lg&^* z;k7!@GzE^=1tm1h9Y&+{b-eo_KqN2+rgbA(9bjdfIRzu5<$GT6`+@Ev3*eJ@W_fPT3v{K<*$`C2 zzHsR1SNG1bX9Zo{AHiaS@ccFHL(Li*8ug3L=(YiYlF`xz0MAE77>o^Pp(}{l4zGc@ zzB2N{8pELfex=lz55WQ3p_-$jqO>5xegqM)wHA&LznIfZFeo@i(D?lE-kbud4tNBl zsoluDimWmq%Gj(gS-OD`T-VrG11$%=tl2PhZ6|>=Y1xWMc=O!cN$%XRI?yQL?HH=A zsv3YkN|cB-6Z8s^KnwLft?3Dzvs?~WFw{JL{P?uvgyu=z9DMLzU3q_t9HJoI3YH@T zwOYV96D97%Lnn0m0W`|NzLVCC+-7Ww!7?D~fJ1q%RpZi6@J0XH+SWtr_+O92<9QMD zW4K5>C}F4Ix_-0{x&i34a&mHlF9_K*AT6|jN!uc>%j!S!@Z92Jo+Fet#FHI1RC^k} zAQaHT@hZA+%hW!f#W3Mx<@2U^RiW&_Sr&59Sir`a2G!7;_f!I}&(_M&q4!q3bjT+S z@V^<_6tKCyT`Akzlrn2=6~Bd-cAz-59B}2EivLYKC+!iZo^mc}ct;_>IV3F6Y1bo*v~eSJP?ze7tAj||U#|LFF6_q`GwtKlld zi)OXGXa`mE<|3;t7|4O7y~?|^-FSJADHe*#=M~!9vdc z{@v2qU+idM;dFm{_haC9K2tie+FgeeW^81H$)vEvT;%X!A%yS&-$#vsGWvLvBS2WY z-waba-RA_YAtjS3KIQf6tLv28*Y^3>kyE**>E~je4ri%r$$%7j@_HLq_Vz6q>W3jW zGB8z(mx1ULx%lSQd#bY$@xFJnjn&r5%BrrZNu>M;JKAXQ`f2S{Aq{O%7;5OP(f+8N zplp|-LO<71SEq7%QlEKWVbH&>T-Tj+4dU;u{iy04@VP@P@LR^<*7r-&x+MqEg$)ne zH4rvGAA~+d;{=W?*cMJZjHy|~J>0nvmB5k!$L1iro}!(cO)zHBp80Nx6a6&x@%LAS z^l_CgL$X<_*H~Ha883>CVex7w-hz;ZoMO%^b4RfO!1mxgzpN0m4ZdUaR9pBh3})EF zq$R(YSsr7}xunf3TLHS}+QPWc`}cydrAcN@FJb?=kO35Y5I0u;{A!=UMfWCJ)FWqW zYpnGzGWX6%L)st@RlpFExw12*ytCBP z;x#9z2Mawm#nQFk+@Aiv?a*S6PaCx2lA*333I^P&sw*io+nIa(@ZrO)O*i>zk^2U< z_<@tD0KBGB8Q#c0pvu8rRwP&o{+P7SeObu4)V_9dp~GM z8z8-<-lN5UZb9oP&KkIs-rD_A2CnuK@CxPy7R3RmP*k?tS<22RnrLQZ-xzv1EELxa zsPe~M7sha)p8(#2eMnRW1sAbBJ#cXLyUmB>mB^s5R=p@*-AhT0sNLPh3AQm*5}_wz z`}5;I5RcLemZ!U^K@8vBk-E=lq1t5#Fmp^lImZs2PLoA!6Mh3}01NpYX&M9oYIakt zs3`12$pdnSx91qhJ4KCdw$ud%~(OB?162CxGYx*g@cjl#mb=GHF1(A!krS zw9r8$w7?a$T0%dD96UjwDf|R;1&z>cO8E9eHl@%p##vZF;e-iQGPSIWSZl1b>#7aHv3C?tNX1*iM&m2x!ZI~{DHB~tZ`@E(pY!; z-F-`s{A09SYF$v;vik+?{^w>dE8!EN91{om%>U0lD~*(1dJBz>C}hWl*@aUx(kQh> zROsbu^q?mG)Qh$bS!-x1g3S$45+t4hoO@VZ`=y})^|sa29yKn-$Fn3+{S^35+e#kR zF$AQb5tI+W0SbdCt(oO}rp6w%1POGQxk?xu1MeM(%vZ2))~tp^M)T!@xFMh@c_*UnD|S&KL}K(FZrbZ=ImE$G;8C&CV{0w4(!O6Sh` z>t=7uV&7VV<6o4&Z_~6b*gHsN(9T?eQK=Bf?{_+L_Cc2kohvdL8h==|rxX7ZBp;7L zCJ?~RuueESIy!~L#mJ?A;Gv$regaIGHPXZ20GR0(hrkDt?3%s3mrN>NR<8Jxh6%VI zpnT^TLit7>4ODP-4BdUvumh;JE8u6m;7AMw0DkE@M4%Y>H~T|jkijQ=yg9+gVBNAi zAE{+fhB>;=)q?j{9B`-)psFK?Uy+_?`4edTq9LwrSyOY%t|4>KW1G$^azl{uTJdcs>30kewW~?zxRkPlWd0M)8|bPE*aKUnSJWIer~;( z>IVpS+Tfr>==s#CuO_~Z=+hE&PCGF=j7LA!g4Vx*F1yTMu<{{FQdn3x0N2RT4bJc` zI(?+hCMwG*+b;8P%4GXDf?#)F3wHr%8}v@`Ae2!r0qk<`1;&#{`JXoo9KMO7Pk!VJ zAN2MP5CA4X?~a`E!0XrUq0eTuP=ks~`Nn!i>m$F#x6BLNk=Nn=qqJ}x(h|imRLnr? zwQ+2djF3zC07uiIYlo{peA-7E6*stpxP$U8HNUwg(o^De$@(7HfFa$P?qHH|ih9ng zc={Z85_&3zUFip@1$Hrmezb)_5AbrBaxmU|sfLb?)04JmXZZut^;m zHW>Q_vhk-+pU#$DO4A&K!2o#&hxd7^+jh(duOiSDr$xuwk;CFw=8^dI)m0oarDkA} zM7+Gbi&Ai+Bw)0UM#L&+?{{QEpIgKS1-8o;75=h%sVYkX6t`ENVUz5fM2o#h$TEWG&vo z04J29eHua8vcm_ozXn-7 zN8vQ^>K9W&cN-nhpEEO|Xt)z{1TtYj?|m03!mlNtIGkeO8-n`8+sHpTIW1CS{?DI} zpZpHtU`Sws-TCL`N0JM#1kF7W&@$>d0owiNE|RYj=<6Q~-PuhYTSF+p zU|PdiAd?8)ZbgRQ)7L*>;7h-{i&UxvIcJh}O+)>wxeVacAOb{ml0tadMj^Y#?SnV?e>-`_TinV zX#^}0h&sTF_C_O)JvS}tJCa}M~ z%e!<*Ui+0=pw5|@tmv@E`A6HD*-ol$x-H@y34zs{L~Zl0=WTfdx5>b^H~^l}ZE>JK z=jK5mA1Hou5^H zMl=a

ZQZVSE}xVuk(NFZ>o=XnyGgB@tLK@I*yLoqzgLtEH$iqKRdg^Df-J!($=A zCG>>NaY3m;q4FCaQuba?U?}|KFFAum<+%)iVQFk?mr9invFz3>OH;C zdc*Sy^W%1t6bcY?Vj9soR{`|Tu8xyZsrhUA04d9~0Vy_+@`M4lXWb+Z+pP2+o-)Wr_tMsL0!zPwL8^}tb2C1WI8CTc={62*%eIa6<-XV%0Fbvosecd89)c;Pr+GV>yacsq<W;UMnPM*BW`V#JxhX$D|C1XaTQ^X{LrC8m<;$#fyFF(FT{DQrD@ix?DR3-I*hA3 zO#L8-xmtE)A_HT0qJiY5H}kF?5Gb-Avb#YZs)8W^G7$LyB;aDZRP2z{3I@!&242R8 zEP*gy1v(h!1trL+(tF>;mwAxVh4zy&_(MN85yC8aYn4nCPvJm)ChZ`XQ)R@yO&tF? ziUiy96Yksp0yx7S-Y&b$Z%=95cOmkZ9r_rO~W+Myp%WHu1q z(d4$AoOkh8FC4t)Y(r`Eqy)&>h_F5Y&;9^F!eoy_@{Mv=33_`QphE?=SA#C`gLM!R zMIdob#=kf#K+tJpZq46Mk?So>FT=*5s>sMBsx& z&m{oc8lc(q4n=X9j@O!8zhT~J@b^$HOwjpM3WG#n*VK`@8WS6<|E-(N?#wr_v1D3V zUR9!Rc}m|Zq#r+|F2pB=^TSdQ?=TsEVfhJa^(}q5%{JEl==t*lVCV-X7ds8z71UK( ziAIxa(^N$J_yq)1@;N;kz^fe(g9>Pb6cl_kLdx?%N6*czRQ0tCtYKOocR1T4#by;y z7efcx#&d;VUe5|2;jzkPGSH3~0je zbctZNn<3cD8t|l$ycB?C2Y2*DEp$$lJ&ff^6`?ZC%v@axI}CF0cvr5S32)C{L* z6h;bH?_fqhqGnJA4;1NTiR1v=vn(UGIS*nZalVtIqi+Q`3Wck~#sNP;NFt36ycxH? zzb29TyJ7D$x;QtdrsEdLB;Tkg;BDm+Sd!lnXYO4;zZhvWSy8v3OakXf^cQ^E3vqAg zLE9ZhXaPR3x3?D{(tY5Clc24;ivzzPDSr(-)^!@72WqM;^4rvO(TKm6C&Q0*8Ig}r zF^|+0@CyneMin;OTH;OL((>0k!&D)Uq2Qkf3^c-%TLXP%lYa0`5_lmx_UlW;l`>Z$ z&>K)=VvmkRUETV2fj6zYwx(tfh9wX#fLFYAUA&C~2mG))1<#?0f_gj9L>UC*eI*QC zfiZ>@6dHwIQ}FTrsPL3V!#v204`a?ha?K7QlfsSJ*t$MSF6hV>@KXi|yuQgOJ>{Ak zwB|Bjbgh1q0TkOG$}a|A-sL60Y!<#q?xtbw>fWoMfY>b0=%We$@$vCnojL5#O+iC@ zm<-Gf!Jt^{G)%{$VJ$$7MxP(EBY7T9e=E#i$v8L&{%`72ZNn z0kiHK;0`yBQs8TUP9=n{Aoz360&y8ldh*@bWs&*Ey)9BHmvWMqL2nHP?xd^rv~$Kb zmmcv<0W_6lR`DaO!pg+>EBB@NYq=i|ck_1JA2?XB<%47C{kz)#E>$zoyt_Mtav(+? z0>`M3dQVnm;MIHMh6hcAJ8UU$9dL?E$7ZRv-vkM$Ctvd%9=-hn zJCm6|Bf)&uzKy=A4;O=~MgZ_SL|(p8o=$dIPynNI8t--1814 zGoD27zH^_Zri;{U=>=z{-RrWd=prG-VSaOb{hN6nkQvcbe@>JsqeHjn)56dCr<0X5 zoN3S7pJaMvKMfYz+GhyJd$@{YF~wUL_IAC8(ZT_+N5dUYEfsmvjOI|q=C9!l%fV~w zuxl-M`-D@YM$gF)KT^I1Fo=kXK@?iT$cJ(A_1h$J2m98g`EM>;EGc9pX6!dU{hkz_ zfFz=;Ow@cqz`HL`mjxU6+)SrEPCu5@OQhHcEtBV8OTT^%xKD2+1r z>4VTnwu6?FDbKt8*tbm+(@VR~jw2eW3>NtMb}+4t(7aHFb810|o{M}eIq=e@OWQbQ zqe2$iH0(NH{u2LnMW;>PL`0KIw(Md^23|G`u?QJ0$K|>x-r(U$EjIJu3=kzytdk_%FL!Az$yvx~u zIFC(`FQ_-j>SXT>Njx1g(4q)e;mpHxAb{3I!>`p%VyphuCQHGnRr)_vUx;R4MIw$V zSui@-7ZskHj2A#%^(wT4>Z#uvI_`q^_F-XR-Q3rx;~_KF!e-pOBmVwV7p-K+J7gm- zu#Lqa+5OALd0;A6pDKT?4oRX45O`((9g8KJEy$TC6Y@-1b4k)Yzn}X91$nsTm1l!I z9ycNKmcIPXP7kQ#ct091zJe9Yf``==XB8CL&QuYo0eZUXJx%?tCJ_kHBBM!;|NE-w zj35}Rq);4F*jkMbTU&>-H>`d~UjD9}Ms@E7wmE3Ie+2S*6cEQFm*Mb;yWTH+>|Ff$ z9oW2_N4}R~RmndBzcZP8M(Geb=}xP?S!Z5 zJ+W^1`bOsW3l(!8&vh=%|LUO!x#w85esnndb`yaU*=ZF7*~TK+pzgG;c&HsHuK%K< zBH@Fkeidb z-c;^?_Sxjb%hPjlQTZ#EE?)DQ_LOqL(>Qzy2OIPd^C^sL#K^2~>&5gp1xmu(c!(-Y z#z%5g>(j|L)ivfSMuIxC&GN&)2om(F`*gKc{uY&7$miC?g&AcM!0*CiROCR~;2tUy zz!76#n!~{wbgn)`>zU}-vp?B`_dALO1q-u(l~mX>9U~9-eMPza4S%ew`sd2(1^Ff9 zXxDwk-zZz4sn>rR<%ZP;>fH#MA&oU6)?>O?6%rQ3>%BtG9=F za<%(#(_P2Do{uEfbtOCgjVU$m@4PJYqC~x1GLed@b&GkndrX7Us{e+K-`eW&?#7{j z{X%59gEj%~{FJZ$3Xhw=CtTwGod;tc3g9sO#o>3+bgTa;3dpkUa&WmxHd27Rmd+!( znH+l*9^rS@qj-GO%8nW(x4$MPL$>9(VGZe8f&V?ddnc(eVC zx0P14kGgm2=I+*gSF0R^$}_%IE+m2)Pb!| zv$&sN9j^vU8~KqV55X`8k9N2Yn%w?wUc+(*^w2;qTx0mUltJ=dkF z0C?nzpmiSuxVXoleS>=Qmgu=JAa5rD{Y6v+J<<%?Q!sDV(`EgjDO=7nM8Ts}9# zkBT*2GQ4;FMJQSL_pSu3;6Gy#_x5++;?32*IzjHhjtY@9spC!k|A%Hgm@dO%0sB3s zmh|u^(HF!Zp?B;;CQ5Pha$pI)Mh|x^JSrulqJxJ;NnVrbZcH2gSf>k-kL4G(ZEe*g z49H2-e{BVV{zT)ZqNw<=atWRR0uMvs=my%uLWqdTOOG{ka8`f2{sMZ$VEs>H2KUqc zZgNpB^BJbmcpa&}nXHSB$5}J#PN^C7`-)GDb{6?Q?54VEP%SCReF%HBdZyo-=`gu& zB(ls;3!TK_yUtU-^T3jkD6p=GZEeh7g6GpUj)@Kp4nB&ANcMnH?ytA5u`0a+O&Q1a zrlv&O=C@cS=a_7nZT+VPJ^7E;e!z$WvgG6wGungA$&SsZ&e=xBlzpC3MC(Zv-vLik zvn$fGMpJ9uu51I3VN`%1L|&YKGidQlanzr z9r_?DpQBr%K!O(GGWHT)JNa1ui|Qw|3S&64Lg(*Hc3~HT<0Fq&m${s>ZI-V_%?H2# z!xVI|DgbqHf1@Y8foTiW2N}>s!5F|jRYuWC0n^Ob=~R72`Sxs5?ADd<1f27011SAc zWxcq+Fx%gBRFLOvSXh z42(`C8%lhu`EMy|abxrtjDMd~R{jX4(03-E591RMpr)2c(f%>tbIKwy%u+7BvcHxQn}aDXu88>M^=wej zHxrE!n^PM!!Vc`WlQV*+BRGNv+#V(db-{eG_eO(`5!$ zef2>1$MBL!>=MMP6DJpL1L|rkk-}_t__XbFA^u2sMj2`w z#AQo83UsM>Dbyt;Izx-Ey(sUdPNdCruB~(VOIH%+#eHz?T1u|G3B`J#x4n!W`^WDp zqyT*>PiWSC;cPwBTz|AW_O~ch;p+2-eZds8NFAcX41})=9 zC3UAqJ8hEgpXo3-ZpULm8YnWm`+je_ zq*Gdy4iS`2QIL?94nYy61*J;_2>}sNx*G%(kS?W^lvFyTyPJK-_Wk|tz2`pno^zhd zAMfjdZ)y?+u~0v`dKx6jdzWTS3MJ%q z{OunuXm66WTRu_*;JR?r`h*&IU~E%C&&Hgk+Rf47^22h4=W=<7*sVF2e*&4SElIYy_hqS?_w0&%Camv~ z18)v}(L_~G^WA4377o4zZ7~w9pX`O_Z1v!Jm$*Fe3^<{OxF4lful3%ZLQ^nuhf37# zj;h!OT@iii2_^PqpLNw`J)XJox0DATLg%Z7^X3iYRW3>FdlS78CD#{WsH|1=s(Y8t#=3o^bfMVl*V((c4Itao$$xbFLDd<}da7)iJYW%o z@e9*S)s@Wzm{L`s3a_#MCkAJD?2|bJS!4%!a?kyA`6* zX#7hS3F92p9ivN)UZYHjjG!UZfFx1+BKxn32-?h&^s-(Z` zG;E4lcWBc&eNXs0;30m0+^`g$jMNvvDGPLOj1)*XI3^rzQS5Z}8zY!D?UtHa*ot4c zS&t#1f*7zhGPm2GL!a<3 zsk(w=cRn-q0<0hCNOj58GtRc(eBMFac{-$BSdP?j!wHE<_55_SfSCGdYSrZ!T5|=u zJmSfAwTGGXcRkXd=4d_ct1S<3mL+l=jud7{lo9LRb)rywQcr^=8)dd%KQGgFp&L1s z<5YcCzgKZs>*h#IOWd6jk0_(HJ@i@$!lYMrOSv0_?$jW=0x$XQ%b{KLX3}w~+ftIw z@Y|Dxt(~X+gy*mLC0@?zZ4{)4#K*jhcJ@rKj;#4^nWux{;q`^)gOHlQj&Qam=L8+8 zy?ai`>aQ$`$bm`M#}`v88bV(|nVTz?iO2fmrc-BxlJ6Trw8v5~vdQ5a54>i}j{7T4>NKBcvV4mwr za-Y`Hw<>19JnR=U8W{p*f^2m&<#2bkdK;K3XyR?ltKYO2>v~lzOtHK51!? zxnwiqDNTWx;&&CKwN+vJ6S;jMr_xCL#l)pwBr+-0A(EIY1r#yyEQmm{>Yb8ehThD_ zDw#UZzGs{E`?E*<=qQehY; zwem5yia7u?Do(h{d+%9o55`pAT|rtt`*BCLH$D>BqT5+M^eKqcZ!3PT7gCi|X@yfv zi|MiG3A)2dA50t_2sSom`9(IY@7MB9<)Hc<1iBm?gcwAt2`Wp}TpJQ9L`6)NRemA1 ztXelp{YLEe0(NHdagc(O7#t1Q-8AFBiZ1(RptskzGH1l$c$?e=wzvXb&uCwTzJKij z?XZhlVM~Xe2yN^DDHmmX`xQy9PA{~O_s-d;5@x3kba$s}l z_dZJwLJCz%Lb5}khQkJ@z-$mWok<55@)c`@uzhHmjN$Lv?H@&UU9<6ETMX2S678@j z^{fsp_B1wUv8zl3lH+d~RNzKrCK55R-p?>wbK~>KQSJ*as^caxgl*E}<7Ywh4=`oJ zZ_92(65*!W1z~=)Y)+NF+IcEn{|4^?b=L601a3YSLPj0&bp4`lS2q4UW6fm4GY1UG zt$cRb0|z3PBz!j=Y!<6pTTv%QXP@(e+^v3uA7eRly6FYx%9>>q6KemFIJ=K82I9>{ znTwx27!eKC^Lt(RXkbbhC!_-lXYOY1pH=2u-S|+d?|qdD(QDg%kI46uLQYrW`F+~a zyflNh6Z=(dsE*)gDk4ica60;C?KiPBJC0~ZNbuy4+RfVu!RYsOy@ce~oOt@VsG0xG z59{fkJF=C(zK2U?DL4L3_-$>__Te`s)#~P4O}k#MM#r$WgZuT6idX*J>w#5k zsWe&r8x3zlel!!BG5#E_cU+M{&(%Y_w@bXS-U}O3S%ba^PSm6vH%A&z03zIdTm<;2V0-Mwl9WJYpZ-kHojw0LnqLa?1V&4 z^ZM0gYdPZw>hLcu>$P>@WIJWk5ACyQ055c13!EOAtm#hTi)0(cJed`*aBQ zXAUpEk0>b!&Z`?GkBu$yYBNoCnELvb@dFnTqr`(Y4QH1&w^rI?lAmD z-}O^#ON2$?z4%)Boj3DAveCcekICTRpl#->GlKMJn)reAHKuo`-a_=~-4E<-Z(c$0 zO`eVa*@E+ntGu82rG2^`l}lOhL|s={O^w~L;vxwgE$r0?IMZYwKGaOrSPJhXc#%rH z--)iubt`=&bm&e)<*NM$Q>GRxhGj}=SxS=s$11JfA$vXx3ChXn1=C0YnUa5nxy3V* zk5gkBDCr50?!x*TL&v_hMSRf`)AE~_PYcwp_MRF9WGrye{jPM9(L3|@i$Jw*uj#njBJu6Pz{tqadMsa@y;_Uvm8pkzLexG>K@cq5~(P{~W z=eM%RcZVLK+^lVgcy7eof7!5Pk(ITtaoQyAXO?T{(qK7d{6=$f^2p_8(i77w5r%{> z{90=GXZqI`_*OFBZ?xXN|3~>uQ^6Vg#C=A?*tK+&zM4!!@)tQ4@{F2MR@vi=LEGt{ zqZ@AgU+cBGQT1_w=V8RLw$8`nrkgw0G^9p?$}pqyq~a}}MzZ6K-q{c+$;Um99lvS9 zdi-O&tljaOIWTw+BVsYIA!p>Z5$s?>D{o-JGlMn0s13 zn87A!wf2d8G)7qW%Jm(=AqLeJk?(p)M6rvlUzFxv$-)?;*P&79?=$?o>A*9gWWgG5 zckO(vz0bv2T#b+85n?)yf#eR==fMJ$0b9%!SFGu^)Epky4-@3bh0KUN!$QROjB?zx zF+cmoS@~ytxO1bs14Gga8CUofW9;qAAAN$Odq#*xd|mC+qR{3mX~f29e(A3*t5ZlE z!Zt_ht;sKE*P&PH1b((+uX77vpu<6>TQ z6}u{|R1eyYGhV9MSxFJuIzHflhk5omxUxPgRzg3q%tZ}+qP)cI&Ivc1NvbaQkJ?>? zxQ`5_RoVf3r+_1TFvAgJJ_sC(%Hl??m4Bb&~gOak}d`8cqkdYK)Z~EN0giwU( z&-<|wrDqNziC#Hyf?yE>C#L!RMkq*qdSupCde%s{g^bfrFJHPjY~{ba_F-L8{>i-M zOPzz;rG_)uGU5%`1L49oBtt}@M1uiWUHZFYWvpD=qM6rton=ge^IshW7$FhtA0Uqgp)J~@)0&Xf@VjE4k}&w(V*0_K3>P}W1)0?XpB`8(WJl8xS_hg5a3s?sOfqod z^*Jc>PLf8?q|w<)z7D?igFh&j=tk~e*Q%nY%RC8{9-r-pBC7)+it3*K9{GG~|C`t8 zKl$iV=)7Bf%YvtYPfe|@Lm8aG3mpi7fv5CgfiJoJl&_f2`FFIp{}?t1gYxgCOl|4k zsW|7APkW{WO}+A&q-lSBZYJabp@zL;qSvVPmlO37;b-X7t;?4fMaPHMFF$GIea+QX zbUge#eP9`)p5hRYHYZGOHgr(8)5UL1X?_^=s;b(z8W+ZRXtaJiOUcEK8c`Ki*zCLE z@V0m=NzFGSKZmEgc6ih=Bhj-RHEHw97wjA&8K3ZFp|#HT>Bm<}H6H?w&nK+O^>ugR z-@Xs&yF{7Ab>dN-cHd9ED!l&u%*Wx`o;#v(PD=KNfNT#5!qs8V6IVHT+oJpP>u}5h z^XcAuqRvu;8)r|yFigm`oT#hPkGaQ29^FCdpBba)Y@B!eP4?)#fcnBQ`O{}?gg?Vi zSx+7_yg`w2%QXfh$|ow-6uZ7YpcKe3D1EPg{TP4mOJ8v^%_yz1QBi?qDQufn)6(3|&IVV*kNrvAW4*v-4AN52kLl+uHnH@_t zFPf}-Pc4M_X$Wt8nR9M5Ls2voA5d=Y>WuDosKQ*nwAAC$EJ=r9rrx1dVAOCR@p;FE z$JWfCck<7zP3F>SwqCtck(JXe`^@o#u3SwCLa+~TwrZ$Q%+i_`+slrAHwj$hb$?M|l9l145Tk+liEpHDb8Y?}_8{JZfMqYTE$ zbas77l>^Vk2eK;tQ`ORR?$4_~+O#Up)~{b6*Sf|ubMi?ON0Ebhjz>9hls^tu|HSe* z(Y24lD?LHway^?YI@f1iD1Iy zZpAeTb1E#P*?P@uY$Mf4FLTn>U$m(boH&brY%>WLw`rqTuZ6MD*2li@Yd|&%U@f9T zmS+EqVH!&zT^-K6N7_7|NRp0Z{qaK$9Lzku#;(=VbqUW;8M%rgs?3vlTWB?Xt3E@_ zcZJpCOi@TtFg;fz`Gz)4Ih}#K8@FjRd+j3+J>lFX?PVXyZoR3IGX~+}tdok9jRXS? zPV6%LyzGN`#Ulb$LsxQmAs>?4ezVmq9aHq>GHy98muk! z=yo76YZ+<~nwpyry}~vMNB;C~)lONP<_dP?RaelbV#^?@)i>#`cgGHwJ zr;OL4&yEi4jq3{Nxq z)?=Uyy%6d*a?>gWQ zPri!2o>onGTtRJ!1xh9hr4IgiXc@ne^2VL82z?2@q4HH zS)DXx4u!$i&K%sOsr@#ALHUcq$bZ|Sr9?hXja)~^d7)g(7Kv>I@eIo$@{yK9Jc3kT zO}o1(BXxLx9%2roNCildEVx>DF)1@{4rr{6s3-;Z)XE9_X z;1e%8T(yu&pK+bJ_r<<0`olexKkOeCyEg>RB@85$8umm=oK3$o3PjSIk9gCS5h=y< zPh5Vd(1H;tHnR{>Lz1d>&$`$CtrpVO7dO}oJNI#Ab^W+_t*WZ7Kp5G|$BVJi&fEYN zy(@hoxc#T~klX_Ewa@9Hc-_eUCNY-oD~z9*+C34rudi>!ax@H1K3{Qgda&^IIZOZR zxlW9DOxLn`eygR(yW$eeBzlP+IUFP1qr{C{FPssveHmPR>+?`vETU|0tm;0274!W8 zyRQ#;=C49sEzc6Q`%1}H7amTu7wqTmP6;53pP;j`T79KI4|dKxx=hjEw$2CbF&1a1rs8u=yCvbltGux|SRUXt)OoRh{N6?=K`AjckO9r;zMgH{up42wm^sBqKU_B!cVwJ3&V5$Z2T)5$^u2jtHsOYzfLefbIiKOvf*oWU#F$AJ}Nus_IZH~uY z_cNIACTWA^KMJP3o40WZutCsP4oofd`3VqDb%ygMRjr=UthG&wlVD;Te(>KJ_3NnVT8Z8@)jGiZ9_GI(Cu>BQ&14Xe z_n0uqC6@E<&FU0xpQ427Ex89c=mY;QE}i%jkD}9WR!q12MSH3WL(N{E7B5lT8 zz})hTA=gK}IJXHf3}&lDY@Ql6b`j^WXP#c7HZEYwm#Nl~+$*{3d1n6Xm#_Z|#p4VM zWS3tKJ7VH`i;k8h5So4Y1uidl+g+zh6j{Se6v#gwcV#V^TYEc^SAU*@^m(>hQBxW0 ztuAvxct!ho_U*V^eprqy}-56=Mvgs5AvQCqqyAc~9FNS8f#s?W~% zwNDd`UthboDrz!`GZaY~#`ium;9l1&mT!ae;o`9@(g?NGcoW<3t(g=(xF?QQq+$d2 z(P0oQ6H$}|A}-d4pUX#^ML?yKy7%0+vjbuTjcs=|uJek8)t;G*eixQM_~Tz~sQBDN z=1+pgn+pSPkNXSBgo?1_i;&8E2y-r@^vM^7#F1tm*E>UGbt2a~qB$%&(KATkTDd@K z=Y`khide7$Ix8%uSuMZR@|m7qU$v<8xSEO&snfQfGsDP~u#D^bjXL5dy)pA9hgH>> zMc4hNCow}MXMbb!^Uq+HDYKq?g+CtBt2li3CDx(EJ@YAv)15EDKjWo|Pl~OCQB~J1 zS`HaEkQLf4kw32!e^-YpR8!tG6EE4g3jz97*+mHS)gz$<91fqS3us=>>i)agn3`tLUF=N8umlg~(|=!s6x zgd9B>H*GPdjA~pK1U~W@_H&lyFiTR|c!^^~F`}zXva&Vu1}62E2{Pe$;4GK6ac-jD zc9^NEGOq?l@JlykfQ4PqJn<7VJRZWXgfQ=2o}Jr|%FeD;&1hva8&iZ`*-Iul6zLn+ z>$Bytq#10jY*)E^_TjrK?!w!MX#aqg^RA#GaxT-OU*uJ?|4wWyy+Gv8<+mK3DMvww70TIp7DI<`zcNrMnf zQ2Y@ZB`x6c-XoD^!iBFLd7g9qi9N5V!`MxtL!@~J(atgH$Sq^7?QJF}`%~wFmYyCO za({^h|25|>iHJYLc{9fAr3sYpYiV^wPW*vt$Uekt65vb@~SC1rlEk;)$_T}7&r zvMTiy;>W)kS&SrpTK*PCBb?`~)x@@EBh+khgONShTk5b%)R%%(z=D63)BBB`>Y$-) zh1eB=$vtnPUi){yd?p)O=Dxl#43+s-i|hAc=}KDXdtsB);}hO9!W-H~)sQP(P3fivLc!N2^RThbsaNZICkOHAtZK4wU+Y-Cb&MH+GG2j#;NyIrkZ_QdM@6~ zoHBkZjOpe^u_#88`%_~qTPN7pOow2~G=Ey`EZf$dzS8%WtI@_$mIO{z66{z1tcKF4 zbG^EvKv1qVw)O;Zb~xNvm44-A&{>7oychj;$L0Q$iY~!AnPJbO~dnMuRD3)U* z552#vLlQ~&Y~<=)S2L7)3t{d1o)9+umSL6(Y-ZooLFb1uch9VyeCjT#8)u9guj{IA z&|r;=?Oma&rJyEdo)=S)8_3c@hgQDI!Z;5$p*a8XtqTpuvEd278VmivU|$Fs!2hpyi=6GZcG0Ts`_btKxO3y3?DhX`ZP#=914aWly66EB{{kF0BE3=iMT&pqy_Wicf>tvThs47L$=WbS1P>CAPz@j5LlNqO7*wcDp6Eu_e6<4(+Y z%~JbP|B;U>uEaKE=+maghELCg9){8w4KT%d*_XQotPYvYJo+IJef^{`rrYRE2H1S3 zBdIldlc6^#jRWTn93H$wN*?kL+PQII>$CT9b=S-LXFi@CT&=YGj>1Wr#Q1C<9H+iM zVX+?`Hs(P`GjbMkG~{;SUEkH`r5?>5-eM87rHPjIqC`EooRRCM7+!tO_`YmJ5z^eu^fw#2`p#jugvFDu=0N_ot4_EDr5hc z78Vt+cHPG2gHF;HNq(#PNU}+7xd{9C0xjg2IOc#o&-p05WiEMH8uvVw8ztZ9CD(pb z1&^I0f7Sl0BRf~$%cfol@ug;)`Y2SzC-X}JDyK5zc6XOPoJLE}E=yrcO6i`CdAg_+ z_6p=GpWBjQIq8Vbs;3U_1o_ewG2`xg+n&;9`$SS5%`7OJ$LcGT2zRhN(a!UuZ)?$X z7Eu@U%u0_ls_YCM_{$j0v~Viozg9WgLCNDuNL((X$a4+z&U*HVgu|jx8gHoCr0`mX z(a+@eJ8-)3l>L#9aPfFZaf`*ZR{jSYW>f;anBR!jhhC@BSBds9sa3}FW*3#yA%!=J z>3#}yFgkGIN!O}Uq)r~SoetBGw5wH>shqkaXAB2M{;XT*KIdA~UAL+|{umbKmd3P` z2iIj-f{!n!%iw)NBU_d3q!v&Mo0fd;X#oy~CaF{(wvFe9>?tcqK!n zx(nlZg4hT3>ceG8%v^d_9|vx8FN?yhRsZ{wv=evZQI-AstNy@Kb z7&4=8=8YjP4*Pv0jz&2-UF+@47LemfR@+s| z>}9mPFc`r?YEUDJm@Et@e#XpjR=GrZUpMe79_a|*J1$wJ8F>F@$mcrb{KJX@FZ7x` za@}ZXDYJ+pylRnjSnrUGcp{8Zn{QA)iUSAt#XmE+Nza0;JntuqVx&v;jh~tH?<8F4 z`u6lX4WKUz)9m?<4NS*zY464)BGUhT_}PoqN1Q`d)}~ zFDWOtd#(w)A%#j=x;{LHs(5U%HWXcEm+B zPbI8Pxkw#Rp!)jZ@gHeYnSyCinN$a3VEo)9YO=;Yda%$}}6^n0^U6ZKpMo7y?1RoE6y6+`SY*rsO%|o1V z-;d;Z-S0uGvrF{)GFpYl{CqNs4>&-gpfvisL{=%ZY64X8D~KmSDetd_$zA5$|AsO| z#`^XhsB8QNeT~rSO9Tx%&?8nQIY}P%IC6bax~H1GyQMGL@}sw$-W4TY1l52%FD;vi zag4Bswieaau8jX`0^Z$=;Vt$lVK%AEMwSMS#KByneeP;WC$BW;aTn^O$%Qb33P}Ux zzX$KZq4;gH?CAQuy37dH7%oxVW=*lRDTb@b>rV=m9kzD&9-%OahK@zN&uuzR^yu7l zDRP2ocgEuTnES_`%=X2v%kg#Dpybo%kS3mNx~XCGhPLs|gdy`e=EI)K{fZ)N9qo5c z!owv!btx9QYub^M=ATT)l>{YHpBtGUiqFafOg?%ny+g3Gdtl@H9?D$qa?yS=l}x5g zguXL;I;s(VTM8LP?Sn91iOjs)K`(ZiTBL2*%&wy(?@i4XCCu>iRm^Mmk=y+73i9PR zXSyoN!Li`Twg|vqG;HWSFu{RA{8#wsM+}eC{;I)1L5^9R7*G_@^u0=_*-f;R81NBd zf%Jx!SNwOc?9V)Hj{jYo(sjZe7gPvjb>6vYRzK{ZMk{GTcVQdQOVC;#L>GnISACqZ zl9V$|R3EnM`91oHiUuDuplo;jV%*(QhROlA>8!8Du%Uan{N$cJYlLYPuDXa=vb}AF zn0fgqVkzfY#p9j;oaU(XuHrD~T6&r+d1)ogw-e+GMef6t3k%9@GbBRIDeB=GXDR)u z4;y=C{eyqXmevpXxJJxPEyO4Ajfh?{J!cvx3;25a%0jNJk9Y7MQxOA#*gLI;Z(c%H zBUD?vjEkVTM}RA7qD7bC?5&dX@8LR@dY{9C8P6JYu8N6tFaA)%{dx3Z-2N27l!2P- z?$N%?Ot|9OuFaB_S-}D%Y$#S99}ZF}MqT(QCD7#rJCwwTbg72=!oCOuuC&m&RXc%N z;2Il`pNd4w#)<;M#Oj?_gknXD=E3LX)Aw$7B@%|cudPYr2uQtrbJ6sd%q-pM(_{7t zeOGcQfqHXj$Ti%}e(CcI<&+twe{-I$b!oBv*PN#?6&gTDvPekKL*un(1u$Dl^7V=% zK-GGQQJXy)>J+yh<{lpthRk@ak8v`a?bSE9PYL z`3JUY%})rac?qWncdHlIwvzR2?N4efu1Zchf7^)+-;?uP61Ee#{6tGKg9CX%Jl?gl z??*MUPTs@u^6(_6faRep>y#c6$k}#%{DD0qtE`2oA4O@S;^JQORCkpIYpZlj=Pc;S z-u0DRnDJtBSz?O&YJvgE>=ZIJUt-CoFfDF}Ig}hNNb9JpD$lsqT*ii>?exwutXd0VR}5{Bssyg%KG zK5B9wSDNzpY1leGDL76|s(8nqL8Kn_-D$@9ZKl3o5r1EV1+eO@`LpKn!u0NI_iz;=>MM(We810*=sQa7O0nLUp%0o#2I+p1m*M1va`!2SJAE%IzOlqn z#AX=FQ*>lh^RY79dW*8hBBoFG+SXSkDaY)j^v4nPs3DWk0z;|Pl&Bfyo?@zg{enRK z`sAy+ucuf1zP25!7?DMBmX(T1DXyo*;o2*?^F5xQ=aNnirE+jIJ!G^Ntn`X7k;|v# zD}7(AA(y6uZp9FjdUfi;Q@@@C3NpiAg$L>n_xqSiFGH8K8_Js^&-PDjx1FFg%FUAZ zji;G$U-omGv$Gd0-M-JG!npeRvno$eV;7y&R%e2WKJ!|~e0NbSL-w@U0Y@E-Mkp3MMMi}6n{#Hpu$V`cnrzvGTvx?Qm`sn-i z4A4u;XDy6JtJQ;bRhi-tl`)oPXnGo5S5qi|duL%21vCWr# zgQM#N1kg!LL?hPwH29Du0BVe(P)<(n=c4;vX>_@4mDs>FoBzey{ZC=}g3nc*ft>e` zx(#u@@+bQ1G-2GU=aLh1*~l0kX`R&^RE@8EoJW#iDgg6HOwAfD)&>*)oZ<9=RaCR@%awdc&`jpjtO0`lzRY0>vDg|+0UToL^WY@Gv8tt?=+^} zYAkX1QJO;)1Tfa%+;pX;!wfHM^o(8F>JQHqHk2YsJkmTp|LzpOCVieIaW^1h=9}Cd zXV7qh60qR*YS^(J8Lp&4%n_Uj$BpTI)_YL;$uYI`XeIgAyLU7EuG0+ABmJ5G@ttzT zBQy~$k-4}iMEUb0WXXL7$DPc>+PAn1egI2{z9P8bk4%?+IHvtW3B7EWp4!8gD8EIK zw)f!ZC>tF#+fxFV${FktnL&cEp${A#dfcZ%p9_>i%Ig6?eX*3i`a5V_M(gfe;)$M5 znEcU=i>Pcz2#BCRR{UB)WYi5I7j*s5a6GBl95&_59w&;f871(BFt`(>F$xzsh6V~LIT7^S*qJj<*S}X@9Uk&b; z-&com3DX-^c>B5ma^Kg^tCd6nH=;n5rzuOdcc3dNTCbqc9hTy#fJoKCsFA)p&Mr`3 zaXf=~$Bllc>7f+E#bW&9?l1LHh|8bp{WHj9h(cdE-_iblKM&2u1HqY{T3o7;E1ubT ze^nlW3yYo1bywXB5{77e$n4`pBz6hcx2#4<4PFaum}|h}rYqDrYte z*Bvd(|9k0sydQJvXjZ?h(0!7lD>dHt&=Mr;JM7YgJC5X7ePj?90;vX-22Hd;F zxJ;Q#_Qm7Wj&PJIQgW-9K?};kYPZhtbFs|zADFz3us2`fM?VCa7#~!Lct@&l>&RcAO8!`qHHwSb&Ksde3kcs25L;d@`-1 zZ+CI8>z`X-NgB_6S^o|QIZUa`iwJ>kIEVU*|9Q)i zP=fcN4LEU_uUzLnsG%B@7_kXWZ;Jz$8(XFReqlZXZECdhRxUvqU7GuZbMo5pjQP40 zeO_(G_K64Q=jImd@V=!TKtXcckp_=s`Va? zCNG(=y586P3qei~oq5By2*~$afR_iH6pV)d*~vkIZG-EEDO{-$HtwJW(Y!r(?EF^b z{{-vu?zn%yz0G7@@0vFj*tIUh-h)u#t~Wrb!jn)e*c&GCv}?q3QO|5vh8orlL7p!qH7$@cfPy)PhR0oz|Zh)6xw;Qs8;q%Q#IFWW&pBkFxD4CE;! z0wfU7S^yx_K46E&d81{7fwoGWR8jdKVY|Mw`}0lLr{?c8=CHFIkScy0uSLlDO|4@- z)Ue^y!610Y&ADOx@(qeM|En=@t?{_2-rb6nkHdY6F(R8so=S=3_K*RWfaxZ-Al|K? z)uR{>G^*XE?#rH}FUZDt`pOlxBN6SCM{n@C2b9n7`9m2pMHoVBn#Nh$!*2VBoe9vC z-JnEW==F@4ISC}+r=K)B{l$&s)Zm6v<1|@ToZ%zGNg7Ta&O_h*b%~<90usza3cQzf z*b15&44jpX{-ffKJwtWFHsiW0Md`YlMh8W9gZUp#hN=&WJf|jJ&^ukFd~msHgE@+j z6^Wrhv3cYpT?S!`XZIa`yavzr^8T5WSID&}gYPJ{7F2w9I}}Iae<%3!Za@K}>e@%L zyF>GCj47}0QAu5`d*;3$|JO{;`PI+XdJP67gXSj)ELnn}{F5cMc;P1Kv@SDs1|+la z<30sGKESQYob6Hoi^$x{DhTLaGeC*#YcF-2{%Sm&0O%i(W#1Cz=f9hCV9gnsK~eJb zKupKG4wLkcpFD9$s$bkTqiPJ75}7Kg)$%KfzGWp%&aG#slKNb;tayIp7+7+CS{m4? zB<}*Rs!gcydPeNximF(Y51r^ZHc`4WZ@Fdfa#Y?iwdp!hE@=}zlHGC(-KC+7melK@ zz?Q|QAgXeBMQQxw8;8YdCOf&CsD657Db?FKWrfx&Upoh|vW)FEZ`_F>=O41x{fVg? zD)#lI^Y_0i=(TA*L9bc87k;2TQba_g+y(xlaQpU?I`(VVv}}ApycRf~>F|(o^N?f~ z*$V=d6VMqJ^Y9I#Jh&Sn^?@n9{`cdL3l9+%G5nR;8dBE3EDfpE)VdJ}CcJgWx6Mrq zTzE7DY+8<5HTz-=Z!oyXSp!%Ek(b&16fp2F2MapAtck%^Rl9su5NY~DMK(en{(kTG zEXIVg?UYU2zRt2qx`-*k^Ea}x1f8kxV&#$AV^PPcWpUb17HX6*_OQBk;!-+kC#>B0 z5O=7DAJyJtzaFUi1Y_sGY{o`gyS-D@+&*9Yi?C2&Mmb$#;X}?DbELo{8zr@!xohNT zd#8|j3r0ZuA(0Q3T(43Gzi+FH$&b!EbrkHXjlhO(o`nW?0GnHl+`j2t8hu|QT3MrY z_hqvJLC63Dd$v~N0MXUb7dq(*HY@Vh_c!o`DDX40<*o|FG{UgonnX=@HeT}xjN>Tp92@wn0->Prj^ZdEml1(h9R;R0 z3y=`t<7ge~&CThXL>DtJo=V>TiY4j3jn#0vO^6r_T?4D%0;7XwouXBNU}Z#Cic26~ z(+Xlh%BTg{%e~oZ^rxU4hlX*19$=Ak-QUqxP;igh01z=q1`QVI#Y%gNgJcg5Q0G_2 zswhB=92X(!xlcsGEKRxN>FH?+ifCv_>k_b(u(LD=<@6b*MTADFm748H89uDSR#2o1 zczZ=<2Gl`l4rGV3O#eE)OX;=kt|zGrdf4{N{{%4U>WS!ue*G`n7+gngD#X|cVJKneQ){AgYp{bn9177{^9L-T0rJuuPWCrUcA z)irO+)KpLwr38X%mS4}BO|5D zOpapq*4pr38=w5)Y=culbpwlz~HXj&`M8g|g?=3VH?hKGT^ zBES)2WB+*Lh=C5gF zq;mk*9%CNX0Q~|&;j!mKq6mb*jJe*!A*#_n$7=g*(x5fGqZ2F*LQ0yIMBzrt9_0^LlR()8?{(*}VOM{7?wJnkFTn~2SN+E8Qu zHqhIdUR%4MqN4JSQxgMdd9T2D?09`XxSgs#0fIzWLPA3K;nu&xfCQ4U-NqXl8u|)A zOQP{IFZ5#jnt3PsWdrKm2*Gj+(C#M-fI#N^H8Miri#n@toclqA*5;H44tgNWJ;9z- zxqz3KZiV7OFhjv_T*)GA-7A}`|0$j2Lr04w&?KpVVEGbg{CJ>3K#Kk|yqVC2xu;ct zwd6p5xYBX@MF|+GCO~1MVFa-pH*VYmG$aLxB=N#9-#P>nf(A2}(g^VH zu8$i*ELH~K7=Dl_Hv_74QS7UOwyO{#4)|Dst>r+Ff+7?M%x{FH0b}>388Ukn~5HOMSxwnptS`j9BIs}kz z`wH?yEoIHk3QZFerutP+A$|FRl!Af{OgBDALz3@+F;=)LC`k5vV}cLw1q&$bm>^gZ z#h)p6qC*y>pX1KFnjEPP34yAr>Pz6)2fO>6tcl36N8>|S37UCdx92*rVXCtV3Tk#z zT)fB)3k6R(ODi(v0-KMF{P+dT8roc4Y!x8(01bXn+7b@(0Cy9T zvIQEVQE%U-zi<2Y4HFa+ERw+ue4UtJ0)IlY1B`#n{r&wX?l9Y?rl(ow@rj9VYiYd| z?Ocbok*inC1RPVtWRP_SKOv7|_9F`k564D`iisho>IA6)@dCpu@8u;4BIa&puNz@) zp%tb;22+U-o^^A5tO{*G-8?-rfV5xfi;_l6(BB-be#Qe5P+NeZZUlk17#_V=h|pVh zYGwY)f1$}kFk-AxN^WLExsXRk?=I{o>n|WGU6#nfJ4OI&1@o}X*NQgPcLta!I-sCl{BORaNfq-L)bKx20&XkN`$U z>wioyEa3VbwDtlI6N8?f9zqB7W&?CDNZ>@T?ZmncMFyxH8eeP;VB)4do%?}iFax|8W2(PiM62%o?W6Y!moz1)vEC@QbTCR2Z7nct=WqUU>!36@d>J8H$kQR{QSgWcX^NyJxhCb z>b<d?>?sj6`mFiP=dW_n)T0gv~jv0myqzStqm6x z5zv~epgM`0 zqtyqytyyF&RxS*TWl66?QiSg$Ef{|$G&2h=P9NKPVj+qK7`H|;M}pwRH^BHydF(a< z&ihKl#PPe03z)m=iB(l%fYC-QP; z6TD5d2k+=mfu)LsCI~oSw%D2P5_Q{TsjaIU?B1E6rI90j^X^^qiG?gW+W>2il$x5| z2O9?`9b5r=x`dElfq+N}v@`6-D*a)$?<}-70+=W3Q}_ZLLTlE#IU!EHEr|eBg$c{4 z46KyuthZnykg#H7b6=%rXJ^mcuu0ji`?>Pg`JF(Ped#{PeBlEqp9UrYm%fn^A;d31 z_J;La^Ii1Qpl9$EB3W$2*VCh&KzPxiMuT0+Qbr{e6*M;-CjPp$#lEbtA-hYV)O_53 z{Rz0iP2g}n9%oON4lVSm{Hk#+{_7SmpK-6hfT&FghMpSO#k^w;zGlENe%A}i9Zf?+_fEaLz$HHFP9)3J z%Dd`3uR0A=HFn`nJq?G?;(ee_M4<9GOD87axRQy|^lw=hKqqXj( zQ!_J{UNcJE`?nti-v#h$RZi2|N^^UAew{q6TVp|?F3yX+tVq9BIEt;qlGCuG5(GkU z6U0OiT*^b z81lrB1qgdMxckMuws7P}#}k(={kmab@;ng<;GID-0G-HqVF!WC>1M!)I}8*cp(7Ep=m@1%Y=Y)na99|{?bo!dAc>(` z0^)Vb?>JdiCU`o$qtKydNz&Inrpq_NQ|RODBbW!a;fAjbzV>aU=CA?-E} ztN12ZRB3BQ2pd~K45MY1WJ|*jq-5S?2H7LvF6K-W6tH0FVdLWBb|y*CP;u+XDk~EJ zr8$80W)ND@PK;kWO+)rlRAckylZ7KNoK=sXM^JL>ECvkA!Tw8W6@5a&jet}gQHTN> z@jL}_sv<~GY1VtWqh;YiNDBkenIgjsi>KtvmmrX@N9XlGognmKp-BxjF)=Zko(Jv^ zq;G>@La=ai6TmaPfM^~}3c4I6{J8(X3X;Nb8|Gkatb0?Dg@uJ0ptlX1U9C>k@*t1P zQXe+(?E+(BsKCH(jXE?uJYwo6aXQ%E#z2(W3=>084+9GOIKPk(d{`(s&&Oe#ssXkJ z@5P(`$e7^Z#f-l@(04s`K4%weTsK-F)-boT`{*>$)PzKsTUfjRD>4f{7_Df8&RW9B zU;dmLklZ2P>T|lK2q?Gs`zurp>oWf_jVTk3gT6NMwl$-{) z3nqu~&r>l33q*}zV$ov&HaQgDTsr8$qNCfp8%Gd!BK$zcbqZ#usOLU!ZEbBY=ywAC z>o(s8xYJ$$xWnc%=?6P-&?$*QR?xD!7EH`H2pYE*QhY=A9$a}=SrZTtFtT|JYHpUjsdBM0zS5u;1Sat% zI)r}*7Ycedl>I;6^YQHecyz^E41y#a#HR(5G!1j0+vjSeVE~!_zNKXVL_0In z-(LN0nC1lmC2H7kp~EZ06x`-*AWAl~Zo${LzDBD?Yf9@u^b7+yR_VmnFG<2ADGT!p zVzgHfV9-PS+Xf~Ak?YZ=ZD44ak9}N?gBk%38d9uXtj8UL@N?gpzYj74v=YyG(Gvn5 z6ShNapy$!Hm-)!vJ_52g=Adl|u|_Le__E&nWIpeI@b=#ET)*$z_|r;>q)23xN>VCR zMn<7%*;KL`2q}B7lGPv$QC4INl@UcsG!)7zyJTmDZ0_Syeedu0{{23G-2dDj@5lR5 zdd=tay3X@BkK;J6^ALtC1^fPa_s$V#-wul5 zuGQDV!ouri?G}qO5JnfH7Iv{1Cc-mF9s7Z1UXD$=O313#s2F)}pD;CD;Hz*yr1^!H z7m^u25Sudgbbapm=)@f886KO7;u^r@4dA4BUp)qg4U(#kfD&8=IwZ(_fAAU3xDP_H z(2Dzc^o6IaZn}QBRi4TFTYIn|LC1f;=B@ z#x*1vy^w2cYQj{!2Ar`Dgt< zd1%4WXO1H4mhDe4@@M6*%}XO?85j`Q)wnwq6ckp6sEpJN@{p;Z_!~&G`(uw;CJJq1 zarJO{3!TA4(I5+e+3~D&bsOtv!Fa6f?f4%l*k#IlraBZW9V^6g7Ev&H1fYBbFycdG zh82XKBEvfXsY#Cb!x_mPcm^Tgc|S`Ng%op?oLh?RXz}3ArX#AIV%Qg#F}C1kS=r*- z!aAC}>ag4~G-G?l#}BuA>oQJ(6(^r*U*>qSu>R9+WX>Z3zUN3jMmg~Vn+3i(=Fze; z)ipnoXKUh9eUHP+Dj$_lb_=&hV>sUghd*@jPs(EmS+TfEK&t*oY=9sa5JG4v zGRXqW7A*zoY3-5_OpK$sK9TtyWX?%I9V}=u;3>>*xq{$Mr_SG`F1pz%9uH5X&3#A<=;*4ekcy{?BD&`glhjosE2(}@2(0Vu@CRbf$R-Li}Y85cdG7@!i=(Y%NCJw5#;<_ zq$vFB`~VlF9WV_r2Fp2Yhvf=E)rbI-ve5hZX4L8>ea)FC z=*Zc^7_?}N{IgA5yclbV3~s{c?tp>^#7PX^VktZOC6J7JkdZ;lIL}V!sYVZ|$bVD2i)Y6fzRacD1+>j`XJa+oifK88VjJcLMq zcO27}?fEV@-B)C^@2Osd+gyywavQ!ZRfI=v?#Oc*;LCUHV?z1}yLYb*XHbVp*$JL& zex4kQW$} zMRJl)mRvs5QYcFxHaKDhOxsdF9G7(Li6GbsKcs0?LA->UK@u4H)qarhmJfr7o{d*Q zRdfkx6W`fk*6>h#nMV(xA)zf0FHd0aZj+FB0~k|Xduslot3_>Y_WAMSwEI|-6KbC& zNOCvh%(o~hMQ_Gv4HZ@dz_nE6q=|)vaL3f_)Bppe05&nfBvRH*ms(9QVOt~4ll8s& zqL7fJNA>iWg8AiFRN<&-dTO2|#uXOzz-%X4>I9}ch1YJqQ|1dG&O}&e%tv`WB0o2+ zMXlzMwpS7H!sMOSA3xS*S=1a50m@nkkim}IE|{Q`VQ2tme`#}p+lGXal9ENLs;b-r zo8lzSH!lR8PG~NMc+GGVLxX0u9@*ZnPZITJF=Uj)#xr&4k$RILuffkES#L=2_4l`I zOs#g??$ocJ-HYYEnXpCmj=lQawvz3)8q-C_b5WeXvC zWXk)eN*f#X$yy8h4G^=Kx&+SUjFnnSMB|gIR?F!3P^+1_#Gn_C+D&1)V)bW0R9}2m zCeW@H-5_;1HgDeiy5a{iHZ64@0)fSZ?XQBQUJq&4ktAw2rXSv@tx#S{{|$)pA|?xB z9VCR#f>t2aZx@c}PN-YProlarybC7b|FecGKRW}V=SruR{~9NZw(^=DVvLe;iM`{x z3Frm%e83x^IZ8V<==iZ?<_{A2`)2?qh#dkWOM!FoU*@And%$@DM1@#2fvYbfxdPw* zZM*Hz!DQ`Nh6tG1|txvLIB z(g_5^VBcGNSfl`H2t~egPT!%Ld(JN@?hp@u@U3O;P++1WUu2MP|IVQRYtZ6NM@Pr8gbjj% zm(7t(N>EC{iP{o_`WAW|BK;nKdyo{*&i1PE_Do}-p3Rmkk764SX-Ix6SX_o0|!nnVDs`Ri9`~wju-Hp{@CdnY=ef`XBuD>msrk z8J3H(xohNW@B5D*SrE=&VZ&_moOULqAs___n~$Gwk(QQL8{51AArZ553B)$Wj3T|^ z=k61leUfbjRikd7>g)BexaA6*hiE}}9V=|9cGco9GC6(nmE0Nu0RsXTV}sKXZOMu5 zxER(w)f>^A6APLHA4c=u+G$Y?y(DlTOxi&h{NdJw4eQr`!?%^b9U`6RhBpjPKhxjQ zA(;M{my0Xe#_+h_K3^sdT1v)qTCz$e&qbcgtxbzA=RE#bXuZh!@lr2CK?^xM^e!YNfAu^DXD zvylE8au7Y215c17g#4H05ay=ZtY&IaokW9Gcee4VhSkDRcuWRcU(yvYbS3wxwdn3y zTJ3kgQ^~PK0tGsW`6x7fuA+BBZXe+c|b+5Hg9*@6_VK z$jQm+?Beq6ZOGd3?!@TU*4CKNI*hZTF!5Tx2wEt927mwdgFsEN3)Uc66ys1AzxDJW zZ5Xy9bt1?z0432-{?~d^&EXA7=EzO8{0R(ki&%+BFssME)ob<1l7%%H@M;vN2wBv*X{dY#r?Sv=$Q$x*U!=0f3!AnGA}+ z7`a&mBLR_Bm-6yPrv9>@DC817NiXftLyw9A<05;t&l&a~Qw3YN5cS1AY_36s+gE`9 z=bN9u#Q3~NRt-CCa(zDFx^zt!B&Fi1F`mC<%*T&kWu7Q*ZEyF5 zRDA05gZ)G|y1UbgNm*H0#%q=boGMYHq0ffi3HA%>XcT-Spm9+M+`Fp|8q4(z~U zD#@@w8WpW5#%;oqL=OY|CEOgs1AttiQy*Q2VF4A+qdgpVA)jI6f5-IRabv4la6)9l zG+5Uaq~!_&E(mx3rJ*6Uefan9Qt;t6-JjQ2XBhEALFaJO0HzK?qWXphkGIUt`lE6t zGAWU2>vMGBk0UlT_!#_Q;vh4%$+*6!tnQ8kKt=9yQb381D^I4Rt=OU;06fz^K6Bax z@B`vS3350I^_!19rUzQ7cDb@+p5sA=mcWp?5|KBg;>IrQOp!4tJYSz-d(i z&VfYRVMP2`$inz6v=I0RIwhBapfku8@sDKnOzme3KLp~2ot&MXAjAL}ghvKGB5-8X zU!MX}Y6Ug&3SW*SIC2g?R)RCQv(UvuD73i)p|sv#h0CurB8rX7LdLS839b@pMNz^Z zaf5}#4FTc7bfXtRzz@c_G$mY5h$^j zxe+epPqqEu{y6`dq#pkdHM*vvM5`9Yu@8-OYe9~;Z9hsLED%eJ!|b2C3@-rdyiN3- z+nfa5NbnCVGGZjL7yt7{DixrGE&+pdT!+VamMgfhN=|K8f& zy|L8IrG%PUyPvoAoS7LhVw0aF>Qmiz(=E&XxMcsM1qMgClSg;OK><+Nzh4w@Z;w>I zKufDCSd;Vb7o2QGtqTSjy%Ee!?6Ev{*4EzeI5n^EDP#VxhiLlPL54Yc?3l;kZhsYi zJOi^vKxtAGF7j;5C>i`hzC7!J`|1HN^YBgX-&4G`HZ(Mp@=i(;0`m5({MN6(4mSfo za!J)vorstV&MngDf8aUb*)_WSuixjB^2-x_w~Rc}1`Ph$er|05K~D!a>k06$csuTV zsfiW;?v9A-SpPNfIUSReSYfYTzT9)ZkH#Bws1*f5x~z7%2Pz48e*N+#25TO~hE>pe zkov_ydSuHI_Y}5l^}z8V*`>h0~`J&bXEJpS-?MBM8b!vW3lUJ z>=?Y?>D0;i@0qqIu)HyD-XCEDA6C?P&=>}Y72YX{&(xyj0Cw6xUDFysZ(vZBmmu$2Zp90LLn=r6^wkbc)TQJ^T=UY1FSR!$)GIi1h>{3+R5z+o~aF z4SYIC0zw+G^oVc^^7OZaZi2*M+kPO+ylMeT0Ypr{^17MvwqU^Z`Jx{rDVPwQK3Tvj z7DQlgkO9zgG%&H4WHXr;rXRV-Cnr&8(4uTCLHrw@mg=F)J%%a8gzh|mU2#xj<%4qv z#kC4V#!YZ95mSm0yT5(=wo=A<8ySvD#-#$4Li1RYa47sDG$I=6?AfyvMZzv*3RIu; z5O|3X=1hIoMkwePHRBJQczb;f;a7n*PFPu815hq5EnNU!k8qlwP%grEvKUp#_Z7yI zs38YYn71L}p@yZ4$v;BA%gvk19s3&>!F)j`S`y8Y1S2%e!e$tY#3pIi!Hj#V0hI}K zJR>sA8zhmER!N7hDWKXCX_V}jD=XDEAI+qI)ufFiz(Nsjqs3#4m*iMf72gnhtZi*y zp}Zsn1_|znRfJPP9VajP78r8}Y#W#358jD|EdSJbNB~?Bg(X7Dob%CU=TzWTX0E@e zrlhaW^RurHe8}QmyLQcoKqM%;oxe6yF)403bh$sOZia;g3=Ueu6H$yCvgn=dt$VRk zOD#O|@~HDi zR9j@ok&MTrcADFdw;@L}jW2{L*YygjMO`IRfvKhZ{HzcZiCGa?xCG5pkI+s=tVZsY z*A0QZwwaalfJxeW=pJAIZZi;`>Y14cF;CXS&rT6<{&2CvgUd9RRXV8|QAK(EovX!f zo7gdE{Dyz%5Y9C1U-pEe3ibvKu!pf+3XhMv!PL z+xp@)Nvcq3$k=2EYHu|fG~Ie>V!($2e3~S8jU@gJOO~{C7f$wU8Xq60sPbs} zU?PiI9UO&{n!TotD^lKzk4SfLNR@2&Rk(oaZQZ(c0mIdFbaZwO29p)Vpuuu-a$sPm zrHHNs2%zUPOi&zNysIvQAFF6}0uDF^yfB;elw0v9u4=c+UhxtvRMlN4zFT4&Hl=st~gheL;J8g6iFj}5f&1F545 zW+bz)um{LUR`7pSc^=@5zxV!hb;M{POrxgb=jSH{7vUyBoD$cA(Cq{4Tl9}w1-YlB zxenewupYt459GaN#K9K2$e}%c>2)T|h3l6s0?S67mij5bqXLY9MuDqCwjI}i|C&FH zc`WU~iAKetZ2HM?uS0noLR9SeOwXnLZx!X`Yo+YpzxlnU?}xr=Y~*3`oz$Pga)a(c zWJZUc>UUZ0YHDi4gad5|&3MbnXj|r0JDE{RP%#?k_9e@-Ks4eH zaKMzUAbk6Bah(JC8&=$=H+^sW9J+Oq)M>!2C>}U)dEe@Rjt)N*{6s@sPHPVV?b(l?{NMI>afeGXk$P$lS2p)s%%i2!d}Nhlp__Dg?_C3OAxuX zTh=n~-@jkdshCIQ?jGSz?<@Fj1CKcl+HBe?@*1FW5I2vQksWQpra#} z6X9ZSxR}Xnt0H0enzs@{i$ zglb1jWGxyI8gkFS0Wq(hZJ|T_ZfILj22JrKZC7qxeCN-fSHZ)4$2BKzH{#U60(&G; z08BnU^oGAggp5`8C-|kI;drOC9DDlr*$``vdA+FEd{k|d((AnxrRpfPXqDZ}Z%NHs zvEwxNgkFpvO?~?0k9nHu`N);mm@>BM-{xMw@y6>qT1oF)0aus*!%F`N$^JnwNxN@u zYWF)w%NC;g2a9Q3SP{9>s!MPwTQ`msCkvM2jMK^fmHCU5l%)U2TuKajH)J+WK^6ID z&E`1c&&R8|t3$49WFym}MHlYfTLstx?%-rshq~au7dAb0?i5+~D_~`VAF&9z0C0rx z{2&e=0fr#N#eg9NEfenP;^NYt-yaaLF#9o<60$K1spgg2iBbv1n-D6*B8t_txy~w< z^`J%90_ai@IaTHwC*D*Zj&bk7=1bB^UBSb{vki|LpPEwKa;FV}W*qSdx$VNodlHar zxhPVXl65*YHlPf-n}#HFmvhP%E~Es9h%as5<&CIcR8gUp*o%RNj1=Kspq8aK!2d`q zF8)N{NbT#XKmKWsGv~FMx$_s@Qe)whSqTjq(ySsFAgD5nL70)$u*>o1ZcugLSc${s z>9c2X$gC6vlIdF3a}|+{vtJ(*3LEl#s`~SKq`eZR4&5JBi1en&Y zt^gEyO3JB@`f$l(FYkrC3{OuW>htfY*WM3zhVf_qU4Gjc!|6`mKmoygKy9h_E&AeW zD^rH9$}7_l@`;CxND~;Yy^i_`Ll;30h{7+iSJ&J=AbP5l znGC*1k4q^~D5=opJSK_x;p8#!E~S85k8lbNF$f~Zy@o6RD&iVAjKB#_B_U2rJ-T3WA3;R{brCgezA@th#@T-Z<3%L{HQ>`?fkh>qI9o9~fbR zn3)uh#u37%Qs6k3B6)ZEY!@$pUE|g3*Yp7FKAOoybdz@cxsdvjWxgCN{$N|M{AJd8 z%NwXP9y#}w=y|%}<3mRkfoR@53`0u^LVabSha2S$y^U16pa+r}>WNi-_{WcYTstD) zP-K?-eH0Kxr-EDJ3it&$E7c!%$~qj_4N|$IB03lWiKrZudaTkS%z@;=GW^$lF_QfL z%R$eM4_wI4B**OEpV#ne0LVt@NP2{`462Sp5t5=+)5uM`$jc-4og&B#v|2<&1Vs_k z1TNYMOUqQp!zWM1N{-18M)m&(kEFJ!GZG42 zW!+Pk;RHQbELn;|6`FVMqQ5^Qij&uE)yBKTQ5%p&fqcRM2QJx(a1Q#XrfvezAmN!9 zj(WxJ&82G#(6<8CC18yu{bp8gO! zj!-A??`;OPrIVul63+T1D7c|fcWe70hLQw@pcIFSNV+bvp;s&gW|t*AlH^XCM?A5G&hyGhXZi=batOwrtr& zER151kJxpJ@N)up`9tY}?Mt{S-_Fgz6cZ<68Yv^EzkhG!QxpSw*aN}ZuzsbzFK*gDcVlLl!ggAyF{G0@lOOOShyeBzK z3f0mH82nL0X6~u4A;`qVu5K8b7#k4AW-X-&z?;yS44|?K!DKs+2=DG5~3s0Lmi(F+k7eeDV}#x?h=qZ(PUxG zLhkcBw?rez*acxXi+F_h^J^pveWAIdq{^W7tOh@IP3#jMLW3P%t z)(E`k`}ga{hfOq;j(+OOr|XrJzLIlhi4i4KeNgcd|vC}a{^j)OpVU?fu2AiG~Ux88@km?O~4>|IRBud;= z()ti)hR8DxlSC$pJ`%?uChvv3d0$=VwG60=y|9HtoVbQ~v=%W1*6Hyx1Ht63*a}LE z>bduw`F5rV&0pOKyXm{gb92u%5p*UgoiNk3X(27)OQEil^+Vi7`3}9;uV0_{oKs6z zt-2EJIk^alR1wyG0>QDfY2f{R3A{l=Nt|meBHlQJbrNZTsgI(>M+Zs}b}`ovSz;X3 zsO5X^vbr#Iw?N?v`j<;T;(qF0SXk-L%yn^vh+Yi9jzu>B3bYa>v|+s7{zn@5h9Z~p z#syise*IpNU_>^AkJmCl2bT&8WYI3Lr6Uz6Jp3!{}%| z2n-`DJ<;yq>PnWksld`u$`(VCOe@WM`&NbWzISgjhx^>Qb0BgrgrV@#NBY^J)-xIs z5@PL86OsF)r$@Nsoe@~0OqZVrWaoP*%mbyk^VpkF<@&#A#5!4 zSOs}n9Lp`!W!MyL;&c=tQlahKSXOs#{y&+?T30g z5ebWvT=V&5oV_y&ClCDmq~?IhsZdQh5n8|vzlM7NO77MubpA>qpsWw#CW;IV1utVM zYPn4G7d-laTgdvGPkzUQ^lth8+-Y#K!ll%(AH3^O#It9+&>siOU8G4A^0H<1-1m~j z*P17^;pzt^W?@8v#K@4+>wOgU^TUKw*dsQ2nnfEIEtvT1z;Y3ZkFbj?#ZE7TjU~H7 zbi^kbb!aS57HJ|SY8Nmf>;X(@52dG|4RQg0l#Fy&4FQo8a|uN{)IjOSVFSVAF6KEm z<3zS8E+7mqyPTGQs(pjU+w|6o{A?~*1#+H&B3TgI1#*)2(S*dr#1nGfv_eL#Hs`-& zt^wy48(N#F#!q~x5RXVJL2G}15MG~jvryh}Pw+_D(%W@>prPpL>5D#mV1@)rfHw^V zYiTj0Hc?U`?uIu9%?>ueIV8YS){`UV&`V>n-1vL@$e|A!OB$~fFj7LD`sGC;_pdg; zYq>v}QS+o?oF<~*m0Q5?Yq=L*}jCP4$cO8Gv}}etR7wU*{PDj&*Abp3Xc#e2Jz%pBv!~6`w-0l zrLKT*yfSnP`x~Cv6VTOl1-q3CmsDC=S-~Kg7;1_HhPpx21M!epNw9=`2{(#V39(B7 z%``MgILHiw5O8)e&PJ52hsSLS8k&K1ZgQkB|~bj9>1`jY|Ge- zYfo*RfD2wHA0e|zAC^a;c!stwt+N&UDX+c^%tM0 za0IJ11j8>+ZQ{ZN7t$i%zbY>N^wj1Q`&L7q^#^Y4Mi3yMfcUg^b-&7giFy96jwXK# zVTEC;JAqvofQC@?Ns=q;CBR%||s9-H~&5E0$ck+BBOwbY!LV$=bm?&H=r*<-lk zr{F{9pP3;ERioT~OVw8tgv^`cLnWI=vtIVp0)erjK%F-U83GFHNQLI#j=SdX?_dA^ zCoWN*a3{b{DHMP~6i1}x2iuiw%#yvmVsTJ^Ud+v~Vhz_x9!WbYN^D0Y3c@r-*szUS z39A9Lkji|0d=%5`59DvOrkTWTtqB6DMf{V?mfh&yf%Jd$@##gNd~TTYA)FwK>`{BT zj$C)v?#SuL@%*e)=Gk_%Pg(QtLjsTV3tx2u&XoqPAte+I`JV|5IeZRgS+<(^`{#Bjx?7)|aJmnSemkAMr1iwo~W(Cd&Is z{F4jE6}oNcHoni0s~y|&_c`jfE-u^JTtHDzkLFX(FF2*SuELl}tzNU{CE(`!$m)Tn z>VbCFy_0(m&P$1tZ^0+5KJuQ1@=asndb)$2a52`_*1NT}*{P!U?=Q0+7Ba%+2V4R5 zO>hF-Ch})+u0PQ{lXkl-9oy}0W%}!c+cOm>^sG>;F=~4v5ZK~!>a|}bNsDXV)We{Sa#Pl^~1=^@b3aNCnR;m?D~VFV|o6)t|mvFFk#&^ zg8s4D8^3J&GXH99|LUKG7pdexi#P$b<7#xdegQ&e|Lz-G^fJ~w%_Wp|rgi0AWr~Px zZD;@{D}d>09S-uY3)MVGmvbpVsPo@bhPpnk#WxNRs{8jFwwvrA-9;T1@}P1FfI;6|gkX!}b2J+E9%AE`gUC z(%3?5{=MI;?7F(wbO?e}_86$;GCS4>KRp?+;P87aPZd&fq z<@Dc9ZTAlldNZ;trXoy~4n_EDWNx%x2qx6QXaqW=QkjFmE2U%7bJH^3S-T?xgkF3) z=Zkp9^CAD zaAy7n9>E*W4S3BJqsNwj7xb_|C1YPDaqcyUvu)6y|32kb^2qS}EA=aC?kdxsE7+%0 zdN?Imfh1N0974WfpJu%PHZ_r8Z8uPTHp*x!Jfj6nxk-(3mF<(&0hKEFmqyJpQ}- zS`7o|8L8*)W1r_&jcfsZ7sN%<(X;(CRNr7&E_?rdbY4&UKf6dAkHW147UAwjUoQb9 zaw)6H_j|8xQU}1eAnI-;qV9w*KJ8zRPNj+w$Sg2HBN(hil1c)i7q#>U+bwgxb5C#u zRkvPw{V_sn`8DnxuaJW);nboa&M*?|C-}}I{D0S%u<#nD|BAxxQHHLSmNhA)kCYst zOGcX>1yv3ArAX#4`%+s3&#)j4y#m2zLu8>swN$ z_l_+6d(jxWpv(a$?L~CFbs)Yz4~1$^DmVF-0y}JQx~-*Kc)|Qll)z0?ip@Z|nPw5p0>E8-m4hmpmDoFbdcGjV>!0ibCUUD(n+TZrR zuA`_82NTo8ZLe=&EiD8A_MpP&`Q2CA?XrLD~%W&)qPy$|_ z2BC%+0f5f6%5LJsDzvb^EGc1t1A|Cb;J4C3Nk2Mh3vVEQ6!ZY^tgm0ccF!CmKtbv2 zL6!YrPII=LB_u|BB$hDok^&}^J&KH2GJ@MjPVL~=Ipgr-EgPKB^gt`GpjF{SkWUZx zFQ4zT>nM-BLYk@omWivFG)V!QgKggTLEQF-3Nc&|mYST4KIG|kutiYE7 zHwi+qp!E%>w6ysYkk&_m_szqXI=@@462G^3_`uT&Y;CCmk!7S8=9+!@p@bEidmB&> z)C3_^k`C_($lL_!tzJmXAB3%kJVQqTz%%0btLe$!jCtc5q6z6vJc?d4bl1>Rz`n#8 z^vG+@6GbM&ls=o#>ji;LSARo%OG?OJ#? zQ#2A&Q&Yn>#Nog*lxBf%KtblYn~`_F6`q;2jid{e^GFwC-BpaXc|7o4?1g^|y%Lup zO%wNWS7Y82xs2$QQ`6SIVt%z$2ilGGNRHA&t2a_5(2Fokn4(n<|!ukyx+Td~_hF*#sS_D^| zg$s&2KS)fMUC33cBgaw@XEZ!gB~i9mVd%wBKo``1EYC}x6VD{+cf`R$r~(N!j`pVSDg9^_AZ{m= zNZ!zUXs88Ccmm+}v}KqVh}RmQiW*&Ei3CQ{Ew1`0>_X@1aZ#i%(!2aOjP4_6X;2h= zPe%?KJuzj0lZ=HTJ~WWr{&?0}gc(pHZ}3-yt4$q7nZ`5^G&h3t3P4^Vz4h?VJ*w%uhqf!fKe%q0 z4ciW1g^)VoUj<20)%!=1`UsV_JPSVJ@_Q{^y85(2il$wvh-9~ zO*y|oDyO*h74*0p7P@ULEZ-ujrp7v>rKH4v3705Xb_}*pIoYB8wxW`Z-hp%a?;O1O zxb6igMRAheBWc+%5*)0VZjnuwqcqxKxMp0luUqk##%@9T^T>ks~ z7p-eqT4P4-NmpO9Gw5xW^W(nHsBZgR)nmuC0OlX>8aB+!>W1CxcN?LB6&0^9*5z73 z!F>^S{jIIu$gJ~-Yw}W)+t7;Tb9u2L%@h7w(s$TyUcdUdb>qB)+%M<` zZsh4QX?WTrg#G!1*w$NN-6h&6y34C|cq2|a@NMSh`V}RVY$J+WWxL3!C}gLh6o%$XjvYX~t@yVQ|Idf^ z{`hsoKKQ)uiUh%Bjng?B-+RV!hc*v)ihp-$+4xK}(MP^?CURmVrCdjr?Q{NfXODfj zK&wwWUeV8r3SeIEkn}8_{=Xo^)JQiSdNt5GIz!-=X#R5+XVQIhlQKol}K&np%faX;7twK<9vr-_1kH`n%08S zfg(^)nk!8^;yP8%SL{sh6aeKytw1yecYQsw+HfheBTQldUcU@0^ZOq zU?z)^=%t|BWn4!VB79UGT#M#qucusG{wd;PSN8Ob^wm9T|Gu2(>5xp7h%_E zkKZ3u|Mh9aDw)W%tf<9X27(?cTADwoo15LXGtwoXpibb4$Xw|Y$%ow6*TZ;TFbxNQ=*&(L6Ar7HWnUQXxH*reUG>*N~B zxS5k9WZjYP8NlX!|$0+xuqy*FrMYtT_tjd=g2|+7sqy-_B0uzwr}iQuzY#o zcwrUmiSs#KVYRlYAEmuht1jBKmfHP%Hp^ott=*dGBp~ZNs=8yx`ePwy=ZPA%^f?6_ zLbep%4!S@kTKwnaGcJ_rvzqP+0?je8Zn%euXv4^@Ny_QCr zWOzBgbV=c|nh|}Jw>9lUe3DTq$CLVr)W`w7f}=t8?MGhou{}9{#$#~XnPQh~Ss(l| zCAM_>dDK<;jZVdvIdz$`ryo9lH_nkQBq5U%EYa!pDEx&bZFyt-FI^&K7_k$O3?xTZQDt$Fz2*h;dVMNDgT1H=u>k^`GYox8%n#Z zZs?129m-JM$a%<0XUPiFge2Kc^#l_)wJ*s#JY4VnlFk;neLHW~EzYZ-H=xk6qP<5? zYxyGGG3F2U_IupL`1O`|`)J2be%)%CI^`p|Nb>v5fUC#T=Tg4Hb_ZL9A4~%$(T+vB zON>oQCgc(9ujt=b8hjPU-MwBgfuXQ>N=Gp`y8O%!4Izdw)2f37-5(TxdbBKVJTt4o z!>wg>ifua*mjQ=qLdts8Er+cxBBFou>fPZMUDYt9V{pq+Jj&y${H9(%D@Dt=n$K-t z&B~1{-bzz3IUM@??(n~f!7{iuGQLi#e#;bV@1(AezYpp#iNKASVs}j4S_0%aKJEWR zdDri?=p5IZFCq`1h&&uE$9ulT;`jHZY@htw#LbW7xMVSOQtGy`zngoty&~M!l^3Yq z*0C;3v*e(58`~%&Wl?Si#p&-jy}7aF_LH=Vu#3amvwL-ln;LX~z5V2nyq4v0JyZJV z=egG3p2sw>au{U$I4TMu4oI_FMNa?x~mg&gf`xbn)fQ&=z>A zx>?8cTDvKR*EI8+y)tSuPn)#(DUl%It3;b^`0MJx`jd|6W9A6{US6xB5*pWdE6be5 zL@+ho635=Q%l_QvR(Ckt@(yqQm05=at*(Np#mhqu^r$;QbMPh=UAv-2caB)^%A@Qb zXBNlhd7ao?@5Q+IcT2fL-o@2Fgd~ls5{0KPf9XsLa*bacm@!a(HZ;zX<>h<*%gdK@ zo4U&3-Id;KC@xi)%BaRiI4O1InRe-5%a)YL7RT<5IR>sNHcex0=i8|vAZ=m=k}F=f`abI$m)f@XHD{4SxcKOqqKr*JEYq!4L&KZ-CeP$ z;Se9~Qjg0rX|jXcXE(Y>dayLHLjrwQb$$}7*)~KH{J)UcPPW4X2Jvv+#qoq^R^ER0#d-cMu z$CK>B><(`otY?!Kvswi;9a%fnUb_Q4fVTOaj^#PYW*k8)_NQoW0`()|L`^#xmdSxXfME&Ed#qKo%cq^yVjexM)EvUtE z9^S-5V>Ru__Y zrw^@}ZKSNtOvSSwe!hA@C7+?Y(1AwbBum{2S?kHUq!`)-PB2^ zyFXajp>jy$mD2&e45w%B_f{rF9A9z7q;GP>IAW34wPwrml=y*}lym82)2)1wpAI!t z%C(He_P+YzacRrKdj4NL&$-qIU4FVfe$mf|+x=(X6dq(dGAci|TJKPBSQG8Q4Gu}` zVX1R+Za$w5AFzws!c}0Ik%t4qhw*i7%a?O zdau^xbLq5i?QnyCP3il!W0^C*#Ir|s6r{%PIdB?l3d9_v~eA{A}A|w>-wEf%aAs(lzXK6kaDWLePMcisfF_fFMoqRr~64(pIE;r2ux~s z?J6&G@Gd;pBt0~W%48c%o#1EI3aMo058x!dN9g!=AO0vo4wC-WSUHU@SdRmS&-Y)f zR*KD$81Zs4ifsr^9M@tn=mb6r9^^26C!H@~1|c>loE!?zL(4V||u*QNb5WS}XDY(04@=p$#8 z@ksO?Tl<3WWO^slofV&U04dB#dku}=HaucqNE&jx@8Mi(eW#bC@y4B;H-X+=UeE~~ zRdB8c5zQ5D69`RmZ1oqvPCdDMs=4s^QOB;RT1(s~u9M3(E8T5=7xt(UN0=&#f{!#xi$W zUf+G?%{a^V`3)z>RB9qRhgl7;xOvhQ^>KYPHcip1Y3!WIIaTkTWK}8lK5aumNXDiP zhctS(gHO&5)21*kY)ZkwrDscCXtT((HY_~Lo8VcV$hKPOf*YgG8>1G+!cF&G4W>55 zXatzLYz!J1t+=d%QAnM2n4To&K>;kJIPb;5P2QJJD|+r&ULD zWV!? ztYCv^uT70V|Mf8genHC3tLmjOdpNOhlpiYucG?6A^`8|g z?8TnX7E%lEeO|dlw?m!aO3{d@<_38dNjdr9;ig&IANa;jH8vL3OQ<)TlxH+u#TJ@3 zg+~fz&n_E`4F3H%>N%^*TtDM2t3_ev=UhTJofo)})Vn)yf%(DA&I{RxE@Lo4X5VM6 zv)o75R^6^oWiNA8oxw1Pk~&ST<(vC8xr)7>2`!igtT!I3QDLr+;Y+&X%Kz5rZoN|9 z3HFftN*hvENRMRxek+*h_)lLMiOIl`dngtaVYw)g>LP6LUz=Jim>!ph0xdAGb0~$6 z-i^Lnxpap@4d+pD@!PGxubR3T^6D+6Ur75nLPB+4#}8Yb>w0ZvKZgZNX`aYFDZeRw zUgn8ZH`izb<8<}W+~<>FH`A}vwIsMn@-9o&^OWsa)2e=GD~+43^h4>us&Dn2W;G74 z-zA8%ih4fz?NY#RS?M!DpIe=`W;1%2O+^l7ee7s~puxM+ zgw++EByzS98VFCpeFv@&Eh5EW=>5U^5(P+1A=uEe{L0~(HUK0kz5-8wQ7?m6@B3-2 z59Au_8>+0k!OGimz3_QHqmnY^CYTho_y~RNcC7;9OH)kV{_Lrs!g;OduJ<^1 zxfHFx$%pClGhTbfC4Mey{JB}ZsbNv`a>rLM0%UVoQXkrJMW%8T&#tO?H0SqQHsSUG z8ix)(h2WU)E44Eogz<6QS-8Q{P9>Y!KNy2E>X);TU)v0<*u8J--tdbO8_&aTAjVj{ z(=R}!0vwAf={ev~>h_N$B^|#jz4hE_O{oH=FFSVj$|M)mtlCBEWFIChI?HAp(%+(H z;8vMkvucbv%xI@s-Doond+MUFFv{{cE!!LIm(M*yB62rGr}1rFNUPfD7N0|>`1O_u00p*a%(u}2OX@5 z+3xyFKc_^5b?or;$3(Kq{3Rtn4J2r&jZEux`JZLj%qm(LsYLtj`sDPwPHIs(I7hnK z)O|`W9mgf3gPB}BS)R^rwN@(AHJrGgI9#V%)Yr88A=~b@ZvNcAUSE2fs>$cRsRLacereMg5WZwr62I&To&kb{e-v{?7YCd4Jzyp3!@a zG3Y~W@>lM@*;)?ub={6uDNEh@T8^I=&?z2hNT+{pksSRjhrxOi>(g8Bj~TdDrY3MI zv8nqc)FvqCq7QC?emcqE;-FcnV>^tUBE>bLl)a_?9i)ZYb zYp=d^c{1SLL)VhK^-9H$Qpcj)_?~Q;W7#YbgPuQ1>pO~maGDQnYV)}s{PWb+Ag*7% z3|UD<_XlnjR8Mr)G}#rFhtM;edBDlWp~CZBRVhylHRh1RJB6JK&hF>i{4mr*T`Ey> zP;2mwxtc0ZSh~ej1y}v=HnaNSir@4n`DyQX(wRQ(DDd1v@lD_HDBK^C;%)o=N!qX! z`$0E@`*!8^0*7;{`%1C1gL_QrzU0%H96$ZSHD6J*MrJtZMN-GzPF)M@D2-Bve$Rn~ zyL_2u%eKX->sd!x?7KfE+vn;&7{ciPrnx9;0!^3l(ZQoqdeV7WDtEp1zANN-5 zNH0Q{(*f{~IA3Ki+=Rq~7yKPHv*fCfo%UbObVOBbWqmEH%b<{qLx);Rceb|XdVkR6 znC_dDHfxuYjvq_t`1;5tJlf5H)mruVF?jlQw%WSB;iS!0?s(qZdz{9M-*~V3Zc9Y#k?ofx4k{82m#@_czcA?$}vNni4|TrBb{F-w8U=X6swS(KVPz=lFD_<{&moKTe?j+ z#$az-D<{W?<_rd6CcL|2xN=y1w+)Ar@ENh=kG`(X8r_!AFDv_T&zS9GA6?pF8r9~z zCP9VqJ%KfX?Y!0w;_8pCSojXGifkB2t=nmAu&J-po>%zc_0)@HKH}bO!%r&C3os-+ ze?R?Plje}qfnEL2IE6xkbAGsc@H<;;?pWtpX1w}roN&|U{X5d+cDeMiNj!F7J16hu z<53qKXCozX%QpK0OlR2tkAA(Co!%j|@PeVLUIxKA+M~9wYBLi9t{!BsI>`RG^yQ~f zdClI9@{>P#=rjfj4UF)1g1$c@#7=C# zIXu_#ML%ap+*{Gk4tg68QZ0vJs2}w znl^m;XJ5oG?&}+9o;*HgaI@z%vwrnQ4n$#6l+ z?>gpwdYYrh7@a*ClB9Uf{CX%n(^ygTJEJ*wt3hVM!HP65<<|H7DRpt@C`Z1pFFJp& zJQjSeaPWsrru5BG+Q&C1UEauP9DX60LkS%-8kIeLGBjuFvs%mS#s;Ry3uX7R>W0|N z8(gnlkT$=`9kbQ)DYL_s+K->If$vpX$ZhxFaDqTxjdO+|-jh>GY+z|721^+Ja11p| zPhCdFfN)^fTDQ@iRy93Ryuw|cCr~(3jq>!HGZrz+(L7j}qMN09zGzR(+o_s&W}H>e z<#uVsUJx-#@k{pF$+c}qRbT$gMDO+;pMxAcwq-sJHEkV!D88*ra?nZsuM-EM6) z;)6t{jAIE%cLUBHAU-5qC}r%75glGOuF9VV=6fPi9|kozbbsEo%HiWJF|J8a+l{}zCNzxf(;{yZQqE} zX6tKl+bv$RD9ftOx?AIevgInS;0N{%+>?3ZT$y0Y`28T~AJ4Y%MGtli4j3S(AED=X z(T2nu=7oC=7iOm}Y~b{c zzSpJuC@1RMRoSP43FeDmcUwA4TrKG03RfZIl!k=&>y^fb#b>Hh4>z7_`W3&R$BUJ6 z=cY|J$?iND#Q5Q%PV|w|Pc$>E34O_hG7GJRmSh<+yBi(2T|0QMv4HWtRF(bkh?n_I zkJ;n9s`xHXcr4MM*)(NI>q^&Imy#%wGX81bet5^GaX@>Tw5?IEOZ5I{OZn<~)(iI2 zQ)v@hX)UL;_s)o=TNJn5yJe>se{#u6{TAg!S7261n2(n;nDoB8x8b{`a`>sB47DZ) zrB*phrPB|fOFqlb{|=RXA=7*JhDee)WFn^SE#sgUU9>SgT3h%+_t)u9+5?s~oH2R@ z&q~~l-y}syoK{%zGDR-ev+T!QzWN404J zT#^o?PGws>+G23^=`D|_C8q)f+|)i2$z6PG5X$a5kN})#3Bf|R+k$< zvM_=F^%TyB!&*$adIUH1`x5+5vi3i5rtysluM-re?X#>6FQN;&sivRH(*s!k7HhO9 zkfj${e1!chOMn~cmyZ&ts?A+2h{!-Y{pD+n=43FhAE!14m5_jKR*I-&*93#x3H8SK z<<*hD-;2^BvvhjlV6)VLi^~Rvfc3pXc{J{LAMNRtm4k}TvceFEaMpFeUH(q$?L`Zd z9EopRh-K;loB3hWe=4;czKF|I12Dq2QLUh!@X;aD^ALRN3EeAKS;I5LuJAE! z3RG15K&HaN~-*pX3TE9A7)X^;=v-?dk>3cSgrkx@C5XY#>O!)LTX`^Mo(WK)vHY zvR75Z)Ty{^iQTBNdC-A7qdS|OutN-=+xpn8Op%NB%?Zy<1gj2%-4nEI93BZh#ku7w zc2DzNJAS%nIb}JCo|otKKD}F}8E|CTXPRfc$MlhNGcKL;T%}MmoO_pGMwSlOWf7-l zNGMH}WiYPQk+IL9eiw8UXt7oP2}iXH6wFO*mIrg9`{{eu9rwOC3;WpAe=rLmI3aLi z#E0ki&T72E-u*P|ag}*7#qo;w2{ztK2=QrDFxxWQI#q&RTxJyCcxqx!I#S7H+qXR_ zEhRzn*ktsWad}h;R?o&d7u{L}S_$1))U4`?o)KfoX-m=~fe}06!sn7GAClgR#3Gur^sCX)uk@ay;ylYphMjf{^ zo9Eb*?7}TCB*OccVoX20K;U05TllPjTa!Qz?)3-vLqTxi2XKG_z>ij@zz>+PkYJx} zklp_j}-Z@!bxk-*9{c(JD z)B7)i8Zpv)zs}z&KFS#f)UWp_xfLsW6s^h*{ahlihqa{5gr{LjkH$JY5?l zn-n#)->vGJ=oTG947Suab4QO8!=0=RhQ8s_&wA63wJ;9Q{I03WyBmf7R1O7*ZWBSF zFei)9+*;T-{tRX?SQT>`_Ol|fVlPeK&y_x*jRG+88fdVcU8&oMk-_T%ketUNT}8pp z<8+l#OuJFM)eBB8N7r`sGZVCG1IS`16|)fG`G5L;!U&O{BX5&xE%DYyy91|hYrmRplA)% z_)3u@!P3|_hesBX?W@_Dmvs!`$sD#nk$mAY!1@CUmB#l~ye(XJICx3Pfhgo&9Fu?i z{yrV31>D}5A1Dvht3(~F0?GL#S6=#;WkAF8!4(xt32kzbws9a8+GP8Yr2hNg-8*x? z4!?S$P`K}&H<-ObzFrTXiLT9-TKF6e%HK4bhv7B0*r0cgTg^-RO z20BBubmZ$fgWU8-a?W@`9d7Q$PRXr#!-Zr}?!Q;pjn-$?;u#Fay@jlh(oBz)pROqt zt#LBe)`8nkLDQ2Jf?-3BtwQ1v*DC|(Z68t^cB|sV@lo~7MPUEa@5Kb>wE##9D$xQR zAy6OI?a=;}joplBJaM23^1x?FcQdEu7NxW61?Mf_cfVF>8vAO)MXR5bF^clgcoPqJ z!`_ks_ZgE`@*jx4p~14sh!3LL^D=ci%!d`lzE`9#xIGT)TNKnIa#W}5GN)gd=^NWJ z2bF~FpQJC2(vtmK5dYMg?^!(8n8-y^KFs=qJfx%OdgH84U{v!Ot=Hdh6b6DT0|Q!t z#AwAMc2E~^|2AcY7Qguo3Kd4(u+W*Z%4P^kj4uh&5oCrY@06G3#Z{Ec^e`4kU!D&1 zs>y|uIl%rcv#~a9*EeI6F-(pz^U==_@weeU%s?x~&*FWLdRhv{oiuesL_wddH&mt( z{Cvi~bnf>LT`3=>szd*u2RqI)$_=wE1~0zm-6|jdtoEjz`d#Q8lf#uXqYksO{Jk{# zD9q~4vs!>BZA%A3&Q%kRO&yj%t&6ik^bunp)yhnUzUf(o?8*H zUJ`!Md)AN=`q2(DxObMQ6GaUAnC_yG*+L(_9E*(WJl5>$)i{@!^HL#|EouLf<|b?> zD~RP|eX=5R_jzkASUB<9Dq$Ya9+IZycNv z9c*jwTqv2#8VsG!q=zsewYtU-KFbDYBbz6a)oIVxoZv z6xxwTP;~E2&m1n1udnhE*0i>ktnfN}n(Qqp*0)d2GG^MDoM)xT?$hw4{{qhCapktH z2n}vaj<^)WTB=!4rk+r+;`i?>;QSMCR-c>q8Qk%W^pTp{W$U+c4E!b#gsS&H>rp- zAWV7`&IRlXI+HTrG_~C$9@Vo5co0C0L_7D3^#`dJ9t3=O%VYl5wYAPW61q)?%A?W| zP}1ZEvdlbx;N#{ty{F=GA;$x~kY<9piX(Yt&)pZ5+rN3!HIOmW(N6ps8~6sPadb7O z$-2U-yW&twZKGAZnnFYCq?a@W7+g=tsP7sEy?kKW)eT!JYG3Mz)%$sA==Sc3I>DZ< zzo;@p8aJm?de1r|Zp;73`UfK50~T@nxJ{6#r3D`1#f)h^lkS$&q%+n8DWzfU+G}1H z8=lozh4z1tQ^tR<^*))h$~G>9aF*!if!+lvxr3)aR^HRa?hg z@_I`xNK7VvK^FM823G+Fs9IpX&xM%_;fDVa%9YGbfY2cVwq z_}1&rh_C%pV2|+2(Kn395=?snoBBGA=OB~$hGDM+ZBm?9rjZ==VTJR(;wB(CZ@Khb!QUh%>yp0JJA z;DQlrGqnb42WP%H}za_Y+kSV7s)YuHuo21!Aw3=S{c{85Qg8<6+mZ?1-W z7%w<(o>-5^tTAwKkTd%_M3r_$xGndB#!#J0kcVUbK_0*Y3-M<%R;&ge{$0Do8j)vt zQt0pGU20)JfI$ZElP{p%(@J2BXE#1epxK2~-1i<${7*rGR1=!_!H>if+fk4EFM$PqEd^6!lbV8!D1)o89pf+$CDm~G1-&cGvN)V`Z3^z^-N%MF z$!$|ZO%Q42AGKDXiicY#d-eL223?Uvlw}dX8x^)%+X?LN>m7nlS!ED_w?!$A3SM|+ z_;Dv}-KM{Iytn6d${UA~U6Ib(#sS~(`*vR>F!_JD8;c1D83?L>F8~wFs z{t+~vgDL7?C8|YGTn89Ng&OOjBpj%*BAWi&FF=Ta%4z`)8;s7cf?Q{?9k!2=xbGj^ zXv49ii~uaJ+49K_t#OS%ze;nW$*aM@!w|v37I*;F=LQHDRFs~rYABGo5uoT|9$ony zIAjHFJkG9Ga9qQFT$J^8LP&vfY5fcoYO8IF@Ay3|h_4<6X*jQg z>YM2xMy_6dVqkFsA4jSED?8(`+?i;!zg${Pjihh`Llf7z3!b5(<#q%ExqQuVR%S_< z*dlC2ZV?=~f1|CJ6>jSNT%_dXPhA|e4~di!nK`$cPUTIK&1>}+YbvY+wq|mF_RT2Z zEATdgPTZ(*lEJxzIUoOiU=@Eav<7?C1s}Juol?Wf%gH=m)ur zt1EF}$gB0i>K0!=r!{k;kTWmIoLaGJ#VMdKxI&_$q3)rm!y4@-2x!W2JZfJ~Qkon( zFyR3Hw7ResWRiQ*rt_kI7kipsiV8}GIRXrXUSqX7UCdOR7Z)pSfhr$M8yat~z3hzl za$2G9om)HY;BV&V3ZY2Ri@sFK2bC`uKQ#Pj@Vl--r|`YKn3>K>L5aMPeaXu0Zi$N5 z;en=Sz=iY$1fuDwKi~qMA;&#?ZH3qsDQ{W(%LGzq(#*m9uFrdkW+^?uWpDt)mVgJ8 z1Lm={>aFp>QGjA@ahZQ?u<%kQrKf)bWC9bw{j=T!w5@Ky21T2qe?<0k!s#T-EaSxr zF(?z7OB9afWaJYiJ?o79EV&o#AUl~v9g{zll~Zy3%&yEJn`;ob`Ka7-v8PMUkkgly&FV$KZ}QsPDZRF^uxR8pAfq>gRgh6!h|99MbCOvgo5@XJ$3M^ zVRXatBgPc(0>XOXv85&rWT{w1T4we}hvdvahhoT-7)ps4iYkt3vWy%#N6gQ~_d9;@ z*e?kMW@>~($kYuXr@SOudeT?(IZbyOpSCspRgqV(e5TKukh&J}rS!2buY8Og&9YYn zM?5<`3aUB7-j=QU1T)ALc4){F;pn|E2^=!L9%WM>?ZE*32f`(|Rn&*b(1!>@27TC$ znTqOS${gCn*}!i7HlrPX1Y9Yo@uJd9GDdF26XkV;$d!oZ9PbsD zEBjd-?z5T9W&SoU!WlU=8->V-*>9TLK4^;+^r0At5^Y3^UXtLnc%ze+xsQFF8$XBopBd5#Ho41 zFaOiSYrZ^UWMclMMf@N))r&(bMVqk6MNG_deG^?SOhe$!-v<2O&rv1+R4VT|jP{b( z=CM=8oVgNU%ab4>9|E`(UF@T?A-LytArQi?k2Yg!G&IsVy5@PTb-7rd7HD#q8% z9*1CViP9VgzTgAozd6PAXid=fU2faXXkRTxQdn!>29$6+Bg8@k5uu3qr z{0$%k7u!5=z!>9~h=_*Ox6gyKaP+{k+1CM<$#=FoPlU@GrYBLQ(i-c>?@BI6sZI>d z(hH^}CCjLJy`qS4JSWUOgeb+C+h-M-LJk}5Yk(PkDk zxGG~G#UD8KHW-xApb{m2n~fU}IyX>6U|?Y516AZyDV7ed_rk)(^53e0xqpuN??fQ8 zRpBrlh32=cK#Z;Pvjbj`<&no4w<3UoQ~XsOj`CB2dKW`2%$;cmnR{aCrJ4_n@F9+o z2+z^2&M>0uHyOUCzuNT{UcWkNRlJrXW(IxIYJl*$25hmqBxvwLIxYS+j)fGoSfKM0 zZIED<@2OLR$-&$RLE~s=fNyVZm)KMhctlgARFi zd1|KTVmUy@B18o#iwdQ;Rjx-mQ2P`Z4FO6O>m6WJERMED8wB7tpwO5F3PK(K4q!U~ zq;Uz#PM{8xqxmCM6kSvdw0$<-;RHB_1Si~jN9iDA*c{FwXxaKL2rO_kg*2>R2m!aH zc;5g|eW@&0vYFKS)_|(5Ypp-z?9D$I*PxT13-OIo-)UEOH}bgu-MmUo8W*&P0c7l% zw_*aqEPB$Q64dpzKlQ$>2qSWZlcdTK0mf|cljFfHv6S2fj01w3kF+~+P=Cyh@_bQ> z!mVi5Yg|e9ulkR82@fqFl<1X>efs$8Hzud$i+5+VKmExF{j&aUqDY1X<_>DP1|J)$ z;k&R zlX{f6=>*~+Y_b8CN^&}Hx+?pJn%kvJ@D<@&_ni}YeYw*WSAG+ygfIMdIU-AJN(X> z#H7aCf@9l3AU4gj(;v;s(Ue`#u{|4W_j6#l(wGYh3pFrfKZcb}gO&G$;p}s5Nby9y z8O$Rg@VYXm)=5pt-o3W9Q~BrZF?l#xuTMX~1Mz-*3){osz_b#1#6jwJABk}DDe@mO zF9iP3U2^L-cz9v9>KAbjqrkiR=M}ursAB6l(+p2`c6KP=EL?W49YE-?&d$z$kB&-! z;d%qVM;HANvCB!1*=@gUQ_$h0OlZnxbWWY!ueqKB+8}MFw0Jk|$IP{(5L{}r67+v{ z$?X|Pdh7MKD9};6SZpkx%{uO~>xbk>DA89RoIbC0or&+deQf!~*4#{p6)*Gl+=;4$ z-CRm-E~u`G^Gnvd-DxUm%sVh#e75AavIY2L^|VK5m5?Ye@Rq!WfA}{ zWs5e)LtnDz=h7zCUs9DZH`K=jT?5#*8TZEOy@vZNmO?O6en{!hl+U+6=est`{OjX9 zwc!$&HcxOWhid~#fZk8s*MQN$A21-t~0?_W0NvZocy*hFRL>=_nzM`5EJg&5#GgA zNKJn61y~}eE(nC0qM*8!(6s$TWkMC z>}7YcIFrzE+&{mM|j5`FI`iLkHJQ|0eo)mOVSufqxZ{wbaC z671@JiaL!AW?_?SkNfV533;Ul?N**7%be5);^K*ak9uCYn!Y)bp8Nvj9Yr-Y zJTD13O(;zqL$_nTQodT2yThasyWHowU8Rx;iNw!R6yR0&PR~rk$XZd;{AOp6$Me_K z5S228>Jfb_F*O54w>kJ|^8M^*7o2UeVY>R^piNZE>gw04Yr#Iq*Q+kJvTf4@Gl%mzoZr#Ie){yVQU_9YmJr(+fsQy)*D z)%^S#_9bCx?m#o=s1Pp;&5>cpKkC56FZBFd5_E6Lzo3oy*f6VfBEC(2#Ni(XQY5}P2ERG!?=ARux_u#C!&j|??PG3d&zf2G?yBX(UB9*0 zH;51TKH5sXhZHkGiUuqcG62|0)0{`7Qnq!dCr`hJsOv7BrBj@^w}l)PmFxB?1H ziC<<#IJ&&vk-NmLX9nYJ2^&{}UC*S=zC&ldCCdX?D zP*KJt%Or?%e)Ieb^*Vr7o=SQ=Y*7mA&l?Ij<+xY%+h^JQ<%$L=tV@eATe?z?uYWOa8nqwgccGD8e!@dRgD2%4=!JwLCnNW$U@ zxdljn85Led8wnz4g5+Vq)^nf@DKsM!=To9@wT8u|J(7rWejcaiVPR(C5V2KolU7LA z@KK!JcB7C;EK_ejf*CTlP(}QQaW%-;%Hz#uzJl4qXRc6errh+myIQc-=+npG3`*2E z8QWNAh^0~|G11gXq3gqef1mq~)>>py;7axS%AaHoTSpSY;xd1k$F2Ied#@lyYKKnT z{fweFznf4D%i5L~`NWR2?rIT>&GltPtvnOd-Q~0Z>+W=O00$xr7<&_d{es;Y`uh}@ z5tkr~sB%F#+&%ra$-%{x=`8}aQ$q9a;i0c9yh4}r^QeK}{b+?GW4@SNM~UR93FoM_ z6@L$t`jTK@A-1_HHPu)aO@kqiwah~D+@|?YZz_M7iczSQM6mO=%PW!#pky+hcHvJr zmZe7irq@}^jKUOC??8H+&vwW%GI`Od7!4P5U_#CfccxG{m;gNb zH+*$>^{!5%P1uU=&5^@u2AM2><$A8Mo%~js9ZKANQ2=Fx|I~xWUX!Cz`zrla1000W zChYyj!{)=;#;fuJ+xqI)%!CO~f>@?MJbc>(lKgJJ5M?xnJt=pC)bcq#+onyCsI6l%kYke{Q>TVnwQ5`4}&;=$ZZXv|O37_t2Tn z*b3uF-)4ln{f^iA#qsgdnY!>=qJ*}G_6_qL-;dTh48yu-*jk0*$fRK{K(hj3W0n&YFFQK z2iNy`ya($$HjyX_#Et_Q!?x1h^s6XhzEU*W>Fq1Lm>d3=hFMQU+To1#&iyY)8LsS? zV-;lIAbkk)3wd&T^1BgEd-FtsF)Rlwx2YrXSm|f46fU}T;RG?WyAA#()Pb=mh*9?n z)^e`3v>c;J`DQb%@RkzcZ(`Mp$)1Q?=ZmbxQ9nCF&8BrYU_-^W8U8re0+vq&Vepr1$GKGcs+VG(F zjQMJRoI||MQyLP#>l9aW8TcA_OyQX`IXP(r5R+3=YEW|;FG;Sr$ z3Cj3bh)v5FR%NYx~v5$DR*0;AJGcc@E6;x57-t@qCT+US#y7enS2e@{%SB-SKjuTeu-ZYh&y3aV<}PpSv=efi7f zzq;PbrREHBHtgsY*khLUkjj>p+H@?sGq}ADrUtlR^Jd{ z7I+^aZr6~64H%pT_K5nplAXAdRb}#OiNk=#1NOebh>9HZ3kmcwISXLhz zA5Y3i`2Kn!emYv@NYtc1U#(^K+aFlw(u{~$P^Ynz=k3B~_(ECFtavB6&mWC^C;JmV z15J61Nx*Su?)8uT78F~X`e`kRG_DeI`Cuc@v^}D+EqZ51o?Et59!^!=?q>S+K-SA# z{vnTGo|n$7*%Oeu;tAL@t1}R4(pLzzV^}a)Pzfsbo^vIdJanIJwb-3K*OqR-zB^$S2g@E@CFH%Q-A5}Qll&7 zzOh=fq2Z|yzT!XBDEp2ULJQK&?$Iz5iz1(Lf95P9y)X`{K`sk&#TC}Q4ZE(<=f_F29 zaAif2IJqQ&u!pN?@((+iqGOp?BL(1w7&SG})LeGu1MTeXE3Y!nzH+mvXCvtO`HnEUvSZ3#7={H&Pe|2Q$F>t7%`z=isRXJ-{4t-vveXQy1N z-?F~MEIY`^EZz6V5E5o3~C(*%v2 z4AB-=*G9G*DA}9O7A>AD^e6ZBBI(YYu3r{s(f-^K_~KhVl@Y+BH%Annl;?Y*+9mQU zDt=YxuxPuAaC>TVZ(QER<5nz7R&1*!_{&+bHIE#4nYK&?)o{Ed0~jBZ3TD)zqJ^HCCId8FT8&-?xWHB)Mn2eTBxY)dkE7x( z6uvXp`j#wZqf^eKnG!*5k+|x6=i^O$V_R@7{r57Mn3yEOgLY>vn!zvr-V?$87uXO= zuu%fY>7u(Q+&0a&L;1E&iPnGvZl@KlFCR%9hN36A3lpkdFmeb@+jkqA4RK%L>GvGw z@z-zVEO|s~N@)8IicRzpTknq(H|HS^Yi9^(i|S65i{mt+@5)E&*l^T9{t#ZHj=_)B z;L*RS(_h5TQsJRKXG`WHYz${&tCAU@$s3R3+q^uwuj+1|80I4kQkec2sJ%u&X%H{_ z!TzpuJ&Tx+HRt-|`@lB`h9@k30bW_Bqwu#UV-AWtSrd=KYp#)HX?|bRFvrO0C|?Q* zwf;EcSm7cH@OKUJ(^OTdpfn2Eu16nEfaOh_?y6|(e`T@}lwcK9*46)_|KmsnX4Q?O zSlAg}c?5FH+ISj#doj=$5CjASyyCJ;A3OtY1ybNr=m+RMdR_5^ey|!&BtM!sJS?BF z4fUZ#&{bc*rJ;M#^AGJ$%V-ZAMqZ1!OZm`&%0%CVFYh%@NA#`1!3-&pLvb%tTJb*J z&6~f=1p;6<@;yH0>pMXc$mWXN{+*`g*Y~L1r-eNLb?d;h#ddeH%hK_5Fw-d^8WK$J z+{e%Zo|wx~%iIa>D9=_;WDos2LhEgpCu6>VQSqFARX@+&*iCF_ZzMj9lE0O2^~j5< zi@7M%jsUqi8zGyRs5iOoKo%&(jZf&HD;{WxI5^$fizP^-$MQOe+H{evP*ybh9?Y}> z4}%ro)p(27_>~ZMcH@;}3rjEM&PSi978G$zy{> z2L0qUJMA!G9U0j4hlV~OSJpojFG`nYtL5J692J=dA(jW#I!8E78}G)F8HyL_-yZGd zz3*#g+g`CLOE4;Au_}QJ)agz=`CqwY<0Lu~@ z7A6Ab5Y?j$p-MsB1~E@hPqVV(^W^L}a!(N09dX7l-m7GCrIUzbfcP64OSstXYot)M z@k1XL;9*q9?B{y};GidDb*^^ks5q!+?h~0U7d>N|VSPKeG6*_9Yy+S{`OjMT;plY3 zoW8D7Y!R%gheIcDOcS^V*B4KnV=Ky)PWh6GhDFye#JIJ2N*IweGhY*cNRj$@M8As2 z<4jDA?(Nz|8m8PgIfvqBa?@?Ip96!);4TCEf)2q)4xPWB!nh7PZa-kpYKlydZpFF} z*sNX;ZDoa2PBgK1UEiw0N9iQzS-E16$P$?w7(6FY(5yqw<1PXp7j>gyy(NvVYl)Lx zDg3H=hGbRGurNZo$bNWcthb+udrepfFr|lJcI`y4=9_Q-Y>{3gIddDaHg+C`gG|!O zZ0*6A$7*nv6sF@T7K-}N^i+z6{^IqueTP8)E@G(7{IV;~vcCG1U70q8!?VS$hqjS( zjpaGWa_W>R;T*cTeR30kZSa{cOhWbqrC_KP)BAjYmcAc~se`(6ntXH{b-8!pz_Vo+ zWqBO`v!1_#3vc)QuulKWy`sn@u8+Q(4=C*oMo2bin3&3 z?z7K*--7PAz2-g3XD=^^aBnt}8aspW8a*-U8HfET1qO1%yJ|Dl zSRU=xkW}>;C$?;JNm^K+@b&^1JsZ!Fp7o|@7)YkR4w7(i99d)FMf5ZCi|aG- zu7=sV?A#f;#5Mw|T`$_YU#X%eIh`{|b(f^!2V6a?%8hY@A3v#RbzBKNupH(7a$eK- z6HTgGD=ve$Mwtc{M&^e&?zXup6;vo!&FW5EtFROx`;s|o*iQA#kUmZvT|JkLM+U4j zToVuwJ_>yc*T;C{$I$TYu&62XGigstxqnQrF79MRK@##EkT8Vtw7d3_m~F-#{AFGKUqwldm$Yn|U3 zmvSzt1i7ibRLa&jQ;D1Ug-T0pRcCwKfLPDZLe^KxVP)aZrDGre^uN5 z_1l;ccz36Azwa)Hm!}7hYaoFHryW*!-u@je8_L^SRkwU?a+a-T%9TJ2!_Y0r-)u-4M_6jR8DUm?IPYg;Y=n1ML z7AK-Q8l)I<7{cvDEXUgh%AoZyhyqcw;^f00iIdg45mqg2-k*I1n|-JyrpXWb_- z?qe6W?k#n{rt8)zSXR96yL&ld=1V5-wTSweqoF4@=h;%9U@y~vW*345hdecX@8R#ylK8`kwc@dt@rj(sTt0&<6jPxmoVH;2jpN z^lb0V`4#x)jpFYwFTY_Wk%YW(MW50r9UUAB42wao5NHmD;X^FeXZO^q+lB9l zc*0QCRSYVLu}Vm85xy%hqL-H5c1w@`6IN7xbjLZc|E=8x@zjg#g5-5?35nO;aX@>s z0NVvyOzIhu^qit2{TVK9AZ(6f4pOHx<|s;##tfOt5c1B*R&iQdMAJb~Sy4aBzV;pJ zMGXv2^SrS>)$Zjwo?qwO3^lIE+CG=}_TS?G!3@+H$G3O9I3mIZF`cbNh$KPHLEuQm zZ;!cNjOQ!Q*#z${l-{bn^GwR#+1_6Nf+^SqLMjYJ#jzU0)9{ah3SwKzRX=?$$1Rgz zr5NpuWZYcN7Omgz8c(>VUg6q*^301bgJf8{{akAeVIb)rb#u+FkY950VV%4AD}lCH z(lUQpLSAHK{4wC$BAQmJ&U$;s$=b)7ZR0GKh@x`Zr{fDQQZxRa6RnaHt-kiXf>C{^ z0{i!n=yTE_<>frEmwE8Jo@t3HDKAUD=7$k*1s^td2Cb5B9`L`K2B{1OMZIsm_9wAkhX zX^#frmxpn8Tm$?2nE87Rj|SC0YJ$h>G~Ql!4BiWFe2h#sZ@8{`Hn$t7kI!?_X?BA} zPOv{ifD~Bt^XK=!PD={;w>bZ$ zM6#ZYO)J}oxlU#*WEkG~@nhXdqHbl9pOBHf%zd^RRu5N3M|YabN^bxkBJ0_> z7^E~0In;m?JYkAl#;Wfea>+iGAlmlXgqZs z$&HtAi-&O?WkeS@kyeByjFSsi2HW=&49(Jw{*ik( zt2Zpz7|*_XdO81oH}b_*>mDyj{td~%n-Whtw#of7GPTAprhD0f{<(*X)je5}!K z?3H&)d}l#r$CF(C=mnKF1>lt5K^v76(z#)Pat4U1O474{4;L3evtwR>(4+T7KLrmv z;q{-Bp4MQlZXYbPa);w&!jrir*z?y$7rHS`PQ$IxAmyP_+2Z&!FV|DY`A4R$Feof&o>Lv< zimLO*FhDv%?DsMjl^G4p@0C3x;U1W#G+%fXJ}!Gd%uml;A}Lq6 zN}HQwud^Hpw6t{FeE;mrE3dRTxcp1!ryiDTQYTZ75@N&(kgMN7U6e6+Q{5!AFakUt z79Vp~-oLj}>L8Y^sFyK#tE5CPtB>%cuKYc{Q-*3!Jt{&57w(_n`ROR0cXtr9U+^hnudRLXCH>^R^&9%&iuEa+P~NHS(Km1#-A}-e|?}foB0<@cCc%$w?zw z6h4RY$)6>NzsVn1<%Nz1QUAFw3gTww`KuxNl+`pF!GmW>bE>+h_f?duUJ1*WRvdgr zme&c??S}dLzVAJfIRX!^SvU*Tju8T z+OZ14{w&?VO!39oc+a2iv5}m64|aK$9c$^^(b?5_9t%fs;Pu?_H{65`Lz>t9<4Hte z<}iHAFc3y>cib984Y7X}1-4!05qwDeye?slg_xf95jMrQ6-L6vXy0Ov=XJ2uW(DZk&t4Yu`^ zH_t)sH-nXzZ_jP+eDYpaikRRNFssM8X>VU2)U*e@ zei8um48F!Y{q}UXp~U@(G7BA>>4f#xhiL>*Wv#xHd-^>Dj3D(hmlq?3b4#_s3G+M@ zqDI=~h4a;R_bZZib`s4Mf9#wI7=695%l)n^9T+vgsfEATQu6aPZzK_us%@fSAcjZn=hzfflaYqHa>{&vtwnXeJ(su7 zJBpO_#&#|TToc*L>8?m0wW-j=eLlV!ZR>Y;KEX0I6YTcLgB(^5CDgjky zp4|?Gj`g$Nx*ti{1ToCFckp?cAAB;t_WWc&6l%bF*8cN?ovSVE(gO2*r$nd|12UVD zg!aZSpguRX@~V4wWpE}gGwrc$>Z1JFTYu{|RiA8i%qK{6^%*TKG)MVj0vy?Ld#pp= z2R|gu!cvm^k~zQnZ?g_kvDtumg3%wnV^6VCYoQ1=lR_PMV4!xQLZ9#dj$Yl?5!3GR z@@qpxZzj^#cqin@*F5j zmP*WMC}+>QKN@8(G;AT;<#A@?+J=nLzb~4SmFw)yqzVoM;!K7+S`f{D&kkRJjd?5? z*00e25XhNhASD%w6)oS{u71>V^eD)vNfIm^tG)=%cKGGxXGquKTy0EdW|Yv=4IG#Z z?*|GXO7Z`=Fiic4X1TgFVGLm)f;{KQ5To%5k@ees{OP`a6l(TQxs#XNHzHv>!QxC} zKayNqQ=<8v2#wPHM1R0BI+Dzfu&)p|!$0z}Xz+0I9(%nx_JVZj(nQ@9UvRzhI416r z3MNGq!nzJD@{R>mcTZ2Ks0;!Dv)Isk5vnBx*leXnJN^G2yj)Es2?OJgRaSC+1a0); zX+MwbV{hq}f7|F5zs`nzs|$iNQquWzRMA{=&^ znzBd)Edoo(P(Cc{_=xm{^D=JQwmD_wq2@{Q%L zbWGeY0emJyU_${u1QotzAlKAub5{-r;A?=s#>3)xU)t-e@l3NT1M_<{&hFrCZs{9N zZjFce)oVXX>SSZx{sLAu&h8k4eQ8^fxeoKu^=fG@Uro9^E6e7SUq6o)f4R3Y339S= zig1~LbNSr%>tj;^tpcc}gkkt5JS~T_HC82Eda6fKA-Cu;_XE+^bd-?$DTIcGBoIo0 z7n^^_&e;Phq!5UZ%dPZQdO=C`4fn0bsBC0}RF*r}K{N-sGGO+jLb|$h1Tn4_zji(l z{1n4FHHrJ#w{HG#Nn_n5Q^+qAY|6p%g$}LB%D3k^32MfapFbSrNWLT{LG@dCca#6T zQdRZ2>%RR1hr#{gc3&|Ap30D+)#MN*4 z9P{7R#8Vu2o2*HW?bJ-u>Mwt^ITSs(b$!^;_*XJV3Wdy_cmsM@R^R!P^Pz96Z4 zU-~20(oW~xCL;XM56PAbA$$zg*UtidF+>{@m97`=sELB(ffA^_sEmnXQ zcLBY_p!59?w--KS)Lf7i9?8n zW5QlOn87}XM@F`PMmxOuS7*l9X2)PZb6d2vQq98-l>6gOf;Z|rmwOxKmuFf?MQP_i z4upZh`?MR;i~#CIqbSYC9TlOSoVT&1fh74d&)AUIy!Q~9z^y6W{cOHO%3POBJ}Xy@935mYP_1|rtHd{l?epI}pBUbfA+AMjF53di#7LSHS$BI;81 zkkevu!ar^MMoe8PGIit)`$v@Gu~}Z|KdYI&cbN25V0@YI>C4LV9xwc)Kk|Rn=<0+4 zk=ANA^?_ZHe?w8+n_O_ovdCO9h!=bVvQnc0GE}-cm{YGgiwL5f|0}2(ob~*dSt0s{ z4Qcv^jj>=Z6a! zL}}>9fQPi}HW`hMMnL@egRp6SrB_Rf1?T-l_H=Nly14;;W_{^A&a5CAcs2{QrhzdD z6F@w?0fq_&0%~X+^%A0ss(N<@R6gNZxBxNcJ5di^ej0(X#s zbi6q=cEq@YQX_%+?}tvk%zsy(P&Kg?50#4ZMbpU8%M2=HPbn!RVCe`1DHmhV&hfvL z3y>#GG}!9??`f&x_;6mx`BTp_CO>5x6+VhdJDRmg}yJfwGU`jWQ&Q(D;__n zU!+S8-7SdwWEc*N2T<$LD}Hy@*w|PI1e#?7%>Mk+|2UzL1YHiH{Yew3u8z&u`4O(+w0SKVz$Bz_1{sf$i zP`?Y178>20uKn+vz(ZKyF+U)AZ78>3P?A%`CW06f-12L{YYLz^`9(!}z(DQ(cr`Q8 z;o~)&&ZGLjUpVF6z@ach4ou!_rl=NfTRDv_yHWC7xJ<2j}a^#Sl5Cq^puov zP)|6ndU05EbU)~h!~|bjT3XqFwgJ^(IypJ14K6i1BZ7+#jAY;ej_^C-S+{Gr!;9_0NWLn@%hTgRG)w!T3EW_jy= z;3EdgL`1q$C1+qu0h)BElm=?e1tvdM&r3^wzb6vlseSZ{AcIUI1>x_~#}I~X?s zzEsf84Qz@ae?K`nULZ>VblmH}fZF7FMGve%MrLL~;97@+fd2d-;5#t_HV>^vyVuZD z18qfx{wUzAzW>l61YHQ}Q%pG6`4z_KTHm}>##1SQUs_%!1-V1;2c4KxO?na!1!3~f zpLgcN$ufu~(%|MC2ma2p=At56U{Vbv^LtR18}Iq~)8TAgoQjI7tFI3MQe`@T{q^ft zqo;@4s_JT}Gc+b4AqXlo0qz)}1ctuTL=fo#2cif~oH1Z8IygJ`0Qmwc#Bwqpc{H8p z3m`MHi$FbolL4cV8K?azU!B?|AlJZ8_oz_<{|Hp}!1VKq$B7Cm8;4F_?*QK((70mw z`8|X8Sq?f;5=igCWC9r72?I@-@CXRxe0;>9rySZ*4Hhu4r2+mT^+DkMh6CNXK+Pcx zz6*>tr7D_W-GhpMfO0rFHMO)aHX|bv%;KGS=;)-zuh4_VYl7kEafW{|0|+DcT4ktr zySuv~5OCep*{>Lw9uu?$Q_;|bn*l$P`XFu_ z4S1*m0|`;(#^&bNwl;o#--lN~TC5Ub0bIx|pPmGuzpJbwvAp@ledqSxy{uW5u0Y)? zIYnA5pMXl6iuuhOVYyN8Lt_#X3(wU_!99x~GLm%Z0^-Jm8L0dcJi|r7I{MCf>TQB^ z>h>>!EcX9b+?9t@*}dymNQNYeOc^R=NF`*bM23>`(I#VLXfPB-sU#^8719<(8B1g? zLWT%Mkv@fp*a@YgB%h>nuZ{1V-}!y#zjLm$udB<@w%>QHcdh5SpZj^%bK5;IdN{+g zXZiLf#CqXZugdu?Sv<(Q0+))Q-Fe2XdA8bJExmG6aB%XXC(@q6!otxS-f|P;-;8l6 zAw3Qq%&hEOF~9|C9`?7LLq>c$aT(-B2Y>vi`91MNi+&JIQ=vCaQy)QP+`IShL)LZU zHx37mor1a$wJh)axpSP5n9f|KUucu5)e&tXx9{kf-YZtVJdWxc;=ZTGYPwx1aj&)f670t~;2?+@+l}yF?-hTNK z1|=#6Bx$-=4x>8;be~7Z#zLIe{~F%@?%g}+`5GxOy1S)2W|3RID6UD%6c-ensimbA z$NP~f9r<>UZcxMv$s_(tJf5BC*G6sxgxbSLkJz$GMnrbk$DV`Mr#*6yrnH3j5bN%1 zx-9_l0J3ZuP}tgJWJK%l|NQ!%{8d%=5HvpPLOesdkl!?l2_W*h)zvd8BCv;h!$y%* zROE#gPE`Oq_oMmkEcRHF_fPy(B_dXUhFuUQdWgQHtDrz7^tA-fX|74D#;fMc?Lon* zY2k~tjW=&T6%@olmE%+4#xHlO{mP0YG29sd|d2aL|+cGX^@8)(M$5Baq z4+*q#e-_r~kVEzqRi(1;-P7~&QTyCc!j0+h9qkGtDqy&e#ZlNHM2ws`Q*ufHY7SNC zF@L{GgsdCh?_W*qQVW!49Ki-%xAY0$5m-Oyf+fKQ5#=GWdT?B0rsm-R|G2m~7+a`r zY6D}&^guW~8y{v`2d{VK=prd-DZ#?`a59Cqc1mt%RFvNQxVb;oF7K*&mi)d5J85ZK zf>9woP9(Mc$6wY#IF|*wDkz9paKrcOxhdavdoQC)a{YSo8;Q)dEQK0)97#}E&kJ=M zSWgmKHKp&E1HHLv^pKcek}~R39c97e!nj$vH#k_1U=1~BXWcIxnzNWpJjR;8cneei z4xz*%Sy@iQ6w{t|WN1>-nAj>f_^~7$;|hyx3W74akad6i?p<>3;7p+|f@Z-dUkGB| z_NIIMkhBsH+->KHAL68!Q---2bLm|&H2z{`wY0C@nF&hL?~4ixga6?*wFx2nWRq*Y z;LRSt*)>P_BT6qV*8UAdHB>oAYm=ueG3L@4FYiWtB-`l8CZ$IwYA?(7wdO6w+6lsm zjEW}O_igVHz$Q;g;sqMJYYutVeiKu(i0M~cAf0H4Pn6K|Tgxl1K}7p#Sv%vnE6Jc6 zx9nQ7VqERobyDmQoTiNGY5>LA1ff6?JLSF@d6P+@Ub`<(!H4}tyr+XxD;CF`CfYS%f0I0N1G)+s_{!F)cz6v-d1r z-Akz+bBZ9vm$|cq3r*LdICZ7y$5BH=L%sCLPoSrluxBnw`KZBzsY~|=n0U6Pv;6gI zD_~`NqKN)K6%V zUXOI*Ey~GR1&G*m5rsdMPz{>`L&|A(l~%sv?>gBThKpDY{P-jMFd8AYXGa$0<>e9V zH%X4@ioDD(;FG9%WBhX0Vq9_iZTDAr;4>+J4sv)Esa=`t+n3E#J2t!w>d!WXvzX|~ zaF-LUWzkNZGCV~3A8@bN4wSNlcb+cAL05X$0JO~@G+qN?W_ckgGPe;?6Cp*R&7!ZK zlW`Hy@C%}Clt0#t8=7X1jEr1j(<8&9%?-**%?iagW}B2aenA{g?n$9e!Um}STwi-s zdJ4SVy%a^i^^p(z%?Oyb`_Vazl4C0VC^$wNZUaB%s3Ib#khArzF9)8hH&XS|Yb61%&mQ6qy4ZMzXo9LBP<`dPu0=pD2c369i~4IW#s{d`zC7IypX`Bv9DrcTqHu=_j6I3>T1n2Yqlb`>iqln`*y>| zJ(WFLry|TWid9n|U;XJFis%``V$7B1H+3&>&sz$mklU@jFnPP!s|)QXjS(y+$K+jL z2lun!@?^{_4{z;Tw!XgB%=U>bX}g%*J9VcI_jbFXPcPhO&iV7j#5|F-I9@X=AE&PT zxiEk1GKuHpv?f0Y|8Z=J$q-(Q(4IL(iqlh+vito9c%{UHtAg3q0fsNPy6bNw0}-(E zwS`Es#6$itJ2y7~s7}Tx+CMf{jQ&sIRn%W=|1G@IJ84aBipDZKE)8sobRrinaRN}x z!_(756Q@a^gZU=W6o6hOJW0;cZ@WQ+TPj3GMV(c&Eh6y>b_D5Lk>fMupkP}>Q#gbZ z{|K5`3Dm2uJ_utXLlBJT|CllW}&@;@*|(1;Mr%_);Pi; z%Jo+K9S{X`jw1>{K}`TaDZzb28`j)h(C^px9YB8wPrBfrEsDHk0khbUbw$6s3Y#m@66LHyx-vW_|0kov8$*+X8?A}FjAncJT(_vZA(VAn>{Fci(D z15;8`UjH>2``jMR1eG!s`Z&b+`%}0mUFpY{P6J=x2NpN+cDZI=F0P80)qBFP)fH|f zpFftIaqIM`TEAr!^AX>WyB5zK;2$2&hk#)w&ZmmhA&9AX@?>*QG(=?)ctNk;!XYN0 z*O~sLuC9_%6Q=SCFz>?MyUIABN6g%i+f(ix2g*iP+7b?j9@ephAb_(*GVXv7OpB#VeJ~%{vsn_20T7 zy>uxDe5!*m(Y-4!4t0j-N-#ZXVX**$t@bW1TwC8AEPVZpl{s_jBI=fm+R8ntjPSB; zCPT};&IJ!gbjLEI%R4L`>=c7qT z4G!XV_4Wo4>LF5QtEuqy&rn6iFB#AP-P@SRPLzWI^E^XU$avS8RTjOAIKL!A3iitN z*qTQriHMa|cx?}YApl3b|7r!AZ^cpk69T$ZkXKf@E41O*=CPfs(t_AXiPcey^{vo1|#`j?Ko zb}Ote_0gI=pu03NZQ8coy>N@4kaZE}(-wV;&!vQ~vDaWBOQ$X5r;1<7!~iDG|99h< zT)N!W8y{d&IDMf-bfwRC~ z)6fA2Kh44xRoC`Ch!*AvFny%bCe`;y+cZ735!Z+2qxjUg!(G~}gTwZ?m&KEC==Ic2Zy*_H3GP}w;v8$B26>N-14-P*^;FAXUF!O+bb7va*}rhSfh z@x&%V)X~pPxkv@ar17JDmW75x(LBsM6PUU)3tscx%(&Wh`a-hw0OHMGh)lmDOU0v! zfN!hmi>7-n7iG?+%G5xzi&VW|{L5SF^7K{yf5 z#`LrwW;8M#`9D0QfApFW+M?~Rw)PaBPronlpUyBNXvgyZ`ly|rw~H?)&-XtUNM6)6 z;{2rlzOwnVc3m=I`=&94vg4vmE(2XN*2!5Q+W_@GOc>GOI$Nx&W`JPbY1h9q(n^)g zVye;KPoQM%U!TC*L))1wH9CV#y7@tkS4R|zQTlUndhygCUqPEcJsHi_mD;{{XdhPc zNhg{{_i0dMUnB}W%egA7u_lvKz){#uVRUYE@UXz|$tdYzBq9p&7s$Ne!G~;YpJHK$ zsec;+g4Q`xmjRo{I(g3++yB>FWr}#;nxV%gCAob0)*5&t@`{+p^|d&_H!C+fzHBi( zI4jk3d%MBk|9ct!eWtZ_o1vY7%qIGW?YBX7f9@=s3)WTTH`=+0{=yeyHzD$6>LMP3iy2%Q`>%YyUF6?{W?q>luip}23 zXgqEDCv)6~h1&GBa%{<$sh>`oz0B{L1imnn$NbkZ7Yg&+{|P!$_Gs|}qSU{zP#q-q zP=nU*K8<9#9#BnvFVlrk1R)vuB-_1BmHrJH zb_+coIrj4>!Drn^^F#fJOgxenGTUO8Ep%+_t4I8WqZYJM#DrDf+(h3L9r?2GEU$P7 zJZt5P7yN*%8)&r4KG#1bi9%-FrECqNIq0CXmmhAVgStiPLI6~5c6PQusBz>QSW`@8 zqmDYa>BsNr0Pti-pXx3YnF=C+T;@C6Xn1c$k2p`A|{xu*hEG+!W zm8DVruQINoQP+}KHBTKi&+aqi`v>1&S$F@1+k9A8w*?INyu_rWK=j$i8q_0)S}bH# zRLsD#@IxAW8Pw#sKlcBK#uY4JV=~9UGfiJ^_J6$VqGmXD@)vK$Q|E ztEKcrakgu-Vi!n)3Lw}sz|6FjDk}4l&tTKGFYY^yMoXNSHywbpz_9gWo7UFnH^y1! z?dE)TRYd?mNz!i#gy(x(Rg2JQNxCV+ddDnI&biWy76pPC<-~Ctp-j6n#i(6B`}9ps zFV%iA^6|M(Z2(IgE;-9h$Tnupf$M*i9P{4QTOU_}`8$JhX-@QQ6Da*PVx99e{k5vm z^UZtzym^6ylypZlF%!ILd?Pa{I4!@Mv&i)JJUsS5y->k(H3&P|tgWp{Rw6)hRt372 zkVm(RQGLN728laPeSQ53Xq>Za^PNG4hKo8Axzsqs8Rn9WssOLZuKl>o#2%vc?Zroo z6}};%#C@>P1`XHdvuP7TTMEevE=x;GhZtl4xfB%@159sU9$cDm60{FKA!3mM=Buqw z6smr^aQ|*X>jno}S0`wno~eTo^YQUX%JgBvp;#OBmcd9G5^K{h0N#`F8feLR^vzA; z*HEK@1Sf#30Bls7UJwKYWY3GKoAy|AmYxU%mBVXBlxGhB5)`YB7Lv#rPmH+ z+7^R(5zq*!&2BI9=0?&&PRkLjDt6k?9x;eS12WTj*WE>t z5wM<|GieY9UOkGFi%aM5;e55Hia4%@mOXOEb!Gw`gC-9S3%fGG5pQ6+eLD*U^$Q9X zQYYaLdrYnmv>=ddZdE*HkC71Cvcvb=RyqS?Ek6871jgkpa3e5&H?}hVt|jC z{gr@@*ks3B<-47`adN_PZNo_89CdYdlJe5OD8?CMRDHNHfiU9br&vkiiF(^!cu4K= zz=C7LeJpQZPQ>jBmsSxT(pE){d{2fxcC90lJTAQ$%1b1e$4A-@kR-d`#9w<5T_v9QIkIWnw%u)gEwBkg z3{(kW36M8bpBFyODIi0%%2~@h#ZTnG;1anEKzgc0u}IndwK9*0@+_?Iv$t={l4(It zI)~@++SJZZ`Kuy^U1-ivoRsLj0g|cWNwv2hH{ACT-rAG0Y|(ged7xCmU-vy39uwn7 z#WW8aeZt~eBckGRCOUcnxdh>R(Jbwvn7Z`!J;e`vLE?}0C50jKoq6ccH~zXDcQ4W) zvD@*$fdivIens%y;uY6{HhC3Ub4sgMZ$x^BL@wB;6*V;+gsI1VN=!^70V8UvqobqC zkq|PtDE1JU5PJs)Q-=dAn6Nu{?!1L$JtFI&ANn;eFVh0CKhwlqk=gv*UdZbIWzE>z zkxy+cWhb@tFNiEz=vdrWzx0N00H{94x8M@Fi%cU2A!)kuUU73}QEC+ia_zSCJ* zE0E|nyBHJ{l!Vnmb}H&}5Y}4u?1_zxJdK`q!CH>w#*nnUe01Ph z`3RK>5%}Ir7P6s19CH>1JAFl}+|oylyK;=yyge287YH%|mKbHaTmV+{3(~BK^K^BU2OX_P zoafBhBFUcDg0T|0i7O%AZ%v2KMuzHK>@Fb~?=zrF9=5ev<2P}dM+C_me*OHx4M=9* zD$|We69CF|<=*F#QmU%vExFF2_PEJ#YoGBSWxwaUxw{7<9hB~ta|!v3D1te#;m;)D z>@xD@{Pj1qR``zf-wMF=W3R}}n$f0rW1el5Eg$y2GKy`x5DHh|MgrkVxDJ$jk0O4* z)Gp86s~0dd0JeDL$qC;s+Fg*++=aZZgK&P>XVeEgeD-W>w5t2n*XsG9`yrCb z4JnLnRafhLx4FoX2I9eoIPZLkWwed>GsNMN#JjFsy;=ZIX374Idau>tMX3#+udX?85gvV@tzZs7 zY!!e@-HEM%IxI0pGZ!W0e(BZJ)ZDRn;NWeOq-yT0(}>}&v=BnYiCRBCxDhc=tcEui z?Bhmgax|jjE%-7{pm;V41nRtwjt;Q7IvB-ZSCEACx^=b>s&Uki3!gdAUMK)$7KlrTlcR4y?h>0bE8vd~33-yu zWQNkIAzLhORCIUo~PkeA0wEf5yo)tc)}=rMpSV)l&UG|W=mV4MUMZGz3x z&EdAWiQPi64IgIpG{>B746h<&zC1hwZMV&h6C=VT(GN?g?AAhh_UY{0xsZ~Sm**}m zEo~`0v=oLJrHB$F=s~4K(}&~hPmC#3lFG{SP*GJ5Yt!}l^F`D=3&29kId9y!aV|gq zj2NSvFYjR;dId7W?X>$~k~i|PDerH;-*iw<$mSa|^nf-)oxdl9wmF?_|%35s)fik4`$X)^bB_SqEHO~+s96Qi{ZdsQps-HMyWMohiC{Mjb zxrDa8eZ1OYRF+JUWog~06{A3|qnv_nLF^J@Ru0n27wG_9Jv}T_KPtS_b!T}+h0c=3 zX4Su%AHlr%+6*2`G3BHza-BF!|9UTqg)kp(Qy1yWfPjGT$jI%VkA(m!RKj1A6B=Ew|P1+kaP%!+VbJmYifaG^*4}ksE z;m-o&<0ZX5G;zYK^dWRB%*-LRXh2Nc;xte*m{MCv4m=}15bJO_~6`AX(s8cg#2Kjhu;+v#-KKa!20q^47J|I2SZ^_$}<$C&Bst7oezyf*7? K)6LYe5BLv$y7AZm diff --git a/optimal-gap-codes/optimal-gap-codes.csv b/optimal-gap-codes/optimal-gap-codes.csv index 35b7112..4aa773d 100644 --- a/optimal-gap-codes/optimal-gap-codes.csv +++ b/optimal-gap-codes/optimal-gap-codes.csv @@ -1,398 +1,398 @@ precision,bit_size,hash_size,uniform_rice_coefficient,geometric_rice_coefficient,rate,mean_compressed_size,number_of_hashes,number_of_hashes_with_code,extra_hashes -4,4,8,0,1,0.6154,4.6693,8,13,5 -4,5,9,0,1,0.2941,4.4744,5,17,12 -4,5,10,255,255,inf,1669303099380.5703,5,0,0 -4,5,11,255,255,inf,1825991230300.7639,5,0,0 -4,5,12,255,255,inf,2021825992065.3218,5,0,0 -4,5,13,255,255,inf,2268273314767.0430,5,0,0 -4,5,14,255,255,inf,2585087379283.0757,5,0,0 -4,5,15,255,255,inf,3005765582831.9395,5,0,0 -4,5,16,255,255,inf,3590576367561.9229,5,0,0 -4,6,10,0,0,0.2609,4.1126,6,23,17 -4,6,11,255,255,inf,1667517814964.4739,6,0,0 -4,6,12,255,255,inf,1828442772347.9902,6,0,0 -4,6,13,255,255,inf,2027173989229.7458,6,0,0 -4,6,14,255,255,inf,2276250893997.6392,6,0,0 -4,6,15,255,255,inf,2596057219278.2690,6,0,0 -4,6,16,255,255,inf,3020945327076.2065,6,0,0 -5,4,9,0,0,0.2759,4.3406,8,29,21 -5,4,10,255,255,inf,2620509908228.9658,8,0,0 -5,4,11,255,255,inf,2808733379292.4565,8,0,0 -5,4,12,255,255,inf,3031363482353.1265,8,0,0 -5,4,13,255,255,inf,3298191838048.1758,8,0,0 -5,4,14,255,255,inf,3619704967231.3853,8,0,0 -5,4,15,255,255,inf,4012342376010.7778,8,0,0 -5,4,16,255,255,inf,4501347854481.3770,8,0,0 -5,5,10,0,0,0.2632,4.1290,10,38,28 -5,5,11,255,255,inf,2413576622106.3438,10,0,0 -5,5,12,255,255,inf,2605007987800.6987,10,0,0 -5,5,13,255,255,inf,2802409262816.4570,10,0,0 -5,5,14,255,255,inf,3031076079587.8506,10,0,0 -5,5,15,255,255,inf,3301450796069.1934,10,0,0 -5,5,16,255,255,inf,3625505832337.9385,10,0,0 -5,6,11,0,0,0.2553,4.0210,12,47,35 -5,6,12,255,255,inf,2208760529380.6289,12,0,0 -5,6,13,255,255,inf,2412553255391.2168,12,0,0 -5,6,14,255,255,inf,2599883678531.9175,12,0,0 -5,6,15,255,255,inf,2800034376482.3525,12,0,0 -5,6,16,255,255,inf,3030527326580.0420,12,0,0 -6,4,10,0,0,0.2712,4.2806,16,59,43 -6,4,11,255,255,inf,2837878983129.1855,16,0,0 -6,4,12,255,255,inf,3170554201332.1343,16,0,0 -6,4,13,255,255,inf,3502176398020.2759,16,0,0 -6,4,14,255,255,inf,3833085695227.2363,16,0,0 -6,4,15,255,255,inf,4156473227071.7202,16,0,0 -6,4,16,255,255,inf,4480065066813.2158,16,0,0 -6,5,11,0,0,0.2564,4.0753,20,78,58 -6,5,12,7,0,0.6667,10.6614,20,30,10 -6,5,13,255,255,inf,2719532516638.0811,20,0,0 -6,5,14,255,255,inf,2977549041981.5786,20,0,0 -6,5,15,255,255,inf,3233906167158.7427,20,0,0 -6,5,16,255,255,inf,3490539549818.7061,20,0,0 -6,6,12,0,0,0.2500,3.9684,24,96,72 -6,6,13,7,0,0.7273,11.4635,24,33,9 -6,6,14,9,0,0.8000,12.6566,24,30,6 -6,6,15,255,255,inf,2647490392536.3403,24,0,0 -6,6,16,255,255,inf,2859103033866.9849,24,0,0 -7,4,11,1,0,0.2807,4.4723,32,114,82 -7,4,12,6,0,0.6154,9.8240,32,52,20 -7,4,13,7,0,0.6957,10.9642,32,46,14 -7,4,14,8,0,0.7619,12.1023,32,42,10 -7,4,15,9,0,0.8421,13.2383,32,38,6 -7,4,16,10,0,0.9143,14.3732,32,35,3 -7,5,12,1,0,0.2759,4.3884,40,145,105 -7,5,13,7,0,0.6780,10.6765,40,59,19 -7,5,14,8,0,0.7407,11.7855,40,54,14 -7,5,15,9,0,0.8163,12.8919,40,49,9 -7,5,16,10,0,0.8889,13.9977,40,45,5 -7,6,13,1,0,0.2727,4.3562,48,176,128 -7,6,14,7,0,0.7273,11.4808,48,66,18 -7,6,15,9,0,0.8000,12.6696,48,60,12 -7,6,16,10,0,0.8727,13.7574,48,55,7 -8,4,12,2,0,0.2143,5.2008,42,196,154 -8,4,13,6,0,0.4038,9.8210,42,104,62 -8,4,14,7,0,0.4516,10.9637,42,93,51 -8,4,15,8,0,0.5000,12.1046,42,84,42 -8,4,16,9,0,0.5455,13.2441,42,77,35 -8,4,17,10,0,0.5915,14.3829,42,71,29 -8,4,18,11,0,0.6462,15.5209,42,65,23 -8,4,19,12,0,0.6885,16.6575,42,61,19 -8,4,20,14,0,0.7368,17.7301,42,57,15 -8,4,21,15,0,0.7778,18.7931,42,54,12 -8,4,22,16,0,0.8235,19.8562,42,51,9 -8,4,23,17,0,0.8750,20.9192,42,48,6 -8,4,24,18,0,0.9130,21.9827,42,46,4 -8,5,13,2,0,0.2154,5.1929,53,246,193 -8,5,14,7,0,0.4454,10.6730,53,119,66 -8,5,15,8,0,0.4907,11.7814,53,108,55 -8,5,16,9,0,0.5354,12.8894,53,99,46 -8,5,17,10,0,0.5824,13.9970,53,91,38 -8,5,18,11,0,0.6310,15.1044,53,84,31 -8,5,19,12,0,0.6795,16.2119,53,78,25 -8,5,20,13,0,0.7260,17.3193,53,73,20 -8,5,21,14,0,0.7681,18.4269,53,69,16 -8,5,22,15,0,0.8154,19.5341,53,65,12 -8,5,23,16,0,0.8548,20.6405,53,62,9 -8,5,24,18,0,0.9138,21.7084,53,58,5 -8,6,14,2,0,0.2169,5.2058,64,295,231 -8,6,15,8,0,0.4848,11.5784,64,132,68 -8,6,16,9,0,0.5289,12.6650,64,121,57 -8,6,17,10,0,0.5766,13.7519,64,111,47 -8,6,18,11,0,0.6214,14.8391,64,103,39 -8,6,19,12,0,0.6667,15.9263,64,96,32 -8,6,20,13,0,0.7111,17.0140,64,90,26 -8,6,21,14,0,0.7619,18.1017,64,84,20 -8,6,22,15,0,0.8000,19.1894,64,80,16 -8,6,23,16,0,0.8533,20.2775,64,75,11 -8,6,24,17,0,0.9014,21.3655,64,71,7 -9,4,13,3,0,0.2545,6.1191,85,334,249 -9,4,14,7,0,0.4293,10.2931,85,198,113 -9,4,15,8,0,0.4722,11.3524,85,180,95 -9,4,16,9,0,0.5183,12.4128,85,164,79 -9,4,17,10,0,0.5592,13.4736,85,152,67 -9,4,18,11,0,0.6071,14.5353,85,140,55 -9,4,19,12,0,0.6489,15.5978,85,131,46 -9,4,20,13,0,0.6967,16.6607,85,122,37 -9,4,21,14,0,0.7391,17.7238,85,115,30 -9,4,22,15,0,0.7798,18.7875,85,109,24 -9,4,23,16,0,0.8252,19.8518,85,103,18 -9,4,24,17,0,0.8763,20.9160,85,97,12 -9,5,14,3,0,0.2542,6.1360,106,417,311 -9,5,15,8,0,0.4649,11.2269,106,228,122 -9,5,16,9,0,0.5096,12.2709,106,208,102 -9,5,17,10,0,0.5521,13.3163,106,192,86 -9,5,18,11,0,0.5955,14.3626,106,178,72 -9,5,19,12,0,0.6386,15.4097,106,166,60 -9,5,20,13,0,0.6839,16.4572,106,155,49 -9,5,21,14,0,0.7260,17.5055,106,146,40 -9,5,22,15,0,0.7737,18.5545,106,137,31 -9,5,23,16,0,0.8154,19.6038,106,130,24 -9,5,24,17,0,0.8618,20.6533,106,123,17 -9,6,15,3,0,0.2570,6.1565,128,498,370 -9,6,16,9,0,0.5079,12.1849,128,252,124 -9,6,17,10,0,0.5517,13.2196,128,232,104 -9,6,18,11,0,0.5953,14.2550,128,215,87 -9,6,19,12,0,0.6400,15.2916,128,200,72 -9,6,20,13,0,0.6809,16.3294,128,188,60 -9,6,21,14,0,0.7273,17.3675,128,176,48 -9,6,22,15,0,0.7711,18.4063,128,166,38 -9,6,23,16,0,0.8153,19.4456,128,157,29 -9,6,24,17,0,0.8591,20.4853,128,149,21 -10,4,14,4,0,0.2946,7.0907,170,577,407 -10,4,15,8,0,0.4607,11.0786,170,369,199 -10,4,16,9,0,0.5030,12.0970,170,338,168 -10,4,17,10,0,0.5449,13.1178,170,312,142 -10,4,18,11,0,0.5882,14.1400,170,289,119 -10,4,19,12,0,0.6296,15.1634,170,270,100 -10,4,20,13,0,0.6719,16.1878,170,253,83 -10,4,21,14,0,0.7173,17.2137,170,237,67 -10,4,22,15,0,0.7589,18.2398,170,224,54 -10,4,23,16,0,0.8019,19.2666,170,212,42 -10,4,24,17,0,0.8458,20.2934,170,201,31 -10,5,15,4,0,0.2958,7.1071,213,720,507 -10,5,16,9,0,0.5024,12.0542,213,424,211 -10,5,17,10,0,0.5448,13.0669,213,391,178 -10,5,18,11,0,0.5868,14.0811,213,363,150 -10,5,19,12,0,0.6283,15.0963,213,339,126 -10,5,20,13,0,0.6719,16.1126,213,317,104 -10,5,21,14,0,0.7148,17.1298,213,298,85 -10,5,22,15,0,0.7553,18.1480,213,282,69 -10,5,23,16,0,0.7978,19.1667,213,267,54 -10,5,24,17,0,0.8419,20.1862,213,253,40 -10,6,16,4,0,0.2970,7.1259,256,862,606 -10,6,17,10,0,0.5435,13.0413,256,471,215 -10,6,18,11,0,0.5858,14.0504,256,437,181 -10,6,19,12,0,0.6290,15.0608,256,407,151 -10,6,20,13,0,0.6702,16.0719,256,382,126 -10,6,21,14,0,0.7131,17.0840,256,359,103 -10,6,22,15,0,0.7552,18.0967,256,339,83 -10,6,23,16,0,0.7975,19.1101,256,321,65 -10,6,24,17,0,0.8393,20.1241,256,305,49 -11,4,15,5,0,0.3620,8.0689,341,942,601 -11,4,16,9,0,0.5413,12.0201,341,630,289 -11,4,17,10,0,0.5879,13.0236,341,580,239 -11,4,18,11,0,0.6350,14.0291,341,537,196 -11,4,19,12,0,0.6820,15.0352,341,500,159 -11,4,20,13,0,0.7302,16.0422,341,467,126 -11,4,21,14,0,0.7785,17.0503,341,438,97 -11,4,22,15,0,0.8277,18.0590,341,412,71 -11,4,23,16,0,0.8766,19.0686,341,389,48 -11,4,24,17,0,0.9241,20.0790,341,369,28 -11,5,16,5,0,0.3586,8.0830,426,1188,762 -11,5,17,10,0,0.5788,13.0135,426,736,310 -11,5,18,11,0,0.6246,14.0156,426,682,256 -11,5,19,12,0,0.6709,15.0184,426,635,209 -11,5,20,13,0,0.7172,16.0220,426,594,168 -11,5,21,14,0,0.7634,17.0263,426,558,132 -11,5,22,15,0,0.8114,18.0308,426,525,99 -11,5,23,16,0,0.8571,19.0360,426,497,71 -11,5,24,17,0,0.9045,20.0417,426,471,45 -11,6,17,5,0,0.3565,8.0988,512,1436,924 -11,6,18,11,0,0.6176,14.0106,512,829,317 -11,6,19,12,0,0.6632,15.0120,512,772,260 -11,6,20,13,0,0.7091,16.0137,512,722,210 -11,6,21,14,0,0.7552,17.0157,512,678,166 -11,6,22,15,0,0.8000,18.0182,512,640,128 -11,6,23,16,0,0.8463,19.0210,512,605,93 -11,6,24,17,0,0.8935,20.0244,512,573,61 -12,4,16,6,0,0.3938,9.0582,682,1732,1050 -12,4,17,10,0,0.5664,13.0084,682,1204,522 -12,4,18,11,0,0.6106,14.0079,682,1117,435 -12,4,19,12,0,0.6551,15.0082,682,1041,359 -12,4,20,13,0,0.7002,16.0089,682,974,292 -12,4,21,14,0,0.7454,17.0097,682,915,233 -12,4,22,15,0,0.7903,18.0101,682,863,181 -12,4,23,16,0,0.8348,19.0109,682,817,135 -12,4,24,17,0,0.8800,20.0122,682,775,93 -12,5,17,6,0,0.3920,9.0718,853,2176,1323 -12,5,18,11,0,0.6058,14.0062,853,1408,555 -12,5,19,12,0,0.6502,15.0061,853,1312,459 -12,5,20,13,0,0.6941,16.0068,853,1229,376 -12,5,21,14,0,0.7385,17.0072,853,1155,302 -12,5,22,15,0,0.7826,18.0075,853,1090,237 -12,5,23,16,0,0.8274,19.0083,853,1031,178 -12,5,24,17,0,0.8722,20.0089,853,978,125 -12,6,18,6,0,0.3907,9.0860,1024,2621,1597 -12,6,19,12,0,0.6461,15.0055,1024,1585,561 -12,6,20,13,0,0.6896,16.0054,1024,1485,461 -12,6,21,14,0,0.7335,17.0057,1024,1396,372 -12,6,22,15,0,0.7775,18.0060,1024,1317,293 -12,6,23,16,0,0.8212,19.0067,1024,1247,223 -12,6,24,17,0,0.8656,20.0070,1024,1183,159 -13,4,17,7,0,0.4292,10.0507,1365,3180,1815 -13,4,18,11,0,0.5987,14.0052,1365,2280,915 -13,4,19,12,0,0.6417,15.0044,1365,2127,762 -13,4,20,13,0,0.6852,16.0044,1365,1992,627 -13,4,21,14,0,0.7284,17.0046,1365,1874,509 -13,4,22,15,0,0.7721,18.0047,1365,1768,403 -13,4,23,16,0,0.8154,19.0050,1365,1674,309 -13,4,24,17,0,0.8590,20.0052,1365,1589,224 -13,5,18,7,0,0.4281,10.0629,1706,3985,2279 -13,5,19,12,0,0.6387,15.0042,1706,2671,965 -13,5,20,13,0,0.6816,16.0037,1706,2503,797 -13,5,21,14,0,0.7247,17.0038,1706,2354,648 -13,5,22,15,0,0.7678,18.0040,1706,2222,516 -13,5,23,16,0,0.8108,19.0042,1706,2104,398 -13,5,24,17,0,0.8543,20.0042,1706,1997,291 -13,6,19,7,0,0.4275,10.0755,2048,4791,2743 -13,6,20,13,0,0.6793,16.0036,2048,3015,967 -13,6,21,14,0,0.7221,17.0037,2048,2836,788 -13,6,22,15,0,0.7650,18.0038,2048,2677,629 -13,6,23,16,0,0.8079,19.0036,2048,2535,487 -13,6,24,17,0,0.8509,20.0036,2048,2407,359 -14,4,18,8,0,0.4667,11.0450,2730,5850,3120 -14,4,19,12,0,0.6343,15.0040,2730,4304,1574 -14,4,20,13,0,0.6767,16.0030,2730,4034,1304 -14,4,21,14,0,0.7194,17.0030,2730,3795,1065 -14,4,22,15,0,0.7619,18.0030,2730,3583,853 -14,4,23,16,0,0.8046,19.0029,2730,3393,663 -14,4,24,17,0,0.8473,20.0031,2730,3222,492 -14,5,19,8,0,0.4662,11.0562,3413,7321,3908 -14,5,20,13,0,0.6750,16.0026,3413,5056,1643 -14,5,21,14,0,0.7175,17.0025,3413,4757,1344 -14,5,22,15,0,0.7600,18.0027,3413,4491,1078 -14,5,23,16,0,0.8023,19.0026,3413,4254,841 -14,5,24,17,0,0.8448,20.0027,3413,4040,627 -14,6,20,8,0,0.4659,11.0676,4096,8791,4695 -14,6,21,14,0,0.7160,17.0022,4096,5721,1625 -14,6,22,15,0,0.7582,18.0023,4096,5402,1306 -14,6,23,16,0,0.8006,19.0021,4096,5116,1020 -14,6,24,17,0,0.8430,20.0021,4096,4859,763 -15,4,19,9,0,0.3793,12.0398,4096,10799,6703 -15,4,20,13,0,0.5042,16.0026,4096,8123,4027 -15,4,21,14,0,0.5358,17.0018,4096,7644,3548 -15,4,22,15,0,0.5675,18.0014,4096,7218,3122 -15,4,23,16,0,0.5991,19.0013,4096,6837,2741 -15,4,24,17,0,0.6308,20.0013,4096,6493,2397 -15,4,25,18,0,0.6625,21.0015,4096,6183,2087 -15,4,26,19,0,0.6942,22.0014,4096,5900,1804 -15,4,27,20,0,0.7260,23.0015,4096,5642,1546 -15,4,28,21,0,0.7577,24.0015,4096,5406,1310 -15,4,29,22,0,0.7894,25.0012,4096,5189,1093 -15,4,30,23,0,0.8212,26.0011,4096,4988,892 -15,4,31,24,0,0.8530,27.0013,4096,4802,706 -15,4,32,25,0,0.8847,28.0014,4096,4630,534 -15,5,20,9,0,0.3791,12.0500,5120,13505,8385 -15,5,21,14,0,0.5350,17.0015,5120,9570,4450 -15,5,22,15,0,0.5666,18.0014,5120,9037,3917 -15,5,23,16,0,0.5982,19.0013,5120,8559,3439 -15,5,24,17,0,0.6298,20.0012,5120,8130,3010 -15,5,25,18,0,0.6613,21.0014,5120,7742,2622 -15,5,26,19,0,0.6930,22.0014,5120,7388,2268 -15,5,27,20,0,0.7246,23.0012,5120,7066,1946 -15,5,28,21,0,0.7563,24.0014,5120,6770,1650 -15,5,29,22,0,0.7879,25.0015,5120,6498,1378 -15,5,30,23,0,0.8196,26.0016,5120,6247,1127 -15,5,31,24,0,0.8512,27.0017,5120,6015,895 -15,5,32,25,0,0.8829,28.0015,5120,5799,679 -15,6,21,9,0,0.3791,12.0606,6144,16207,10063 -15,6,22,15,0,0.5659,18.0010,6144,10857,4713 -15,6,23,16,0,0.5974,19.0007,6144,10284,4140 -15,6,24,17,0,0.6289,20.0009,6144,9769,3625 -15,6,25,18,0,0.6605,21.0012,6144,9302,3158 -15,6,26,19,0,0.6920,22.0013,6144,8878,2734 -15,6,27,20,0,0.7237,23.0013,6144,8490,2346 -15,6,28,21,0,0.7552,24.0012,6144,8136,1992 -15,6,29,22,0,0.7868,25.0014,6144,7809,1665 -15,6,30,23,0,0.8184,26.0013,6144,7507,1363 -15,6,31,24,0,0.8500,27.0014,6144,7228,1084 -15,6,32,25,0,0.8816,28.0012,6144,6969,825 -16,4,20,10,0,0.4092,13.0358,8192,20019,11827 -16,4,21,14,0,0.5338,17.0015,8192,15347,7155 -16,4,22,15,0,0.5652,18.0006,8192,14494,6302 -16,4,23,16,0,0.5967,19.0003,8192,13729,5537 -16,4,24,17,0,0.6282,20.0003,8192,13041,4849 -16,4,25,18,0,0.6596,21.0003,8192,12419,4227 -16,4,26,19,0,0.6911,22.0003,8192,11853,3661 -16,4,27,20,0,0.7227,23.0002,8192,11336,3144 -16,4,28,21,0,0.7541,24.0002,8192,10863,2671 -16,4,29,22,0,0.7857,25.0002,8192,10427,2235 -16,4,30,23,0,0.8172,25.9999,8192,10025,1833 -16,4,31,24,0,0.8487,27.0005,8192,9652,1460 -16,4,32,25,0,0.8803,28.0008,8192,9306,1114 -16,5,21,10,0,0.4092,13.0451,10240,25023,14783 -16,5,22,15,0,0.5647,18.0009,10240,18132,7892 -16,5,23,16,0,0.5961,19.0005,10240,17177,6937 -16,5,24,17,0,0.6276,20.0003,10240,16317,6077 -16,5,25,18,0,0.6590,21.0002,10240,15538,5298 -16,5,26,19,0,0.6905,22.0003,10240,14830,4590 -16,5,27,20,0,0.7219,23.0004,10240,14184,3944 -16,5,28,21,0,0.7534,24.0002,10240,13592,3352 -16,5,29,22,0,0.7849,25.0004,10240,13047,2807 -16,5,30,23,0,0.8163,26.0005,10240,12544,2304 -16,5,31,24,0,0.8478,27.0005,10240,12078,1838 -16,5,32,25,0,0.8793,28.0003,10240,11646,1406 -16,6,22,10,0,0.4093,13.0546,12288,30023,17735 -16,6,23,16,0,0.5958,19.0003,12288,20626,8338 -16,6,24,17,0,0.6272,20.0003,12288,19593,7305 -16,6,25,18,0,0.6586,21.0004,12288,18659,6371 -16,6,26,19,0,0.6900,22.0003,12288,17809,5521 -16,6,27,20,0,0.7214,23.0003,12288,17034,4746 -16,6,28,21,0,0.7528,24.0003,12288,16323,4035 -16,6,29,22,0,0.7842,25.0001,12288,15669,3381 -16,6,30,23,0,0.8157,26.0002,12288,15065,2777 -16,6,31,24,0,0.8471,27.0003,12288,14506,2218 -16,6,32,25,0,0.8786,28.0003,12288,13986,1698 -17,4,21,11,0,0.4396,14.0322,16384,37269,20885 -17,4,22,15,0,0.5640,18.0003,16384,29051,12667 -17,4,23,16,0,0.5953,18.9996,16384,27521,11137 -17,4,24,17,0,0.6267,19.9994,16384,26144,9760 -17,4,25,18,0,0.6581,20.9995,16384,24897,8513 -17,4,26,19,0,0.6894,21.9995,16384,23764,7380 -17,4,27,20,0,0.7208,22.9994,16384,22729,6345 -17,4,28,21,0,0.7522,23.9995,16384,21781,5397 -17,4,29,22,0,0.7836,24.9996,16384,20908,4524 -17,4,30,23,0,0.8150,25.9996,16384,20103,3719 -17,4,31,24,0,0.8464,26.9997,16384,19357,2973 -17,4,32,25,0,0.8778,27.9999,16384,18664,2280 -17,5,22,11,0,0.4397,14.0410,20480,46576,26096 -17,5,23,16,0,0.5950,18.9997,20480,34418,13938 -17,5,24,17,0,0.6264,19.9994,20480,32696,12216 -17,5,25,18,0,0.6577,20.9991,20480,31138,10658 -17,5,26,19,0,0.6891,21.9992,20480,29721,9241 -17,5,27,20,0,0.7204,22.9992,20480,28427,7947 -17,5,28,21,0,0.7518,23.9993,20480,27241,6761 -17,5,29,22,0,0.7832,24.9993,20480,26150,5670 -17,5,30,23,0,0.8145,25.9995,20480,25143,4663 -17,5,31,24,0,0.8459,26.9997,20480,24210,3730 -17,5,32,25,0,0.8773,27.9996,20480,23344,2864 -17,6,23,11,0,0.4399,14.0500,24576,55872,31296 -17,6,24,17,0,0.6261,19.9992,24576,39250,14674 -17,6,25,18,0,0.6575,20.9992,24576,37379,12803 -17,6,26,19,0,0.6888,21.9993,24576,35679,11103 -17,6,27,20,0,0.7202,22.9993,24576,34126,9550 -17,6,28,21,0,0.7515,23.9993,24576,32703,8127 -17,6,29,22,0,0.7828,24.9991,24576,31393,6817 -17,6,30,23,0,0.8142,25.9993,24576,30184,5608 -17,6,31,24,0,0.8456,26.9992,24576,29065,4489 -17,6,32,25,0,0.8769,27.9992,24576,28026,3450 -18,4,22,12,0,0.4704,15.0301,32768,69667,36899 -18,4,23,16,0,0.5946,19.0004,32768,55107,22339 -18,4,24,17,0,0.6259,19.9993,32768,52353,19585 -18,4,25,18,0,0.6572,20.9990,32768,49859,17091 -18,4,26,19,0,0.6885,21.9989,32768,47591,14823 -18,4,27,20,0,0.7199,22.9992,32768,45520,12752 -18,4,28,21,0,0.7512,23.9991,32768,43622,10854 -18,4,29,22,0,0.7825,24.9993,32768,41875,9107 -18,4,30,23,0,0.8138,25.9990,32768,40264,7496 -18,4,31,24,0,0.8452,26.9991,32768,38771,6003 -18,4,32,25,0,0.8765,27.9990,32768,37385,4617 -18,5,23,12,0,0.4705,15.0381,40960,87057,46097 -18,5,24,17,0,0.6257,19.9997,40960,65458,24498 -18,5,25,18,0,0.6570,20.9995,40960,62340,21380 -18,5,26,19,0,0.6883,21.9992,40960,59505,18545 -18,5,27,20,0,0.7197,22.9993,40960,56916,15956 -18,5,28,21,0,0.7510,23.9992,40960,54543,13583 -18,5,29,22,0,0.7823,24.9990,40960,52360,11400 -18,5,30,23,0,0.8136,25.9990,40960,50345,9385 -18,5,31,24,0,0.8449,26.9990,40960,48479,7519 -18,5,32,25,0,0.8762,27.9992,40960,46746,5786 -18,6,24,12,0,0.4707,15.0464,49152,104429,55277 -18,6,25,18,0,0.6569,20.9994,49152,74823,25671 -18,6,26,19,0,0.6882,21.9995,49152,71420,22268 -18,6,27,20,0,0.7195,22.9993,49152,68314,19162 -18,6,28,21,0,0.7508,23.9993,49152,65466,16314 -18,6,29,22,0,0.7821,24.9993,49152,62846,13694 -18,6,30,23,0,0.8134,25.9992,49152,60428,11276 -18,6,31,24,0,0.8447,26.9992,49152,58188,9036 -18,6,32,25,0,0.8760,27.9992,49152,56109,6957 +4,4,8,0,1,0.6154,4.6737,8,13,5 +4,5,9,0,1,0.2941,4.4686,5,17,12 +4,5,10,255,255,inf,1672938412730.5742,5,0,0 +4,5,11,255,255,inf,1830341915005.5046,5,0,0 +4,5,12,255,255,inf,2027161291254.8818,5,0,0 +4,5,13,255,255,inf,2274990722530.1021,5,0,0 +4,5,14,255,255,inf,2593815908608.1025,5,0,0 +4,5,15,255,255,inf,3017572581947.2080,5,0,0 +4,5,16,255,255,inf,3607437614773.3438,5,0,0 +4,6,10,0,0,0.2609,4.1129,6,23,17 +4,6,11,255,255,inf,1667342224295.3538,6,0,0 +4,6,12,255,255,inf,1828231657489.8232,6,0,0 +4,6,13,255,255,inf,2026914492041.8909,6,0,0 +4,6,14,255,255,inf,2275923716042.5981,6,0,0 +4,6,15,255,255,inf,2595631656607.7524,6,0,0 +4,6,16,255,255,inf,3020369079536.7607,6,0,0 +5,4,9,0,0,0.2759,4.3346,8,29,21 +5,4,10,255,255,inf,2627705386608.6094,8,0,0 +5,4,11,255,255,inf,2817001270502.3867,8,0,0 +5,4,12,255,255,inf,3040996250211.7617,8,0,0 +5,4,13,255,255,inf,3309598232436.0830,8,0,0 +5,4,14,255,255,inf,3633448213969.9819,8,0,0 +5,4,15,255,255,inf,4029235807096.7153,8,0,0 +5,4,16,255,255,inf,4522620914110.5801,8,0,0 +5,5,10,0,0,0.2632,4.1333,10,38,28 +5,5,11,255,255,inf,2409139377145.1230,10,0,0 +5,5,12,255,255,inf,2599839707970.1973,10,0,0 +5,5,13,255,255,inf,2796428924773.4800,10,0,0 +5,5,14,255,255,inf,3024081193076.9189,10,0,0 +5,5,15,255,255,inf,3293154060177.6245,10,0,0 +5,5,16,255,255,inf,3615502891287.9326,10,0,0 +5,6,11,0,0,0.2553,4.0290,12,47,35 +5,6,12,255,255,inf,2201527744886.7568,12,0,0 +5,6,13,255,255,inf,2403926829758.0679,12,0,0 +5,6,14,255,255,inf,2589868369866.6875,12,0,0 +5,6,15,255,255,inf,2788421108326.1611,12,0,0 +5,6,16,255,255,inf,3016928047501.7881,12,0,0 +6,4,10,0,0,0.2712,4.2822,16,59,43 +6,4,11,255,255,inf,2836121074962.6938,16,0,0 +6,4,12,255,255,inf,3168360147551.3359,16,0,0 +6,4,13,255,255,inf,3499499563615.9214,16,0,0 +6,4,14,255,255,inf,3829879343467.6372,16,0,0 +6,4,15,255,255,inf,4152703295781.9663,16,0,0 +6,4,16,255,255,inf,4475685598003.6504,16,0,0 +6,5,11,0,0,0.2564,4.0718,20,78,58 +6,5,12,7,0,0.6667,10.6597,20,30,10 +6,5,13,255,255,inf,2723460482140.4761,20,0,0 +6,5,14,255,255,inf,2982258343707.2622,20,0,0 +6,5,15,255,255,inf,3239462044401.5557,20,0,0 +6,5,16,255,255,inf,3497013094542.0952,20,0,0 +6,6,12,0,0,0.2500,3.9692,24,96,72 +6,6,13,7,0,0.7273,11.4639,24,33,9 +6,6,14,9,0,0.8000,12.6570,24,30,6 +6,6,15,255,255,inf,2646617509856.5596,24,0,0 +6,6,16,255,255,inf,2858085063212.7188,24,0,0 +7,4,11,0,0,0.2667,4.2460,32,120,88 +7,4,12,6,0,0.6154,9.8245,32,52,20 +7,4,13,7,0,0.6957,10.9647,32,46,14 +7,4,14,8,0,0.7619,12.1028,32,42,10 +7,4,15,9,0,0.8421,13.2388,32,38,6 +7,4,16,10,0,0.9143,14.3737,32,35,3 +7,5,12,0,0,0.2532,4.0353,40,158,118 +7,5,13,7,0,0.6780,10.6774,40,59,19 +7,5,14,8,0,0.7407,11.7865,40,54,14 +7,5,15,9,0,0.8163,12.8930,40,49,9 +7,5,16,10,0,0.8889,13.9987,40,45,5 +7,6,13,0,0,0.2462,3.9306,48,195,147 +7,6,14,7,0,0.7273,11.4818,48,66,18 +7,6,15,9,0,0.8000,12.6706,48,60,12 +7,6,16,10,0,0.8727,13.7585,48,55,7 +8,4,12,0,0,0.1736,4.2177,42,242,200 +8,4,13,6,0,0.4038,9.8220,42,104,62 +8,4,14,7,0,0.4516,10.9648,42,93,51 +8,4,15,8,0,0.5000,12.1057,42,84,42 +8,4,16,9,0,0.5455,13.2453,42,77,35 +8,4,17,10,0,0.5915,14.3841,42,71,29 +8,4,18,11,0,0.6462,15.5221,42,65,23 +8,4,19,12,0,0.6885,16.6587,42,61,19 +8,4,20,14,0,0.7368,17.7314,42,57,15 +8,4,21,15,0,0.7778,18.7944,42,54,12 +8,4,22,16,0,0.8235,19.8576,42,51,9 +8,4,23,17,0,0.8750,20.9206,42,48,6 +8,4,24,18,0,0.9130,21.9841,42,46,4 +8,5,13,0,0,0.1661,4.0088,53,319,266 +8,5,14,7,0,0.4454,10.6721,53,119,66 +8,5,15,8,0,0.4907,11.7815,53,108,55 +8,5,16,9,0,0.5354,12.8895,53,99,46 +8,5,17,10,0,0.5824,13.9971,53,91,38 +8,5,18,11,0,0.6310,15.1045,53,84,31 +8,5,19,12,0,0.6795,16.2120,53,78,25 +8,5,20,13,0,0.7260,17.3194,53,73,20 +8,5,21,14,0,0.7681,18.4270,53,69,16 +8,5,22,15,0,0.8154,19.5342,53,65,12 +8,5,23,16,0,0.8548,20.6406,53,62,9 +8,5,24,18,0,0.9138,21.7086,53,58,5 +8,6,14,0,0,0.1633,3.9091,64,392,328 +8,6,15,7,0,0.4812,11.4814,64,133,69 +8,6,16,9,0,0.5289,12.6677,64,121,57 +8,6,17,10,0,0.5766,13.7557,64,111,47 +8,6,18,11,0,0.6214,14.8431,64,103,39 +8,6,19,12,0,0.6667,15.9305,64,96,32 +8,6,20,13,0,0.7111,17.0184,64,90,26 +8,6,21,14,0,0.7619,18.1062,64,84,20 +8,6,22,15,0,0.8000,19.1940,64,80,16 +8,6,23,16,0,0.8533,20.2822,64,75,11 +8,6,24,17,0,0.9014,21.3703,64,71,7 +9,4,13,0,0,0.1745,4.1988,85,487,402 +9,4,14,6,0,0.4087,9.8136,85,208,123 +9,4,15,7,0,0.4570,10.9570,85,186,101 +9,4,16,8,0,0.5030,12.0984,85,169,84 +9,4,17,9,0,0.5519,13.2386,85,154,69 +9,4,18,10,0,0.5986,14.3786,85,142,57 +9,4,19,11,0,0.6489,15.5186,85,131,46 +9,4,20,12,0,0.6967,16.6572,85,122,37 +9,4,21,14,0,0.7391,17.7247,85,115,30 +9,4,22,15,0,0.7798,18.7885,85,109,24 +9,4,23,16,0,0.8252,19.8528,85,103,18 +9,4,24,17,0,0.8763,20.9170,85,97,12 +9,5,14,0,0,0.1654,3.9933,106,641,535 +9,5,15,7,0,0.4417,10.6663,106,240,134 +9,5,16,8,0,0.4885,11.7749,106,217,111 +9,5,17,9,0,0.5354,12.8828,106,198,92 +9,5,18,10,0,0.5824,13.9911,106,182,76 +9,5,19,11,0,0.6272,15.0989,106,169,63 +9,5,20,12,0,0.6752,16.2071,106,157,51 +9,5,21,13,0,0.7211,17.3153,106,147,41 +9,5,22,14,0,0.7681,18.4240,106,138,32 +9,5,23,15,0,0.8092,19.5326,106,131,25 +9,5,24,16,0,0.8548,20.6407,106,124,18 +9,6,15,0,0,0.1622,3.8934,128,789,661 +9,6,16,7,0,0.4794,11.4744,128,267,139 +9,6,17,9,0,0.5289,12.6599,128,242,114 +9,6,18,10,0,0.5740,13.7473,128,223,95 +9,6,19,11,0,0.6184,14.8344,128,207,79 +9,6,20,12,0,0.6667,15.9222,128,192,64 +9,6,21,13,0,0.7111,17.0103,128,180,52 +9,6,22,14,0,0.7574,18.0983,128,169,41 +9,6,23,15,0,0.8000,19.1868,128,160,32 +9,6,24,16,0,0.8477,20.2753,128,151,23 +10,4,14,0,0,0.1738,4.1856,170,978,808 +10,4,15,6,0,0.4077,9.8040,170,417,247 +10,4,16,7,0,0.4545,10.9469,170,374,204 +10,4,17,8,0,0.5030,12.0884,170,338,168 +10,4,18,9,0,0.5502,13.2288,170,309,139 +10,4,19,10,0,0.5965,14.3688,170,285,115 +10,4,20,11,0,0.6439,15.5091,170,264,94 +10,4,21,12,0,0.6911,16.6490,170,246,76 +10,4,22,14,0,0.7359,17.7139,170,231,61 +10,4,23,15,0,0.7798,18.7775,170,218,48 +10,4,24,16,0,0.8252,19.8414,170,206,36 +10,5,15,0,0,0.1658,3.9817,213,1285,1072 +10,5,16,7,0,0.4437,10.6570,213,480,267 +10,5,17,8,0,0.4897,11.7651,213,435,222 +10,5,18,9,0,0.5365,12.8729,213,397,184 +10,5,19,10,0,0.5820,13.9806,213,366,153 +10,5,20,11,0,0.6283,15.0883,213,339,126 +10,5,21,12,0,0.6741,16.1964,213,316,103 +10,5,22,13,0,0.7220,17.3049,213,295,82 +10,5,23,14,0,0.7662,18.4136,213,278,65 +10,5,24,15,0,0.8130,19.5226,213,262,49 +10,6,16,0,0,0.1618,3.8829,256,1582,1326 +10,6,17,7,0,0.4785,11.4655,256,535,279 +10,6,18,9,0,0.5278,12.6498,256,485,229 +10,6,19,10,0,0.5727,13.7366,256,447,191 +10,6,20,11,0,0.6184,14.8235,256,414,158 +10,6,21,12,0,0.6632,15.9109,256,386,130 +10,6,22,13,0,0.7091,16.9987,256,361,105 +10,6,23,14,0,0.7552,18.0866,256,339,83 +10,6,24,15,0,0.8000,19.1748,256,320,64 +11,4,15,0,0,0.1916,4.2710,341,1780,1439 +11,4,16,6,0,0.4458,9.9024,341,765,424 +11,4,17,7,0,0.4993,11.0633,341,683,342 +11,4,18,8,0,0.5536,12.2239,341,616,275 +11,4,19,9,0,0.6078,13.3850,341,561,220 +11,4,20,10,0,0.6621,14.5461,341,515,174 +11,4,21,12,0,0.7149,15.6697,341,477,136 +11,4,22,13,0,0.7663,16.7425,341,445,104 +11,4,23,14,0,0.8177,17.8161,341,417,76 +11,4,24,15,0,0.8699,18.8907,341,392,51 +11,5,16,0,0,0.1784,4.0231,426,2388,1962 +11,5,17,7,0,0.4765,10.7244,426,894,468 +11,5,18,8,0,0.5279,11.8438,426,807,381 +11,5,19,9,0,0.5788,12.9634,426,736,310 +11,5,20,10,0,0.6302,14.0838,426,676,250 +11,5,21,11,0,0.6816,15.2049,426,625,199 +11,5,22,12,0,0.7345,16.3271,426,580,154 +11,5,23,13,0,0.7860,17.4505,426,542,116 +11,5,24,14,0,0.8386,18.5743,426,508,82 +11,6,17,0,0,0.1716,3.9010,512,2983,2471 +11,6,18,7,0,0.5110,11.5896,512,1002,490 +11,6,19,9,0,0.5614,12.7066,512,912,400 +11,6,20,10,0,0.6110,13.8011,512,838,326 +11,6,21,11,0,0.6606,14.8966,512,775,263 +11,6,22,12,0,0.7101,15.9929,512,721,209 +11,6,23,13,0,0.7608,17.0899,512,673,161 +11,6,24,14,0,0.8114,18.1879,512,631,119 +12,4,16,0,0,0.1836,4.2251,682,3714,3032 +12,4,17,6,0,0.4289,9.8502,682,1590,908 +12,4,18,7,0,0.4796,11.0023,682,1422,740 +12,4,19,8,0,0.5307,12.1537,682,1285,603 +12,4,20,9,0,0.5819,13.3049,682,1172,490 +12,4,21,10,0,0.6332,14.4560,682,1077,395 +12,4,22,11,0,0.6847,15.6083,682,996,314 +12,4,23,13,0,0.7333,16.6881,682,930,248 +12,4,24,14,0,0.7812,17.7563,682,873,191 +12,5,17,0,0,0.1727,3.9978,853,4938,4085 +12,5,18,7,0,0.4623,10.6867,853,1845,992 +12,5,19,8,0,0.5111,11.8006,853,1669,816 +12,5,20,9,0,0.5601,12.9140,853,1523,670 +12,5,21,10,0,0.6093,14.0281,853,1400,547 +12,5,22,11,0,0.6582,15.1428,853,1296,443 +12,5,23,12,0,0.7079,16.2583,853,1205,352 +12,5,24,13,0,0.7569,17.3745,853,1127,274 +12,6,18,0,0,0.1671,3.8867,1024,6127,5103 +12,6,19,7,0,0.4964,11.5283,1024,2063,1039 +12,6,20,9,0,0.5461,12.6739,1024,1875,851 +12,6,21,10,0,0.5936,13.7644,1024,1725,701 +12,6,22,11,0,0.6412,14.8555,1024,1597,573 +12,6,23,12,0,0.6891,15.9471,1024,1486,462 +12,6,24,13,0,0.7372,17.0395,1024,1389,365 +13,4,17,0,0,0.1793,4.1995,1365,7612,6247 +13,4,18,6,0,0.4197,9.8207,1365,3252,1887 +13,4,19,7,0,0.4691,10.9684,1365,2910,1545 +13,4,20,8,0,0.5186,12.1147,1365,2632,1267 +13,4,21,9,0,0.5680,13.2600,1365,2403,1038 +13,4,22,10,0,0.6176,14.4060,1365,2210,845 +13,4,23,11,0,0.6675,15.5522,1365,2045,680 +13,4,24,13,0,0.7154,16.6576,1365,1908,543 +13,5,18,0,0,0.1695,3.9842,1706,10067,8361 +13,5,19,7,0,0.4540,10.6654,1706,3758,2052 +13,5,20,8,0,0.5016,11.7759,1706,3401,1695 +13,5,21,9,0,0.5493,12.8864,1706,3106,1400 +13,5,22,10,0,0.5969,13.9975,1706,2858,1152 +13,5,23,11,0,0.6447,15.1085,1706,2646,940 +13,5,24,12,0,0.6927,16.2198,1706,2463,757 +13,6,19,0,0,0.1646,3.8795,2048,12444,10396 +13,6,20,7,0,0.4879,11.4936,2048,4198,2150 +13,6,21,9,0,0.5375,12.6552,2048,3810,1762 +13,6,22,10,0,0.5840,13.7433,2048,3507,1459 +13,6,23,11,0,0.6305,14.8320,2048,3248,1200 +13,6,24,12,0,0.6772,15.9217,2048,3024,976 +14,4,18,0,0,0.1768,4.1853,2730,15439,12709 +14,4,19,6,0,0.4144,9.8039,2730,6588,3858 +14,4,20,7,0,0.4629,10.9486,2730,5897,3167 +14,4,21,8,0,0.5115,12.0920,2730,5337,2607 +14,4,22,9,0,0.5601,13.2346,2730,4874,2144 +14,4,23,10,0,0.6088,14.3779,2730,4484,1754 +14,4,24,11,0,0.6575,15.5210,2730,4152,1422 +14,5,19,0,0,0.1676,3.9760,3413,20359,16946 +14,5,20,7,0,0.4494,10.6534,3413,7595,4182 +14,5,21,8,0,0.4963,11.7618,3413,6877,3464 +14,5,22,9,0,0.5432,12.8706,3413,6283,2870 +14,5,23,10,0,0.5903,13.9794,3413,5782,2369 +14,5,24,11,0,0.6373,15.0886,3413,5355,1942 +14,6,20,0,0,0.1631,3.8745,4096,25113,21017 +14,6,21,7,0,0.4831,11.4739,4096,8478,4382 +14,6,22,9,0,0.5326,12.6446,4096,7691,3595 +14,6,23,10,0,0.5785,13.7314,4096,7080,2984 +14,6,24,11,0,0.6245,14.8188,4096,6559,2463 +15,4,19,0,0,0.1315,4.1759,4096,31137,27041 +15,4,20,6,0,0.3086,9.7939,4096,13273,9177 +15,4,21,7,0,0.3447,10.9369,4096,11883,7787 +15,4,22,8,0,0.3807,12.0784,4096,10758,6662 +15,4,23,9,0,0.4168,13.2196,4096,9827,5731 +15,4,24,10,0,0.4529,14.3613,4096,9043,4947 +15,4,25,11,0,0.4890,15.5030,4096,8376,4280 +15,4,26,13,0,0.5247,16.6311,4096,7806,3710 +15,4,27,14,0,0.5584,17.6940,4096,7335,3239 +15,4,28,15,0,0.5921,18.7570,4096,6918,2822 +15,4,29,16,0,0.6258,19.8212,4096,6545,2449 +15,4,30,17,0,0.6596,20.8856,4096,6210,2114 +15,4,31,18,0,0.6934,21.9500,4096,5907,1811 +15,4,32,19,0,0.7271,23.0150,4096,5633,1537 +15,5,20,0,0,0.1249,3.9708,5120,40983,35863 +15,5,21,7,0,0.3350,10.6457,5120,15284,10164 +15,5,22,8,0,0.3699,11.7533,5120,13841,8721 +15,5,23,9,0,0.4049,12.8611,5120,12646,7526 +15,5,24,10,0,0.4398,13.9683,5120,11642,6522 +15,5,25,11,0,0.4748,15.0764,5120,10784,5664 +15,5,26,12,0,0.5098,16.1847,5120,10044,4924 +15,5,27,13,0,0.5448,17.2944,5120,9398,4278 +15,5,28,14,0,0.5799,18.4039,5120,8829,3709 +15,5,29,15,0,0.6149,19.5138,5120,8326,3206 +15,5,30,17,0,0.6500,20.6219,5120,7877,2757 +15,5,31,18,0,0.6832,21.6715,5120,7494,2374 +15,5,32,19,0,0.7164,22.7212,5120,7147,2027 +15,6,21,0,0,0.1217,3.8715,6144,50491,44347 +15,6,22,7,0,0.3603,11.4619,6144,17051,10907 +15,6,23,9,0,0.3973,12.6378,6144,15463,9319 +15,6,24,10,0,0.4316,13.7238,6144,14237,8093 +15,6,25,11,0,0.4658,14.8107,6144,13190,7046 +15,6,26,12,0,0.5001,15.8978,6144,12286,6142 +15,6,27,13,0,0.5344,16.9852,6144,11498,5354 +15,6,28,14,0,0.5687,18.0734,6144,10804,4660 +15,6,29,15,0,0.6030,19.1618,6144,10189,4045 +15,6,30,16,0,0.6374,20.2511,6144,9639,3495 +15,6,31,17,0,0.6718,21.3405,6144,9146,3002 +15,6,32,18,0,0.7062,22.4302,6144,8700,2556 +16,4,20,0,0,0.1309,4.1707,8192,62571,54379 +16,4,21,6,0,0.3073,9.7875,8192,26659,18467 +16,4,22,7,0,0.3432,10.9297,8192,23871,15679 +16,4,23,8,0,0.3791,12.0709,8192,21611,13419 +16,4,24,9,0,0.4149,13.2114,8192,19743,11551 +16,4,25,10,0,0.4508,14.3518,8192,18172,9980 +16,4,26,11,0,0.4867,15.4923,8192,16832,8640 +16,4,27,13,0,0.5223,16.6247,8192,15684,7492 +16,4,28,14,0,0.5558,17.6873,8192,14740,6548 +16,4,29,15,0,0.5893,18.7505,8192,13902,5710 +16,4,30,16,0,0.6227,19.8138,8192,13155,4963 +16,4,31,17,0,0.6563,20.8777,8192,12483,4291 +16,4,32,18,0,0.6898,21.9416,8192,11876,3684 +16,5,21,0,0,0.1245,3.9682,10240,82264,72024 +16,5,22,7,0,0.3338,10.6408,10240,30675,20435 +16,5,23,8,0,0.3686,11.7479,10240,27781,17541 +16,5,24,9,0,0.4034,12.8549,10240,25386,15146 +16,5,25,10,0,0.4381,13.9623,10240,23371,13131 +16,5,26,11,0,0.4730,15.0698,10240,21651,11411 +16,5,27,12,0,0.5078,16.1780,10240,20166,9926 +16,5,28,13,0,0.5426,17.2862,10240,18871,8631 +16,5,29,14,0,0.5775,18.3950,10240,17732,7492 +16,5,30,15,0,0.6124,19.5042,10240,16722,6482 +16,5,31,16,0,0.6472,20.6134,10240,15821,5581 +16,5,32,18,0,0.6804,21.6656,10240,15051,4811 +16,6,22,0,0,0.1213,3.8703,12288,101269,88981 +16,6,23,7,0,0.3591,11.4544,12288,34215,21927 +16,6,24,9,0,0.3961,12.6334,12288,31019,18731 +16,6,25,10,0,0.4302,13.7193,12288,28562,16274 +16,6,26,11,0,0.4643,14.8055,12288,26464,14176 +16,6,27,12,0,0.4985,15.8924,12288,24652,12364 +16,6,28,13,0,0.5326,16.9796,12288,23072,10784 +16,6,29,14,0,0.5668,18.0675,12288,21681,9393 +16,6,30,15,0,0.6009,19.1557,12288,20448,8160 +16,6,31,16,0,0.6351,20.2442,12288,19347,7059 +16,6,32,17,0,0.6694,21.3330,12288,18358,6070 +17,4,21,0,0,0.1306,4.1689,16384,125444,109060 +17,4,22,6,0,0.3065,9.7841,16384,53447,37063 +17,4,23,7,0,0.3423,10.9255,16384,47860,31476 +17,4,24,8,0,0.3781,12.0661,16384,43333,26949 +17,4,25,9,0,0.4138,13.2059,16384,39591,23207 +17,4,26,10,0,0.4496,14.3458,16384,36442,20058 +17,4,27,11,0,0.4854,15.4860,16384,33757,17373 +17,4,28,13,0,0.5210,16.6212,16384,31450,15066 +17,4,29,14,0,0.5543,17.6834,16384,29559,13175 +17,4,30,15,0,0.5876,18.7458,16384,27882,11498 +17,4,31,16,0,0.6210,19.8090,16384,26383,9999 +17,4,32,17,0,0.6544,20.8727,16384,25037,8653 +17,5,22,0,0,0.1243,3.9679,20480,164816,144336 +17,5,23,7,0,0.3332,10.6384,20480,61469,40989 +17,5,24,8,0,0.3679,11.7452,20480,55674,35194 +17,5,25,9,0,0.4025,12.8517,20480,50878,30398 +17,5,26,10,0,0.4372,13.9585,20480,46841,26361 +17,5,27,11,0,0.4719,15.0656,20480,43397,22917 +17,5,28,12,0,0.5066,16.1732,20480,40423,19943 +17,5,29,13,0,0.5414,17.2813,20480,37829,17349 +17,5,30,14,0,0.5761,18.3897,20480,35547,15067 +17,5,31,15,0,0.6109,19.4985,20480,33524,13044 +17,5,32,16,0,0.6457,20.6071,20480,31719,11239 +17,6,23,0,0,0.1212,3.8703,24576,202832,178256 +17,6,24,7,0,0.3585,11.4506,24576,68553,43977 +17,6,25,9,0,0.3955,12.6315,24576,62142,37566 +17,6,26,10,0,0.4295,13.7170,24576,57221,32645 +17,6,27,11,0,0.4635,14.8027,24576,53022,28446 +17,6,28,12,0,0.4975,15.8892,24576,49395,24819 +17,6,29,13,0,0.5316,16.9763,24576,46230,21654 +17,6,30,14,0,0.5657,18.0636,24576,43445,18869 +17,6,31,15,0,0.5998,19.1515,24576,40975,16399 +17,6,32,16,0,0.6339,20.2397,24576,38771,14195 +18,4,22,0,0,0.1304,4.1682,32768,251211,218443 +18,4,23,6,0,0.3061,9.7823,32768,107037,74269 +18,4,24,7,0,0.3419,10.9238,32768,95849,63081 +18,4,25,8,0,0.3776,12.0642,32768,86785,54017 +18,4,26,9,0,0.4132,13.2035,32768,79294,46526 +18,4,27,10,0,0.4489,14.3432,32768,72991,40223 +18,4,28,11,0,0.4846,15.4830,32768,67615,34847 +18,4,29,13,0,0.5202,16.6196,32768,62989,30221 +18,4,30,14,0,0.5535,17.6816,32768,59204,26436 +18,4,31,15,0,0.5868,18.7439,32768,55846,23078 +18,4,32,16,0,0.6200,19.8066,32768,52848,20080 +18,5,23,0,0,0.1241,3.9669,40960,330025,289065 +18,5,24,7,0,0.3328,10.6375,40960,123069,82109 +18,5,25,8,0,0.3674,11.7438,40960,111472,70512 +18,5,26,9,0,0.4021,12.8505,40960,101869,60909 +18,5,27,10,0,0.4367,13.9570,40960,93791,52831 +18,5,28,11,0,0.4714,15.0640,40960,86895,45935 +18,5,29,12,0,0.5060,16.1711,40960,80944,39984 +18,5,30,13,0,0.5407,17.2790,40960,75753,34793 +18,5,31,14,0,0.5754,18.3876,40960,71183,30223 +18,5,32,15,0,0.6101,19.4959,40960,67135,26175 +18,6,24,0,0,0.1210,3.8695,49152,406068,356916 +18,6,25,7,0,0.3581,11.4489,49152,137240,88088 +18,6,26,9,0,0.3951,12.6307,49152,124396,75244 +18,6,27,10,0,0.4291,13.7159,49152,114551,65399 +18,6,28,11,0,0.4631,14.8015,49152,106147,56995 +18,6,29,12,0,0.4971,15.8880,49152,98887,49735 +18,6,30,13,0,0.5311,16.9748,49152,92553,43401 +18,6,31,14,0,0.5651,18.0622,49152,86979,37827 +18,6,32,15,0,0.5991,19.1497,49152,82038,32886 diff --git a/optimal-gap-codes/src/main.rs b/optimal-gap-codes/src/main.rs index 64bd043..e37b451 100644 --- a/optimal-gap-codes/src/main.rs +++ b/optimal-gap-codes/src/main.rs @@ -45,11 +45,11 @@ pub struct CodesStats { /// where the I-th axis represents the I-th rice code for the uniform /// part of the gap and the J-th axis represents the J-th rice code /// for the geometric part of the gap. - pub rice: [[u64; 4]; 35], + pub rice: [[u64; 4]; 20], /// A mask to keep track of the codes that, at some iteration, have /// overflowed the available number of bits and as such are marked as /// unstable. - pub unstable: [[bool; 4]; 35], + pub unstable: [[bool; 4]; 20], } impl CodesStats { @@ -58,25 +58,11 @@ impl CodesStats { /// # Arguments /// * `hash_bits` - The number of bits used to encode the hash. /// The first hash is always encoded as-is. - fn new(hash_bits: u64, precision: u8, bits: u8) -> Self { - let mut unstable = [[false; 4]; 35]; - - let minimum_rice_coefficient = if hash_bits == u64::from(precision + bits) { - hash_bits.saturating_sub(u64::from(bits)).saturating_sub(6) - } else { - hash_bits - 1 - 6 - }; - - for i in 0..unstable.len() { - for j in 0..4 { - unstable[i][j] = (i as u64) < minimum_rice_coefficient; - } - } - + fn new(hash_bits: u64) -> Self { Self { total: 1, - rice: [[hash_bits; 4]; 35], - unstable, + rice: [[hash_bits; 4]; 20], + unstable: [[false; 4]; 20], } } } @@ -260,7 +246,7 @@ where // If we have just reached the preliminary saturation, we populate the gap report. if reference_hashes.len() == preliminary_saturation_threshold { - let mut stats = CodesStats::new(u64::from(hash_bits), P::EXPONENT, B::NUMBER_OF_BITS); + let mut stats = CodesStats::new(u64::from(hash_bits)); for window in reference_hashes.windows(2) { let gap = GapHash::::into_gap_fragment( @@ -370,7 +356,7 @@ where // The downgrade procedure may introduce duplications, we remove them. reference_hashes.dedup(); - let mut stats = CodesStats::new(u64::from(hash_bits), P::EXPONENT, B::NUMBER_OF_BITS); + let mut stats = CodesStats::new(u64::from(hash_bits)); for window in reference_hashes.windows(2) { let gap = GapHash::::into_gap_fragment( @@ -399,7 +385,7 @@ where for (hash_size, gap_report) in report { let hash_size_report = acc .entry(hash_size) - .or_insert_with(|| CodesStats::new(u64::from(hash_size), P::EXPONENT, B::NUMBER_OF_BITS)); + .or_insert_with(|| CodesStats::new(u64::from(hash_size))); hash_size_report.add(&gap_report); } acc diff --git a/src/composite_hash.rs b/src/composite_hash.rs index 4441b59..ff49abb 100644 --- a/src/composite_hash.rs +++ b/src/composite_hash.rs @@ -235,7 +235,7 @@ mod test_composite_hash { CH::Precision: ArrayRegister, { let mut random_state = 498_123_456_789; - let number_of_iterations = core::cmp::min(1, 25_000 / (1 << (CH::Precision::EXPONENT - 4))); + let number_of_iterations = core::cmp::min(1, 10_000 / (1 << (CH::Precision::EXPONENT - 4))); for _ in 0..number_of_iterations { let number_of_bits = diff --git a/src/composite_hash/gap_birthday_paradox.rs b/src/composite_hash/gap_birthday_paradox.rs index 927f650..a92ce4f 100644 --- a/src/composite_hash/gap_birthday_paradox.rs +++ b/src/composite_hash/gap_birthday_paradox.rs @@ -2,4308 +2,2222 @@ /// The cardinalities for the gap hash birthday paradox. pub(super) const GAP_HASH_BIRTHDAY_PARADOX_CARDINALITIES: [[&[u32]; 3]; 15] = [ [ - &[1u32, 3u32, 5u32, 7u32, 9u32, 11u32, 13u32, 15u32, 16u32], - &[ - 1u32, - 3u32, - 5u32, - 7u32, - 9u32, - 11u32, - 13u32, - 15u32, - 17u32, - 19u32, - 21u32, - 23u32, - 25u32, - 27u32, - 29u32, - 31u32, - 33u32, - 35u32, - 38u32, - 37u32, - ], - &[ - 1u32, - 3u32, - 5u32, - 7u32, - 9u32, - 11u32, - 13u32, - 15u32, - 17u32, - 19u32, - 21u32, - 23u32, - 25u32, - 27u32, - 29u32, - 31u32, - 33u32, - 35u32, - 37u32, - 39u32, - 41u32, - ], + &[0u32, 3u32, 5u32, 8u32, 10u32, 12u32, 13u32, 15u32, 16u32], + &[0u32, 7u32, 10u32, 16u32, 21u32, 36u32, 38u32, 37u32], + &[0u32, 7u32, 13u32, 19u32, 25u32, 29u32, 32u32, 40u32, 41u32], ], [ - &[ - 1u32, - 3u32, - 5u32, - 7u32, - 9u32, - 11u32, - 13u32, - 15u32, - 17u32, - 19u32, - 21u32, - 23u32, - 25u32, - 27u32, - 29u32, - 31u32, - 33u32, - 35u32, - 37u32, - 39u32, - ], - &[ - 1u32, - 4u32, - 7u32, - 10u32, - 13u32, - 16u32, - 19u32, - 22u32, - 25u32, - 28u32, - 31u32, - 34u32, - 37u32, - 40u32, - 43u32, - 46u32, - 49u32, - 52u32, - 55u32, - 58u32, - 60u32, - ], - &[ - 1u32, - 4u32, - 7u32, - 10u32, - 13u32, - 16u32, - 19u32, - 22u32, - 25u32, - 28u32, - 31u32, - 34u32, - 37u32, - 40u32, - 43u32, - 46u32, - 49u32, - 52u32, - 55u32, - 58u32, - 60u32, - ], + &[0u32, 7u32, 12u32, 19u32, 25u32, 29u32, 32u32, 35u32, 39u32], + &[0u32, 11u32, 20u32, 30u32, 39u32, 45u32, 50u32, 59u32, 60u32], + &[0u32, 11u32, 22u32, 33u32, 43u32, 51u32, 59u32, 60u32], ], [ &[ - 1u32, - 4u32, - 7u32, - 10u32, - 13u32, - 16u32, + 0u32, + 8u32, + 15u32, 19u32, - 22u32, - 25u32, - 28u32, + 24u32, 31u32, - 34u32, 37u32, - 40u32, - 43u32, - 46u32, - 49u32, - 52u32, - 55u32, + 44u32, + 50u32, + 54u32, 58u32, 61u32, - 64u32, - 67u32, - 70u32, + 65u32, + 71u32, 73u32, + 74u32, 75u32, ], &[ - 2u32, - 6u32, + 0u32, 10u32, - 14u32, - 18u32, - 22u32, - 26u32, - 30u32, - 34u32, - 38u32, + 19u32, + 27u32, + 29u32, + 35u32, 42u32, - 46u32, - 50u32, - 54u32, - 58u32, - 62u32, - 66u32, - 70u32, - 74u32, - 78u32, - 82u32, - 86u32, - 90u32, + 49u32, + 55u32, + 77u32, 94u32, + 96u32, 99u32, + 100u32, 98u32, ], &[ - 2u32, - 7u32, - 12u32, - 17u32, - 22u32, + 0u32, + 23u32, 27u32, - 32u32, - 37u32, - 42u32, - 47u32, - 52u32, + 31u32, + 33u32, + 41u32, + 49u32, 57u32, - 62u32, - 67u32, - 72u32, - 77u32, - 82u32, + 65u32, + 73u32, + 80u32, 87u32, - 92u32, - 97u32, - 102u32, - 107u32, - 112u32, - 116u32, + 93u32, + 115u32, + 119u32, + 117u32, ], ], [ &[ - 2u32, - 7u32, - 12u32, - 17u32, - 22u32, - 27u32, - 32u32, - 37u32, - 42u32, + 0u32, + 31u32, + 40u32, 47u32, - 52u32, - 57u32, - 62u32, - 67u32, - 72u32, - 77u32, - 82u32, - 87u32, - 92u32, - 97u32, - 102u32, - 107u32, - 112u32, - 117u32, - 122u32, - 127u32, - 132u32, - 138u32, - ], - &[ - 2u32, - 9u32, - 15u32, - 21u32, - 26u32, - 33u32, - 39u32, - 44u32, 51u32, - 57u32, - 63u32, - 68u32, - 74u32, - 80u32, + 55u32, + 62u32, + 69u32, + 75u32, 86u32, - 92u32, - 98u32, - 104u32, - 110u32, - 116u32, - 122u32, - 128u32, - 134u32, - 141u32, + 96u32, + 105u32, + 114u32, + 144u32, + 148u32, 147u32, - 153u32, - 158u32, - 164u32, - 173u32, - 174u32, - ], - &[ - 2u32, - 10u32, - 16u32, - 25u32, - 31u32, - 37u32, - 46u32, - 51u32, - 58u32, - 67u32, - 72u32, - 79u32, - 86u32, - 93u32, - 100u32, - 107u32, - 115u32, - 122u32, - 128u32, - 135u32, - 142u32, 149u32, - 158u32, - 165u32, - 172u32, - 179u32, - 186u32, - 191u32, - 199u32, - 203u32, ], - ], - [ &[ - 3u32, - 10u32, - 16u32, - 23u32, - 32u32, + 0u32, 39u32, - 44u32, - 53u32, + 51u32, + 57u32, 60u32, - 67u32, - 74u32, - 81u32, - 88u32, - 95u32, - 102u32, - 109u32, - 114u32, + 76u32, + 91u32, + 107u32, 121u32, - 128u32, - 135u32, - 142u32, - 149u32, - 156u32, - 163u32, + 136u32, + 151u32, + 161u32, 170u32, - 177u32, 185u32, - 193u32, - 200u32, - 206u32, - 214u32, - 220u32, - 224u32, - ], - &[ - 3u32, - 10u32, - 21u32, - 28u32, - 34u32, - 43u32, - 53u32, - 59u32, - 69u32, - 77u32, - 85u32, - 93u32, - 101u32, - 109u32, - 117u32, - 125u32, - 130u32, - 138u32, - 146u32, - 154u32, - 162u32, - 170u32, - 178u32, - 186u32, - 194u32, - 203u32, - 210u32, - 218u32, - 226u32, - 236u32, - 245u32, - 253u32, - 260u32, - 269u32, - 276u32, - 281u32, + 189u32, + 190u32, ], &[ - 3u32, - 14u32, - 23u32, - 33u32, - 46u32, - 53u32, + 0u32, + 47u32, + 62u32, 65u32, - 72u32, + 68u32, 87u32, - 97u32, - 107u32, - 117u32, - 127u32, - 137u32, + 106u32, + 125u32, 142u32, - 152u32, - 162u32, - 172u32, - 182u32, - 193u32, - 202u32, - 213u32, - 222u32, - 236u32, - 245u32, - 252u32, - 263u32, - 272u32, - 283u32, - 297u32, - 307u32, - 313u32, - 323u32, - 333u32, + 159u32, + 174u32, + 189u32, + 200u32, + 209u32, + 221u32, + 230u32, + 229u32, ], ], [ &[ - 7u32, - 12u32, - 27u32, - 34u32, - 44u32, - 53u32, - 67u32, - 73u32, - 87u32, - 97u32, - 107u32, + 0u32, + 63u32, + 81u32, + 94u32, + 104u32, 117u32, - 127u32, - 137u32, - 144u32, - 155u32, - 167u32, - 177u32, - 187u32, - 197u32, - 206u32, - 212u32, - 222u32, + 134u32, + 150u32, + 165u32, + 188u32, + 209u32, 232u32, - 242u32, - 252u32, - 262u32, - 272u32, - 282u32, - 293u32, - 302u32, - 312u32, - 323u32, - 337u32, - 347u32, - 352u32, - 363u32, - 372u32, + 247u32, + 264u32, + 277u32, + 283u32, + 285u32, ], &[ - 9u32, - 20u32, - 28u32, - 44u32, - 53u32, - 69u32, - 74u32, - 88u32, - 105u32, - 117u32, - 127u32, - 140u32, - 153u32, - 165u32, + 0u32, + 77u32, + 98u32, + 116u32, + 121u32, + 149u32, 177u32, - 189u32, - 195u32, - 213u32, - 225u32, - 235u32, - 242u32, - 254u32, - 266u32, - 278u32, - 290u32, - 302u32, + 206u32, + 232u32, + 261u32, + 291u32, 316u32, - 327u32, - 342u32, - 351u32, - 364u32, - 376u32, - 392u32, - 405u32, - 414u32, - 429u32, - 440u32, - 449u32, - 457u32, + 334u32, + 358u32, + 360u32, + 363u32, + 366u32, ], &[ - 10u32, - 20u32, - 33u32, - 53u32, - 69u32, - 83u32, - 96u32, - 117u32, - 129u32, - 145u32, - 152u32, - 177u32, - 192u32, - 204u32, - 222u32, - 237u32, - 252u32, - 259u32, - 272u32, - 287u32, - 303u32, - 317u32, - 332u32, - 347u32, - 366u32, - 377u32, - 393u32, - 408u32, - 426u32, + 0u32, + 89u32, + 111u32, + 130u32, + 134u32, + 161u32, + 189u32, + 217u32, + 243u32, + 275u32, + 304u32, + 335u32, + 365u32, + 433u32, + 443u32, + 434u32, 440u32, - 457u32, - 476u32, - 482u32, - 506u32, - 519u32, - 533u32, - 549u32, ], ], [ &[ 0u32, - 15u32, - 35u32, - 47u32, - 62u32, - 77u32, - 92u32, - 107u32, - 126u32, - 137u32, - 152u32, - 173u32, - 184u32, - 197u32, - 221u32, - 234u32, - 247u32, - 264u32, - 278u32, - 292u32, - 312u32, - 317u32, - 342u32, - 350u32, - 372u32, - 386u32, - 397u32, - 413u32, - 423u32, + 121u32, + 155u32, + 186u32, + 208u32, + 226u32, + 255u32, + 281u32, + 307u32, + 355u32, + 401u32, 443u32, - 461u32, - 475u32, - 485u32, - 501u32, - 520u32, - 532u32, - 548u32, - 562u32, - 577u32, - 594u32, - 609u32, - 612u32, + 487u32, + 540u32, + 547u32, + 542u32, + 545u32, ], &[ 0u32, - 33u32, - 40u32, - 62u32, - 78u32, - 97u32, - 116u32, - 135u32, - 154u32, - 173u32, - 192u32, - 220u32, - 234u32, - 249u32, - 270u32, - 292u32, - 318u32, - 337u32, - 356u32, - 377u32, - 395u32, - 415u32, - 434u32, - 443u32, - 458u32, - 489u32, - 505u32, - 527u32, - 543u32, - 554u32, - 577u32, - 605u32, - 617u32, - 633u32, - 661u32, - 678u32, - 687u32, - 713u32, - 732u32, - 748u32, - 769u32, + 147u32, + 185u32, + 218u32, + 240u32, + 274u32, + 314u32, + 353u32, + 389u32, + 445u32, + 503u32, + 556u32, + 614u32, + 704u32, + 716u32, + 707u32, ], &[ 0u32, - 33u32, - 62u32, - 71u32, - 94u32, - 117u32, - 140u32, - 163u32, - 186u32, - 220u32, - 234u32, - 270u32, - 290u32, - 306u32, - 339u32, - 356u32, - 386u32, - 411u32, - 433u32, - 451u32, - 479u32, - 491u32, - 514u32, - 537u32, - 563u32, - 593u32, - 607u32, - 631u32, - 664u32, - 675u32, - 697u32, - 719u32, - 745u32, - 777u32, - 802u32, - 822u32, - 846u32, + 178u32, + 222u32, + 262u32, + 269u32, + 325u32, + 378u32, + 431u32, + 485u32, + 548u32, + 612u32, + 674u32, + 733u32, + 856u32, 870u32, - 879u32, - 917u32, - 924u32, + 860u32, + 866u32, ], ], [ &[ 0u32, - 35u32, - 46u32, - 85u32, - 107u32, - 126u32, - 143u32, - 166u32, - 178u32, - 209u32, - 234u32, - 260u32, - 266u32, - 305u32, - 313u32, - 334u32, - 357u32, - 393u32, - 413u32, + 243u32, + 310u32, + 373u32, + 415u32, 426u32, - 450u32, - 479u32, - 498u32, - 525u32, - 547u32, - 563u32, - 588u32, - 598u32, - 635u32, - 645u32, - 667u32, - 691u32, - 719u32, - 734u32, - 760u32, - 786u32, - 800u32, - 817u32, - 843u32, + 469u32, + 501u32, + 532u32, + 622u32, + 711u32, + 791u32, 860u32, - 895u32, - 912u32, - 939u32, - 964u32, - 987u32, - 996u32, + 956u32, + 1005u32, + 1059u32, + 1064u32, ], &[ 0u32, - 28u32, - 56u32, - 84u32, - 112u32, - 165u32, - 191u32, - 217u32, - 234u32, - 264u32, - 305u32, - 329u32, - 338u32, + 286u32, 372u32, - 396u32, - 426u32, - 450u32, - 479u32, - 507u32, - 534u32, - 563u32, - 612u32, - 637u32, - 668u32, - 696u32, - 708u32, - 751u32, - 758u32, - 787u32, - 826u32, - 845u32, - 870u32, - 912u32, - 937u32, - 975u32, - 996u32, - 1028u32, - 1052u32, - 1087u32, - 1095u32, - 1134u32, - 1173u32, - 1200u32, - 1211u32, - 1252u32, - 1258u32, + 437u32, + 482u32, + 542u32, + 625u32, + 674u32, + 752u32, + 869u32, + 965u32, + 1075u32, + 1176u32, + 1362u32, + 1373u32, + 1364u32, + 1385u32, ], &[ 0u32, - 34u32, - 68u32, - 102u32, - 136u32, - 170u32, - 233u32, - 264u32, - 274u32, - 329u32, - 345u32, - 396u32, - 417u32, + 354u32, 444u32, - 479u32, - 522u32, - 546u32, - 602u32, - 632u32, - 668u32, - 684u32, - 732u32, - 778u32, - 787u32, - 842u32, - 869u32, - 889u32, - 943u32, - 971u32, - 988u32, - 1026u32, - 1063u32, - 1103u32, - 1139u32, - 1162u32, - 1218u32, - 1247u32, - 1283u32, - 1308u32, - 1345u32, - 1376u32, - 1401u32, - 1446u32, - 1488u32, - 1510u32, + 528u32, + 538u32, + 635u32, + 761u32, + 858u32, + 946u32, + 1070u32, + 1187u32, + 1289u32, + 1398u32, + 1561u32, + 1677u32, + 1683u32, + 1696u32, ], ], [ &[ 0u32, - 37u32, - 74u32, - 111u32, - 148u32, - 188u32, - 233u32, - 289u32, - 329u32, - 339u32, - 396u32, - 413u32, - 478u32, - 483u32, - 522u32, - 560u32, - 609u32, - 657u32, - 668u32, - 732u32, - 746u32, - 780u32, - 846u32, - 881u32, - 919u32, - 945u32, - 992u32, - 1024u32, - 1068u32, - 1102u32, - 1139u32, - 1159u32, - 1217u32, - 1232u32, - 1281u32, - 1305u32, - 1357u32, - 1397u32, - 1438u32, - 1470u32, - 1493u32, - 1522u32, - 1570u32, - 1624u32, - 1656u32, - 1679u32, - 1736u32, - 1770u32, - 1811u32, - 1813u32, + 445u32, + 562u32, + 683u32, + 764u32, + 785u32, + 852u32, + 909u32, + 962u32, + 1117u32, + 1268u32, + 1400u32, + 1555u32, + 1866u32, + 1887u32, + 1876u32, + 1900u32, ], &[ 0u32, - 47u32, - 94u32, - 183u32, - 190u32, - 238u32, - 289u32, - 331u32, - 396u32, - 425u32, - 483u32, - 554u32, - 587u32, - 655u32, - 666u32, - 736u32, - 780u32, - 814u32, - 860u32, - 897u32, - 948u32, - 992u32, - 1072u32, - 1088u32, - 1166u32, - 1196u32, - 1257u32, - 1305u32, - 1340u32, - 1407u32, - 1454u32, - 1460u32, - 1514u32, - 1565u32, - 1618u32, - 1656u32, - 1696u32, - 1751u32, - 1803u32, - 1853u32, - 1894u32, - 1965u32, - 1977u32, - 2054u32, - 2086u32, - 2119u32, - 2173u32, - 2248u32, - 2280u32, + 546u32, + 679u32, + 809u32, + 895u32, + 967u32, + 1068u32, + 1162u32, + 1261u32, + 1429u32, + 1598u32, + 1764u32, + 1944u32, + 2103u32, + 2307u32, + 2519u32, + 2525u32, ], &[ 0u32, - 57u32, - 114u32, - 183u32, - 233u32, - 331u32, - 396u32, - 401u32, - 483u32, - 554u32, - 587u32, - 666u32, - 736u32, - 780u32, - 813u32, - 858u32, - 948u32, - 992u32, - 1072u32, - 1129u32, - 1150u32, - 1199u32, - 1265u32, - 1354u32, - 1414u32, - 1430u32, - 1531u32, - 1593u32, - 1633u32, - 1667u32, - 1739u32, - 1784u32, - 1855u32, - 1889u32, - 1977u32, - 2016u32, - 2106u32, - 2134u32, - 2187u32, - 2251u32, - 2286u32, - 2363u32, - 2445u32, - 2462u32, - 2539u32, - 2573u32, - 2640u32, - 2727u32, - 2748u32, + 676u32, + 807u32, + 925u32, + 1004u32, + 1189u32, + 1350u32, + 1536u32, + 1699u32, + 1940u32, + 2165u32, + 2423u32, + 2629u32, + 2826u32, + 3033u32, + 3130u32, + 3139u32, ], ], [ &[ 0u32, - 63u32, - 142u32, - 248u32, - 254u32, - 331u32, - 396u32, - 450u32, - 506u32, - 596u32, - 678u32, - 715u32, - 789u32, - 827u32, - 896u32, - 947u32, - 1050u32, - 1129u32, - 1184u32, - 1214u32, - 1275u32, - 1331u32, - 1419u32, - 1479u32, - 1568u32, - 1599u32, - 1687u32, - 1729u32, - 1819u32, - 1875u32, - 1941u32, - 2000u32, - 2044u32, - 2137u32, - 2186u32, - 2245u32, - 2309u32, - 2349u32, - 2448u32, - 2476u32, - 2550u32, - 2592u32, - 2689u32, - 2741u32, - 2812u32, - 2895u32, - 2908u32, - 3012u32, - 3065u32, - 3144u32, - 3178u32, - 3269u32, - 3311u32, + 542u32, + 925u32, + 1068u32, + 1175u32, + 1288u32, + 1425u32, + 1472u32, + 1587u32, + 1604u32, + 1617u32, + 1647u32, + 1707u32, + 1759u32, + 1801u32, + 1895u32, + 1897u32, + 2045u32, + 2204u32, + 2329u32, + 2467u32, + 2587u32, + 2764u32, + 2928u32, + 3077u32, + 3599u32, + 3876u32, + 3880u32, + 3893u32, + 3903u32, + 3921u32, + 3909u32, + 3902u32, ], &[ 0u32, - 142u32, - 183u32, - 248u32, - 331u32, - 405u32, - 504u32, - 596u32, - 678u32, - 722u32, - 827u32, - 896u32, - 1020u32, - 1070u32, - 1129u32, - 1276u32, - 1331u32, - 1417u32, - 1479u32, - 1573u32, - 1661u32, - 1688u32, - 1810u32, - 1855u32, - 1994u32, - 2028u32, - 2103u32, + 542u32, + 1125u32, + 1290u32, + 1399u32, + 1525u32, + 1671u32, + 1835u32, + 1849u32, + 1876u32, + 2001u32, + 2110u32, 2213u32, - 2273u32, - 2368u32, - 2426u32, - 2546u32, - 2600u32, - 2716u32, - 2784u32, - 2872u32, - 2905u32, - 2993u32, - 3098u32, - 3133u32, - 3210u32, - 3296u32, - 3426u32, - 3493u32, - 3556u32, - 3627u32, - 3743u32, - 3779u32, - 3845u32, - 3995u32, - 4036u32, - 4155u32, - 4166u32, + 2303u32, + 2416u32, + 2524u32, + 2626u32, + 2800u32, + 2963u32, + 3141u32, + 3325u32, + 3508u32, + 3671u32, + 3878u32, + 4043u32, + 4231u32, + 4473u32, + 4644u32, + 4862u32, + 5152u32, + 5169u32, + 5163u32, + 5182u32, ], &[ 0u32, - 142u32, - 248u32, - 331u32, - 396u32, - 504u32, - 596u32, - 678u32, - 827u32, - 896u32, - 1020u32, - 1129u32, - 1171u32, - 1276u32, - 1384u32, - 1490u32, - 1614u32, - 1721u32, - 1764u32, - 1855u32, - 1995u32, - 2103u32, - 2157u32, - 2248u32, - 2332u32, - 2479u32, - 2569u32, - 2683u32, - 2771u32, - 2870u32, - 2967u32, - 3054u32, - 3099u32, - 3196u32, - 3301u32, - 3381u32, - 3531u32, - 3589u32, - 3734u32, - 3834u32, - 3912u32, - 3971u32, - 4125u32, - 4219u32, - 4257u32, - 4357u32, - 4496u32, - 4533u32, - 4622u32, - 4762u32, - 4854u32, - 4986u32, - 5012u32, + 542u32, + 1182u32, + 1445u32, + 1599u32, + 1727u32, + 1880u32, + 2053u32, + 2069u32, + 2198u32, + 2378u32, + 2574u32, + 2708u32, + 2860u32, + 3024u32, + 3182u32, + 3337u32, + 3524u32, + 3752u32, + 4019u32, + 4215u32, + 4435u32, + 4603u32, + 4779u32, + 5027u32, + 5187u32, + 5413u32, + 5684u32, + 5866u32, + 6053u32, + 6241u32, + 6388u32, + 6405u32, ], ], [ &[ 0u32, - 165u32, - 261u32, - 329u32, - 505u32, - 550u32, - 687u32, - 833u32, - 898u32, - 1026u32, - 1098u32, - 1276u32, - 1359u32, - 1430u32, - 1599u32, - 1640u32, - 1765u32, - 1864u32, - 1997u32, - 2153u32, - 2175u32, - 2373u32, - 2412u32, - 2574u32, - 2659u32, - 2804u32, - 2893u32, - 2918u32, - 3074u32, - 3219u32, - 3276u32, - 3408u32, - 3458u32, - 3655u32, - 3766u32, - 3871u32, - 3946u32, - 4096u32, - 4208u32, - 4287u32, - 4370u32, - 4498u32, - 4625u32, - 4681u32, - 4778u32, - 4925u32, - 4993u32, - 5092u32, - 5260u32, - 5378u32, - 5464u32, - 5551u32, - 5719u32, - 5800u32, - 5895u32, - 6039u32, - 6069u32, + 978u32, + 1913u32, + 2205u32, + 2410u32, + 2634u32, + 2913u32, + 3069u32, + 3245u32, + 3272u32, + 3289u32, + 3333u32, + 3424u32, + 3544u32, + 3643u32, + 3810u32, + 3811u32, + 4084u32, + 4374u32, + 4671u32, + 4927u32, + 5144u32, + 5502u32, + 5744u32, + 6047u32, + 6361u32, + 6624u32, + 6944u32, + 7228u32, + 7924u32, + 7951u32, + 7957u32, + 7942u32, ], &[ 0u32, - 261u32, - 274u32, - 505u32, - 550u32, - 687u32, - 898u32, - 1026u32, - 1098u32, - 1276u32, - 1430u32, - 1510u32, - 1765u32, - 1864u32, - 1996u32, - 2153u32, - 2220u32, - 2413u32, - 2466u32, - 2636u32, - 2771u32, + 987u32, + 2135u32, + 2631u32, 2862u32, - 3074u32, - 3221u32, - 3374u32, - 3409u32, - 3666u32, - 3742u32, - 3892u32, - 3948u32, - 4104u32, - 4290u32, - 4382u32, - 4551u32, - 4757u32, - 4881u32, - 4899u32, - 5142u32, - 5242u32, - 5393u32, - 5484u32, - 5608u32, - 5733u32, - 5961u32, - 6064u32, - 6183u32, - 6317u32, - 6434u32, - 6653u32, - 6706u32, - 6892u32, - 6954u32, - 7190u32, - 7269u32, - 7458u32, - 7605u32, - 7622u32, + 3111u32, + 3402u32, + 3713u32, + 3771u32, + 3907u32, + 4149u32, + 4327u32, + 4533u32, + 4736u32, + 4917u32, + 5168u32, + 5365u32, + 5753u32, + 6102u32, + 6456u32, + 6793u32, + 7163u32, + 7544u32, + 7874u32, + 8230u32, + 8685u32, + 9141u32, + 9487u32, + 9859u32, + 10443u32, + 10473u32, + 10454u32, + 10496u32, ], &[ 0u32, - 261u32, - 329u32, - 505u32, - 687u32, - 898u32, - 1026u32, - 1276u32, - 1430u32, - 1510u32, - 1765u32, - 1864u32, - 1997u32, - 2153u32, - 2413u32, - 2519u32, - 2636u32, - 2862u32, - 2995u32, - 3148u32, - 3342u32, - 3505u32, - 3724u32, - 3895u32, - 3948u32, - 4140u32, - 4291u32, - 4446u32, - 4666u32, - 4884u32, - 5014u32, - 5147u32, - 5278u32, - 5418u32, - 5694u32, - 5813u32, - 5939u32, - 6148u32, - 6236u32, - 6476u32, - 6618u32, - 6760u32, - 6865u32, - 7164u32, - 7325u32, - 7355u32, - 7523u32, - 7818u32, - 7974u32, - 8021u32, - 8178u32, - 8473u32, - 8483u32, - 8739u32, - 8942u32, - 9120u32, - 9157u32, + 976u32, + 1871u32, + 3017u32, + 3276u32, + 3514u32, + 3814u32, + 4186u32, + 4209u32, + 4477u32, + 4804u32, + 5164u32, + 5441u32, + 5797u32, + 6094u32, + 6428u32, + 6748u32, + 7211u32, + 7633u32, + 8092u32, + 8497u32, + 8911u32, + 9343u32, + 9666u32, + 10189u32, + 10735u32, + 11146u32, + 11608u32, + 12056u32, + 12908u32, + 12954u32, + 12914u32, + 12936u32, ], ], [ &[ 0u32, - 186u32, - 372u32, - 558u32, - 744u32, - 930u32, - 1116u32, - 1302u32, - 1488u32, - 1674u32, - 1860u32, - 2046u32, - 2232u32, - 2418u32, - 2671u32, - 2950u32, - 3010u32, - 3164u32, - 3350u32, - 3673u32, - 3751u32, - 4083u32, - 4181u32, - 4280u32, - 4466u32, - 4776u32, - 4865u32, - 5094u32, - 5278u32, - 5566u32, - 5722u32, - 5914u32, - 5962u32, - 6308u32, - 6490u32, - 6679u32, - 6854u32, - 6979u32, - 7247u32, - 7403u32, - 7539u32, - 7784u32, - 7931u32, - 8181u32, - 8240u32, - 8447u32, - 8642u32, - 8794u32, - 8944u32, - 9144u32, - 9339u32, - 9499u32, - 9689u32, - 9879u32, - 10156u32, - 10355u32, - 10444u32, - 10679u32, - 10858u32, - 11152u32, - 11166u32, + 1828u32, + 3602u32, + 4470u32, + 4882u32, + 5352u32, + 5918u32, + 6186u32, + 6615u32, + 6648u32, + 6702u32, + 6930u32, + 7171u32, + 7306u32, + 7452u32, + 7632u32, + 7813u32, + 8356u32, + 8931u32, + 9409u32, + 10089u32, + 10534u32, + 11160u32, + 11810u32, + 12444u32, + 13005u32, + 13698u32, + 14445u32, + 15039u32, + 15980u32, + 16014u32, + 16008u32, + 16041u32, ], &[ 0u32, - 233u32, - 466u32, - 699u32, - 932u32, - 1165u32, - 1398u32, - 1631u32, - 1864u32, - 2097u32, - 2330u32, - 2671u32, - 2950u32, - 3031u32, - 3264u32, - 3673u32, - 3730u32, - 4083u32, - 4196u32, - 4429u32, - 4777u32, - 4971u32, - 5148u32, - 5404u32, - 5601u32, - 5921u32, - 6263u32, - 6293u32, - 6538u32, - 6909u32, - 7134u32, - 7392u32, - 7515u32, - 7745u32, - 7994u32, - 8179u32, - 8602u32, - 8768u32, - 9064u32, + 1677u32, + 3235u32, + 5288u32, + 5792u32, + 6288u32, + 6893u32, + 7574u32, + 7625u32, + 7951u32, + 8373u32, + 8775u32, 9154u32, - 9354u32, - 9781u32, - 9935u32, - 10222u32, - 10338u32, - 10678u32, - 10931u32, - 11023u32, - 11399u32, - 11495u32, - 11789u32, - 12032u32, - 12338u32, - 12498u32, - 12684u32, - 12858u32, - 13068u32, - 13484u32, - 13526u32, - 13975u32, - 14005u32, + 9538u32, + 9925u32, + 10252u32, + 10718u32, + 11471u32, + 12203u32, + 12835u32, + 13647u32, + 14480u32, + 15150u32, + 15848u32, + 16456u32, + 17323u32, + 17996u32, + 18728u32, + 19596u32, + 20302u32, + 20859u32, + 21085u32, + 21136u32, ], &[ 0u32, - 281u32, - 562u32, - 843u32, - 1124u32, - 1405u32, - 1686u32, - 1967u32, - 2254u32, - 2531u32, - 2950u32, - 3093u32, - 3374u32, - 3673u32, - 4083u32, - 4217u32, - 4498u32, - 4779u32, - 5094u32, - 5341u32, - 5723u32, - 5921u32, - 6263u32, - 6612u32, - 6908u32, - 7264u32, - 7458u32, - 7862u32, - 7904u32, - 8381u32, - 8668u32, - 8793u32, - 9027u32, - 9419u32, - 9789u32, - 9957u32, - 10347u32, - 10664u32, - 10902u32, - 11099u32, - 11304u32, - 11636u32, - 11819u32, - 12249u32, - 12488u32, - 12753u32, - 13126u32, - 13479u32, - 13704u32, - 13915u32, - 14249u32, - 14372u32, - 14713u32, - 14987u32, - 15322u32, - 15598u32, - 15899u32, - 16093u32, - 16538u32, - 16817u32, - 16855u32, + 1677u32, + 3235u32, + 4916u32, + 6570u32, + 7089u32, + 7698u32, + 8465u32, + 8501u32, + 9131u32, + 9793u32, + 10393u32, + 11063u32, + 11717u32, + 12363u32, + 12922u32, + 13497u32, + 14430u32, + 15210u32, + 15970u32, + 16767u32, + 17707u32, + 18534u32, + 19459u32, + 20241u32, + 21101u32, + 21854u32, + 22776u32, + 23711u32, + 24686u32, + 25681u32, + 25969u32, + 26003u32, ], ], [ &[ 0u32, - 322u32, - 644u32, - 966u32, - 1498u32, - 1612u32, - 2099u32, - 2256u32, - 2671u32, - 2900u32, - 3222u32, - 3673u32, - 3866u32, - 4188u32, - 4694u32, - 5148u32, - 5434u32, - 5634u32, - 6003u32, - 6189u32, - 6610u32, - 6970u32, - 7099u32, - 7408u32, - 7828u32, - 8105u32, - 8600u32, - 8763u32, - 9215u32, - 9621u32, - 9912u32, - 10067u32, - 10351u32, - 10882u32, - 11000u32, - 11583u32, + 6249u32, + 7803u32, + 9043u32, + 9829u32, + 10775u32, 11909u32, - 11927u32, - 12450u32, - 12614u32, - 13109u32, - 13214u32, - 13761u32, - 14025u32, - 14287u32, - 14711u32, - 15064u32, - 15443u32, - 15732u32, - 16058u32, - 16185u32, - 16623u32, - 17045u32, - 17117u32, - 17543u32, - 17991u32, - 18219u32, - 18523u32, - 18926u32, - 19022u32, - 19507u32, - 19895u32, - 20111u32, - 20555u32, - 20657u32, + 12244u32, + 12746u32, + 13003u32, + 13345u32, + 13378u32, + 13410u32, + 13843u32, + 14353u32, + 14854u32, + 15363u32, + 16467u32, + 17567u32, + 18790u32, + 19903u32, + 21064u32, + 22300u32, + 23554u32, + 24526u32, + 25859u32, + 27098u32, + 28333u32, + 29464u32, + 30782u32, + 31832u32, + 32176u32, + 32231u32, ], &[ 0u32, - 404u32, - 808u32, - 1498u32, - 1618u32, - 2099u32, - 2671u32, - 2830u32, - 3234u32, - 3673u32, - 4042u32, - 4446u32, - 5148u32, - 5634u32, - 5668u32, - 6062u32, - 6610u32, - 6970u32, - 7274u32, - 7881u32, - 8303u32, - 8522u32, - 8938u32, - 9613u32, - 9912u32, - 10345u32, - 10880u32, - 10974u32, - 11443u32, - 11775u32, - 12193u32, - 12801u32, - 13322u32, - 13658u32, - 13978u32, - 14514u32, - 14899u32, - 15279u32, - 15648u32, - 15811u32, - 16487u32, - 16759u32, - 17264u32, - 17698u32, - 18175u32, - 18581u32, - 18778u32, - 19087u32, - 19740u32, - 19901u32, - 20595u32, - 20855u32, - 21096u32, - 21503u32, - 21857u32, - 22355u32, - 22666u32, - 23350u32, - 23747u32, - 23895u32, - 24508u32, - 24906u32, - 25375u32, - 25853u32, - 25896u32, + 7870u32, + 9380u32, + 10781u32, + 11659u32, + 12670u32, + 13862u32, + 14952u32, + 15349u32, + 15913u32, + 16827u32, + 17632u32, + 18323u32, + 19138u32, + 19855u32, + 20590u32, + 21310u32, + 22954u32, + 24334u32, + 25920u32, + 27362u32, + 28642u32, + 30123u32, + 31510u32, + 32730u32, + 34258u32, + 35600u32, + 37000u32, + 38677u32, + 40559u32, + 41938u32, + 42269u32, + 42382u32, ], &[ 0u32, - 486u32, - 972u32, - 1498u32, - 2099u32, - 2432u32, - 2918u32, - 3673u32, - 4181u32, - 4376u32, - 5148u32, - 5634u32, - 5886u32, - 6610u32, - 6970u32, - 7292u32, - 7881u32, - 8303u32, - 8990u32, - 9613u32, - 9932u32, - 10239u32, - 10976u32, - 11266u32, - 11924u32, - 12193u32, - 12801u32, - 13322u32, - 13950u32, - 14110u32, - 14731u32, - 15349u32, - 15975u32, - 16472u32, - 16937u32, - 17241u32, - 17882u32, - 18301u32, - 18901u32, - 19301u32, - 19622u32, - 20206u32, - 20824u32, - 21359u32, - 21826u32, - 21995u32, - 22429u32, - 22940u32, - 23573u32, - 24284u32, - 24527u32, - 24810u32, - 25701u32, - 25912u32, - 26542u32, - 26807u32, - 27687u32, - 28035u32, - 28358u32, - 28957u32, - 29551u32, - 29905u32, - 30260u32, - 31098u32, - 31124u32, + 8772u32, + 10809u32, + 12277u32, + 13201u32, + 14246u32, + 15483u32, + 17036u32, + 17100u32, + 18313u32, + 19710u32, + 21049u32, + 22218u32, + 23432u32, + 24724u32, + 25957u32, + 27147u32, + 28841u32, + 30644u32, + 32318u32, + 33748u32, + 35633u32, + 37260u32, + 38861u32, + 40341u32, + 42250u32, + 43693u32, + 45312u32, + 47075u32, + 49160u32, + 50847u32, + 52153u32, + 52171u32, ], ], [ &[ 0u32, - 564u32, - 1128u32, - 2099u32, - 2339u32, - 3144u32, - 3653u32, - 4240u32, - 4514u32, - 5148u32, - 5684u32, - 6449u32, - 6970u32, - 7457u32, - 8303u32, - 8522u32, - 9033u32, - 9620u32, - 10154u32, - 10944u32, - 11480u32, - 12107u32, - 12832u32, - 13121u32, - 13629u32, - 14105u32, - 14722u32, - 15352u32, - 15978u32, - 16427u32, - 17333u32, - 17867u32, - 18330u32, - 18642u32, - 19276u32, - 19903u32, - 20806u32, - 21237u32, - 21840u32, - 21999u32, - 22810u32, - 23493u32, - 24162u32, - 24556u32, - 25233u32, - 25619u32, - 26342u32, - 26641u32, - 27621u32, - 28141u32, - 28665u32, - 29311u32, - 29401u32, - 30313u32, - 30721u32, - 31252u32, - 32095u32, - 32296u32, - 32752u32, - 33599u32, - 34233u32, - 34726u32, - 35462u32, - 35751u32, - 36116u32, - 36795u32, - 37780u32, - 38329u32, - 38363u32, + 12188u32, + 14727u32, + 16823u32, + 18182u32, + 19759u32, + 21634u32, + 23905u32, + 24098u32, + 25059u32, + 26188u32, + 26812u32, + 26885u32, + 27480u32, + 28476u32, + 29440u32, + 30502u32, + 32684u32, + 34922u32, + 37288u32, + 39640u32, + 42144u32, + 44101u32, + 46372u32, + 48506u32, + 50685u32, + 52973u32, + 55272u32, + 57573u32, + 64410u32, + 64565u32, + 64455u32, + 64549u32, ], &[ 0u32, - 708u32, - 2099u32, - 2671u32, - 3144u32, - 4240u32, - 4320u32, - 5148u32, - 5684u32, - 6449u32, - 7457u32, - 8303u32, - 8522u32, - 9566u32, - 9932u32, - 10976u32, - 11611u32, - 12107u32, - 12832u32, - 13629u32, - 14219u32, - 15035u32, - 15975u32, - 16320u32, - 17001u32, - 17893u32, - 18453u32, - 19488u32, - 20092u32, - 20766u32, - 21860u32, - 22487u32, - 22766u32, - 23708u32, - 24165u32, - 24836u32, - 26153u32, - 26389u32, - 27237u32, - 27618u32, - 28986u32, - 29652u32, - 29967u32, - 30663u32, - 31741u32, - 32087u32, - 32854u32, - 33946u32, - 34663u32, - 34912u32, - 35871u32, - 36219u32, - 37449u32, - 37587u32, - 38911u32, - 39644u32, - 39765u32, - 40937u32, - 41575u32, - 42279u32, - 42922u32, - 43762u32, - 44600u32, - 44770u32, - 45865u32, - 46063u32, - 47139u32, - 48075u32, - 48113u32, + 15313u32, + 18845u32, + 21626u32, + 23413u32, + 25432u32, + 27833u32, + 29367u32, + 30817u32, + 32224u32, + 33532u32, + 35187u32, + 36639u32, + 38340u32, + 39310u32, + 40808u32, + 42577u32, + 45544u32, + 48341u32, + 51353u32, + 53501u32, + 57433u32, + 59613u32, + 62673u32, + 65156u32, + 67706u32, + 71315u32, + 74486u32, + 77086u32, + 84635u32, + 84730u32, + 84643u32, + 84845u32, ], &[ 0u32, - 851u32, - 2099u32, - 3144u32, - 4240u32, - 4320u32, - 5148u32, - 6003u32, - 6970u32, - 8303u32, - 8557u32, - 9566u32, - 10976u32, - 11126u32, - 12107u32, - 12801u32, - 13629u32, - 14547u32, - 15975u32, - 16320u32, - 17183u32, - 17893u32, - 18886u32, - 19599u32, - 20576u32, - 21821u32, - 22231u32, - 23395u32, - 24180u32, - 25322u32, - 26313u32, - 26817u32, - 27807u32, - 28418u32, - 29669u32, - 29887u32, - 31425u32, - 31622u32, - 33060u32, - 33487u32, - 34684u32, - 35558u32, - 36113u32, - 37063u32, - 37809u32, - 38825u32, - 39931u32, - 40818u32, - 41082u32, - 42230u32, - 43137u32, - 44071u32, - 44538u32, - 45487u32, - 46677u32, - 47402u32, - 48260u32, - 49065u32, - 49931u32, - 50925u32, - 51089u32, - 52112u32, - 53533u32, - 54380u32, - 55094u32, - 55387u32, - 56255u32, - 57843u32, - 57854u32, + 17207u32, + 21456u32, + 24609u32, + 26465u32, + 28564u32, + 31035u32, + 34193u32, + 34312u32, + 36689u32, + 39176u32, + 41681u32, + 44178u32, + 46746u32, + 49182u32, + 51618u32, + 54024u32, + 58177u32, + 61249u32, + 65081u32, + 68310u32, + 71808u32, + 74976u32, + 78247u32, + 81372u32, + 84558u32, + 88382u32, + 91098u32, + 94513u32, + 104189u32, + 104375u32, + 104263u32, + 104333u32, ], ], [ &[ - 713u32, - 997u32, - 2099u32, - 3653u32, - 4181u32, - 5602u32, - 6189u32, - 6970u32, - 8091u32, - 9033u32, - 10396u32, - 10974u32, - 12150u32, - 13079u32, - 14110u32, - 15742u32, - 16115u32, - 17532u32, - 18292u32, - 19832u32, - 20049u32, - 21114u32, - 22238u32, - 23620u32, - 23960u32, - 25726u32, - 25949u32, - 27397u32, - 28532u32, - 29635u32, - 30033u32, - 30870u32, - 32826u32, - 33296u32, - 34444u32, - 34994u32, - 36213u32, - 37762u32, - 38001u32, - 39107u32, - 40253u32, - 41764u32, - 42526u32, - 43705u32, - 44492u32, - 45241u32, - 46678u32, - 47692u32, - 48696u32, - 49133u32, - 50241u32, - 51448u32, - 52686u32, - 53673u32, - 54545u32, - 55576u32, - 56604u32, - 57655u32, - 58567u32, - 59123u32, - 60480u32, - 61681u32, - 62398u32, - 63524u32, - 64528u32, - 64883u32, - 66420u32, - 67435u32, - 68180u32, - 68902u32, - 70093u32, - 71628u32, - 71642u32, + 0u32, + 25066u32, + 29200u32, + 33730u32, + 36484u32, + 39625u32, + 43407u32, + 46339u32, + 48061u32, + 49238u32, + 51903u32, + 53708u32, + 53889u32, + 54606u32, + 56158u32, + 58283u32, + 59785u32, + 64580u32, + 68959u32, + 73405u32, + 78135u32, + 81931u32, + 86487u32, + 90913u32, + 95551u32, + 99923u32, + 104392u32, + 108077u32, + 112546u32, + 123029u32, + 129076u32, + 129186u32, + 129257u32, ], &[ - 713u32, - 2099u32, - 2671u32, - 4181u32, - 5602u32, - 6340u32, - 8091u32, - 8762u32, - 10396u32, - 12150u32, - 12832u32, - 14110u32, - 16115u32, - 16320u32, - 17532u32, - 18770u32, - 21050u32, - 21858u32, - 23620u32, - 23734u32, - 25716u32, - 27397u32, - 28532u32, - 29228u32, - 30033u32, - 32285u32, - 33541u32, - 33998u32, - 35342u32, - 36683u32, - 37674u32, - 38828u32, - 40907u32, - 41829u32, - 42509u32, - 44731u32, - 45611u32, - 47114u32, - 48311u32, - 49704u32, - 49927u32, - 52398u32, - 52610u32, - 54834u32, - 55164u32, - 57292u32, - 58529u32, - 59582u32, - 60028u32, - 62050u32, - 62774u32, - 63944u32, - 66094u32, - 67300u32, - 68070u32, - 69527u32, - 71079u32, - 71870u32, - 72801u32, - 74206u32, - 75761u32, - 77268u32, - 77765u32, - 79807u32, - 79950u32, - 82185u32, - 82441u32, - 83869u32, - 85732u32, - 87229u32, - 87946u32, - 89810u32, - 89863u32, + 0u32, + 31626u32, + 37628u32, + 43390u32, + 46849u32, + 50922u32, + 55794u32, + 60207u32, + 61746u32, + 64188u32, + 66730u32, + 69903u32, + 72990u32, + 76295u32, + 78439u32, + 80608u32, + 83587u32, + 89220u32, + 95306u32, + 101287u32, + 106042u32, + 111513u32, + 115733u32, + 122064u32, + 127458u32, + 132158u32, + 137395u32, + 143435u32, + 148951u32, + 154836u32, + 161228u32, + 169681u32, + 169666u32, ], &[ - 713u32, - 2099u32, - 3653u32, - 4502u32, - 6340u32, - 8091u32, - 9033u32, - 10776u32, - 12150u32, - 14110u32, - 16116u32, - 16857u32, - 18166u32, - 19764u32, - 22238u32, - 23621u32, - 24407u32, - 25716u32, - 27397u32, - 28532u32, - 30033u32, - 32285u32, - 33541u32, - 35342u32, - 36451u32, - 37674u32, - 39109u32, - 40688u32, - 42429u32, - 43535u32, - 45804u32, - 47122u32, - 48957u32, - 49919u32, - 51587u32, - 53313u32, - 54363u32, - 56845u32, - 57908u32, - 59242u32, - 60419u32, - 62451u32, - 64486u32, - 65509u32, - 66061u32, - 68433u32, - 69655u32, - 71964u32, - 73013u32, - 74991u32, - 76322u32, - 77153u32, - 79156u32, - 80091u32, - 81186u32, - 83442u32, - 85028u32, - 86095u32, - 88298u32, - 89194u32, - 90307u32, - 92211u32, - 93874u32, - 95667u32, - 97470u32, - 98705u32, - 99581u32, - 101991u32, - 102513u32, - 104771u32, - 106172u32, - 107893u32, - 108032u32, + 0u32, + 33460u32, + 43404u32, + 49411u32, + 53049u32, + 57237u32, + 62195u32, + 67927u32, + 68749u32, + 74096u32, + 79464u32, + 84024u32, + 89156u32, + 94170u32, + 98808u32, + 103002u32, + 107681u32, + 115185u32, + 122093u32, + 128989u32, + 135338u32, + 142322u32, + 149770u32, + 155761u32, + 161369u32, + 168077u32, + 174697u32, + 180556u32, + 186747u32, + 193916u32, + 200911u32, + 208854u32, + 208897u32, ], ], -]; -/// The relative errors for the gap hash birthday paradox. -pub(super) const GAP_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ [ &[ - 0.02f64, - 0.13f64, - 0.34f64, - 0.65f64, - 1.08f64, - 1.62f64, - 2.38f64, - 3.67f64, - 4.2f64, + 0u32, + 35785u32, + 58730u32, + 67607u32, + 72991u32, + 79348u32, + 86940u32, + 93484u32, + 96266u32, + 98823u32, + 101252u32, + 105304u32, + 107913u32, + 110711u32, + 114724u32, + 117937u32, + 121399u32, + 130813u32, + 140165u32, + 148572u32, + 157797u32, + 167647u32, + 175889u32, + 184155u32, + 192773u32, + 202376u32, + 211032u32, + 219822u32, + 229426u32, + 237742u32, + 247601u32, + 258188u32, + 258562u32, ], &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.39f64, - 0.91f64, - 1.55f64, - 2.33f64, - 3.27f64, - 4.38f64, - 5.67f64, - 7.17f64, - 8.88f64, - 10.85f64, - 13.11f64, - 15.98f64, - 19.4f64, - 22.39f64, - 24.11f64, - 25.61f64, + 0u32, + 59693u32, + 75701u32, + 86906u32, + 93848u32, + 102016u32, + 111715u32, + 119366u32, + 123653u32, + 129207u32, + 135160u32, + 141603u32, + 146517u32, + 153180u32, + 158767u32, + 165108u32, + 169967u32, + 181779u32, + 194175u32, + 205600u32, + 215801u32, + 227697u32, + 240429u32, + 250791u32, + 260943u32, + 273008u32, + 284826u32, + 296422u32, + 307220u32, + 323052u32, + 339248u32, + 339660u32, + 339671u32, ], &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.39f64, - 0.91f64, - 1.55f64, - 2.33f64, - 3.27f64, - 4.38f64, - 5.67f64, - 7.17f64, - 8.88f64, - 10.86f64, - 13.16f64, - 15.96f64, - 19.54f64, - 23.96f64, - 28.7f64, - 32.81f64, - 37.64f64, + 0u32, + 44373u32, + 85837u32, + 98786u32, + 106231u32, + 114631u32, + 124545u32, + 134465u32, + 137625u32, + 147050u32, + 156582u32, + 167499u32, + 177174u32, + 188069u32, + 197271u32, + 207644u32, + 217087u32, + 230383u32, + 243683u32, + 259105u32, + 271600u32, + 284750u32, + 298044u32, + 310981u32, + 324449u32, + 338895u32, + 350203u32, + 360484u32, + 375362u32, + 391946u32, + 407124u32, + 417684u32, + 417893u32, ], ], +]; +/// The relative errors for the gap hash birthday paradox. +pub(super) const GAP_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ [ - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.19f64, - 0.42f64, - 0.71f64, - 1.05f64, - 1.45f64, - 1.91f64, - 2.42f64, - 3f64, - 3.66f64, - 4.43f64, - 5.36f64, - 6.52f64, - 7.9f64, - 9.46f64, - 11.33f64, - 13.34f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.28f64, - 0.8f64, - 1.44f64, - 2.22f64, - 3.15f64, - 4.23f64, - 5.47f64, - 6.89f64, - 8.49f64, - 10.3f64, - 12.35f64, - 14.79f64, - 17.9f64, - 21.79f64, - 26.31f64, - 31.81f64, - 35.95f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.28f64, - 0.8f64, - 1.44f64, - 2.22f64, - 3.15f64, - 4.23f64, - 5.47f64, - 6.89f64, - 8.49f64, - 10.3f64, - 12.35f64, - 14.82f64, - 17.97f64, - 21.91f64, - 26.4f64, - 32f64, - 44.82f64, - ], + &[0f64, 0.13f64, 0.34f64, 0.85f64, 1.33f64, 1.95f64, 2.38f64, 3.67f64, 4.2f64], + &[0f64, 0f64, 0.63f64, 2.78f64, 5.67f64, 23.59f64, 24.11f64, 25.61f64], + &[0f64, 0f64, 1.55f64, 4.38f64, 8.88f64, 13.16f64, 17.64f64, 34.97f64, 37.64f64], + ], + [ + &[0f64, 0f64, 0.56f64, 1.91f64, 3.66f64, 5.36f64, 7.18f64, 9.46f64, 13.34f64], + &[0f64, 0f64, 1.69f64, 5.04f64, 9.67f64, 13.91f64, 19.11f64, 32.88f64, 35.95f64], + &[0f64, 0f64, 2.22f64, 6.4f64, 12.35f64, 20.5f64, 33.31f64, 44.82f64], ], [ &[ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0.09f64, 0.39f64, - 0.74f64, - 1.15f64, - 1.62f64, + 1f64, 2.15f64, - 2.74f64, 3.4f64, - 4.12f64, - 4.91f64, - 5.78f64, - 6.72f64, - 7.74f64, - 8.87f64, + 5.2f64, + 7.05f64, + 8.48f64, 10.19f64, 11.79f64, - 13.67f64, - 15.81f64, - 18.24f64, + 14.35f64, + 18.91f64, 21.04f64, + 24.04f64, 25.06f64, ], &[ - 0f64, - 0f64, 0f64, 0f64, 0.01f64, - 0.04f64, - 0.08f64, - 0.32f64, - 1.05f64, - 1.9f64, + 0.1f64, + 0.19f64, + 1.25f64, 2.87f64, - 3.97f64, - 5.19f64, - 6.54f64, - 8.03f64, - 9.68f64, - 11.47f64, - 13.42f64, - 15.59f64, - 18.1f64, - 21.09f64, - 24.55f64, - 28.39f64, + 4.87f64, + 6.9f64, + 17.43f64, 32.57f64, + 32.77f64, 30.5f64, + 33.5f64, 36.1f64, ], &[ - 0f64, - 0f64, - 0f64, 0f64, 0.01f64, 0.03f64, - 0.11f64, - 1f64, - 2.17f64, - 3.54f64, - 5.1f64, + 0.07f64, + 0.22f64, + 1.92f64, + 4.14f64, 6.88f64, - 8.88f64, - 11.12f64, - 13.6f64, - 16.35f64, - 19.39f64, + 10.19f64, + 14.13f64, + 18.14f64, 22.71f64, - 26.41f64, - 30.78f64, - 36.08f64, - 42.24f64, - 48.95f64, - 53.71f64, + 27.22f64, + 54.04f64, + 51f64, + 53.1f64, ], ], [ &[ 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, 0.02f64, - 0.04f64, - 0.07f64, + 0.06f64, 0.14f64, - 0.37f64, - 1.1f64, + 0.28f64, + 0.78f64, 1.95f64, - 2.89f64, - 3.91f64, - 5.02f64, - 6.23f64, - 7.53f64, - 8.93f64, - 10.43f64, - 12.03f64, - 13.75f64, - 15.63f64, - 17.8f64, - 20.29f64, - 23.03f64, - 25.78f64, - 25.82f64, + 3.28f64, + 4.57f64, + 7.26f64, + 10.12f64, + 13.04f64, + 16.34f64, + 33.6f64, + 29.67f64, + 32.23f64, + 33.5f64, ], &[ 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, 0.02f64, - 0.02f64, - 0.05f64, 0.09f64, 0.16f64, - 0.87f64, - 1.81f64, - 3.04f64, - 4.41f64, - 5.92f64, - 7.56f64, - 9.34f64, - 11.28f64, - 13.37f64, - 15.61f64, - 18.01f64, - 20.59f64, - 23.34f64, - 26.81f64, - 30.23f64, - 34.26f64, - 37.99f64, - 42.75f64, - 44.67f64, - 56f64, + 0.38f64, + 3.49f64, + 7.27f64, + 12.3f64, + 17.6f64, + 24.3f64, + 32.15f64, + 38.59f64, + 45.83f64, + 61.65f64, + 62.5f64, + 77.6f64, ], &[ 0f64, - 0f64, - 0f64, - 0.01f64, - 0.02f64, - 0.02f64, 0.03f64, - 0.06f64, - 0.11f64, - 0.41f64, - 1.37f64, - 2.9f64, - 4.61f64, - 6.52f64, - 8.61f64, - 10.91f64, - 13.8f64, - 16.56f64, - 19.1f64, - 22.29f64, + 0.13f64, + 0.2f64, + 0.58f64, + 4.87f64, + 10.57f64, + 17.81f64, 25.72f64, - 29.41f64, - 34.54f64, - 38.84f64, - 43.5f64, - 48.87f64, - 55.27f64, - 60.37f64, - 69.88f64, - 74.78f64, + 35.13f64, + 44.79f64, + 55.92f64, + 66.03f64, + 76.34f64, + 92.19f64, + 110f64, + 116.5f64, ], ], [ &[ 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.02f64, 0.05f64, - 0.11f64, - 0.21f64, - 0.4f64, - 1.16f64, - 1.94f64, - 3.1f64, - 4.34f64, - 5.67f64, - 7.09f64, - 8.59f64, - 10.19f64, - 11.87f64, - 13.65f64, - 15.52f64, - 17.78f64, - 20.18f64, - 22.49f64, - 24.7f64, - 27.84f64, - 30.27f64, - 32.25f64, + 0.19f64, + 0.52f64, + 2.42f64, + 5.48f64, + 8.81f64, + 12.37f64, + 18.66f64, + 25.33f64, + 33.73f64, + 40.29f64, + 49.67f64, + 58.45f64, + 72.37f64, + 72f64, ], &[ 0f64, 0f64, + 0.04f64, + 0.22f64, + 0.56f64, + 5.91f64, + 12.72f64, + 21.39f64, + 30.67f64, + 42.81f64, + 57.53f64, + 71.77f64, + 84.89f64, + 107.55f64, + 106.37f64, + 113.39f64, + 141f64, + ], + &[ 0f64, 0f64, + 0.03f64, + 0.14f64, + 0.41f64, + 6.02f64, + 13.36f64, + 22.27f64, + 32.05f64, + 46.24f64, + 61.31f64, + 79.97f64, + 100.74f64, + 169.85f64, + 160.14f64, + 171.56f64, + 177.45f64, + ], + ], + [ + &[ 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.02f64, 0.06f64, - 0.12f64, - 0.24f64, - 1.21f64, - 2.11f64, - 3.63f64, - 5.27f64, - 7.02f64, - 8.89f64, - 10.88f64, - 13f64, - 15.24f64, - 17.6f64, - 20.42f64, - 22.73f64, - 25.5f64, - 28.4f64, - 32.23f64, - 35.91f64, - 39.57f64, - 43.16f64, - 48f64, - 52.68f64, - 69.23f64, + 0.32f64, + 0.89f64, + 3.35f64, + 8.28f64, + 13.32f64, + 18.95f64, + 31.03f64, + 44.71f64, + 59.12f64, + 76.48f64, + 108.36f64, + 107f64, + 114.66f64, + 124.78f64, ], &[ 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, + 0.04f64, + 0.22f64, + 0.67f64, + 6.62f64, + 15.13f64, + 24.87f64, + 35.16f64, + 53.82f64, + 76.79f64, + 101.21f64, + 132.08f64, + 208.23f64, + 203f64, + 216.2f64, + ], + &[ 0f64, 0.01f64, - 0.02f64, 0.05f64, - 0.11f64, - 1.11f64, - 2.09f64, - 4.19f64, - 6.48f64, - 8.95f64, - 11.61f64, - 14.77f64, - 17.53f64, - 21.14f64, - 24.28f64, - 29.52f64, - 33.12f64, - 36.05f64, - 40.89f64, - 45.08f64, - 50.46f64, - 57.85f64, - 64.09f64, - 68.2f64, - 75.34f64, - 81.6f64, + 0.28f64, + 0.69f64, + 12.45f64, + 26.38f64, + 43.11f64, + 63.25f64, + 91.01f64, + 124.27f64, + 161.85f64, + 202.91f64, + 326.44f64, + 316f64, + 326.65f64, + 346.75f64, ], ], [ &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, 0f64, 0.01f64, - 0.02f64, - 0.03f64, - 0.06f64, - 0.14f64, - 0.24f64, - 0.43f64, - 0.68f64, - 1.62f64, - 2.48f64, - 3.99f64, - 5.59f64, - 7.27f64, - 9.03f64, - 10.89f64, - 12.83f64, - 14.85f64, - 17.19f64, - 19.17f64, - 21.47f64, - 24.1f64, - 27.64f64, - 30.43f64, - 31.89f64, - 35.04f64, - 37.33f64, + 0.1f64, + 0.61f64, + 1.59f64, + 2.52f64, + 9.2f64, + 14.7f64, + 20.46f64, + 39.53f64, + 62.01f64, + 85.57f64, + 108.52f64, + 144.78f64, + 166.41f64, + 194f64, + 206f64, ], &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, 0.01f64, - 0.03f64, - 0.06f64, - 0.09f64, - 0.24f64, - 0.41f64, - 1.54f64, - 2.7f64, - 4.79f64, - 7.01f64, - 9.35f64, - 11.81f64, - 14.4f64, - 17.6f64, - 20.24f64, - 24.01f64, - 26.39f64, - 29.95f64, - 33.39f64, - 38.2f64, - 42.3f64, - 45.25f64, - 50.52f64, - 54.81f64, - 58.51f64, - 63.14f64, + 0.08f64, + 0.43f64, + 1.29f64, + 11.83f64, + 29.33f64, + 41.05f64, + 62.16f64, + 99.71f64, + 135.96f64, + 184.05f64, + 234.8f64, + 362.74f64, + 353.93f64, + 364.71f64, + 398f64, ], &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, 0.01f64, - 0.03f64, - 0.07f64, - 0.14f64, - 0.43f64, - 1.54f64, - 3.96f64, - 6.94f64, - 10.33f64, - 13.49f64, - 17.08f64, - 20.89f64, - 26.01f64, - 29.13f64, - 33.91f64, - 38.62f64, - 44.57f64, - 49.45f64, - 55.66f64, - 62.97f64, - 65.37f64, - 75.42f64, - 81.6f64, - 88.82f64, - 99f64, + 0.1f64, + 0.57f64, + 1.09f64, + 21.07f64, + 53.7f64, + 84.42f64, + 116.43f64, + 169.16f64, + 227.5f64, + 285.89f64, + 356.03f64, + 478.79f64, + 584.28f64, + 629.88f64, + 647f64, ], ], [ &[ 0f64, + 0.05f64, + 0.21f64, + 1.11f64, + 2.85f64, + 4.86f64, + 14.29f64, + 22.99f64, + 31.75f64, + 60.97f64, + 94.44f64, + 128.16f64, + 173.06f64, + 290.92f64, + 279.88f64, + 294.24f64, + 325f64, + ], + &[ 0f64, + 0.04f64, + 0.15f64, + 0.74f64, + 1.97f64, + 13.03f64, + 31.21f64, + 50.06f64, + 72.14f64, + 114.81f64, + 164.55f64, + 220.78f64, + 290.06f64, + 359.13f64, + 459.1f64, + 573.57f64, + 592f64, + ], + &[ 0f64, + 0.05f64, + 0.15f64, + 0.53f64, + 1.46f64, + 36.86f64, + 74.35f64, + 125.17f64, + 176.94f64, + 266.37f64, + 365.24f64, + 497.5f64, + 619.23f64, + 750.25f64, + 906.04f64, + 993.8f64, + 1057.83f64, + ], + ], + [ + &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, 0.02f64, - 0.04f64, - 0.06f64, - 0.09f64, - 0.18f64, - 0.23f64, - 0.52f64, - 0.67f64, - 1.34f64, - 3.01f64, - 4.54f64, - 6.78f64, + 0.07f64, + 0.17f64, + 0.4f64, + 0.92f64, + 2.31f64, + 3.29f64, + 5.93f64, + 6.74f64, 8.23f64, - 11.31f64, - 14.18f64, - 16.56f64, - 18.3f64, - 21.21f64, - 24.74f64, - 26.95f64, - 30.35f64, - 33.2f64, - 36.33f64, - 40.14f64, - 43.2f64, - 43.32f64, + 12.38f64, + 21.02f64, + 28.9f64, + 35.43f64, + 50.74f64, + 50.94f64, + 76.93f64, + 107.42f64, + 133.46f64, + 164.24f64, + 192.73f64, + 237.89f64, + 283.13f64, + 327.04f64, + 503.97f64, + 630.11f64, + 626.17f64, + 617.26f64, + 651.4f64, + 636f64, + 653.25f64, + 662.75f64, ], &[ 0f64, + 0.02f64, + 0.09f64, + 0.16f64, + 0.3f64, + 0.66f64, + 1.54f64, + 3.67f64, + 4.05f64, + 7.51f64, + 28.49f64, + 48.19f64, + 67.9f64, + 86.18f64, + 110.55f64, + 135.11f64, + 159.44f64, + 203.92f64, + 248.94f64, + 301.65f64, + 360.52f64, + 423.64f64, + 483.72f64, + 565.21f64, + 634.38f64, + 718.29f64, + 834.43f64, + 922.16f64, + 1041.17f64, + 1245.82f64, + 1235.2f64, + 1262f64, + 1270f64, + ], + &[ 0f64, + 0.02f64, + 0.08f64, + 0.13f64, + 0.23f64, + 0.44f64, + 0.98f64, + 2.29f64, + 2.96f64, + 26.3f64, + 62.82f64, + 106.75f64, + 139.38f64, + 178.94f64, + 224.75f64, + 271.82f64, + 321.43f64, + 385.34f64, + 469.76f64, + 577.96f64, + 663.78f64, + 767.21f64, + 851.37f64, + 944.67f64, + 1085.02f64, + 1180.84f64, + 1324.16f64, + 1508.78f64, + 1640.8f64, + 1783.46f64, + 1935.78f64, + 2068.18f64, + 2115f64, + ], + ], + [ + &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.03f64, - 0.05f64, - 0.1f64, - 0.19f64, - 0.32f64, - 0.6f64, + 0.06f64, + 0.26f64, + 0.49f64, + 0.95f64, 2.04f64, - 3.36f64, - 5.75f64, - 10.86f64, - 13.67f64, - 17.91f64, - 21.05f64, - 23.2f64, - 28.03f64, - 33.95f64, - 36.64f64, - 40.5f64, - 47.14f64, - 51.62f64, - 53.99f64, - 60.81f64, - 66.05f64, - 70.89f64, - 73.6f64, + 4.95f64, + 8.3f64, + 12.46f64, + 13.36f64, + 14.91f64, + 20.99f64, + 34.14f64, + 52.26f64, + 67.68f64, + 95.22f64, + 95.19f64, + 143.01f64, + 197.98f64, + 259.35f64, + 316.26f64, + 367.29f64, + 458.19f64, + 523.74f64, + 610.82f64, + 707.47f64, + 793.14f64, + 903.83f64, + 1007.53f64, + 1310.33f64, + 1301f64, + 1309.5f64, + 1327.86f64, ], &[ 0f64, + 0.06f64, + 0.29f64, + 0.48f64, + 0.78f64, + 1.5f64, + 3.31f64, + 7.4f64, + 8.56f64, + 29.9f64, + 72.39f64, + 105.56f64, + 146.11f64, + 188.53f64, + 228.36f64, + 286.58f64, + 335.01f64, + 437.01f64, + 536.89f64, + 645.62f64, + 756.95f64, + 887.74f64, + 1032.25f64, + 1165.91f64, + 1318.65f64, + 1528.17f64, + 1754.19f64, + 1936.71f64, + 2144.15f64, + 2542.52f64, + 2525.54f64, + 2554.79f64, + 2633.5f64, + ], + &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.02f64, 0.05f64, - 0.08f64, - 0.16f64, - 0.27f64, - 1.57f64, - 3.66f64, - 7.79f64, - 12.12f64, - 17.28f64, - 23.65f64, - 26.61f64, - 32.15f64, - 39.76f64, - 42.68f64, - 48.43f64, - 54.5f64, - 61.26f64, - 70.7f64, - 78.49f64, - 85.04f64, - 92.55f64, - 100.62f64, - 104.36f64, - 116.33f64, - 116f64, + 0.21f64, + 0.54f64, + 0.75f64, + 1.16f64, + 2.21f64, + 5.05f64, + 5.99f64, + 55.63f64, + 122.79f64, + 203.81f64, + 271.42f64, + 364.92f64, + 448.91f64, + 549.86f64, + 653.23f64, + 815.09f64, + 975.13f64, + 1163.59f64, + 1343.06f64, + 1539.34f64, + 1758.43f64, + 1931.69f64, + 2232.03f64, + 2571.75f64, + 2845.06f64, + 3171.95f64, + 3508.56f64, + 4278.25f64, + 4251f64, + 4292.95f64, + 4336.63f64, ], ], [ &[ 0f64, + 0.22f64, + 0.87f64, + 1.51f64, + 2.44f64, + 4.76f64, + 10.77f64, + 16.64f64, + 26.88f64, + 28.89f64, + 36.13f64, + 69.54f64, + 106.32f64, + 127.58f64, + 151.14f64, + 180.94f64, + 211.69f64, + 309.41f64, + 421.78f64, + 522.25f64, + 676.44f64, + 784.38f64, + 946.28f64, + 1126.99f64, + 1315.53f64, + 1493.6f64, + 1727.67f64, + 1997.88f64, + 2226.32f64, + 2644.32f64, + 2620.39f64, + 2664f64, + 2731f64, + ], + &[ 0f64, + 0.16f64, + 0.63f64, + 1.71f64, + 2.35f64, + 3.77f64, + 7.55f64, + 16.82f64, + 18f64, + 71.13f64, + 146.22f64, + 222.63f64, + 298.52f64, + 379.58f64, + 465.43f64, + 541.53f64, + 655.18f64, + 852.34f64, + 1060.63f64, + 1253.68f64, + 1521.48f64, + 1818.33f64, + 2074.75f64, + 2358.85f64, + 2621.04f64, + 3018.37f64, + 3347.09f64, + 3724.91f64, + 4202.51f64, + 4614.49f64, + 4960.08f64, + 5121.69f64, + 5289f64, + ], + &[ 0f64, + 0.16f64, + 0.61f64, + 1.44f64, + 2.58f64, + 3.44f64, + 5.6f64, + 11.46f64, + 12.84f64, + 133.12f64, + 272.57f64, + 409.84f64, + 575.25f64, + 749.62f64, + 934.86f64, + 1105.87f64, + 1292.02f64, + 1617.58f64, + 1912.14f64, + 2220.52f64, + 2565.9f64, + 3004.98f64, + 3419.42f64, + 3916.06f64, + 4365.53f64, + 4889.06f64, + 5375.13f64, + 6007.21f64, + 6690.8f64, + 7451.32f64, + 8281.02f64, + 8541.03f64, + 8704.71f64, + ], + ], + [ + &[ 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.08f64, - 0.09f64, - 0.1f64, - 0.12f64, - 0.15f64, - 0.19f64, - 0.28f64, - 0.41f64, - 0.55f64, - 0.82f64, - 1.02f64, - 1.88f64, - 2.95f64, - 5.35f64, - 8.15f64, - 11.51f64, - 13.49f64, - 16.85f64, - 20.27f64, - 22.03f64, - 24.52f64, - 28.21f64, - 30.76f64, - 36.29f64, - 39.06f64, - 43.34f64, - 48.12f64, - 52.76f64, - 54.5f64, + 0.23f64, + 1.28f64, + 3.08f64, + 7.67f64, + 19.72f64, + 26.91f64, + 38.59f64, + 44.74f64, + 53.16f64, + 54.78f64, + 58.13f64, + 121.36f64, + 199.13f64, + 278.89f64, + 363.3f64, + 558.12f64, + 768.88f64, + 1022.72f64, + 1271.79f64, + 1550.76f64, + 1870.4f64, + 2217.57f64, + 2504.1f64, + 2920.75f64, + 3334.04f64, + 3771.91f64, + 4195.13f64, + 4716.89f64, + 5157.73f64, + 5322.3f64, + 5449f64, ], &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, 0.02f64, - 0.03f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.08f64, - 0.09f64, - 0.1f64, - 0.11f64, - 0.13f64, - 0.14f64, - 0.21f64, - 0.29f64, - 0.43f64, - 0.64f64, - 0.78f64, - 2.73f64, - 3.63f64, - 7.38f64, - 12.79f64, - 15.44f64, - 19.25f64, - 25.63f64, - 29.89f64, - 36.34f64, - 40.07f64, - 45.9f64, - 50.37f64, - 57.27f64, - 58.88f64, - 67.18f64, - 75.34f64, - 81.04f64, - 83.61f64, - 90.9f64, - 103.33f64, + 0.17f64, + 0.86f64, + 2.06f64, + 5.03f64, + 12.51f64, + 27.11f64, + 33.44f64, + 126.3f64, + 289.67f64, + 443.2f64, + 582.06f64, + 754.13f64, + 913.26f64, + 1084.06f64, + 1258.76f64, + 1687.91f64, + 2079.58f64, + 2566.67f64, + 3044.57f64, + 3498.66f64, + 4058.63f64, + 4617.73f64, + 5139.43f64, + 5831.69f64, + 6475.99f64, + 7185.87f64, + 8089.99f64, + 9175.94f64, + 10023.33f64, + 10260.71f64, + 10501.5f64, ], &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.03f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.09f64, - 0.1f64, - 0.11f64, - 0.13f64, - 0.15f64, - 0.17f64, - 0.19f64, - 0.26f64, - 0.4f64, - 0.45f64, - 2.43f64, - 6.33f64, - 9.39f64, - 17.92f64, - 22.64f64, - 25.67f64, - 32.81f64, - 39.61f64, - 47.14f64, - 54.93f64, - 59.5f64, - 71.43f64, - 78.49f64, - 86.85f64, - 92.94f64, - 102.31f64, - 110.24f64, - 117.19f64, - 129.49f64, - 140.99f64, - 147.07f64, + 0.02f64, + 0.12f64, + 0.51f64, + 1.22f64, + 2.92f64, + 7.29f64, + 19.21f64, + 21.25f64, + 254.25f64, + 549.44f64, + 858.28f64, + 1149.64f64, + 1474.27f64, + 1843.96f64, + 2221.89f64, + 2608.97f64, + 3201.9f64, + 3885.9f64, + 4573.17f64, + 5200.94f64, + 6087.95f64, + 6909.76f64, + 7771.66f64, + 8614.91f64, + 9775.54f64, + 10708.06f64, + 11811.49f64, + 13087.74f64, + 14697.81f64, + 16085.88f64, + 17244.33f64, + 17413f64, ], ], [ &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.03f64, - 0.03f64, 0.04f64, - 0.05f64, - 0.06f64, - 0.08f64, - 0.08f64, - 0.1f64, - 0.11f64, - 0.12f64, - 0.14f64, - 0.16f64, - 0.19f64, - 0.25f64, - 0.37f64, - 0.5f64, - 0.78f64, - 1.05f64, - 1.51f64, - 1.85f64, - 3.35f64, - 4.78f64, - 9.98f64, - 12.62f64, - 18.5f64, - 22.98f64, - 28.02f64, - 32.22f64, - 34.92f64, - 38.81f64, - 45.21f64, - 52.82f64, - 57.45f64, - 60.9f64, - 69.61f64, - 74.97f64, - 78.38f64, - 88.2f64, + 0.21f64, + 1.09f64, + 2.59f64, + 6.18f64, + 15.38f64, + 39.67f64, + 43.29f64, + 65.1f64, + 91.93f64, + 107.33f64, + 111.08f64, + 196.46f64, + 346.73f64, + 498.51f64, + 672.71f64, + 1053.66f64, + 1477.92f64, + 1964.51f64, + 2486.95f64, + 3087.21f64, + 3588.81f64, + 4207.48f64, + 4825.26f64, + 5491.54f64, + 6234.72f64, + 7023.63f64, + 7858.02f64, + 10666.1f64, + 10574.57f64, + 10689.56f64, + 10798.07f64, ], &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.04f64, - 0.05f64, 0.07f64, - 0.08f64, - 0.09f64, - 0.11f64, - 0.12f64, - 0.15f64, - 0.18f64, - 0.22f64, - 0.23f64, - 0.32f64, - 0.39f64, - 0.58f64, - 0.82f64, - 1.1f64, - 1.81f64, - 6.86f64, - 7.69f64, - 14.55f64, - 21.21f64, - 28.38f64, - 33.75f64, - 39.8f64, - 48.16f64, - 56.36f64, - 64.5f64, - 71.33f64, - 83.74f64, - 86.29f64, - 99.93f64, - 105.68f64, - 112.12f64, - 122.88f64, - 138.61f64, - 142.33f64, + 0.38f64, + 1.62f64, + 4.02f64, + 10.07f64, + 25.19f64, + 45.54f64, + 67.54f64, + 303.77f64, + 538.35f64, + 851.08f64, + 1141.53f64, + 1499.46f64, + 1714.56f64, + 2058.16f64, + 2484.84f64, + 3253.29f64, + 4037.94f64, + 4950.72f64, + 5649.98f64, + 7024.01f64, + 7842.15f64, + 9063.04f64, + 10114.23f64, + 11254.91f64, + 12976.19f64, + 14594.34f64, + 15998.86f64, + 20578.6f64, + 20488.15f64, + 20576.67f64, + 20894f64, ], &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.04f64, - 0.05f64, 0.07f64, - 0.11f64, - 0.13f64, - 0.18f64, - 0.21f64, 0.22f64, - 0.25f64, - 0.29f64, - 0.36f64, - 0.45f64, - 0.5f64, - 0.89f64, - 1.91f64, - 7.34f64, - 12.07f64, - 22.82f64, - 29.82f64, - 41.11f64, - 46.8f64, - 61.85f64, - 68.77f64, - 85.25f64, - 90.75f64, - 101.07f64, - 114.17f64, - 121.17f64, - 137.73f64, - 156f64, - 159.69f64, - 177.8f64, - 186.02f64, - 202.54f64, - 226.78f64, - 239.67f64, + 1.03f64, + 2.48f64, + 5.91f64, + 14.7f64, + 39.3f64, + 42.34f64, + 498.56f64, + 1021.68f64, + 1593.58f64, + 2208.23f64, + 2888.34f64, + 3583.7f64, + 4321.76f64, + 5101.97f64, + 6556.58f64, + 7728.15f64, + 9305.55f64, + 10741.27f64, + 12405.77f64, + 14025f64, + 15800.74f64, + 17604.78f64, + 19548.48f64, + 22039.32f64, + 23917.48f64, + 26399.76f64, + 34417.38f64, + 34341f64, + 34455f64, + 34807.23f64, ], ], [ &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.07f64, - 0.11f64, 0.15f64, - 0.16f64, - 0.21f64, - 0.25f64, - 0.29f64, - 0.34f64, - 0.4f64, - 0.43f64, - 0.51f64, - 0.54f64, - 0.66f64, - 0.77f64, - 1.01f64, - 1.27f64, - 1.62f64, - 2.36f64, - 3.12f64, - 4.1f64, - 6.33f64, - 10.21f64, - 20.21f64, - 23.25f64, - 31f64, - 35.68f64, - 46.58f64, - 52.85f64, - 61.24f64, - 71.6f64, - 73.22f64, - 87.1f64, - 93.92f64, - 104.73f64, - 109.45f64, - 122.74f64, - 131.11f64, + 0.44f64, + 2.32f64, + 5.31f64, + 12.42f64, + 31.28f64, + 61.91f64, + 81.48f64, + 107.85f64, + 170.53f64, + 215.11f64, + 221.92f64, + 323.76f64, + 554.71f64, + 885.97f64, + 1127.63f64, + 1948.67f64, + 2767.27f64, + 3663.12f64, + 4694.24f64, + 5580.39f64, + 6715.13f64, + 7894.44f64, + 9204.12f64, + 10516.7f64, + 11936.88f64, + 13169.56f64, + 14743.91f64, + 18769.67f64, + 21449.71f64, + 21343.83f64, + 21376f64, ], &[ 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.1f64, - 0.1f64, - 0.13f64, - 0.18f64, 0.25f64, - 0.32f64, - 0.34f64, - 0.44f64, - 0.49f64, - 0.6f64, - 0.63f64, - 0.7f64, - 0.81f64, - 0.92f64, - 1.17f64, - 1.45f64, - 2.24f64, - 2.76f64, - 7.53f64, - 15.46f64, - 26.28f64, - 30.52f64, - 41.55f64, - 55.54f64, - 60.28f64, - 70.69f64, - 83.13f64, - 102.1f64, - 112.48f64, - 122.14f64, - 133.53f64, - 152.55f64, - 158.33f64, - 169.42f64, - 196.4f64, - 203.7f64, - 229.25f64, - 240f64, + 0.82f64, + 3.59f64, + 8.26f64, + 20.15f64, + 51.26f64, + 111.61f64, + 135.02f64, + 543.36f64, + 996.28f64, + 1593.86f64, + 2206.94f64, + 2900.04f64, + 3371.29f64, + 3862.97f64, + 4569.74f64, + 5996.54f64, + 7668.81f64, + 9450.71f64, + 10968.03f64, + 12831.47f64, + 14354.56f64, + 16789.16f64, + 18992.74f64, + 21030.33f64, + 23421.71f64, + 26345.77f64, + 29171.21f64, + 32362.49f64, + 36031.65f64, + 41001.36f64, + 41350f64, ], &[ 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.04f64, - 0.05f64, - 0.07f64, - 0.07f64, - 0.09f64, - 0.1f64, - 0.12f64, - 0.15f64, - 0.17f64, - 0.21f64, - 0.29f64, - 0.41f64, - 0.5f64, - 0.55f64, - 0.66f64, - 0.75f64, - 0.91f64, - 1.02f64, - 1.17f64, - 1.39f64, - 1.74f64, - 2.31f64, - 7.11f64, - 13.21f64, - 26.08f64, - 40.81f64, - 52.51f64, - 75.07f64, - 83.97f64, - 107.04f64, - 123.51f64, - 137.22f64, - 147.66f64, - 175.34f64, - 192.99f64, - 200.56f64, - 219.76f64, - 248.35f64, - 256.43f64, - 275.34f64, - 305.93f64, - 326.56f64, - 357.98f64, - 363.86f64, + 0.27f64, + 0.68f64, + 2.32f64, + 5.23f64, + 12.15f64, + 29.89f64, + 73.47f64, + 83.57f64, + 1121.26f64, + 2267.7f64, + 3323.28f64, + 4604.64f64, + 5953.01f64, + 7281.25f64, + 8554.76f64, + 10060.47f64, + 12665.56f64, + 15279.22f64, + 18092.87f64, + 20879.88f64, + 24170.73f64, + 27935.42f64, + 31181.76f64, + 34384.33f64, + 38435.93f64, + 42686.53f64, + 46667.98f64, + 51098.55f64, + 56529.89f64, + 62156.28f64, + 68703.83f64, + 69333f64, ], ], [ &[ 0f64, - 0f64, - 0f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.06f64, - 0.07f64, - 0.1f64, - 0.11f64, - 0.12f64, - 0.15f64, - 0.16f64, - 0.19f64, - 0.21f64, - 0.25f64, - 0.29f64, - 0.3f64, - 0.36f64, - 0.42f64, - 0.63f64, - 0.74f64, - 0.93f64, - 1.07f64, - 1.12f64, - 1.34f64, - 1.56f64, - 1.66f64, - 1.88f64, - 1.97f64, - 2.4f64, - 2.8f64, - 3.45f64, - 3.99f64, - 5.49f64, - 7.22f64, - 8.47f64, - 12.79f64, - 25f64, - 37.16f64, - 43f64, - 52.67f64, - 68f64, - 75.44f64, - 86.04f64, - 104.41f64, - 118.14f64, - 128.28f64, - 138.87f64, - 159.33f64, - 169.57f64, - 182f64, - 200.7f64, - 200.5f64, + 0.33f64, + 1.29f64, + 4.9f64, + 10.91f64, + 25.46f64, + 62.79f64, + 131.64f64, + 163.64f64, + 220.95f64, + 277.03f64, + 374.46f64, + 442.33f64, + 846.68f64, + 1457.54f64, + 1966.56f64, + 2532.66f64, + 4177.32f64, + 5955.67f64, + 7684f64, + 9720.61f64, + 12070f64, + 14172.93f64, + 16408.15f64, + 18876.47f64, + 21802.6f64, + 24593.6f64, + 27592.42f64, + 31045.95f64, + 34200.21f64, + 38141.43f64, + 42550.92f64, + 43014f64, + ], + &[ + 0f64, + 0.97f64, + 2.25f64, + 7.79f64, + 17.37f64, + 41.32f64, + 103.36f64, + 206.9f64, + 270.47f64, + 1214.4f64, + 2292.52f64, + 3522.95f64, + 4511.25f64, + 5917.41f64, + 7159.04f64, + 8633.54f64, + 9813.79f64, + 12867.39f64, + 16353.02f64, + 19833.53f64, + 23160.6f64, + 27312.56f64, + 32090.12f64, + 36252f64, + 40553.6f64, + 45989.2f64, + 51652.39f64, + 57538f64, + 63332.45f64, + 72397.23f64, + 82339.41f64, + 83161.5f64, + 83721f64, ], &[ 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.08f64, - 0.1f64, - 0.12f64, - 0.17f64, - 0.19f64, - 0.23f64, - 0.26f64, - 0.29f64, - 0.33f64, - 0.35f64, - 0.4f64, - 0.45f64, - 0.47f64, - 0.6f64, - 0.82f64, - 1.07f64, - 1.13f64, - 1.54f64, - 1.67f64, - 1.95f64, - 2.06f64, - 2.34f64, - 2.69f64, - 2.86f64, - 3.33f64, - 4.17f64, - 5.24f64, - 5.4f64, - 14.52f64, - 25.45f64, - 42.7f64, - 53.42f64, - 68.01f64, - 83.39f64, - 112.5f64, - 125.9f64, - 141.46f64, - 159.9f64, - 176.21f64, - 208.06f64, - 215.62f64, - 243.59f64, - 252.66f64, - 290.33f64, - 302.78f64, - 334.25f64, - 355.14f64, - 350f64, - ], - &[ - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.04f64, - 0.05f64, - 0.08f64, - 0.1f64, - 0.12f64, - 0.16f64, - 0.19f64, - 0.22f64, - 0.25f64, - 0.33f64, - 0.36f64, - 0.39f64, - 0.46f64, - 0.52f64, - 0.59f64, - 0.67f64, - 0.73f64, - 0.83f64, - 1.15f64, - 1.25f64, - 1.62f64, - 1.88f64, - 2.19f64, - 2.61f64, - 3.08f64, - 3.37f64, - 3.68f64, - 3.99f64, - 4.39f64, - 5.81f64, - 16.26f64, - 31.85f64, - 59.03f64, - 70.65f64, - 103.85f64, - 124.18f64, - 144.74f64, - 160.07f64, - 206.2f64, - 231.77f64, - 236.68f64, - 265.03f64, - 315.14f64, - 343.49f64, - 351.64f64, - 379.91f64, - 435.76f64, - 437.88f64, - 488.39f64, - 529.31f64, - 567.33f64, - 576.69f64, - ], - ], - [ - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.05f64, - 0.07f64, - 0.11f64, - 0.13f64, - 0.32f64, - 0.47f64, - 0.74f64, - 1f64, - 1.42f64, - 2.43f64, - 3.49f64, - 4.42f64, - 6.96f64, - 9.16f64, - 13.71f64, - 18.55f64, - 36.71f64, - 54.53f64, - 68.42f64, - 82.54f64, - 101.96f64, - 121.1f64, - 137.49f64, - 156.86f64, - 177.2f64, - 207f64, - 229.24f64, - 239.06f64, - 265.87f64, - 287.02f64, - 324.1f64, - 329.92f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.09f64, - 0.13f64, - 0.2f64, - 0.27f64, - 0.37f64, - 0.63f64, - 0.85f64, - 1.76f64, - 2.46f64, - 3.74f64, - 4.53f64, - 6.26f64, - 26.78f64, - 42.91f64, - 73.72f64, - 86.35f64, - 124.84f64, - 154.04f64, - 164.92f64, - 210.12f64, - 222.03f64, - 259.43f64, - 290.82f64, - 331.57f64, - 353.73f64, - 379.17f64, - 403.57f64, - 433.22f64, - 494.49f64, - 500.95f64, - 571.27f64, - 584f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.03f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.07f64, - 0.08f64, - 0.13f64, - 0.18f64, - 0.22f64, - 0.32f64, - 0.62f64, - 1.03f64, - 1.42f64, - 2.47f64, - 4.08f64, - 7.82f64, - 30.91f64, - 55.27f64, - 95.9f64, - 118.89f64, - 174.68f64, - 206.98f64, - 243.27f64, - 294.98f64, - 346.63f64, - 380.63f64, - 412.67f64, - 464.74f64, - 483.71f64, - 539.09f64, - 583.72f64, - 641.46f64, - 689.23f64, - 743.31f64, - 778.7f64, - 860.07f64, - 915.66f64, - 915.67f64, - ], - ], - [ - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.05f64, - 0.05f64, - 0.08f64, - 0.1f64, - 0.11f64, - 0.12f64, - 0.13f64, - 0.18f64, - 0.2f64, - 0.36f64, - 0.5f64, - 0.52f64, - 0.94f64, - 1.2f64, - 2.08f64, - 2.39f64, - 4.2f64, - 5.96f64, - 7.64f64, - 11.66f64, - 16.42f64, - 22.58f64, - 46.28f64, - 73.54f64, - 84.36f64, - 122.54f64, - 160.13f64, - 166.68f64, - 205.94f64, - 247.77f64, - 269.89f64, - 299.96f64, - 340.12f64, - 349.55f64, - 399.43f64, - 440.77f64, - 464.38f64, - 513.23f64, - 532.5f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.05f64, - 0.07f64, - 0.08f64, - 0.11f64, - 0.12f64, - 0.14f64, - 0.16f64, - 0.2f64, - 0.25f64, - 0.32f64, - 0.53f64, - 0.71f64, - 1.08f64, - 1.52f64, - 1.83f64, - 3.46f64, - 4.48f64, - 6.75f64, - 10.33f64, - 14.46f64, - 52.21f64, - 71.57f64, - 102.52f64, - 169.37f64, - 186.42f64, - 261.32f64, - 290.12f64, - 317.24f64, - 363.77f64, - 405.37f64, - 464.56f64, - 502.5f64, - 587.36f64, - 638.74f64, - 657.65f64, - 739.09f64, - 792.58f64, - 856.59f64, - 924.76f64, - 928.75f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.07f64, - 0.09f64, - 0.13f64, - 0.14f64, - 0.18f64, - 0.22f64, - 0.27f64, - 0.36f64, - 0.46f64, - 0.58f64, - 0.96f64, - 1.39f64, - 2.35f64, - 3.28f64, - 4.03f64, - 6.67f64, - 26.14f64, - 85.67f64, - 139.32f64, - 159.19f64, - 210.46f64, - 272.52f64, - 351.32f64, - 443.57f64, - 474.93f64, - 513.36f64, - 635.67f64, - 665.44f64, - 756.2f64, - 795.03f64, - 928.43f64, - 981.5f64, - 1031.34f64, - 1127.25f64, - 1224.34f64, - 1283.11f64, - 1342.36f64, - 1489.22f64, - 1488.9f64, - ], - ], - [ - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.06f64, - 0.07f64, - 0.1f64, - 0.16f64, - 0.21f64, - 0.24f64, - 0.26f64, - 0.29f64, - 0.34f64, - 0.43f64, - 0.5f64, - 0.63f64, - 0.68f64, - 1.03f64, - 1.52f64, - 2.31f64, - 2.88f64, - 4.3f64, - 5.46f64, - 8.14f64, - 10.04f64, - 16.4f64, - 23.05f64, - 29.94f64, - 45.04f64, - 52.12f64, - 123.9f64, - 156.49f64, - 200.16f64, - 270.51f64, - 287.56f64, - 326.52f64, - 400.97f64, - 459.2f64, - 503.81f64, - 572.69f64, - 600.47f64, - 634.78f64, - 701.85f64, - 799.86f64, - 859.54f64, - 861.09f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.07f64, - 0.08f64, - 0.09f64, - 0.09f64, - 0.1f64, - 0.11f64, - 0.17f64, - 0.27f64, - 0.33f64, - 0.36f64, - 0.44f64, 0.49f64, - 0.56f64, - 0.7f64, - 0.75f64, - 0.94f64, - 1.09f64, - 1.94f64, - 2.56f64, - 3.04f64, - 4.31f64, - 7.47f64, - 8.78f64, - 12.18f64, - 20.78f64, - 37.64f64, - 60.26f64, - 149.38f64, - 182.89f64, - 302.64f64, - 316.3f64, - 450.95f64, - 527.55f64, - 539.98f64, - 667.23f64, - 738.26f64, - 817.17f64, - 890.95f64, - 988.98f64, - 1090.09f64, - 1110.02f64, - 1244.72f64, - 1269.92f64, - 1405.8f64, - 1536.12f64, - 1543.27f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.07f64, - 0.07f64, - 0.08f64, - 0.09f64, - 0.09f64, - 0.1f64, - 0.1f64, - 0.12f64, - 0.13f64, - 0.15f64, - 0.16f64, - 0.26f64, - 0.36f64, - 0.42f64, - 0.52f64, - 0.58f64, - 0.72f64, - 0.74f64, - 0.93f64, - 0.98f64, - 1.46f64, - 1.67f64, - 2.57f64, - 3.47f64, - 4.53f64, - 6.58f64, - 8.99f64, - 13.57f64, - 79.79f64, - 174.32f64, - 202.6f64, - 330.25f64, - 433.55f64, - 542.22f64, - 597.35f64, - 712.33f64, - 860.56f64, - 952.76f64, - 1063.26f64, - 1168.59f64, - 1286.65f64, - 1423.07f64, - 1446.29f64, - 1591.57f64, - 1796.95f64, - 1923.52f64, - 2031.55f64, - 2076.69f64, - 2211.89f64, - 2486.71f64, - 2515.35f64, - ], - ], - [ - &[ - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.07f64, - 0.07f64, - 0.08f64, - 0.09f64, - 0.1f64, - 0.1f64, - 0.12f64, - 0.13f64, - 0.15f64, - 0.15f64, - 0.18f64, - 0.18f64, - 0.21f64, - 0.21f64, - 0.23f64, - 0.23f64, - 0.24f64, - 0.37f64, - 0.43f64, - 0.61f64, - 0.68f64, - 0.88f64, - 1.12f64, - 1.17f64, - 1.34f64, - 1.54f64, - 1.81f64, 2.06f64, - 2.53f64, - 3.16f64, - 3.72f64, - 5.51f64, - 7.07f64, - 9.88f64, - 11.1f64, - 15.28f64, - 22.47f64, - 31.25f64, - 43.45f64, - 54.35f64, - 78.45f64, - 153.38f64, - 231.64f64, - 301.79f64, - 344.86f64, - 451.68f64, - 549.03f64, - 607.2f64, - 700.73f64, - 785.84f64, - 816.39f64, - 950.92f64, - 1041.2f64, - 1109.14f64, - 1174.95f64, - 1285.69f64, - 1443.75f64, - 1450f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.06f64, - 0.08f64, - 0.08f64, - 0.09f64, - 0.1f64, - 0.12f64, - 0.13f64, - 0.15f64, - 0.16f64, - 0.18f64, - 0.21f64, - 0.22f64, - 0.23f64, - 0.24f64, - 0.28f64, - 0.3f64, - 0.31f64, - 0.34f64, - 0.37f64, - 0.39f64, - 0.42f64, - 0.5f64, - 0.65f64, - 0.76f64, - 1.17f64, - 1.36f64, - 1.6f64, - 1.85f64, - 2.13f64, - 2.18f64, - 2.71f64, - 2.8f64, - 3.79f64, - 4.08f64, - 6.18f64, - 8.4f64, - 10.24f64, - 11.83f64, - 19.32f64, - 23.28f64, - 31.94f64, - 82.06f64, - 188.3f64, - 257.87f64, - 389.32f64, - 533.57f64, - 608.73f64, - 698.3f64, - 835.3f64, - 990.5f64, - 1143.42f64, - 1195.3f64, - 1412.25f64, - 1427.62f64, - 1671.27f64, - 1699.56f64, - 1859.93f64, - 2073.61f64, - 2249.88f64, - 2335.99f64, - 2580.2f64, - 2588f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.08f64, - 0.09f64, - 0.12f64, - 0.14f64, - 0.15f64, - 0.17f64, - 0.19f64, - 0.2f64, - 0.21f64, - 0.26f64, - 0.28f64, - 0.32f64, - 0.35f64, - 0.37f64, - 0.4f64, - 0.42f64, - 0.45f64, - 0.48f64, - 0.54f64, - 0.58f64, - 0.67f64, - 0.88f64, - 1.21f64, - 1.55f64, - 1.75f64, - 2.25f64, - 2.48f64, - 2.77f64, - 3.03f64, - 3.52f64, - 4.36f64, - 4.88f64, - 5.43f64, - 7.9f64, - 10.45f64, - 16.52f64, - 20.93f64, - 32.86f64, - 165.43f64, - 249.91f64, - 456.86f64, - 556.02f64, - 673.77f64, - 920.51f64, - 1099.26f64, - 1221.66f64, - 1481.07f64, - 1588.83f64, - 1723.45f64, - 1957.32f64, - 2167.12f64, - 2397.77f64, - 2637.32f64, - 2802.17f64, - 2921.6f64, - 3254.05f64, - 3326.85f64, - 3650.3f64, - 3853.23f64, - 4108.25f64, - 4074f64, + 5.47f64, + 11.12f64, + 25.07f64, + 60.61f64, + 136.65f64, + 166.26f64, + 1989.19f64, + 3997.31f64, + 6495.71f64, + 8895.95f64, + 11801.34f64, + 14434.95f64, + 17603.51f64, + 20673.87f64, + 25311.42f64, + 30321.98f64, + 36635.27f64, + 42154.64f64, + 48358.2f64, + 55049.86f64, + 62016.37f64, + 69742.14f64, + 78561.33f64, + 85888.47f64, + 92867.78f64, + 103537.92f64, + 116279.63f64, + 128740.85f64, + 137910.19f64, + 139495.17f64, ], ], ]; diff --git a/src/composite_hash/gaps.rs b/src/composite_hash/gaps.rs index 976e325..91b7520 100644 --- a/src/composite_hash/gaps.rs +++ b/src/composite_hash/gaps.rs @@ -159,55 +159,6 @@ impl GapHash { } } - #[cfg(feature = "std")] - #[allow(unsafe_code)] - /// Prints the rank index for debugging purposes. - fn debug_index(hashes: &[u8], hash_bits: u8) { - debug_assert!(Self::has_rank_index()); - - let hashes32 = unsafe { - core::slice::from_raw_parts( - hashes.as_ptr() as *const u32, - hashes.len() / core::mem::size_of::(), - ) - }; - - // We retrieve the 0-th implicit bucket. - let mut reader = BitReader::skip( - hashes32, - GapHash::::rank_index_total_size(usize::from(hash_bits)), - ); - let first_hash = reader.read_bits(usize::from(hash_bits)); - println!( - "Bucket: 0 - Bit index: 0 - Hash: {first_hash}" - ); - - let mut reader = BitReader::new(hashes32); - - for bucket in 1..Self::rank_index_capacity() { - let bit_index = reader.read_bits(usize::from(Self::rank_index_bits())); - let hash = reader.read_bits(usize::from(hash_bits)); - - debug_assert!( - bit_index == Self::rank_index_mask() || usize::try_from(bit_index).unwrap() <= hashes.len() * 8 - Self::rank_index_total_size(usize::from(hash_bits)), - "The bit index ({bit_index}) must be less than the number of bits in the hashes ({})", - hashes.len() * 8 - Self::rank_index_total_size(usize::from(hash_bits)) - ); - - println!( - "Bucket: {} - Bit index: {}{} - Hash: {}", - bucket, - bit_index, - if bit_index == Self::rank_index_mask() { - " (NONE)" - } else { - "" - }, - hash - ); - } - } - #[inline] /// Returns the capacity of the rank index. const fn rank_index_capacity() -> usize { @@ -501,47 +452,6 @@ impl GapHash { } } - #[allow(unsafe_code)] - #[inline] - /// Returns the number of the bucket containing the provided bit index. - /// - /// # Arguments - /// * `hashes` - The slice of hashes to search in. - /// * `hash_bits` - The number of bits used to encode the hashes. - /// * `bit_index` - The bit index to search for. - /// - fn rank_index_bucket_for_bit_index(hashes: &[u8], hash_bits: u8, bit_index: usize) -> usize { - let hashes32 = unsafe { - core::slice::from_raw_parts( - hashes.as_ptr() as *const u32, - hashes.len() / core::mem::size_of::(), - ) - }; - - let mut reader = BitReader::skip(hashes32, 0); - let mut number_of_skipped_buckets = 0; - - for bucket in 0..Self::rank_index_capacity() - 1 { - let bucket_bit_index = reader.read_bits(usize::from(Self::rank_index_bits())); - reader.read_bits(usize::from(hash_bits)); - - if bucket_bit_index == Self::rank_index_mask() { - number_of_skipped_buckets += 1; - continue; - } - - if bit_index < usize::try_from(bucket_bit_index).unwrap() { - return bucket; - } - - debug_assert!( - reader.last_read_bit_position() <= Self::rank_index_total_size(usize::from(hash_bits)), - ); - } - - Self::rank_index_capacity() - 1 - } - #[allow(unsafe_code)] #[inline] /// Returns the bit index and associated hash that is the best search starting point for the given hash. @@ -985,22 +895,6 @@ impl CompositeHash for GapHash { ); while let Some(value) = iter.next() { - // if Self::has_rank_index() { - // if Self::rank_index_bucket_for_bit_index(hashes, hash_bits, last_read_bit_position - Self::rank_index_total_size(usize::from(hash_bits))) != - // Self::rank_index_hash_bucket(hash_bits, value) { - // Self::debug_index(hashes, hash_bits); - // } - - // debug_assert_eq!( - // Self::rank_index_bucket_for_bit_index(hashes, hash_bits, last_read_bit_position - Self::rank_index_total_size(usize::from(hash_bits))), - // Self::rank_index_hash_bucket(hash_bits, value), - // "Hash {value} is at bit index {} and is in the wrong bucket. Precision: {}, number of bits: {}, hash bits: {hash_bits}.", - // last_read_bit_position - Self::rank_index_total_size(usize::from(hash_bits)), - // P::EXPONENT, - // B::NUMBER_OF_BITS, - // ); - // } - // The values are sorted in descending order, so we can stop when we find a value // that is less than or equal to the value we want to insert if encoded_hash >= value { @@ -1337,25 +1231,6 @@ impl CompositeHash for GapHash { let fragment = Self::into_gap_fragment(previous_hash, next, target_hash_bits); let writer_tell_before_write = writer.tell(); - debug_assert!( - (fragment.uniform_delta >> uniform_coefficient) < 64, - "Uniform delta: {}, uniform_coefficient: {}, shifted: {}, target_hash_bits: {target_hash_bits}, precision: {}, bits: {}.", - fragment.uniform_delta, - uniform_coefficient, - fragment.uniform_delta >> uniform_coefficient, - P::EXPONENT, - B::NUMBER_OF_BITS - ); - debug_assert!( - (fragment.geometric_minus_one >> geometric_coefficient) < 64, - "Geometric delta: {}, geometric_coefficient: {}, shifted: {}, target_hash_bits: {target_hash_bits}, precision: {}, bits: {}.", - fragment.geometric_minus_one, - geometric_coefficient, - fragment.geometric_minus_one >> geometric_coefficient, - P::EXPONENT, - B::NUMBER_OF_BITS - ); - let total_wrote = writer.write_rice( fragment.uniform_delta, fragment.geometric_minus_one, @@ -1921,10 +1796,10 @@ mod tests { #[allow(unsafe_code)] fn test_rank_index_initialization() { for hash_bits in 8..32 { - let mut hashes = [0u8; 64]; + let mut hashes = [0u8; 256]; let rank_index_bitindex_size = GapHash::::rank_index_bits() as usize; - assert_eq!(GapHash::::rank_index_capacity(), 11); + assert_eq!(GapHash::::rank_index_capacity(), 22); GapHash::::initialize_rank_index(&mut hashes, hash_bits); // We expect the just initialized rank index to be a series of 'rank_index_bitindex_size' ones @@ -1950,7 +1825,7 @@ mod tests { #[allow(unsafe_code)] fn test_update_rank_index() { let mut random_state = 4_575_763_274_578_236u64; - let mut hashes = [0u8; 64]; + let mut hashes = [0u8; 256]; for hash_bits in 8..32 { random_state = splitmix64(random_state); @@ -1963,14 +1838,8 @@ mod tests { GapHash::::initialize_rank_index(&mut hashes, hash_bits); - // We now determine the expected bucket. - debug_assert!( - fake_hash as usize / expected_bucket_size < 11, - "Hash: {fake_hash}, Expected bucket size: {expected_bucket_size}." - ); - let expected_bucket = GapHash::::rank_index_capacity() - - fake_hash as usize / expected_bucket_size; + - fake_hash as usize / expected_bucket_size - 1; // We try to get the best starting point for the iterator from the rank index // Since the index is empty, it should return as position 'hash_bits', as if diff --git a/src/composite_hash/gaps/bitwriter.rs b/src/composite_hash/gaps/bitwriter.rs index 55fca2b..9f3fa66 100644 --- a/src/composite_hash/gaps/bitwriter.rs +++ b/src/composite_hash/gaps/bitwriter.rs @@ -6,7 +6,7 @@ pub struct BitWriter<'a> { data: &'a mut [u64], word_idx: usize, buffer: u64, - space_left_in_buffer: u8, + space_left_in_buffer: usize, } impl<'a> core::ops::Drop for BitWriter<'a> { @@ -50,7 +50,7 @@ impl<'a> BitWriter<'a> { self.flush(); self.word_idx = bits_idx / 64; let idx_in_word = bits_idx % 64; - self.space_left_in_buffer = 64 - idx_in_word as u8; + self.space_left_in_buffer = 64 - idx_in_word; let word = u64::from_be(self.data[self.word_idx]); if idx_in_word == 0 { self.buffer = 0; @@ -65,15 +65,15 @@ impl<'a> BitWriter<'a> { } #[inline] - pub fn write_bits(&mut self, value: u64, n_bits: u8) -> u8 { + pub(super) fn write_bits(&mut self, value: u64, n_bits: u8) -> usize { debug_assert!(n_bits <= 64); debug_assert!(self.space_left_in_buffer > 0); - if n_bits < self.space_left_in_buffer { + if usize::from(n_bits) < self.space_left_in_buffer { self.buffer <<= n_bits; self.buffer |= value & !(u64::MAX << n_bits as u32); - self.space_left_in_buffer -= n_bits; - return n_bits; + self.space_left_in_buffer -= usize::from(n_bits); + return usize::from(n_bits); } self.buffer = self.buffer << (self.space_left_in_buffer - 1) << 1; @@ -81,21 +81,20 @@ impl<'a> BitWriter<'a> { self.data[self.word_idx] = self.buffer.to_be(); self.word_idx += 1; - self.space_left_in_buffer += 64 - n_bits; + self.space_left_in_buffer += 64 - usize::from(n_bits); self.buffer = value; - n_bits + usize::from(n_bits) } #[inline] - pub(super) fn write_unary(&mut self, value: u64) -> usize { - debug_assert!(value < 64, "Value: {}", value); + pub(super) fn write_unary(&mut self, mut value: u64) -> usize { debug_assert_ne!(value, u64::MAX); debug_assert!(self.space_left_in_buffer > 0); let code_length = value + 1; - if code_length <= u64::from(self.space_left_in_buffer) { - self.space_left_in_buffer -= code_length as u8; + if code_length <= self.space_left_in_buffer as u64 { + self.space_left_in_buffer -= code_length as usize; self.buffer = self.buffer << value << 1; self.buffer |= 1; if self.space_left_in_buffer == 0 { @@ -110,8 +109,23 @@ impl<'a> BitWriter<'a> { self.data[self.word_idx] = self.buffer.to_be(); self.word_idx += 1; - self.buffer = 1; - self.space_left_in_buffer = 63 + self.space_left_in_buffer - value as u8; + value -= self.space_left_in_buffer as u64; + + for _ in 0..value / 64 { + self.data[self.word_idx] = 0; + self.word_idx += 1; + } + + value %= 64; + + if value == 64 - 1 { + self.data[self.word_idx] = 1_u64.to_be(); + self.word_idx += 1; + self.space_left_in_buffer = 64; + } else { + self.buffer = 1; + self.space_left_in_buffer = 64 - (value as usize + 1); + } code_length as usize } @@ -124,20 +138,6 @@ impl<'a> BitWriter<'a> { b1: u8, b2: u8, ) -> usize { - debug_assert!( - (uniform_delta >> b1) < 64, - "Uniform delta: {}, b1: {}, shifted: {}", - uniform_delta, - b1, - uniform_delta >> b1 - ); - debug_assert!( - (geometric_minus_one >> b2) < 64, - "Geometric delta: {}, b2: {}, shifted: {}", - geometric_minus_one, - b2, - geometric_minus_one >> b2 - ); self.write_unary(uniform_delta >> b1) + usize::from(self.write_bits(uniform_delta, b1)) + self.write_unary(geometric_minus_one >> b2) diff --git a/src/composite_hash/gaps/optimal_codes.rs b/src/composite_hash/gaps/optimal_codes.rs index 2158b9b..c00bd8b 100644 --- a/src/composite_hash/gaps/optimal_codes.rs +++ b/src/composite_hash/gaps/optimal_codes.rs @@ -9,13 +9,13 @@ pub(super) const OPTIMAL_RICE_COEFFICIENTS: [[&[(u8, u8, u8)]; 3]; 15] = [ &[(12u8, 0u8, 0u8), (13u8, 7u8, 0u8)], ], [ - &[(11u8, 1u8, 0u8), (12u8, 6u8, 0u8), (13u8, 7u8, 0u8), (14u8, 8u8, 0u8)], - &[(12u8, 1u8, 0u8), (13u8, 7u8, 0u8), (14u8, 8u8, 0u8)], - &[(13u8, 1u8, 0u8), (14u8, 7u8, 0u8)], + &[(11u8, 0u8, 0u8), (12u8, 6u8, 0u8), (13u8, 7u8, 0u8), (14u8, 8u8, 0u8)], + &[(12u8, 0u8, 0u8), (13u8, 7u8, 0u8), (14u8, 8u8, 0u8)], + &[(13u8, 0u8, 0u8), (14u8, 7u8, 0u8)], ], [ &[ - (12u8, 2u8, 0u8), + (12u8, 0u8, 0u8), (13u8, 6u8, 0u8), (14u8, 7u8, 0u8), (15u8, 8u8, 0u8), @@ -27,7 +27,7 @@ pub(super) const OPTIMAL_RICE_COEFFICIENTS: [[&[(u8, u8, u8)]; 3]; 15] = [ (21u8, 15u8, 0u8), ], &[ - (13u8, 2u8, 0u8), + (13u8, 0u8, 0u8), (14u8, 7u8, 0u8), (15u8, 8u8, 0u8), (16u8, 9u8, 0u8), @@ -38,8 +38,8 @@ pub(super) const OPTIMAL_RICE_COEFFICIENTS: [[&[(u8, u8, u8)]; 3]; 15] = [ (21u8, 14u8, 0u8), ], &[ - (14u8, 2u8, 0u8), - (15u8, 8u8, 0u8), + (14u8, 0u8, 0u8), + (15u8, 7u8, 0u8), (16u8, 9u8, 0u8), (17u8, 10u8, 0u8), (18u8, 11u8, 0u8), @@ -50,286 +50,360 @@ pub(super) const OPTIMAL_RICE_COEFFICIENTS: [[&[(u8, u8, u8)]; 3]; 15] = [ ], [ &[ - (13u8, 3u8, 0u8), - (14u8, 7u8, 0u8), - (15u8, 8u8, 0u8), - (16u8, 9u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), + (13u8, 0u8, 0u8), + (14u8, 6u8, 0u8), + (15u8, 7u8, 0u8), + (16u8, 8u8, 0u8), + (17u8, 9u8, 0u8), + (18u8, 10u8, 0u8), + (19u8, 11u8, 0u8), + (20u8, 12u8, 0u8), (21u8, 14u8, 0u8), (22u8, 15u8, 0u8), ], &[ - (14u8, 3u8, 0u8), - (15u8, 8u8, 0u8), - (16u8, 9u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (14u8, 0u8, 0u8), + (15u8, 7u8, 0u8), + (16u8, 8u8, 0u8), + (17u8, 9u8, 0u8), + (18u8, 10u8, 0u8), + (19u8, 11u8, 0u8), + (20u8, 12u8, 0u8), + (21u8, 13u8, 0u8), + (22u8, 14u8, 0u8), ], &[ - (15u8, 3u8, 0u8), - (16u8, 9u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (15u8, 0u8, 0u8), + (16u8, 7u8, 0u8), + (17u8, 9u8, 0u8), + (18u8, 10u8, 0u8), + (19u8, 11u8, 0u8), + (20u8, 12u8, 0u8), + (21u8, 13u8, 0u8), + (22u8, 14u8, 0u8), ], ], [ &[ - (14u8, 4u8, 0u8), - (15u8, 8u8, 0u8), - (16u8, 9u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (14u8, 0u8, 0u8), + (15u8, 6u8, 0u8), + (16u8, 7u8, 0u8), + (17u8, 8u8, 0u8), + (18u8, 9u8, 0u8), + (19u8, 10u8, 0u8), + (20u8, 11u8, 0u8), + (21u8, 12u8, 0u8), + (22u8, 14u8, 0u8), + (23u8, 15u8, 0u8), ], &[ - (15u8, 4u8, 0u8), - (16u8, 9u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), - (23u8, 16u8, 0u8), + (15u8, 0u8, 0u8), + (16u8, 7u8, 0u8), + (17u8, 8u8, 0u8), + (18u8, 9u8, 0u8), + (19u8, 10u8, 0u8), + (20u8, 11u8, 0u8), + (21u8, 12u8, 0u8), + (22u8, 13u8, 0u8), + (23u8, 14u8, 0u8), ], &[ - (16u8, 4u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), - (23u8, 16u8, 0u8), + (16u8, 0u8, 0u8), + (17u8, 7u8, 0u8), + (18u8, 9u8, 0u8), + (19u8, 10u8, 0u8), + (20u8, 11u8, 0u8), + (21u8, 12u8, 0u8), + (22u8, 13u8, 0u8), + (23u8, 14u8, 0u8), ], ], [ &[ - (15u8, 5u8, 0u8), - (16u8, 9u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), + (15u8, 0u8, 0u8), + (16u8, 6u8, 0u8), + (17u8, 7u8, 0u8), + (18u8, 8u8, 0u8), + (19u8, 9u8, 0u8), + (20u8, 10u8, 0u8), + (21u8, 12u8, 0u8), + (22u8, 13u8, 0u8), ], &[ - (16u8, 5u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), + (16u8, 0u8, 0u8), + (17u8, 7u8, 0u8), + (18u8, 8u8, 0u8), + (19u8, 9u8, 0u8), + (20u8, 10u8, 0u8), + (21u8, 11u8, 0u8), + (22u8, 12u8, 0u8), + (23u8, 13u8, 0u8), ], &[ - (17u8, 5u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), + (17u8, 0u8, 0u8), + (18u8, 7u8, 0u8), + (19u8, 9u8, 0u8), + (20u8, 10u8, 0u8), + (21u8, 11u8, 0u8), + (22u8, 12u8, 0u8), + (23u8, 13u8, 0u8), ], ], [ &[ - (16u8, 6u8, 0u8), - (17u8, 10u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (16u8, 0u8, 0u8), + (17u8, 6u8, 0u8), + (18u8, 7u8, 0u8), + (19u8, 8u8, 0u8), + (20u8, 9u8, 0u8), + (21u8, 10u8, 0u8), + (22u8, 11u8, 0u8), + (23u8, 13u8, 0u8), + (24u8, 14u8, 0u8), ], &[ - (17u8, 6u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (17u8, 0u8, 0u8), + (18u8, 7u8, 0u8), + (19u8, 8u8, 0u8), + (20u8, 9u8, 0u8), + (21u8, 10u8, 0u8), + (22u8, 11u8, 0u8), + (23u8, 12u8, 0u8), + (24u8, 13u8, 0u8), ], &[ - (18u8, 6u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (18u8, 0u8, 0u8), + (19u8, 7u8, 0u8), + (20u8, 9u8, 0u8), + (21u8, 10u8, 0u8), + (22u8, 11u8, 0u8), + (23u8, 12u8, 0u8), + (24u8, 13u8, 0u8), ], ], [ &[ - (17u8, 7u8, 0u8), - (18u8, 11u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (17u8, 0u8, 0u8), + (18u8, 6u8, 0u8), + (19u8, 7u8, 0u8), + (20u8, 8u8, 0u8), + (21u8, 9u8, 0u8), + (22u8, 10u8, 0u8), + (23u8, 11u8, 0u8), + (24u8, 13u8, 0u8), ], &[ - (18u8, 7u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (18u8, 0u8, 0u8), + (19u8, 7u8, 0u8), + (20u8, 8u8, 0u8), + (21u8, 9u8, 0u8), + (22u8, 10u8, 0u8), + (23u8, 11u8, 0u8), + (24u8, 12u8, 0u8), + ], + &[ + (19u8, 0u8, 0u8), + (20u8, 7u8, 0u8), + (21u8, 9u8, 0u8), + (22u8, 10u8, 0u8), + (23u8, 11u8, 0u8), + (24u8, 12u8, 0u8), ], - &[(19u8, 7u8, 0u8), (20u8, 13u8, 0u8), (21u8, 14u8, 0u8), (22u8, 15u8, 0u8)], ], [ &[ - (18u8, 8u8, 0u8), - (19u8, 12u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), + (18u8, 0u8, 0u8), + (19u8, 6u8, 0u8), + (20u8, 7u8, 0u8), + (21u8, 8u8, 0u8), + (22u8, 9u8, 0u8), + (23u8, 10u8, 0u8), + (24u8, 11u8, 0u8), + ], + &[ + (19u8, 0u8, 0u8), + (20u8, 7u8, 0u8), + (21u8, 8u8, 0u8), + (22u8, 9u8, 0u8), + (23u8, 10u8, 0u8), + (24u8, 11u8, 0u8), + ], + &[ + (20u8, 0u8, 0u8), + (21u8, 7u8, 0u8), + (22u8, 9u8, 0u8), + (23u8, 10u8, 0u8), + (24u8, 11u8, 0u8), ], - &[(19u8, 8u8, 0u8), (20u8, 13u8, 0u8), (21u8, 14u8, 0u8), (22u8, 15u8, 0u8)], - &[(20u8, 8u8, 0u8), (21u8, 14u8, 0u8), (22u8, 15u8, 0u8)], ], [ &[ - (19u8, 9u8, 0u8), - (20u8, 13u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (19u8, 0u8, 0u8), + (20u8, 6u8, 0u8), + (21u8, 7u8, 0u8), + (22u8, 8u8, 0u8), + (23u8, 9u8, 0u8), + (24u8, 10u8, 0u8), + (25u8, 11u8, 0u8), + (26u8, 13u8, 0u8), + (27u8, 14u8, 0u8), + (28u8, 15u8, 0u8), + (29u8, 16u8, 0u8), + (30u8, 17u8, 0u8), + (31u8, 18u8, 0u8), + (32u8, 19u8, 0u8), ], &[ - (20u8, 9u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (20u8, 0u8, 0u8), + (21u8, 7u8, 0u8), + (22u8, 8u8, 0u8), + (23u8, 9u8, 0u8), + (24u8, 10u8, 0u8), + (25u8, 11u8, 0u8), + (26u8, 12u8, 0u8), + (27u8, 13u8, 0u8), + (28u8, 14u8, 0u8), + (29u8, 15u8, 0u8), + (30u8, 17u8, 0u8), + (31u8, 18u8, 0u8), + (32u8, 19u8, 0u8), ], &[ - (21u8, 9u8, 0u8), - (22u8, 15u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (21u8, 0u8, 0u8), + (22u8, 7u8, 0u8), + (23u8, 9u8, 0u8), + (24u8, 10u8, 0u8), + (25u8, 11u8, 0u8), + (26u8, 12u8, 0u8), + (27u8, 13u8, 0u8), + (28u8, 14u8, 0u8), + (29u8, 15u8, 0u8), + (30u8, 16u8, 0u8), + (31u8, 17u8, 0u8), + (32u8, 18u8, 0u8), ], ], [ &[ - (20u8, 10u8, 0u8), - (21u8, 14u8, 0u8), - (22u8, 15u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (20u8, 0u8, 0u8), + (21u8, 6u8, 0u8), + (22u8, 7u8, 0u8), + (23u8, 8u8, 0u8), + (24u8, 9u8, 0u8), + (25u8, 10u8, 0u8), + (26u8, 11u8, 0u8), + (27u8, 13u8, 0u8), + (28u8, 14u8, 0u8), + (29u8, 15u8, 0u8), + (30u8, 16u8, 0u8), + (31u8, 17u8, 0u8), + (32u8, 18u8, 0u8), ], &[ - (21u8, 10u8, 0u8), - (22u8, 15u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (21u8, 0u8, 0u8), + (22u8, 7u8, 0u8), + (23u8, 8u8, 0u8), + (24u8, 9u8, 0u8), + (25u8, 10u8, 0u8), + (26u8, 11u8, 0u8), + (27u8, 12u8, 0u8), + (28u8, 13u8, 0u8), + (29u8, 14u8, 0u8), + (30u8, 15u8, 0u8), + (31u8, 16u8, 0u8), + (32u8, 18u8, 0u8), ], &[ - (22u8, 10u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (22u8, 0u8, 0u8), + (23u8, 7u8, 0u8), + (24u8, 9u8, 0u8), + (25u8, 10u8, 0u8), + (26u8, 11u8, 0u8), + (27u8, 12u8, 0u8), + (28u8, 13u8, 0u8), + (29u8, 14u8, 0u8), + (30u8, 15u8, 0u8), + (31u8, 16u8, 0u8), + (32u8, 17u8, 0u8), ], ], [ &[ - (21u8, 11u8, 0u8), - (22u8, 15u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (21u8, 0u8, 0u8), + (22u8, 6u8, 0u8), + (23u8, 7u8, 0u8), + (24u8, 8u8, 0u8), + (25u8, 9u8, 0u8), + (26u8, 10u8, 0u8), + (27u8, 11u8, 0u8), + (28u8, 13u8, 0u8), + (29u8, 14u8, 0u8), + (30u8, 15u8, 0u8), + (31u8, 16u8, 0u8), + (32u8, 17u8, 0u8), ], &[ - (22u8, 11u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (22u8, 0u8, 0u8), + (23u8, 7u8, 0u8), + (24u8, 8u8, 0u8), + (25u8, 9u8, 0u8), + (26u8, 10u8, 0u8), + (27u8, 11u8, 0u8), + (28u8, 12u8, 0u8), + (29u8, 13u8, 0u8), + (30u8, 14u8, 0u8), + (31u8, 15u8, 0u8), + (32u8, 16u8, 0u8), ], &[ - (23u8, 11u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (23u8, 0u8, 0u8), + (24u8, 7u8, 0u8), + (25u8, 9u8, 0u8), + (26u8, 10u8, 0u8), + (27u8, 11u8, 0u8), + (28u8, 12u8, 0u8), + (29u8, 13u8, 0u8), + (30u8, 14u8, 0u8), + (31u8, 15u8, 0u8), + (32u8, 16u8, 0u8), ], ], [ &[ - (22u8, 12u8, 0u8), - (23u8, 16u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (22u8, 0u8, 0u8), + (23u8, 6u8, 0u8), + (24u8, 7u8, 0u8), + (25u8, 8u8, 0u8), + (26u8, 9u8, 0u8), + (27u8, 10u8, 0u8), + (28u8, 11u8, 0u8), + (29u8, 13u8, 0u8), + (30u8, 14u8, 0u8), + (31u8, 15u8, 0u8), + (32u8, 16u8, 0u8), ], &[ - (23u8, 12u8, 0u8), - (24u8, 17u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (23u8, 0u8, 0u8), + (24u8, 7u8, 0u8), + (25u8, 8u8, 0u8), + (26u8, 9u8, 0u8), + (27u8, 10u8, 0u8), + (28u8, 11u8, 0u8), + (29u8, 12u8, 0u8), + (30u8, 13u8, 0u8), + (31u8, 14u8, 0u8), + (32u8, 15u8, 0u8), ], &[ - (24u8, 12u8, 0u8), - (25u8, 18u8, 0u8), - (26u8, 19u8, 0u8), - (27u8, 20u8, 0u8), - (28u8, 21u8, 0u8), - (29u8, 22u8, 0u8), + (24u8, 0u8, 0u8), + (25u8, 7u8, 0u8), + (26u8, 9u8, 0u8), + (27u8, 10u8, 0u8), + (28u8, 11u8, 0u8), + (29u8, 12u8, 0u8), + (30u8, 13u8, 0u8), + (31u8, 14u8, 0u8), + (32u8, 15u8, 0u8), ], ], ]; diff --git a/src/composite_hash/switch_birthday_paradox.rs b/src/composite_hash/switch_birthday_paradox.rs index 9152ace..6c5b4a2 100644 --- a/src/composite_hash/switch_birthday_paradox.rs +++ b/src/composite_hash/switch_birthday_paradox.rs @@ -2,2339 +2,966 @@ /// The cardinalities for the switch hash birthday paradox. pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_CARDINALITIES: [[&[u32]; 3]; 15] = [ [ - &[1u32, 3u32, 5u32, 7u32, 8u32], - &[1u32, 3u32, 5u32, 7u32, 8u32], - &[1u32, 3u32, 5u32, 7u32, 8u32], + &[0u32, 1u32, 2u32, 3u32, 4u32, 5u32, 6u32, 7u32, 8u32], + &[0u32, 1u32, 2u32, 3u32, 4u32, 5u32, 6u32, 7u32, 8u32], + &[0u32, 1u32, 2u32, 3u32, 4u32, 5u32, 6u32, 7u32, 8u32], ], [ - &[1u32, 3u32, 5u32, 7u32, 8u32], - &[1u32, 3u32, 5u32, 7u32, 9u32, 11u32, 12u32], - &[1u32, 3u32, 5u32, 7u32, 9u32, 11u32, 12u32], + &[0u32, 1u32, 2u32, 3u32, 4u32, 5u32, 6u32, 7u32, 8u32], + &[0u32, 2u32, 3u32, 4u32, 6u32, 8u32, 9u32, 10u32, 12u32], + &[0u32, 2u32, 3u32, 4u32, 6u32, 8u32, 9u32, 10u32, 12u32], ], [ - &[1u32, 3u32, 5u32, 7u32, 9u32, 11u32, 13u32, 15u32, 16u32], - &[1u32, 3u32, 5u32, 7u32, 9u32, 11u32, 13u32, 15u32, 17u32, 19u32, 20u32], &[ + 0u32, 1u32, + 2u32, 3u32, + 4u32, 5u32, + 6u32, 7u32, + 8u32, 9u32, + 10u32, 11u32, + 12u32, 13u32, + 14u32, 15u32, - 17u32, - 19u32, - 21u32, - 23u32, - 24u32, + 16u32, ], - ], - [ &[ + 0u32, 1u32, - 3u32, + 2u32, + 4u32, 5u32, 7u32, + 8u32, 9u32, + 10u32, 11u32, + 12u32, 13u32, - 15u32, + 14u32, + 16u32, 17u32, - 19u32, - 21u32, - 23u32, - 25u32, - 27u32, - 29u32, - 31u32, - 32u32, + 18u32, + 20u32, ], &[ - 1u32, + 0u32, + 2u32, 3u32, - 5u32, + 4u32, + 6u32, 7u32, 9u32, - 11u32, + 10u32, + 12u32, 13u32, 15u32, - 17u32, + 16u32, + 18u32, 19u32, 21u32, 23u32, - 25u32, - 27u32, - 29u32, - 31u32, - 33u32, - 35u32, - 37u32, - 39u32, - 40u32, + 24u32, ], + ], + [ &[ - 1u32, - 3u32, - 5u32, - 7u32, - 9u32, - 11u32, - 13u32, - 15u32, - 17u32, - 19u32, - 21u32, - 23u32, + 0u32, + 2u32, + 4u32, + 6u32, + 8u32, + 10u32, + 12u32, + 14u32, + 16u32, + 18u32, + 20u32, + 22u32, + 24u32, 25u32, - 27u32, + 28u32, 29u32, - 31u32, - 33u32, - 35u32, - 37u32, - 39u32, - 41u32, - 43u32, - 45u32, - 47u32, - 48u32, + 32u32, ], - ], - [ &[ 0u32, - 3u32, + 2u32, 5u32, - 7u32, - 9u32, + 8u32, 11u32, - 13u32, - 15u32, - 17u32, + 14u32, + 16u32, 19u32, 21u32, - 23u32, - 25u32, - 27u32, + 24u32, + 26u32, 29u32, 31u32, 33u32, 35u32, - 37u32, 39u32, - 41u32, - 43u32, - 45u32, - 47u32, - 49u32, - 51u32, - 53u32, - 55u32, - 57u32, - 59u32, - 61u32, - 63u32, - 65u32, - 67u32, - 68u32, + 40u32, ], &[ 0u32, 3u32, - 5u32, - 7u32, + 6u32, 9u32, - 11u32, - 13u32, - 15u32, - 17u32, - 19u32, + 12u32, + 14u32, + 18u32, 21u32, - 23u32, - 25u32, - 27u32, + 24u32, + 26u32, 29u32, - 31u32, - 33u32, + 32u32, 35u32, - 37u32, 39u32, - 41u32, - 43u32, - 45u32, - 47u32, - 49u32, - 51u32, - 53u32, - 55u32, - 57u32, - 59u32, - 61u32, - 63u32, - 65u32, - 67u32, - 69u32, - 71u32, - 73u32, - 75u32, - 77u32, - 79u32, - 81u32, - 83u32, - 84u32, - ], - &[ - 1u32, - 4u32, - 7u32, - 10u32, - 13u32, - 16u32, - 19u32, - 22u32, - 25u32, - 28u32, - 31u32, - 34u32, - 37u32, - 40u32, - 43u32, - 46u32, - 49u32, - 52u32, - 55u32, - 58u32, - 61u32, - 64u32, - 67u32, - 70u32, - 73u32, - 76u32, - 79u32, - 82u32, - 85u32, - 88u32, - 91u32, - 94u32, - 97u32, - 100u32, + 42u32, + 44u32, + 48u32, ], ], + [ + &[0u32, 8u32, 21u32, 31u32, 41u32, 53u32, 65u32, 66u32, 67u32, 68u32], + &[0u32, 14u32, 27u32, 44u32, 52u32, 62u32, 71u32, 81u32, 82u32, 83u32, 84u32], + &[0u32, 14u32, 31u32, 51u32, 63u32, 72u32, 81u32, 90u32, 98u32, 99u32, 100u32], + ], [ &[ 0u32, - 4u32, - 7u32, - 10u32, - 13u32, - 16u32, - 19u32, - 22u32, - 25u32, - 28u32, - 31u32, - 34u32, - 37u32, - 40u32, - 43u32, - 46u32, - 49u32, - 52u32, - 55u32, - 58u32, - 61u32, - 64u32, - 67u32, - 70u32, - 73u32, - 76u32, - 79u32, - 82u32, - 85u32, - 88u32, - 91u32, - 94u32, - 97u32, - 100u32, - 103u32, - 106u32, - 109u32, - 112u32, - 115u32, - 118u32, - 121u32, - 124u32, - 127u32, - 130u32, - 132u32, - ], - &[ - 2u32, - 6u32, - 10u32, - 14u32, - 18u32, - 22u32, 26u32, - 30u32, - 34u32, - 38u32, - 42u32, - 46u32, - 50u32, - 54u32, - 58u32, - 62u32, - 66u32, - 70u32, - 74u32, - 78u32, - 82u32, - 86u32, - 90u32, - 94u32, - 98u32, - 102u32, - 106u32, - 110u32, - 114u32, - 118u32, - 122u32, - 126u32, + 51u32, + 65u32, + 84u32, + 96u32, + 107u32, + 120u32, 130u32, - 134u32, - 138u32, - 142u32, - 146u32, - 150u32, - 154u32, - 158u32, - 162u32, - 165u32, + 131u32, + 132u32, ], + &[0u32, 26u32, 51u32, 86u32, 105u32, 117u32, 128u32, 160u32, 164u32, 165u32], &[ - 2u32, - 7u32, - 12u32, - 17u32, - 22u32, + 0u32, 27u32, - 32u32, - 37u32, - 42u32, - 47u32, - 52u32, - 57u32, - 62u32, - 67u32, - 72u32, - 77u32, - 82u32, - 87u32, - 92u32, - 97u32, - 102u32, - 107u32, - 112u32, - 117u32, - 122u32, + 65u32, + 94u32, 127u32, - 132u32, - 137u32, - 142u32, - 147u32, - 152u32, - 157u32, - 162u32, - 167u32, - 172u32, - 177u32, - 182u32, - 187u32, - 192u32, + 143u32, + 161u32, + 194u32, + 195u32, + 196u32, 197u32, + 198u32, ], ], [ + &[0u32, 76u32, 169u32, 257u32, 260u32, 261u32, 262u32], &[ 0u32, - 6u32, - 12u32, - 18u32, - 24u32, - 33u32, - 38u32, - 44u32, - 50u32, - 56u32, - 62u32, - 68u32, - 74u32, - 80u32, - 86u32, - 92u32, - 98u32, - 104u32, - 110u32, - 116u32, - 122u32, - 128u32, - 134u32, - 140u32, - 146u32, - 152u32, - 158u32, + 39u32, + 103u32, 164u32, - 171u32, - 177u32, - 182u32, - 189u32, - 194u32, - 201u32, - 207u32, 212u32, - 218u32, - 225u32, - 230u32, - 236u32, - 243u32, - 249u32, - 255u32, - 260u32, - ], - &[ - 0u32, - 8u32, - 16u32, - 24u32, - 34u32, - 42u32, - 50u32, - 58u32, - 66u32, - 74u32, - 82u32, - 90u32, - 98u32, - 106u32, - 114u32, - 122u32, - 130u32, - 138u32, - 146u32, - 154u32, - 162u32, - 170u32, - 178u32, - 186u32, - 194u32, - 202u32, - 213u32, - 218u32, - 227u32, - 236u32, - 244u32, 252u32, - 259u32, - 266u32, - 277u32, - 283u32, - 290u32, - 299u32, - 306u32, - 315u32, - 322u32, + 286u32, + 323u32, + 324u32, + 325u32, + 326u32, + 327u32, ], &[ 0u32, - 10u32, - 20u32, - 33u32, - 42u32, - 52u32, - 62u32, - 72u32, - 82u32, - 92u32, - 102u32, - 112u32, - 122u32, - 132u32, - 142u32, - 152u32, - 162u32, - 172u32, - 182u32, + 39u32, + 76u32, + 103u32, + 147u32, + 164u32, + 188u32, 192u32, - 202u32, - 212u32, - 222u32, - 234u32, - 242u32, - 257u32, - 262u32, - 273u32, - 282u32, - 297u32, - 304u32, - 315u32, - 325u32, - 337u32, - 342u32, - 353u32, - 362u32, - 373u32, - 386u32, - 397u32, - 402u32, + 255u32, + 321u32, + 398u32, + 403u32, + 406u32, + 407u32, + 409u32, + 410u32, ], ], [ &[ 0u32, - 11u32, - 22u32, - 35u32, - 46u32, - 57u32, - 68u32, - 79u32, - 90u32, - 101u32, - 112u32, - 126u32, - 134u32, - 145u32, - 156u32, - 167u32, - 178u32, - 189u32, - 200u32, - 211u32, - 222u32, - 233u32, - 244u32, - 255u32, - 266u32, - 277u32, + 38u32, + 117u32, + 130u32, + 180u32, + 256u32, + 267u32, 290u32, - 305u32, - 310u32, - 321u32, - 338u32, - 349u32, - 357u32, - 365u32, - 377u32, - 389u32, - 403u32, - 413u32, - 423u32, - 433u32, - 448u32, - 457u32, - 464u32, - 479u32, - 492u32, - 499u32, - 513u32, + 340u32, + 518u32, 519u32, + 520u32, + 521u32, + 522u32, ], &[ 0u32, - 15u32, - 30u32, - 45u32, - 60u32, - 75u32, - 90u32, - 105u32, - 120u32, - 135u32, - 150u32, - 165u32, - 180u32, - 195u32, - 210u32, - 233u32, - 242u32, - 257u32, - 272u32, - 289u32, - 305u32, - 317u32, - 339u32, - 347u32, - 362u32, - 377u32, - 400u32, - 411u32, - 428u32, - 437u32, - 459u32, - 476u32, - 488u32, - 497u32, - 519u32, - 531u32, - 542u32, - 561u32, - 578u32, - 593u32, - 603u32, - 625u32, - 633u32, - 652u32, - 664u32, + 39u32, + 117u32, + 130u32, + 206u32, + 267u32, + 290u32, + 352u32, + 425u32, + 456u32, + 489u32, + 523u32, + 553u32, + 661u32, + 671u32, + 670u32, ], &[ 0u32, - 11u32, - 22u32, - 33u32, - 44u32, - 55u32, - 66u32, + 29u32, + 46u32, 77u32, - 88u32, - 99u32, - 110u32, - 121u32, - 132u32, - 143u32, - 154u32, - 165u32, - 176u32, - 187u32, - 198u32, - 209u32, - 220u32, - 233u32, - 244u32, + 128u32, + 197u32, + 206u32, 255u32, - 266u32, - 277u32, - 289u32, - 305u32, - 310u32, - 321u32, - 338u32, - 343u32, - 360u32, - 365u32, - 376u32, - 387u32, - 400u32, - 411u32, - 420u32, - 436u32, - 442u32, - 455u32, - 464u32, - 480u32, - 486u32, - 497u32, - 508u32, + 267u32, + 312u32, + 352u32, + 374u32, + 406u32, + 443u32, + 467u32, + 498u32, + 512u32, ], ], [ &[ 0u32, - 22u32, - 44u32, - 66u32, - 88u32, - 110u32, - 132u32, - 154u32, - 183u32, - 200u32, - 233u32, - 244u32, - 266u32, - 289u32, - 310u32, - 339u32, - 360u32, - 385u32, - 399u32, - 425u32, - 442u32, - 481u32, - 495u32, - 520u32, - 530u32, - 554u32, - 587u32, - 596u32, - 631u32, - 657u32, - 666u32, - 691u32, - 711u32, - 730u32, - 751u32, - 774u32, - 797u32, - 822u32, - 838u32, - 867u32, - 883u32, - 908u32, - 933u32, - 959u32, - 974u32, - 1007u32, - 1014u32, - 1049u32, + 29u32, + 83u32, + 131u32, + 211u32, + 259u32, + 288u32, + 312u32, + 347u32, + 367u32, + 408u32, + 465u32, + 498u32, + 511u32, + 618u32, + 653u32, + 681u32, + 781u32, + 875u32, + 976u32, 1053u32, + 1056u32, + 1058u32, + 1059u32, + 1060u32, + 1062u32, + 1063u32, + 1061u32, ], &[ 0u32, - 17u32, - 34u32, - 51u32, - 68u32, - 85u32, - 102u32, - 119u32, - 136u32, - 153u32, - 183u32, - 189u32, - 206u32, - 233u32, - 240u32, - 257u32, - 274u32, - 291u32, - 308u32, - 331u32, - 343u32, - 360u32, - 385u32, - 396u32, - 411u32, - 427u32, - 444u32, - 461u32, - 483u32, - 495u32, - 520u32, - 529u32, - 554u32, - 563u32, - 587u32, - 597u32, - 614u32, - 631u32, - 658u32, - 666u32, - 682u32, + 15u32, + 29u32, + 44u32, + 83u32, + 90u32, + 128u32, + 154u32, + 211u32, + 234u32, + 259u32, + 280u32, + 288u32, + 312u32, + 347u32, + 367u32, + 408u32, + 424u32, + 441u32, + 458u32, + 498u32, + 565u32, + 618u32, + 628u32, + 635u32, + 653u32, + 662u32, + 678u32, 702u32, - 716u32, - 736u32, - 750u32, - 779u32, - 785u32, - 811u32, - 828u32, - 835u32, - 852u32, + 731u32, + 825u32, + 827u32, + 853u32, ], &[ 0u32, - 21u32, - 42u32, - 63u32, - 84u32, - 105u32, - 126u32, - 147u32, - 183u32, - 191u32, - 212u32, - 233u32, - 254u32, - 289u32, - 296u32, - 331u32, - 339u32, - 360u32, - 396u32, - 401u32, - 425u32, - 443u32, - 480u32, - 485u32, + 29u32, + 77u32, + 90u32, + 117u32, + 154u32, + 210u32, + 234u32, + 259u32, + 312u32, + 347u32, + 368u32, + 403u32, + 424u32, + 439u32, + 454u32, + 498u32, 506u32, - 527u32, - 554u32, - 569u32, - 591u32, - 611u32, - 632u32, - 666u32, - 680u32, + 567u32, + 582u32, + 635u32, + 658u32, 702u32, - 730u32, - 737u32, - 758u32, - 779u32, - 811u32, - 828u32, - 858u32, - 863u32, - 896u32, - 918u32, - 938u32, - 953u32, - 981u32, - 989u32, - 1010u32, + 735u32, + 757u32, + 764u32, + 831u32, + 857u32, + 877u32, + 900u32, + 962u32, + 1012u32, + 1024u32, ], ], [ &[ 0u32, - 26u32, - 52u32, - 78u32, - 104u32, - 142u32, - 158u32, - 184u32, - 210u32, - 248u32, - 262u32, - 288u32, - 331u32, - 340u32, - 366u32, - 396u32, - 425u32, - 450u32, - 470u32, - 504u32, - 522u32, - 556u32, - 595u32, - 603u32, - 626u32, - 652u32, - 678u32, - 715u32, - 734u32, - 756u32, - 789u32, - 827u32, - 844u32, - 860u32, - 896u32, - 918u32, - 947u32, - 971u32, - 990u32, - 1020u32, - 1051u32, - 1070u32, - 1100u32, - 1129u32, - 1150u32, - 1172u32, - 1198u32, - 1230u32, - 1265u32, - 1276u32, - 1313u32, - 1331u32, - 1355u32, + 36u32, + 63u32, + 107u32, + 133u32, + 154u32, + 243u32, + 298u32, + 323u32, + 347u32, + 436u32, + 491u32, + 499u32, + 544u32, + 579u32, + 612u32, + 649u32, + 680u32, + 704u32, + 737u32, + 779u32, + 854u32, + 877u32, + 887u32, + 970u32, + 1010u32, + 1028u32, + 1078u32, + 1171u32, + 1214u32, + 1227u32, + 1261u32, + 1365u32, ], &[ 0u32, - 32u32, - 64u32, - 96u32, - 142u32, - 183u32, - 194u32, - 248u32, - 258u32, - 290u32, - 331u32, - 354u32, - 396u32, - 425u32, - 450u32, - 504u32, - 520u32, - 556u32, - 596u32, - 621u32, - 652u32, - 678u32, - 715u32, - 745u32, - 779u32, - 827u32, - 860u32, - 892u32, - 898u32, - 947u32, - 962u32, - 1020u32, - 1031u32, - 1070u32, - 1100u32, - 1129u32, + 60u32, + 129u32, + 154u32, + 243u32, + 298u32, + 323u32, + 403u32, + 436u32, + 499u32, + 579u32, + 607u32, + 649u32, + 701u32, + 777u32, + 792u32, + 877u32, + 887u32, + 985u32, + 1079u32, 1171u32, - 1195u32, - 1230u32, - 1276u32, - 1282u32, - 1331u32, - 1371u32, - 1384u32, - 1428u32, - 1445u32, - 1490u32, - 1512u32, - 1565u32, - 1576u32, - 1614u32, - 1661u32, - 1689u32, - 1698u32, + 1214u32, + 1242u32, + 1261u32, + 1353u32, + 1390u32, + 1415u32, + 1453u32, + 1535u32, + 1539u32, + 1639u32, + 1699u32, + 1706u32, ], &[ 0u32, - 39u32, - 78u32, - 142u32, - 183u32, - 197u32, - 248u32, - 275u32, - 331u32, - 353u32, - 396u32, - 450u32, - 504u32, - 511u32, - 556u32, - 596u32, - 652u32, - 678u32, - 715u32, - 745u32, - 790u32, - 827u32, - 894u32, - 904u32, - 947u32, - 977u32, - 1020u32, - 1070u32, - 1128u32, - 1150u32, - 1172u32, - 1230u32, - 1276u32, - 1313u32, - 1331u32, - 1384u32, - 1428u32, - 1445u32, - 1490u32, - 1523u32, - 1576u32, - 1614u32, - 1661u32, - 1689u32, - 1721u32, - 1764u32, - 1813u32, - 1840u32, - 1891u32, - 1938u32, - 1966u32, - 1995u32, - 2043u32, + 60u32, + 129u32, + 243u32, + 279u32, + 322u32, + 347u32, + 436u32, + 499u32, + 543u32, + 594u32, + 674u32, + 776u32, + 854u32, + 877u32, + 887u32, + 992u32, + 1079u32, + 1171u32, + 1180u32, + 1242u32, + 1312u32, + 1353u32, + 1415u32, + 1509u32, + 1609u32, + 1639u32, + 1699u32, + 1788u32, + 1849u32, + 1895u32, + 2033u32, + 2048u32, ], ], [ &[ 0u32, - 48u32, - 96u32, - 165u32, - 194u32, - 261u32, - 329u32, - 357u32, - 405u32, - 442u32, - 505u32, - 550u32, - 585u32, - 626u32, - 687u32, - 746u32, - 790u32, - 833u32, - 898u32, - 947u32, - 1005u32, - 1026u32, - 1098u32, - 1129u32, - 1171u32, - 1202u32, - 1276u32, - 1325u32, - 1359u32, - 1430u32, - 1478u32, - 1510u32, - 1566u32, - 1599u32, - 1640u32, - 1722u32, - 1765u32, - 1807u32, - 1864u32, - 1890u32, - 1938u32, - 1997u32, - 2043u32, - 2090u32, - 2153u32, - 2175u32, - 2217u32, - 2268u32, - 2338u32, - 2391u32, - 2413u32, - 2466u32, - 2519u32, - 2574u32, - 2636u32, - 2660u32, - 2726u32, + 106u32, + 181u32, + 279u32, + 361u32, + 473u32, + 594u32, + 737u32, + 772u32, + 878u32, + 970u32, + 1016u32, + 1161u32, + 1214u32, + 1235u32, + 1361u32, + 1417u32, + 1479u32, + 1561u32, + 1696u32, + 1790u32, + 1980u32, + 2009u32, + 2028u32, + 2103u32, + 2156u32, + 2239u32, + 2256u32, + 2388u32, + 2489u32, + 2565u32, + 2669u32, + 2730u32, ], &[ 0u32, - 60u32, - 165u32, - 183u32, - 261u32, - 329u32, - 362u32, - 425u32, - 505u32, - 550u32, - 624u32, - 687u32, - 736u32, - 790u32, - 844u32, - 947u32, - 962u32, - 1026u32, - 1098u32, - 1171u32, - 1255u32, - 1276u32, - 1359u32, - 1430u32, - 1478u32, - 1510u32, - 1599u32, - 1640u32, - 1682u32, - 1765u32, - 1807u32, - 1864u32, - 1977u32, - 1996u32, - 2090u32, - 2153u32, - 2175u32, - 2242u32, - 2315u32, - 2351u32, - 2413u32, - 2466u32, - 2533u32, - 2636u32, - 2660u32, - 2717u32, - 2771u32, - 2862u32, - 2914u32, - 2995u32, - 3004u32, - 3101u32, - 3148u32, - 3237u32, - 3286u32, - 3342u32, - 3410u32, + 106u32, + 228u32, + 325u32, + 436u32, + 593u32, + 651u32, + 772u32, + 877u32, + 898u32, + 1016u32, + 1161u32, + 1244u32, + 1415u32, + 1550u32, + 1696u32, + 1789u32, + 1892u32, + 2009u32, + 2145u32, + 2157u32, + 2301u32, + 2364u32, + 2489u32, + 2652u32, + 2831u32, + 2865u32, + 2912u32, + 2961u32, + 3210u32, + 3221u32, + 3341u32, + 3413u32, ], &[ 0u32, - 73u32, - 165u32, - 261u32, - 329u32, - 405u32, - 505u32, - 550u32, - 586u32, - 687u32, - 736u32, - 813u32, - 898u32, - 960u32, - 1026u32, - 1098u32, - 1171u32, - 1276u32, - 1359u32, - 1430u32, - 1510u32, - 1599u32, - 1640u32, - 1682u32, - 1765u32, - 1864u32, - 1907u32, - 1997u32, - 2090u32, - 2153u32, - 2220u32, - 2315u32, - 2351u32, - 2413u32, - 2519u32, - 2618u32, - 2636u32, - 2771u32, - 2818u32, - 2862u32, - 2927u32, - 2995u32, - 3101u32, - 3148u32, - 3237u32, - 3342u32, - 3392u32, - 3451u32, - 3555u32, - 3629u32, - 3666u32, - 3787u32, - 3820u32, - 3873u32, - 3976u32, - 4033u32, - 4092u32, + 115u32, + 279u32, + 436u32, + 593u32, + 772u32, + 877u32, + 1016u32, + 1105u32, + 1196u32, + 1253u32, + 1480u32, + 1561u32, + 1696u32, + 1819u32, + 2009u32, + 2106u32, + 2157u32, + 2364u32, + 2489u32, + 2652u32, + 2831u32, + 2865u32, + 3046u32, + 3092u32, + 3221u32, + 3341u32, + 3457u32, + 3575u32, + 3707u32, + 3853u32, + 3963u32, + 4096u32, ], ], [ &[ 0u32, - 91u32, - 182u32, - 273u32, - 364u32, - 455u32, - 546u32, - 637u32, - 728u32, - 819u32, - 910u32, - 1001u32, - 1092u32, - 1183u32, - 1274u32, - 1365u32, - 1456u32, - 1547u32, - 1638u32, - 1729u32, - 1820u32, - 1911u32, - 2002u32, - 2093u32, - 2184u32, - 2275u32, - 2366u32, - 2457u32, - 2548u32, - 2671u32, - 2732u32, - 2823u32, - 2950u32, - 3010u32, - 3096u32, - 3187u32, - 3278u32, - 3369u32, - 3460u32, - 3551u32, - 3673u32, - 3733u32, - 3824u32, - 3931u32, - 4083u32, - 4145u32, - 4193u32, - 4282u32, - 4396u32, - 4509u32, - 4607u32, - 4668u32, - 4768u32, - 4910u32, - 4947u32, - 5040u32, - 5098u32, - 5264u32, - 5284u32, - 5445u32, + 326u32, + 448u32, + 796u32, + 1200u32, + 1805u32, + 1958u32, + 1981u32, + 2048u32, + 2171u32, + 2614u32, + 3292u32, + 3534u32, + 3830u32, + 4004u32, + 4085u32, + 4095u32, + 4209u32, + 4376u32, + 4686u32, + 4787u32, + 4885u32, + 5036u32, + 5462u32, + 5463u32, 5464u32, + 5465u32, + 5466u32, + 5468u32, + 5469u32, ], &[ 0u32, - 113u32, - 226u32, - 339u32, - 452u32, - 565u32, - 678u32, - 791u32, - 904u32, - 1017u32, - 1130u32, - 1243u32, - 1356u32, - 1469u32, - 1582u32, - 1695u32, - 1808u32, - 1921u32, - 2034u32, - 2147u32, - 2260u32, - 2373u32, - 2486u32, - 2671u32, - 2714u32, - 2827u32, - 2950u32, - 3053u32, - 3166u32, - 3279u32, - 3392u32, - 3505u32, - 3673u32, - 3731u32, - 3844u32, - 3957u32, - 4083u32, - 4183u32, - 4296u32, - 4409u32, - 4522u32, - 4635u32, - 4748u32, - 4861u32, - 4974u32, - 5192u32, - 5267u32, - 5377u32, - 5495u32, - 5601u32, - 5743u32, - 5821u32, - 5963u32, - 5998u32, - 6120u32, - 6275u32, - 6355u32, - 6487u32, - 6609u32, - 6736u32, + 326u32, + 501u32, + 796u32, + 1200u32, + 1450u32, + 1805u32, + 1958u32, + 2289u32, + 2947u32, + 3162u32, + 3203u32, + 3534u32, + 4535u32, + 4995u32, + 5075u32, + 5119u32, + 5547u32, + 5949u32, + 6827u32, 6832u32, + 6833u32, + 6834u32, + 6835u32, ], &[ 0u32, - 136u32, - 272u32, - 408u32, - 544u32, - 680u32, - 816u32, - 952u32, - 1088u32, - 1224u32, - 1360u32, - 1496u32, - 1632u32, - 1768u32, - 1904u32, - 2040u32, - 2254u32, - 2314u32, - 2450u32, - 2586u32, - 2722u32, - 2950u32, - 3010u32, - 3130u32, - 3266u32, - 3402u32, - 3538u32, - 3674u32, - 3810u32, - 3946u32, - 4083u32, - 4218u32, - 4354u32, - 4490u32, - 4626u32, - 4762u32, - 4898u32, - 5094u32, - 5184u32, - 5306u32, - 5442u32, - 5625u32, - 5723u32, - 5881u32, - 5992u32, - 6162u32, - 6310u32, - 6490u32, - 6605u32, - 6738u32, - 6909u32, - 7062u32, - 7074u32, - 7224u32, - 7363u32, - 7581u32, - 7745u32, - 7781u32, - 7970u32, - 8120u32, + 448u32, + 1200u32, + 1958u32, + 2048u32, + 2614u32, + 3157u32, + 3203u32, + 3534u32, + 4317u32, + 4535u32, + 4616u32, + 4995u32, + 5135u32, + 5438u32, + 5934u32, + 6143u32, + 6928u32, + 7546u32, + 8196u32, 8200u32, + 8201u32, + 8203u32, + 8202u32, ], ], [ &[ 0u32, - 170u32, - 340u32, - 510u32, - 680u32, - 850u32, - 1020u32, - 1190u32, + 371u32, + 430u32, + 986u32, 1498u32, - 1532u32, - 1702u32, - 1872u32, - 2099u32, - 2212u32, - 2382u32, - 2671u32, - 2722u32, - 2892u32, - 3062u32, - 3232u32, - 3402u32, - 3673u32, - 3742u32, - 3912u32, - 4082u32, - 4252u32, - 4422u32, - 4694u32, - 4762u32, - 4932u32, - 5148u32, - 5434u32, - 5442u32, - 5634u32, - 5782u32, - 6003u32, - 6189u32, - 6292u32, - 6610u32, - 6686u32, - 6802u32, - 6972u32, - 7167u32, - 7312u32, - 7482u32, - 7652u32, - 7881u32, - 7992u32, - 8242u32, - 8344u32, - 8526u32, - 8793u32, - 8913u32, - 9072u32, - 9213u32, - 9453u32, - 9644u32, - 9768u32, - 9926u32, - 10193u32, - 10336u32, - 10533u32, - 10638u32, - 10840u32, - 10932u32, + 2171u32, + 2350u32, + 3103u32, + 3502u32, + 4535u32, + 4831u32, + 5114u32, + 5965u32, + 6079u32, + 7466u32, + 7954u32, + 8191u32, + 8641u32, + 9340u32, + 9720u32, + 10291u32, + 10659u32, + 10927u32, + 10931u32, + 10934u32, + 10935u32, + 10936u32, + 10937u32, ], &[ 0u32, - 213u32, - 426u32, - 639u32, - 852u32, - 1065u32, - 1278u32, - 1498u32, - 1706u32, - 2099u32, - 2132u32, - 2345u32, - 2671u32, - 2771u32, - 2984u32, - 3197u32, - 3410u32, - 3673u32, - 3836u32, - 4049u32, - 4262u32, - 4475u32, - 4688u32, - 4901u32, - 5148u32, - 5327u32, - 5634u32, - 5886u32, - 6003u32, - 6179u32, - 6392u32, - 6610u32, - 6970u32, - 7099u32, - 7244u32, - 7457u32, - 7670u32, - 7883u32, - 8303u32, - 8309u32, - 8522u32, - 8938u32, - 8990u32, - 9161u32, - 9374u32, - 9613u32, - 9932u32, - 10013u32, - 10352u32, - 10646u32, - 10843u32, - 10947u32, - 11259u32, - 11352u32, - 11684u32, - 11724u32, - 12040u32, - 12330u32, - 12376u32, - 12608u32, - 12907u32, - 13042u32, - 13257u32, - 13438u32, + 430u32, + 1368u32, + 2169u32, + 2350u32, + 3103u32, + 3502u32, + 3947u32, + 4840u32, + 5114u32, + 5796u32, + 6095u32, + 7830u32, + 9212u32, + 9668u32, + 9842u32, + 10239u32, + 10677u32, + 11152u32, + 11447u32, + 11856u32, + 12405u32, + 12880u32, + 13451u32, + 13661u32, + 13664u32, + 13667u32, + 13668u32, 13669u32, + 13670u32, + 13671u32, ], &[ 0u32, - 256u32, - 512u32, - 768u32, - 1024u32, - 1498u32, - 1538u32, - 1794u32, - 2099u32, - 2306u32, - 2562u32, - 2818u32, - 3074u32, - 3330u32, - 3673u32, - 3842u32, - 4181u32, - 4354u32, - 4610u32, - 4866u32, - 5148u32, - 5378u32, - 5634u32, - 6003u32, - 6146u32, - 6610u32, - 6723u32, - 6970u32, - 7171u32, - 7426u32, - 7881u32, - 7938u32, - 8303u32, - 8452u32, - 8706u32, - 8990u32, - 9218u32, - 9613u32, - 9932u32, - 9986u32, - 10242u32, - 10498u32, - 10976u32, - 11112u32, - 11266u32, - 11646u32, - 11797u32, - 12279u32, - 12450u32, - 12611u32, - 13044u32, - 13258u32, - 13441u32, - 13739u32, - 13874u32, - 14253u32, - 14496u32, - 14597u32, - 15001u32, - 15356u32, - 15572u32, - 15650u32, - 15988u32, - 16165u32, + 429u32, + 1368u32, + 1904u32, + 2613u32, + 3103u32, + 3518u32, + 4830u32, + 5510u32, + 6931u32, + 7527u32, + 8453u32, + 8672u32, + 10845u32, + 11084u32, + 12099u32, + 12287u32, + 12874u32, + 13260u32, + 13787u32, + 14258u32, + 15019u32, + 15702u32, + 16397u32, + 16400u32, + 16402u32, 16404u32, + 16407u32, + 16405u32, + 16408u32, + 16409u32, ], ], [ &[ 0u32, - 321u32, - 642u32, - 963u32, - 1284u32, - 1605u32, - 2099u32, + 1214u32, + 1904u32, 2339u32, - 2671u32, - 3144u32, - 3212u32, - 3653u32, - 3854u32, - 4240u32, - 4496u32, - 4817u32, - 5148u32, - 5684u32, - 5886u32, - 6189u32, - 6449u32, - 6748u32, - 7064u32, - 7457u32, - 7706u32, - 8303u32, - 8522u32, - 8762u32, - 8990u32, - 9566u32, - 9932u32, - 9953u32, - 10274u32, - 10595u32, - 10944u32, - 11480u32, - 11611u32, - 12107u32, - 12252u32, - 12832u32, - 12873u32, - 13322u32, - 13629u32, - 13950u32, - 14193u32, - 14547u32, - 14841u32, - 15352u32, - 15515u32, - 15975u32, - 16118u32, - 16602u32, - 16863u32, - 17052u32, - 17383u32, - 17713u32, - 18116u32, - 18381u32, - 18921u32, - 18971u32, - 19510u32, - 19617u32, - 19972u32, - 20249u32, - 20786u32, - 21180u32, - 21465u32, - 21620u32, + 3491u32, + 5000u32, + 5757u32, + 6696u32, + 7825u32, + 8184u32, + 8366u32, + 8721u32, + 11276u32, + 11864u32, + 14543u32, + 14643u32, + 16383u32, + 17269u32, + 17733u32, + 18352u32, + 18738u32, + 20639u32, 21871u32, + 21874u32, + 21875u32, + 21876u32, + 21877u32, + 21878u32, + 21881u32, ], &[ 0u32, - 402u32, - 804u32, - 1206u32, - 1608u32, - 2099u32, - 2671u32, - 3144u32, - 3218u32, - 3653u32, - 4240u32, - 4424u32, - 5148u32, - 5602u32, - 5684u32, - 6032u32, - 6449u32, - 6970u32, - 7457u32, - 7640u32, - 8303u32, - 8522u32, - 8990u32, - 9566u32, - 9932u32, - 10052u32, - 10454u32, - 10976u32, - 11611u32, - 11797u32, - 12107u32, - 12832u32, - 12873u32, - 13322u32, - 13720u32, - 14105u32, - 14547u32, - 15035u32, - 15352u32, - 15975u32, - 16116u32, - 16491u32, - 16886u32, - 17437u32, - 17693u32, - 18292u32, - 18551u32, - 19279u32, - 19488u32, - 19764u32, - 20484u32, - 20523u32, - 21116u32, - 21435u32, - 22072u32, - 22414u32, - 22890u32, - 22988u32, - 23438u32, - 23835u32, - 24364u32, - 24847u32, - 25140u32, - 25709u32, - 25852u32, - 26334u32, - 26688u32, - 27331u32, + 1874u32, + 3624u32, + 4439u32, + 5572u32, + 7061u32, + 7875u32, + 9840u32, + 11306u32, + 11462u32, + 13238u32, + 13431u32, + 14791u32, + 17046u32, + 18602u32, + 19955u32, + 20479u32, + 23042u32, + 27312u32, + 27342u32, + 27344u32, + 27345u32, 27346u32, + 27347u32, + 27349u32, + 27348u32, + 27350u32, + 27351u32, ], &[ 0u32, - 482u32, - 964u32, - 1446u32, - 2099u32, - 2412u32, - 3144u32, - 3653u32, - 4240u32, - 4365u32, - 5148u32, - 5684u32, - 5886u32, - 6449u32, - 6970u32, - 7457u32, - 7714u32, - 8303u32, - 8762u32, - 9179u32, - 9932u32, - 10124u32, - 10976u32, - 11126u32, - 11611u32, - 12107u32, - 12801u32, - 13121u32, - 13629u32, - 14015u32, - 14547u32, - 15035u32, - 15515u32, - 15975u32, - 16408u32, - 16884u32, - 17452u32, - 17893u32, - 18453u32, - 18886u32, - 19288u32, + 1291u32, + 2447u32, + 4181u32, + 5637u32, + 7061u32, + 7956u32, + 9785u32, + 11946u32, + 13882u32, + 14784u32, + 18602u32, 19764u32, - 20320u32, - 20733u32, - 21239u32, - 21821u32, - 22231u32, - 22669u32, - 23395u32, - 23622u32, - 24579u32, - 24931u32, - 25376u32, - 25717u32, - 26358u32, - 26842u32, - 27258u32, - 27613u32, - 28245u32, - 28547u32, - 28924u32, - 29768u32, - 29959u32, - 30749u32, - 31104u32, - 31692u32, - 31871u32, - 32549u32, - 32820u32, + 19941u32, + 21614u32, + 22609u32, + 24575u32, + 25146u32, + 26289u32, + 27255u32, + 28207u32, + 30435u32, + 32802u32, + 32808u32, + 32818u32, + 32819u32, + 32821u32, + 32822u32, + 32824u32, + 32825u32, + 32826u32, + 32827u32, ], ], [ &[ 0u32, - 713u32, - 1218u32, - 2099u32, - 2671u32, - 3042u32, - 3653u32, - 4320u32, - 4866u32, - 5602u32, - 6189u32, - 6970u32, - 7298u32, - 8091u32, - 8557u32, - 9463u32, - 9932u32, - 10396u32, - 10974u32, - 12150u32, - 12252u32, - 12832u32, - 13435u32, - 14110u32, - 14841u32, - 15742u32, - 16115u32, - 16511u32, - 17532u32, - 17700u32, - 18292u32, - 18886u32, - 19832u32, - 20350u32, - 21114u32, - 21290u32, - 22238u32, - 22514u32, - 23620u32, - 23734u32, - 24409u32, - 25466u32, - 25726u32, - 26237u32, - 26789u32, - 27397u32, - 28532u32, - 28629u32, - 29635u32, - 30033u32, - 30870u32, - 31058u32, - 31624u32, - 32817u32, - 33109u32, - 33931u32, - 34097u32, - 35005u32, - 35705u32, - 36368u32, - 37072u32, - 37690u32, - 37929u32, - 38832u32, - 39335u32, - 40093u32, - 40450u32, - 41023u32, - 41525u32, - 42446u32, - 42729u32, + 1914u32, + 3620u32, + 5958u32, + 8043u32, + 11486u32, + 12605u32, + 13959u32, + 15082u32, + 16582u32, + 20651u32, + 24028u32, + 25415u32, + 29637u32, + 30836u32, + 32203u32, + 32767u32, + 35216u32, + 38464u32, + 43766u32, + 43769u32, + 43771u32, + 43772u32, 43773u32, - 43777u32, + 43780u32, + 43775u32, + 43779u32, + 43776u32, + 43778u32, ], &[ - 713u32, - 762u32, - 2099u32, - 2671u32, - 3653u32, - 4181u32, - 4562u32, - 5602u32, - 6340u32, - 6970u32, - 8091u32, - 8557u32, - 9463u32, - 9932u32, - 10776u32, - 12150u32, - 12252u32, - 12968u32, - 14110u32, - 14547u32, - 15742u32, - 16115u32, - 16855u32, - 17532u32, - 18292u32, - 19096u32, - 19764u32, - 21050u32, - 21858u32, - 22238u32, - 22813u32, - 23620u32, - 24409u32, - 25716u32, - 25949u32, - 26607u32, - 27397u32, - 28532u32, - 29228u32, - 29659u32, - 31058u32, - 31333u32, - 32285u32, - 32897u32, - 33541u32, - 34421u32, - 35342u32, - 36085u32, - 36683u32, - 37674u32, - 38004u32, - 38828u32, - 40268u32, - 40978u32, - 41696u32, - 42494u32, - 43308u32, - 44041u32, - 44742u32, - 44965u32, - 46017u32, - 46391u32, - 47698u32, - 48266u32, - 48739u32, - 49689u32, - 50588u32, - 51062u32, - 52203u32, - 52612u32, - 53208u32, - 54714u32, - 54735u32, - ], - &[ - 713u32, - 934u32, - 2099u32, - 3653u32, - 4181u32, - 4662u32, - 6340u32, - 6613u32, - 8091u32, - 8557u32, - 9463u32, - 10343u32, - 11233u32, - 12150u32, - 13079u32, - 14110u32, - 15035u32, - 16116u32, - 16857u32, - 17893u32, - 18770u32, - 19764u32, - 20576u32, - 22238u32, - 22415u32, - 23621u32, - 24407u32, - 25400u32, - 26113u32, - 27397u32, - 28532u32, - 29635u32, - 30033u32, - 31058u32, - 32285u32, - 33541u32, - 33620u32, - 35342u32, - 36085u32, - 36451u32, - 37674u32, - 38602u32, - 39518u32, - 40268u32, - 41051u32, - 42429u32, - 43535u32, - 44367u32, - 44892u32, - 45804u32, - 47122u32, - 48002u32, - 49392u32, - 50318u32, - 50928u32, - 52164u32, - 52340u32, - 53468u32, - 54932u32, - 55545u32, - 56822u32, - 57098u32, - 58074u32, - 59615u32, - 60422u32, - 60828u32, - 61762u32, - 63040u32, - 64156u32, - 64718u32, - 65773u32, - 67098u32, - 67124u32, + 0u32, + 2529u32, + 6252u32, + 8043u32, + 10696u32, + 11443u32, + 13548u32, + 17828u32, + 20544u32, + 23636u32, + 27070u32, + 29637u32, + 31502u32, + 36703u32, + 37113u32, + 37740u32, + 40959u32, + 44210u32, + 47858u32, + 51490u32, + 54697u32, + 54730u32, + 54732u32, + 54733u32, + 54744u32, + 54734u32, + 54737u32, + 54742u32, + 54740u32, + 54743u32, + ], + &[ + 0u32, + 1914u32, + 6435u32, + 8961u32, + 12780u32, + 14982u32, + 20544u32, + 23636u32, + 26580u32, + 30734u32, + 32203u32, + 36453u32, + 37113u32, + 39898u32, + 42047u32, + 46059u32, + 49151u32, + 50269u32, + 51533u32, + 52518u32, + 53454u32, + 55098u32, + 55968u32, + 56847u32, + 57894u32, + 67163u32, + 67117u32, + 67164u32, + 67170u32, + 67133u32, + 67162u32, + 67155u32, ], ], ]; /// The relative errors for the switch hash birthday paradox. pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ [ - &[0.02f64, 0.13f64, 0.34f64, 0.65f64, 0.85f64], - &[0f64, 0f64, 0f64, 0f64, 0f64], - &[0f64, 0f64, 0f64, 0f64, 0f64], - ], - [ - &[0f64, 0f64, 0f64, 0f64, 0f64], - &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64], - &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64], - ], - [ + &[0f64, 0.02f64, 0.07f64, 0.13f64, 0.22f64, 0.34f64, 0.48f64, 0.65f64, 0.85f64], + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64], &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64], - &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0.01f64, 0.01f64], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - ], ], [ - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - ], - ], - [ - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0f64, - 0f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.05f64, - 0.05f64, - 0.06f64, - 0.05f64, - 0f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.07f64, - 0.08f64, - 0f64, - ], - ], - [ - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.02f64, - 0.03f64, - 0.04f64, - 0.05f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.08f64, - 0.09f64, - 0.11f64, - 0.12f64, - 0.13f64, - 0.14f64, - 0.15f64, - 0.8f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.02f64, - 0.03f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.09f64, - 0.11f64, - 0.12f64, - 0.14f64, - 0.16f64, - 0.18f64, - 0.19f64, - 0.21f64, - 0.23f64, - 1f64, - ], - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.02f64, - 0.04f64, - 0.06f64, - 0.08f64, - 0.11f64, - 0.13f64, - 0.15f64, - 0.18f64, - 0.21f64, - 0.23f64, - 0.26f64, - 0.29f64, - 0.32f64, - 0f64, - ], + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64], + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64], + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64], ], [ &[ @@ -2355,33 +982,6 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.02f64, - 0.05f64, - 0.08f64, - 0.11f64, - 0.14f64, - 0.18f64, - 0.22f64, - 0.25f64, - 0.29f64, - 0.33f64, - 0.36f64, - 0.4f64, - 0.44f64, - 0.49f64, - 0.54f64, - 0.67f64, ], &[ 0f64, @@ -2399,32 +999,8 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, 0.01f64, - 0.04f64, - 0.09f64, - 0.15f64, - 0.2f64, - 0.27f64, - 0.32f64, - 0.39f64, - 0.48f64, - 0.53f64, - 0.59f64, - 0.67f64, - 0.74f64, - 0.82f64, - 0.86f64, + 0.01f64, ], &[ 0f64, @@ -2439,60 +1015,15 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.18f64, - 0.62f64, - 1.6f64, - 2.43f64, - 3.93f64, - 4.65f64, - 5.82f64, - 6.9f64, - 8.33f64, - 8.91f64, - 10.2f64, - 11.37f64, - 12.83f64, - 14.57f64, - 16.05f64, - 14.94f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, ], ], [ &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, 0f64, 0f64, 0f64, @@ -2503,23 +1034,13 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0.01f64, - 0.09f64, - 0.18f64, - 0.27f64, - 0.4f64, - 0.53f64, - 0.68f64, - 0.81f64, - 0.95f64, - 1.06f64, - 1.27f64, - 1.39f64, - 1.49f64, - 1.68f64, - 1.9f64, - 2.01f64, - 2.19f64, - 3f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.02f64, ], &[ 0f64, @@ -2529,44 +1050,16 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, - 0.23f64, - 0.92f64, - 2.52f64, - 3.85f64, - 4.87f64, - 5.69f64, - 7.56f64, - 8.64f64, - 9.68f64, - 11.54f64, - 13.22f64, - 14.79f64, - 15.84f64, - 18.08f64, - 19.13f64, - 21.11f64, - 22f64, + 0.02f64, + 0.02f64, + 0.02f64, + 0.02f64, + 0.03f64, ], &[ 0f64, @@ -2575,100 +1068,93 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.02f64, + 0.02f64, + 0.02f64, + 0.03f64, + 0.03f64, + 0.04f64, + ], + ], + [ + &[0f64, 0f64, 0f64, 0f64, 0f64, 0.02f64, 0.04f64, 0.05f64, 0f64, 0f64], + &[ 0f64, 0f64, 0f64, 0f64, 0f64, + 0.02f64, + 0.04f64, + 0.06f64, + 0.07f64, + 0.05f64, 0f64, + ], + &[ 0f64, 0f64, 0f64, 0f64, 0f64, + 0.02f64, + 0.04f64, + 0.06f64, + 0.09f64, + 0.08f64, 0f64, + ], + ], + [ + &[ 0f64, 0f64, 0f64, 0f64, 0f64, + 0.03f64, + 0.07f64, + 0.11f64, + 0.15f64, + 0.16f64, + 0.8f64, + ], + &[0f64, 0f64, 0f64, 0f64, 0f64, 0.04f64, 0.08f64, 0.22f64, 0.23f64, 1f64], + &[ 0f64, 0f64, 0f64, 0f64, 0f64, + 0.07f64, + 0.15f64, + 0.32f64, + 0.33f64, + 0.32f64, 0f64, 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, ], ], [ + &[0f64, 0f64, 0f64, 0.56f64, 0.73f64, 0.29f64, 1f64], &[ 0f64, 0f64, 0f64, 0f64, 0f64, + 0.28f64, + 0.56f64, + 0.89f64, + 0.97f64, + 0.96f64, + 0.5f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.63f64, - 1.78f64, - 2.99f64, - 4.28f64, - 5.75f64, - 7.2f64, - 8.86f64, - 10.05f64, - 12.06f64, - 13.31f64, - 15.16f64, - 17.1f64, - 19.18f64, - 20.42f64, - 23.4f64, - 24.04f64, - 26.91f64, - 28.22f64, ], &[ 0f64, @@ -2680,48 +1166,31 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, + 6.49f64, + 16.03f64, + 16.42f64, + 15.91f64, + 17.3f64, + 17f64, + 18f64, + ], + ], + [ + &[ 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, + 0f64, + 0.01f64, + 0.01f64, + 2.16f64, + 2.31f64, + 2.18f64, + 3f64, + 4f64, ], &[ 0f64, @@ -2730,6 +1199,18 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, + 0.01f64, + 0.01f64, + 0.01f64, + 2.3f64, + 4.94f64, + 7.87f64, + 10.62f64, + 21.82f64, + 22f64, + 23.33f64, + ], + &[ 0f64, 0f64, 0f64, @@ -2739,8 +1220,6 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, @@ -2749,33 +1228,39 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.01f64, 0.02f64, 0.02f64, + ], + ], + [ + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, + 0.01f64, 0.02f64, 0.02f64, 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, 0.03f64, 0.03f64, 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.05f64, - 0.05f64, - 0.05f64, - 0.05f64, - 0.05f64, + 6.14f64, + 12.69f64, + 20.64f64, + 27.46f64, + 27.49f64, + 27.29f64, + 26.62f64, + 28f64, + 28.5f64, + 28f64, + 32.5f64, ], - ], - [ &[ 0f64, 0f64, @@ -2788,8 +1273,6 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, 0.01f64, 0.01f64, 0.01f64, @@ -2797,10 +1280,8 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.01f64, 0.01f64, 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, + 0.01f64, + 0.01f64, 0.02f64, 0.02f64, 0.03f64, @@ -2808,28 +1289,12 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.03f64, 0.03f64, 0.03f64, + 0.03f64, + 0.03f64, 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.05f64, 0.05f64, 0.05f64, 0.05f64, - 0.06f64, - 0.06f64, - 0.06f64, - 0.07f64, - 0.08f64, - 0.08f64, - 0.08f64, - 0.09f64, - 0.1f64, - 0.1f64, - 0.1f64, - 0.11f64, - 0.11f64, - 0.11f64, ], &[ 0f64, @@ -2841,15 +1306,13 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, - 0.02f64, + 0.01f64, 0.02f64, 0.02f64, 0.02f64, @@ -2864,29 +1327,12 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.05f64, 0.05f64, 0.05f64, - 0.05f64, + 0.06f64, 0.06f64, 0.07f64, - 0.07f64, - 0.08f64, - 0.08f64, - 0.09f64, - 0.1f64, - 0.1f64, - 0.1f64, - 0.11f64, - 0.11f64, - 0.12f64, - 0.12f64, - 0.13f64, - 0.14f64, - 0.15f64, - 0.15f64, - 0.16f64, - 0.17f64, - 0.17f64, - 0.17f64, ], + ], + [ &[ 0f64, 0f64, @@ -2895,9 +1341,6 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, @@ -2912,7 +1355,6 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.03f64, 0.04f64, 0.04f64, - 0.04f64, 0.05f64, 0.05f64, 0.06f64, @@ -2920,37 +1362,18 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.07f64, 0.07f64, 0.08f64, - 0.09f64, - 0.09f64, 0.1f64, 0.1f64, 0.11f64, 0.11f64, - 0.12f64, 0.13f64, - 0.14f64, - 0.15f64, - 0.16f64, - 0.16f64, - 0.17f64, - 0.18f64, - 0.19f64, - 0.2f64, - 0.21f64, - 0.22f64, - 0.23f64, - 0.23f64, - 0.24f64, ], - ], - [ &[ 0f64, 0f64, 0f64, 0f64, 0f64, - 0f64, 0.01f64, 0.01f64, 0.01f64, @@ -2958,50 +1381,27 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.02f64, 0.02f64, 0.02f64, - 0.02f64, 0.03f64, - 0.04f64, - 0.04f64, + 0.03f64, 0.04f64, 0.04f64, 0.05f64, 0.05f64, 0.06f64, 0.07f64, - 0.07f64, - 0.08f64, + 0.09f64, 0.09f64, 0.1f64, 0.1f64, - 0.11f64, + 0.12f64, 0.12f64, 0.13f64, - 0.14f64, + 0.13f64, 0.15f64, 0.15f64, - 0.16f64, + 0.17f64, 0.18f64, 0.19f64, - 0.2f64, - 0.21f64, - 0.22f64, - 0.23f64, - 0.25f64, - 0.26f64, - 0.27f64, - 0.29f64, - 0.3f64, - 0.32f64, - 0.33f64, - 0.34f64, - 0.36f64, - 0.37f64, - 0.39f64, - 0.41f64, - 0.42f64, - 0.45f64, - 0.46f64, - 0.48f64, ], &[ 0f64, @@ -3013,15 +1413,13 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.01f64, 0.01f64, 0.01f64, - 0.01f64, 0.02f64, 0.02f64, 0.03f64, - 0.03f64, - 0.03f64, 0.04f64, 0.04f64, 0.05f64, + 0.05f64, 0.06f64, 0.07f64, 0.08f64, @@ -3031,165 +1429,125 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.11f64, 0.12f64, 0.14f64, - 0.14f64, - 0.15f64, + 0.16f64, + 0.16f64, 0.17f64, - 0.18f64, 0.19f64, + 0.21f64, 0.22f64, - 0.23f64, - 0.24f64, - 0.26f64, - 0.27f64, - 0.29f64, - 0.3f64, - 0.31f64, - 0.33f64, - 0.35f64, - 0.37f64, - 0.4f64, - 0.41f64, - 0.43f64, - 0.45f64, - 0.47f64, - 0.5f64, - 0.53f64, - 0.54f64, - 0.57f64, - 0.6f64, - 0.63f64, - 0.65f64, - 0.68f64, - 0.7f64, + 0.25f64, + 0.25f64, ], + ], + [ &[ 0f64, 0f64, 0f64, - 0f64, 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.02f64, 0.02f64, - 0.03f64, - 0.03f64, 0.04f64, 0.04f64, 0.05f64, 0.06f64, 0.07f64, - 0.08f64, 0.09f64, 0.1f64, + 0.1f64, 0.12f64, 0.13f64, - 0.14f64, 0.15f64, 0.16f64, 0.19f64, 0.21f64, - 0.22f64, - 0.24f64, - 0.25f64, + 0.26f64, + 0.27f64, 0.28f64, 0.3f64, 0.31f64, - 0.33f64, - 0.36f64, + 0.34f64, + 0.34f64, 0.38f64, - 0.39f64, + 0.42f64, 0.44f64, - 0.45f64, - 0.46f64, + 0.48f64, 0.5f64, - 0.52f64, - 0.56f64, - 0.59f64, - 0.62f64, - 0.67f64, - 0.68f64, - 0.7f64, - 0.75f64, - 0.78f64, - 0.8f64, - 0.86f64, - 0.87f64, - 0.9f64, - 0.95f64, - 0.99f64, - 1.02f64, ], - ], - [ &[ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, + 0.01f64, + 0.01f64, + 0.02f64, 0.03f64, + 0.04f64, + 0.05f64, + 0.05f64, 0.06f64, - 0.11f64, - 0.16f64, + 0.08f64, + 0.09f64, + 0.12f64, + 0.14f64, + 0.17f64, + 0.19f64, 0.22f64, - 0.27f64, - 0.3f64, + 0.24f64, + 0.28f64, + 0.28f64, + 0.32f64, 0.34f64, - 0.41f64, + 0.38f64, 0.43f64, - 0.48f64, - 0.52f64, - 0.62f64, + 0.49f64, + 0.5f64, + 0.51f64, + 0.53f64, + 0.63f64, 0.63f64, - 0.74f64, - 0.69f64, + 0.68f64, + 0.71f64, ], &[ 0f64, 0f64, 0f64, + 0.01f64, + 0.02f64, + 0.03f64, + 0.05f64, + 0.06f64, + 0.07f64, + 0.08f64, + 0.09f64, + 0.13f64, + 0.14f64, + 0.17f64, + 0.19f64, + 0.24f64, + 0.26f64, + 0.27f64, + 0.33f64, + 0.37f64, + 0.42f64, + 0.48f64, + 0.49f64, + 0.55f64, + 0.57f64, + 0.62f64, + 0.66f64, + 0.71f64, + 0.76f64, + 0.82f64, + 0.89f64, + 0.94f64, + 1f64, + ], + ], + [ + &[ 0f64, 0f64, 0f64, @@ -3205,49 +1563,21 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.04f64, - 0.08f64, + 0.01f64, + 0.01f64, + 0.06f64, 0.16f64, - 0.23f64, - 0.3f64, + 0.33f64, 0.39f64, - 0.44f64, - 0.56f64, - 0.59f64, - 0.68f64, - 0.8f64, - 0.87f64, - 0.96f64, - 1.04f64, - 1.13f64, - 1.6f64, + 0.45f64, + 0.55f64, + 0.83f64, + 0.83f64, + 0.83f64, + 0.83f64, + 0.9f64, + 1.17f64, + 1f64, ], &[ 0f64, @@ -3263,57 +1593,18 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.14f64, 0.28f64, - 0.35f64, - 0.44f64, - 0.57f64, - 0.71f64, - 0.72f64, - 0.85f64, - 0.97f64, - 1.17f64, - 1.31f64, - 1.35f64, - 1.55f64, - 1.7f64, - 1.67f64, + 0.55f64, + 1.23f64, + 1.22f64, + 1.25f64, + 1.5f64, + 1f64, ], - ], - [ &[ 0f64, 0f64, @@ -3324,28 +1615,6 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, @@ -3354,33 +1623,16 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.07f64, - 0.16f64, - 0.36f64, 0.63f64, - 0.75f64, - 0.92f64, - 1.07f64, - 1.37f64, - 1.56f64, - 1.69f64, - 1.9f64, - 2.22f64, - 2.42f64, - 2.67f64, - 2.79f64, - 3.05f64, - 4.71f64, + 1.16f64, + 1.76f64, + 1.83f64, + 1.79f64, + 1f64, + 2f64, ], + ], + [ &[ 0f64, 0f64, @@ -3391,62 +1643,25 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, 0.02f64, 0.02f64, 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.17f64, - 0.52f64, - 0.78f64, - 0.91f64, - 1.3f64, - 1.43f64, - 1.86f64, - 1.92f64, - 2.35f64, - 2.8f64, - 2.87f64, + 0.48f64, + 1.24f64, + 1.67f64, + 2.36f64, + 2.83f64, + 3.18f64, 3.22f64, - 3.69f64, - 3.89f64, - 4.22f64, - 4.52f64, - 5f64, + 3.45f64, + 2.67f64, + 3.2f64, + 3f64, ], &[ 0f64, @@ -3457,66 +1672,30 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, 0.02f64, 0.03f64, 0.03f64, 0.03f64, 0.03f64, - 0.03f64, - 0.03f64, - 0.28f64, - 0.52f64, - 1.2f64, - 1.52f64, - 1.82f64, - 2.32f64, - 2.55f64, - 3.17f64, - 3.58f64, - 3.76f64, - 4.43f64, - 5.13f64, - 5.52f64, - 5.66f64, - 6.31f64, - 6.66f64, - 4.5f64, + 0.57f64, + 1.19f64, + 1.59f64, + 2.15f64, + 2.94f64, + 3.65f64, + 4.54f64, + 4.89f64, + 4.84f64, + 4.83f64, + 4.88f64, + 4.63f64, + 4.2f64, + 4f64, ], - ], - [ &[ 0f64, 0f64, @@ -3525,437 +1704,226 @@ pub(super) const SWITCH_HASH_BIRTHDAY_PARADOX_ERRORS: [[&[f64]; 3]; 15] = [ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, 0.02f64, 0.02f64, 0.02f64, - 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, 0.03f64, 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, 0.04f64, 0.04f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.05f64, - 0.05f64, - 0.06f64, - 0.06f64, - 0.06f64, - 0.06f64, - 0.07f64, - 0.5f64, - 0.96f64, - 1.34f64, - 2.03f64, - 2.7f64, - 3.59f64, - 4.15f64, - 5.35f64, - 5.47f64, - 6.71f64, - 6.96f64, - 7.74f64, - 8.42f64, - 9.69f64, - 10.72f64, - 11.44f64, - 11.84f64, - 13.22f64, + 0.91f64, + 1.51f64, + 2.36f64, + 3.15f64, + 4.47f64, + 5.72f64, + 7.02f64, + 7.12f64, + 7.05f64, + 6.62f64, + 3.67f64, + 6.47f64, + 4f64, + 5f64, ], + ], + [ &[ 0f64, 0f64, 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.02f64, 0.02f64, 0.02f64, 0.02f64, 0.02f64, - 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, 0.04f64, 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.04f64, - 0.05f64, - 0.05f64, 0.06f64, 0.06f64, - 0.06f64, - 0.07f64, - 0.07f64, - 0.08f64, 0.08f64, - 0.08f64, - 0.09f64, - 0.09f64, - 0.09f64, - 0.09f64, - 0.1f64, - 0.1f64, - 0.12f64, - 0.21f64, - 1.68f64, - 2.47f64, - 4.06f64, - 4.91f64, - 6.2f64, - 6.48f64, - 7.76f64, - 8.87f64, - 10.4f64, - 11.81f64, - 12.65f64, - 14.38f64, - 14.79f64, - 16.24f64, - 17.33f64, - 19.04f64, - 22f64, + 1.84f64, + 2.79f64, + 4.11f64, + 4.95f64, + 9.37f64, + 12.52f64, + 12.51f64, + 12.21f64, + 12.46f64, + 13.36f64, + 13f64, + 13f64, ], &[ 0f64, 0f64, 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, 0.02f64, 0.03f64, 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, 0.04f64, 0.05f64, 0.05f64, 0.06f64, - 0.06f64, - 0.07f64, - 0.07f64, - 0.08f64, 0.08f64, 0.09f64, - 0.09f64, - 0.09f64, - 0.09f64, - 0.1f64, - 0.1f64, 0.11f64, 0.11f64, - 0.12f64, - 0.13f64, - 0.14f64, - 0.15f64, - 0.15f64, - 0.17f64, - 1.17f64, - 2.5f64, - 3.54f64, - 5.47f64, - 6.93f64, - 8.27f64, - 9.37f64, - 11.45f64, - 12.46f64, - 13.8f64, - 16.83f64, - 17.51f64, - 20.42f64, - 21.72f64, - 23.97f64, - 24.67f64, - 27.32f64, - 28.5f64, + 6.66f64, + 19.42f64, + 19.48f64, + 18.88f64, + 18.9f64, + 20.44f64, + 21.36f64, + 20f64, + 21.2f64, + 20f64, + 19f64, ], - ], - [ &[ 0f64, 0f64, 0f64, 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, 0.01f64, 0.01f64, - 0.01f64, - 0.02f64, - 0.02f64, - 0.02f64, 0.02f64, 0.03f64, - 0.03f64, - 0.03f64, - 0.03f64, - 0.04f64, - 0.04f64, - 0.04f64, 0.04f64, 0.05f64, 0.06f64, - 0.07f64, - 0.07f64, - 0.07f64, - 0.08f64, - 0.08f64, - 0.09f64, 0.09f64, 0.1f64, - 0.1f64, - 0.12f64, + 0.11f64, 0.12f64, - 0.13f64, - 0.13f64, - 0.15f64, - 0.15f64, - 0.16f64, + 0.14f64, 0.17f64, - 0.18f64, - 0.19f64, - 0.2f64, - 0.21f64, - 0.21f64, - 0.22f64, - 0.23f64, - 0.23f64, - 0.24f64, - 0.25f64, - 0.26f64, - 0.47f64, - 1.6f64, - 4.88f64, - 5.52f64, - 9.08f64, - 12.02f64, - 14.76f64, - 17.65f64, - 20.31f64, - 21.4f64, - 25.46f64, - 27.77f64, - 31.31f64, - 32.96f64, - 35.58f64, - 37.97f64, - 42.61f64, - 44.08f64, - 49.4f64, - 52f64, + 1.83f64, + 5.31f64, + 8.35f64, + 11.43f64, + 19.19f64, + 28.16f64, + 28.17f64, + 27.74f64, + 28.08f64, + 30.95f64, + 30.72f64, + 29.2f64, + 31f64, + 33.5f64, + 34f64, ], + ], + [ &[ - 0f64, - 0f64, 0f64, 0f64, 0f64, 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.02f64, 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, - 0.03f64, 0.04f64, 0.04f64, - 0.04f64, - 0.06f64, + 0.05f64, 0.06f64, - 0.07f64, 0.08f64, - 0.08f64, - 0.09f64, - 0.09f64, - 0.1f64, - 0.1f64, 0.12f64, - 0.13f64, - 0.13f64, - 0.14f64, - 0.15f64, - 0.17f64, + 0.16f64, 0.18f64, - 0.19f64, - 0.2f64, - 0.21f64, - 0.22f64, - 0.23f64, - 0.23f64, - 0.25f64, + 0.24f64, 0.26f64, 0.28f64, 0.3f64, - 0.3f64, - 0.32f64, - 0.34f64, - 0.36f64, - 0.37f64, - 0.39f64, - 0.4f64, - 0.42f64, - 0.44f64, - 0.54f64, - 4.02f64, - 8.05f64, - 12.14f64, - 15.99f64, - 19.64f64, - 20.79f64, - 26.39f64, - 28.45f64, - 35.64f64, - 38.86f64, - 41.43f64, - 46.89f64, - 52.13f64, - 55f64, - 61.89f64, - 64.49f64, - 68.23f64, - 77.91f64, - 82.25f64, + 9.96f64, + 23.91f64, + 49.09f64, + 49.64f64, + 48.69f64, + 49.46f64, + 48.61f64, + 45f64, + 50.38f64, + 46.5f64, + 49.57f64, + 51.25f64, ], &[ 0f64, 0f64, - 0f64, - 0f64, - 0.01f64, - 0.01f64, - 0.01f64, - 0.01f64, 0.01f64, 0.02f64, - 0.02f64, - 0.03f64, - 0.03f64, 0.03f64, 0.04f64, 0.05f64, - 0.05f64, - 0.06f64, - 0.07f64, - 0.08f64, - 0.08f64, 0.09f64, - 0.09f64, - 0.12f64, 0.12f64, - 0.14f64, - 0.15f64, 0.16f64, - 0.17f64, - 0.19f64, 0.2f64, - 0.21f64, - 0.21f64, - 0.23f64, + 0.24f64, + 0.27f64, + 0.38f64, + 0.38f64, + 0.4f64, + 0.47f64, + 16.66f64, + 36.32f64, + 57.45f64, + 77.51f64, + 77.34f64, + 76.86f64, + 75.93f64, + 66f64, + 76.11f64, + 73.7f64, + 71.33f64, + 73.67f64, + 72.6f64, + ], + &[ + 0f64, + 0f64, + 0.01f64, + 0.02f64, + 0.04f64, + 0.06f64, + 0.11f64, + 0.15f64, + 0.18f64, + 0.24f64, 0.26f64, - 0.28f64, - 0.28f64, - 0.32f64, - 0.33f64, 0.35f64, - 0.37f64, - 0.39f64, - 0.4f64, - 0.41f64, + 0.36f64, 0.42f64, - 0.45f64, - 0.48f64, - 0.5f64, - 0.51f64, - 0.54f64, - 0.58f64, - 0.6f64, - 15.88f64, - 75.96f64, - 116.35f64, - 199.76f64, - 211.8f64, - 289.43f64, - 393.1f64, - 437.35f64, - 531.3f64, - 551.96f64, - 626.66f64, - 747.55f64, - 811.48f64, - 843.75f64, - 919.47f64, - 1025.57f64, - 1119.92f64, - 1167.66f64, - 1259.8f64, - 1378.15f64, - 1377.5f64, + 0.46f64, + 0.57f64, + 0.64f64, + 72.82f64, + 156.69f64, + 223.76f64, + 288.59f64, + 405.73f64, + 469.31f64, + 534.68f64, + 613.94f64, + 1336f64, + 1382.93f64, + 1336f64, + 1336f64, + 1374.59f64, + 1355f64, + 1381f64, ], ], ];