diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1e72eea..70c7770 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,6 +27,7 @@ repos: rev: 23.3.0 hooks: - id: black + exclude: novelai_api/ImagePreset_CostTables.py args: [ "--safe" # don't change AST ] diff --git a/novelai_api/ImagePreset.py b/novelai_api/ImagePreset.py index 5284cf0..e737757 100644 --- a/novelai_api/ImagePreset.py +++ b/novelai_api/ImagePreset.py @@ -6,6 +6,7 @@ import random from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union +from novelai_api.ImagePreset_CostTables import DDIM_COSTS, NAI_COSTS, SMEA_COSTS, SMEA_DYN_COSTS from novelai_api.python_utils import NoneType, expand_kwargs @@ -170,8 +171,15 @@ class ImagePreset: UCPreset.Preset_Heavy: "nsfw, lowres, bad, text, error, missing, extra, fewer, cropped, jpeg artifacts, " "worst quality, bad quality, watermark, displeasing, unfinished, chromatic aberration, scan, " "scan artifacts", - UCPreset.Preset_Light: "nsfw, lowres, jpeg artifacts, worst quality, watermark, blurry, " - "very displeasing", + UCPreset.Preset_Light: "nsfw, lowres, jpeg artifacts, worst quality, watermark, blurry, very displeasing", + UCPreset.Preset_None: "lowres", + }, + # v3 + ImageModel.Anime_v3: { + UCPreset.Preset_Heavy: "nsfw, lowres, {bad}, error, fewer, extra, missing, worst quality, jpeg artifacts, " + "bad quality, watermark, unfinished, displeasing, chromatic aberration, signature, extra digits, " + "artistic error, username, scan, [abstract]", + UCPreset.Preset_Light: "nsfw, lowres, jpeg artifacts, worst quality, watermark, blurry, very displeasing", UCPreset.Preset_None: "lowres", }, } @@ -180,8 +188,7 @@ class ImagePreset: _UC_Presets[ImageModel.Inainting_Anime_Curated] = _UC_Presets[ImageModel.Anime_Curated] _UC_Presets[ImageModel.Inpainting_Anime_Full] = _UC_Presets[ImageModel.Anime_Full] _UC_Presets[ImageModel.Inpainting_Furry] = _UC_Presets[ImageModel.Furry] - _UC_Presets[ImageModel.Anime_v3] = _UC_Presets[ImageModel.Anime_v2] - _UC_Presets[ImageModel.Inpainting_Anime_v3] = _UC_Presets[ImageModel.Anime_v2] + _UC_Presets[ImageModel.Inpainting_Anime_v3] = _UC_Presets[ImageModel.Anime_v3] _CONTROLNET_MODELS = { ControlNetModel.Palette_Swap: "hed", @@ -435,32 +442,76 @@ def get_max_n_samples(self): if w * h <= 1024 * 1536: return 2 - return 1 + if w * h <= 1024 * 3072: + return 1 - def calculate_cost(self, is_opus: bool, version: int = 1): + return 0 + + def calculate_cost( + self, is_opus: bool, version: int = 1, generation_type: ImageGenerationType = ImageGenerationType.NORMAL + ): """ Calculate the cost (in Anlas) of generating with the current configuration :param is_opus: Is the subscription tier Opus ? Account for free generations if so - :param version: Version of the model to use (1 or 2) + :param version: Version of the model to use (1, 2, 3) + :param generation_type: Type of generation to do (img2img, txt2img, etc.) """ + steps: int = self._settings["steps"] - n_samples: int = self._settings["n_samples"] + n_samples: int = max(1, self._settings["n_samples"]) + smea = self._settings["smea"] + smea_dyn = self._settings["smea_dyn"] + sampler: ImageSampler = self._settings["sampler"] + + uncond_scale: float = self._settings.get("uncond_scale", 1.0) + strength: float = self._settings.get("strength", 1.0) if generation_type == ImageGenerationType.IMG2IMG else 1.0 resolution: Union[ImageResolution, Tuple[int, int]] = self._settings["resolution"] if isinstance(resolution, ImageResolution): resolution: Tuple[int, int] = resolution.value w, h = resolution + r = w * h + if r < 65536: + r = 65536 - opus_discount = is_opus & steps <= 28 and ( - (w * h <= 640 * 640 and version == 1) or (w * h <= 1024 * 1024 and version == 2) - ) - - r = w * h / 1024 / 1024 - per_step = (15.266497014243718 * math.exp(r * 0.6326248927474729) - 15.225164493059737) / 28 - per_sample = max(math.ceil(per_step * steps), 2) - + if version == 3: + smea_factor = 1.0 if not smea else 1.2 if not smea_dyn else 1.4 + per_sample = math.ceil(2951823174884865e-21 * r + 5.753298233447344e-7 * r * steps) * smea_factor + else: + if r <= 1024 * 1024 and sampler in ( + ImageSampler.plms, + ImageSampler.ddim, + ImageSampler.k_euler, + ImageSampler.k_euler_ancestral, + ImageSampler.k_lms, + ): + per_sample = ( + (15.266497014243718 * math.exp(r / 1024 / 1024 * 0.6326248927474729) - 15.225164493059737) + * steps + / 28 + ) + else: + index = math.ceil(w / 64) * math.ceil(h / 64) - 1 + + if sampler is ImageSampler.nai_smea_dyn or (smea and smea_dyn): + per_step, fixed = SMEA_DYN_COSTS[index] + elif sampler is ImageSampler.nai_smea or smea: + per_step, fixed = SMEA_COSTS[index] + elif sampler is ImageSampler.ddim: + per_step, fixed = DDIM_COSTS[index] + else: + per_step, fixed = NAI_COSTS[index] + + per_sample = per_step * steps + fixed + + per_sample = max(math.ceil(per_sample * strength), 2) + + if version != 1 and uncond_scale != 1.0: + per_sample = math.ceil(per_sample * uncond_scale) + + opus_discount = is_opus and steps <= 28 and (r <= 640 * 640 if version == 1 else r <= 1024 * 1024) return per_sample * (n_samples - int(opus_discount)) @classmethod diff --git a/novelai_api/ImagePreset_CostTables.py b/novelai_api/ImagePreset_CostTables.py new file mode 100644 index 0000000..018f9dd --- /dev/null +++ b/novelai_api/ImagePreset_CostTables.py @@ -0,0 +1,451 @@ +SMEA_DYN_COSTS = [ + (0.111, 0.306), (0.11, 0.435), (0.111, 0.418), (0.113, 0.372), (0.113, 0.43), (0.113, 0.354), (0.113, 0.454), + (0.112, 0.354), (0.11, 0.431), (0.114, 0.428), (0.109, 0.527), (0.116, 0.379), (0.112, 0.523), (0.113, 0.479), + (0.113, 0.363), (0.112, 0.341), (0.108, 0.487), (0.107, 0.472), (0.111, 0.484), (0.112, 0.411), (0.108, 0.417), + (0.107, 0.521), (0.109, 0.445), (0.111, 0.422), (0.109, 0.49), (0.106, 0.508), (0.109, 0.443), (0.112, 0.436), + (0.107, 0.514), (0.106, 0.449), (0.107, 0.512), (0.108, 0.476), (0.109, 0.453), (0.108, 0.511), (0.109, 0.472), + (0.129, 0.197), (0.112, 0.51), (0.11, 0.543), (0.112, 0.496), (0.117, 0.407), (0.112, 0.535), (0.112, 0.48), + (0.114, 0.556), (0.114, 0.559), (0.117, 0.466), (0.117, 0.508), (0.118, 0.543), (0.118, 0.489), (0.119, 0.452), + (0.116, 0.527), (0.12, 0.574), (0.123, 0.511), (0.123, 0.529), (0.121, 0.511), (0.121, 0.517), (0.121, 0.498), + (0.128, 0.566), (0.127, 0.604), (0.128, 0.586), (0.128, 0.488), (0.131, 0.604), (0.134, 0.602), (0.13, 0.499), + (0.131, 0.521), (0.142, 0.561), (0.141, 0.532), (0.147, 0.544), (0.152, 0.614), (0.156, 0.59), (0.146, 0.532), + (0.154, 0.65), (0.15, 0.556), (0.158, 0.645), (0.16, 0.648), (0.154, 0.619), (0.165, 0.675), (0.154, 0.566), + (0.156, 0.553), (0.165, 0.676), (0.158, 0.547), (0.158, 0.569), (0.178, 0.698), (0.178, 0.677), (0.162, 0.565), + (0.171, 0.624), (0.187, 0.729), (0.191, 0.747), (0.17, 0.62), (0.191, 0.751), (0.17, 0.61), (0.172, 0.626), + (0.198, 0.736), (0.199, 0.771), (0.2, 0.751), (0.189, 0.681), (0.181, 0.606), (0.206, 0.777), (0.188, 0.635), + (0.189, 0.617), (0.19, 0.648), (0.214, 0.803), (0.194, 0.644), (0.218, 0.774), (0.201, 0.651), (0.199, 0.659), + (0.229, 0.804), (0.225, 0.835), (0.201, 0.665), (0.23, 0.839), (0.206, 0.677), (0.237, 0.854), (0.213, 0.685), + (0.24, 0.878), (0.215, 0.688), (0.234, 0.783), (0.251, 0.89), (0.218, 0.684), (0.253, 0.879), (0.223, 0.765), + (0.222, 0.683), (0.213, 0.667), (0.257, 0.918), (0.264, 0.931), (0.267, 0.926), (0.249, 0.859), (0.231, 0.741), + (0.267, 0.95), (0.246, 0.788), (0.285, 0.964), (0.246, 0.738), (0.282, 0.957), (0.235, 0.655), (0.263, 0.784), + (0.29, 0.964), (0.255, 0.767), (0.271, 0.854), (0.299, 1.002), (0.264, 0.776), (0.303, 1.003), (0.273, 0.841), + (0.314, 1.039), (0.313, 1.037), (0.259, 0.712), (0.26, 0.711), (0.304, 0.95), (0.322, 1.069), (0.288, 0.888), + (0.33, 1.088), (0.329, 1.072), (0.291, 0.887), (0.331, 1.098), (0.301, 0.898), (0.299, 0.886), (0.277, 0.77), + (0.324, 1.02), (0.278, 0.749), (0.344, 1.113), (0.348, 1.133), (0.357, 1.17), (0.309, 0.908), (0.316, 0.944), + (0.313, 0.914), (0.363, 1.168), (0.367, 1.195), (0.296, 0.8), (0.371, 1.211), (0.373, 1.216), (0.299, 0.797), + (0.306, 0.809), (0.332, 0.967), (0.336, 0.943), (0.395, 1.257), (0.396, 1.259), (0.343, 0.977), (0.347, 0.988), + (0.317, 0.831), (0.409, 1.323), (0.409, 1.313), (0.413, 1.308), (0.326, 0.851), (0.417, 1.315), (0.331, 0.867), + (0.417, 1.332), (0.368, 1.067), (0.397, 1.184), (0.367, 1.037), (0.341, 0.892), (0.433, 1.381), (0.369, 1.029), + (0.377, 1.05), (0.44, 1.389), (0.346, 0.873), (0.451, 1.402), (0.449, 1.393), (0.359, 0.901), (0.359, 0.884), + (0.46, 1.425), (0.366, 0.922), (0.464, 1.443), (0.406, 1.115), (0.47, 1.44), (0.475, 1.47), (0.42, 1.152), + (0.382, 0.927), (0.452, 1.301), (0.483, 1.485), (0.418, 1.121), (0.391, 0.95), (0.395, 0.967), (0.389, 0.956), + (0.499, 1.533), (0.507, 1.559), (0.504, 1.547), (0.509, 1.551), (0.475, 1.391), (0.405, 0.979), (0.45, 1.214), + (0.518, 1.589), (0.523, 1.608), (0.413, 1.007), (0.421, 1.017), (0.454, 1.182), (0.533, 1.628), (0.42, 1.014), + (0.432, 1.036), (0.54, 1.639), (0.545, 1.656), (0.432, 1.014), (0.55, 1.661), (0.477, 1.27), (0.445, 1.07), + (0.492, 1.319), (0.57, 1.706), (0.446, 1.05), (0.53, 1.518), (0.572, 1.733), (0.574, 1.742), (0.46, 1.052), + (0.58, 1.74), (0.454, 1.061), (0.594, 1.781), (0.47, 1.109), (0.505, 1.273), (0.593, 1.809), (0.518, 1.359), + (0.514, 1.306), (0.481, 1.134), (0.528, 1.379), (0.615, 1.841), (0.528, 1.35), (0.623, 1.869), (0.481, 1.106), + (0.497, 1.165), (0.629, 1.88), (0.501, 1.185), (0.482, 1.304), (0.683, 1.907), (0.586, 1.376), (0.594, 1.422), + (0.548, 1.181), (0.596, 1.398), (0.698, 1.936), (0.701, 1.943), (0.554, 1.169), (0.671, 1.714), (0.571, 1.199), + (0.724, 2), (0.724, 1.995), (0.729, 2.001), (0.582, 1.227), (0.733, 1.999), (0.592, 1.234), (0.594, 1.24), + (0.741, 2.022), (0.598, 1.236), (0.597, 1.239), (0.752, 2.051), (0.79, 2.229), (0.763, 2.128), (0.719, 1.83), + (0.805, 2.292), (0.797, 2.251), (0.811, 2.303), (0.815, 2.348), (0.743, 1.887), (0.741, 1.866), (0.812, 2.267), + (0.753, 1.898), (0.758, 1.901), (0.801, 2.2), (0.868, 2.505), (0.865, 2.473), (0.874, 2.536), (0.768, 1.942), + (0.886, 2.589), (0.833, 2.349), (0.784, 1.984), (0.899, 2.57), (0.786, 1.946), (0.787, 1.972), (0.87, 2.411), + (0.912, 2.637), (0.921, 2.639), (0.807, 2.022), (0.925, 2.675), (0.812, 2.058), (0.931, 2.702), (0.822, 2.049), + (0.941, 2.715), (0.871, 2.322), (0.944, 2.726), (0.831, 2.058), (0.956, 2.744), (0.956, 2.769), (0.84, 2.142), + (0.962, 2.798), (0.968, 2.8), (0.944, 2.663), (0.861, 2.132), (0.856, 2.13), (0.991, 2.843), (0.871, 2.128), + (0.87, 2.164), (0.871, 2.202), (0.886, 2.204), (1.004, 2.885), (1.01, 2.918), (0.948, 2.614), (0.971, 2.691), + (0.893, 2.232), (1.026, 2.924), (1.023, 2.954), (0.97, 2.642), (1.037, 2.961), (1.037, 3.001), (0.917, 2.299), + (1.055, 2.992), (0.935, 2.334), (1.064, 3.035), (0.934, 2.335), (0.956, 2.33), (0.955, 2.318), (1.04, 2.838), + (1.032, 2.83), (0.969, 2.323), (1.101, 3.11), (1.102, 3.115), (0.982, 2.325), (1.111, 3.127), (0.984, 2.38), + (0.988, 2.464), (0.987, 2.371), (1.133, 3.179), (1.099, 3.002), (1.133, 3.209), (1.133, 3.173), (1.014, 2.454), + (1.149, 3.202), (1.153, 3.253), (1.021, 2.464), (1.033, 2.44), (1.166, 3.231), (1.041, 2.513), (1.039, 2.53), + (1.176, 3.319), (1.145, 3.129), (1.184, 3.314), (1.048, 2.488), (1.132, 3.091), (1.141, 3.038), (1.159, 3.125), + (1.073, 2.55), (1.213, 3.385), (1.075, 2.572), (1.085, 2.623), (1.165, 3.179), (1.097, 2.629), (1.092, 2.656), + (1.238, 3.464), (1.085, 2.954), (1.251, 3.491), (1.254, 3.49), (1.257, 3.517), (1.112, 2.647), (1.132, 2.668), + (1.281, 3.538), (1.209, 3.244), (1.28, 3.592), (1.295, 3.578), (1.144, 2.761), (1.15, 2.694), (1.153, 2.729), + (1.318, 3.674), (1.32, 3.655), (1.319, 3.681), (1.168, 2.76), (1.335, 3.672), (1.337, 3.656), (1.18, 2.797), + (1.175, 2.804), (1.362, 3.73), (1.326, 3.533), (1.218, 2.824), (1.363, 3.758), (1.221, 2.896), (1.226, 2.853), + (1.228, 2.886), (1.228, 2.837), (1.396, 3.805), (1.32, 3.39), (1.402, 3.817), (1.393, 3.833), (1.354, 3.605), + (1.248, 2.917), (1.409, 3.868), (1.267, 2.919), (1.424, 3.894), (1.261, 2.923), (1.432, 3.882), (1.264, 2.968), + (1.441, 3.918), (1.44, 3.931), (1.366, 3.615), (1.38, 3.653), (1.299, 2.98), (1.425, 3.795), (1.409, 3.75), + (1.471, 4.045), (1.318, 3.039), (1.402, 3.606), (1.485, 4.063), (1.331, 3.028), (1.501, 4.092), (1.338, 3.036), + (1.343, 3.067), (1.507, 4.124), (1.345, 3.039), (1.483, 3.918), (1.527, 4.152), (1.346, 3.112), (1.36, 3.171), + (1.368, 3.141), (1.55, 4.212), (1.379, 3.133), (1.56, 4.245), (1.559, 4.244), (1.566, 4.291), (1.402, 3.164), + (1.587, 4.309), (1.408, 3.189), (1.414, 3.239), (1.589, 4.358), (1.604, 4.36), (1.609, 4.348), (1.43, 3.269), + (1.425, 3.207), (1.628, 4.396), (1.63, 4.4), (1.447, 3.327), (1.441, 3.219), (1.649, 4.449), (1.452, 3.285), + (1.658, 4.459), (1.471, 3.284), (1.479, 3.324), (1.674, 4.467), (1.676, 4.51), (1.486, 3.364), (1.606, 4.764), + (1.597, 4.02), (1.693, 4.535), (1.612, 4.215), (1.515, 3.423), (1.667, 4.318), (1.521, 3.399), (1.521, 3.474), + (1.623, 4.191), (1.733, 4.607), (1.734, 4.651), (1.531, 3.446), (1.552, 3.543), (1.75, 4.65), (1.551, 3.478), + (1.546, 3.637), (1.762, 4.737), (1.561, 3.575), (1.773, 4.753), (1.685, 4.404), (1.781, 4.756), (1.591, 3.562), + (1.799, 4.783), (1.597, 3.54), (1.604, 3.6), (1.6, 3.578), (1.607, 3.605), (1.606, 3.61), (1.754, 4.551), + (1.785, 4.571), (1.84, 4.883), (1.624, 3.622), (1.843, 4.9), (1.859, 4.911), (1.863, 4.939), (1.639, 3.688), + (1.874, 5.012), (1.658, 3.621), (1.671, 3.793), (1.879, 5.02), (1.903, 5.026), (1.682, 3.809), (1.829, 4.66), + (1.684, 3.748), (1.721, 3.772), (1.95, 5.08), (1.949, 5.129), (1.733, 3.787), (1.743, 3.827), (1.745, 3.838), + (1.97, 5.128), (1.737, 3.815), (1.996, 5.188), (1.762, 3.871), (2.007, 5.205), (1.988, 5.194), (1.778, 3.871), + (2.019, 5.262), (1.786, 3.884), (1.779, 3.806), (1.802, 3.796), (1.923, 4.692), (1.926, 4.81), (1.803, 3.918), + (1.828, 3.995), (2.006, 5.021), (2.061, 5.359), (1.963, 4.943), (2.077, 5.374), (2.1, 5.418), (1.857, 4.081), + (1.848, 4.056), (2.117, 5.45), (2.119, 5.443), (2.115, 5.437), (1.874, 4.034), (2.127, 5.496), (1.884, 4.089), + (2.148, 5.513), (2.13, 5.525), (2.025, 5.058), (1.908, 4.028), (1.917, 4.087), (1.91, 4.044), (2.092, 5.167), + (2.192, 5.611), (1.943, 4.217), (2.174, 5.621), (2.208, 5.649), (1.952, 4.204), (1.96, 4.216), (1.945, 4.196), + (1.977, 4.175), (2.238, 5.716), (2.25, 5.72), (1.987, 4.229), (2.245, 5.776), (2.262, 5.781), (1.993, 4.339), + (2.145, 5.343), (2.287, 5.833), (2.011, 4.342), (2.299, 5.88), (2.016, 4.254), (2.302, 5.883), (2.038, 4.365), + (2.044, 4.218), (2.025, 4.749), (2.344, 5.967), (2.06, 4.369), (2.344, 5.997), (2.062, 4.331), (2.258, 5.517), + (2.291, 5.699), (2.088, 4.445), (2.239, 5.529), (2.099, 4.509), (2.397, 6.108), (2.405, 6.118), (2.102, 4.488), + (2.121, 4.421), (2.259, 5.386), (2.416, 6.188), (2.129, 4.478), (2.453, 6.217), (2.141, 4.509), (2.155, 4.494), + (2.435, 6.232), (2.457, 6.268), (2.165, 4.434), (2.483, 6.334), (2.168, 4.501), (2.504, 6.358), (2.189, 4.601), + (2.324, 6.118), (2.489, 6.375), (2.211, 4.638), (2.441, 6.031), (2.532, 6.484), (2.212, 4.612), (2.235, 4.653), + (2.373, 5.661), (2.246, 4.77), (2.24, 4.726), (2.582, 6.557), (2.58, 6.542), (2.264, 4.754), (2.257, 4.696), + (2.606, 6.581), (2.523, 6.197), (2.615, 6.62), (2.278, 4.699), (2.303, 4.759), (2.632, 6.658), (2.516, 6.092), + (2.306, 4.743), (2.334, 4.787), (2.655, 6.719), (2.33, 4.796), (2.646, 6.725), (2.352, 4.868), (2.346, 4.97), + (2.691, 6.781), (2.526, 6.168), (2.699, 6.816), (2.714, 6.822), (2.706, 6.873), (2.387, 4.882), (2.4, 5.025), + (2.4, 4.852), (2.542, 6.145), (2.394, 4.865), (2.767, 6.949), (2.679, 6.473), (2.782, 6.956), (2.435, 4.908), + (2.446, 5.046), (2.443, 5.011), (2.801, 7.054), (2.449, 5.024), (2.47, 5.116), (2.458, 5.442), (2.472, 5.048), + (2.809, 7.077), (2.846, 7.22), (2.758, 6.672), (2.839, 7.162), (2.498, 5.084), (2.667, 6.374), (2.526, 5.18), + (2.879, 7.245), (2.523, 5.187), (2.895, 7.242), (2.902, 7.246), (2.544, 5.231), (2.734, 6.496), (2.56, 5.137), + (2.569, 5.252), (2.573, 5.081), (2.915, 7.321), (2.939, 7.324), (2.763, 6.436), (2.594, 5.369), (2.591, 5.223), + (2.995, 7.462), (2.999, 7.435), (2.63, 5.295), (2.628, 5.303), (3.016, 7.503), (2.93, 6.995), (2.882, 6.891), + (2.643, 5.344), (3.039, 7.52), (2.669, 5.267), (3.058, 7.585), (2.68, 5.409), (3.056, 7.647), (2.699, 5.505), + (3.073, 7.62), (2.703, 5.415), (2.723, 5.52), (2.721, 5.469), (3.113, 7.712), (3.093, 7.713), (2.742, 5.503), + (3.141, 7.738), (3.126, 7.774), (2.756, 5.446), (2.766, 5.538), (3.169, 7.831), (3.177, 7.809), (2.78, 5.515), + (3.187, 7.861), (2.784, 5.665), (2.799, 5.578), (2.798, 5.508), (2.822, 5.666), (3.221, 7.923), (3.074, 7.254), + (2.842, 5.633), (3.242, 8.028), (3.036, 6.988), (3.03, 7.174), (3.074, 7.279), (2.873, 5.565), (2.866, 5.806), + (2.883, 5.815), (3.266, 8.1), (3.307, 8.116), (3.313, 8.146), (3.311, 8.162), (2.898, 5.82), (3.177, 7.536), + (2.918, 5.764), (3.347, 8.175), (3.325, 8.21), (2.948, 5.749), (2.942, 5.751), (3.364, 8.307), (2.946, 5.892), + (2.954, 6.446), (3.178, 7.245), (2.982, 5.907), (2.991, 5.9), (3.427, 8.384), (3.431, 8.397), (2.998, 5.937), + (3.001, 5.842), (3.029, 6.077), (3.03, 5.989), (3.465, 8.516), (3.028, 5.981), (3.044, 6.03), (3.056, 6.062), + (3.491, 8.6), (3.055, 5.913), (3.498, 8.589), (3.523, 8.564), (3.274, 8.097), (3.086, 6.029), (3.384, 7.857), + (3.106, 6.178), (3.553, 8.705), (3.112, 6.181), (3.583, 8.732), (3.137, 6.11), (3.577, 8.772), (3.135, 6.253), + (3.607, 8.804), (3.616, 8.82), (3.163, 6.061), (3.154, 6.14), (3.639, 8.894), (3.534, 8.253), (3.468, 8.518), + (3.633, 8.908), (3.207, 6.265), (3.661, 9.465), (3.221, 6.399), (3.209, 6.535) +] + +SMEA_COSTS = [ + (0.124, 0.11), (0.124, 0.205), (0.121, 0.227), (0.121, 0.307), (0.12, 0.305), (0.12, 0.31), (0.12, 0.314), + (0.121, 0.251), (0.121, 0.257), (0.128, 0.195), (0.122, 0.313), (0.123, 0.297), (0.131, 0.163), (0.121, 0.314), + (0.12, 0.327), (0.121, 0.298), (0.124, 0.353), (0.12, 0.28), (0.118, 0.336), (0.117, 0.34), (0.122, 0.253), + (0.118, 0.412), (0.118, 0.363), (0.119, 0.344), (0.122, 0.244), (0.119, 0.31), (0.117, 0.355), (0.118, 0.286), + (0.122, 0.298), (0.125, 0.216), (0.127, 0.297), (0.119, 0.281), (0.12, 0.319), (0.118, 0.376), (0.119, 0.364), + (0.135, 0.149), (0.12, 0.401), (0.123, 0.352), (0.124, 0.346), (0.122, 0.305), (0.123, 0.388), (0.125, 0.319), + (0.127, 0.394), (0.123, 0.431), (0.126, 0.328), (0.128, 0.359), (0.129, 0.395), (0.126, 0.331), (0.127, 0.327), + (0.127, 0.353), (0.132, 0.415), (0.134, 0.362), (0.134, 0.383), (0.131, 0.362), (0.132, 0.355), (0.133, 0.333), + (0.139, 0.423), (0.138, 0.44), (0.139, 0.441), (0.137, 0.355), (0.142, 0.454), (0.145, 0.444), (0.14, 0.38), + (0.142, 0.366), (0.154, 0.389), (0.153, 0.371), (0.16, 0.37), (0.163, 0.453), (0.169, 0.421), (0.157, 0.393), + (0.154, 0.911), (0.16, 0.401), (0.169, 0.477), (0.173, 0.466), (0.166, 0.465), (0.179, 0.488), (0.164, 0.424), + (0.164, 0.417), (0.178, 0.491), (0.17, 0.398), (0.168, 0.43), (0.193, 0.502), (0.193, 0.476), (0.172, 0.426), + (0.183, 0.455), (0.203, 0.51), (0.207, 0.522), (0.181, 0.451), (0.207, 0.527), (0.181, 0.437), (0.184, 0.445), + (0.215, 0.507), (0.215, 0.553), (0.216, 0.524), (0.202, 0.493), (0.191, 0.454), (0.223, 0.55), (0.2, 0.472), + (0.199, 0.463), (0.201, 0.458), (0.232, 0.558), (0.206, 0.463), (0.235, 0.536), (0.213, 0.484), (0.211, 0.481), + (0.246, 0.549), (0.244, 0.583), (0.214, 0.499), (0.249, 0.59), (0.218, 0.502), (0.256, 0.596), (0.226, 0.509), + (0.26, 0.592), (0.226, 0.518), (0.251, 0.558), (0.271, 0.613), (0.231, 0.509), (0.272, 0.613), (0.237, 0.562), + (0.235, 0.509), (0.223, 0.511), (0.278, 0.623), (0.286, 0.636), (0.288, 0.632), (0.266, 0.62), (0.245, 0.553), + (0.288, 0.646), (0.262, 0.575), (0.308, 0.644), (0.259, 0.556), (0.304, 0.651), (0.245, 0.538), (0.278, 0.576), + (0.312, 0.661), (0.268, 0.581), (0.288, 0.623), (0.322, 0.673), (0.277, 0.589), (0.327, 0.677), (0.29, 0.626), + (0.339, 0.691), (0.337, 0.696), (0.269, 0.559), (0.27, 0.561), (0.325, 0.658), (0.347, 0.707), (0.304, 0.663), + (0.356, 0.725), (0.355, 0.723), (0.308, 0.642), (0.358, 0.732), (0.318, 0.655), (0.316, 0.659), (0.288, 0.601), + (0.346, 0.706), (0.289, 0.59), (0.371, 0.752), (0.375, 0.753), (0.385, 0.768), (0.327, 0.677), (0.334, 0.706), + (0.33, 0.677), (0.392, 0.777), (0.395, 0.788), (0.307, 0.645), (0.402, 0.791), (0.403, 0.807), (0.31, 0.641), + (0.318, 0.648), (0.352, 0.704), (0.353, 0.702), (0.426, 0.831), (0.428, 0.838), (0.359, 0.722), (0.366, 0.725), + (0.329, 0.665), (0.442, 0.851), (0.442, 0.849), (0.446, 0.86), (0.337, 0.693), (0.452, 0.859), (0.342, 0.7), + (0.45, 0.877), (0.389, 0.792), (0.422, 0.821), (0.384, 0.777), (0.354, 0.72), (0.468, 0.906), (0.387, 0.781), + (0.396, 0.782), (0.475, 0.905), (0.357, 0.713), (0.486, 0.916), (0.483, 0.918), (0.371, 0.728), (0.37, 0.729), + (0.496, 0.935), (0.378, 0.743), (0.501, 0.942), (0.427, 0.829), (0.508, 0.92), (0.512, 0.96), (0.44, 0.853), + (0.394, 0.767), (0.48, 0.907), (0.521, 0.965), (0.439, 0.835), (0.403, 0.782), (0.408, 0.778), (0.403, 0.765), + (0.538, 1.003), (0.547, 1.009), (0.542, 1.012), (0.548, 1.007), (0.506, 0.959), (0.418, 0.787), (0.472, 0.892), + (0.559, 1.017), (0.564, 1.037), (0.427, 0.806), (0.435, 0.824), (0.474, 0.891), (0.575, 1.056), (0.432, 0.81), + (0.446, 0.83), (0.582, 1.079), (0.588, 1.067), (0.445, 0.829), (0.594, 1.093), (0.502, 0.941), (0.46, 0.86), + (0.516, 0.965), (0.615, 1.094), (0.459, 0.851), (0.565, 1.04), (0.616, 1.122), (0.619, 1.118), (0.473, 0.859), + (0.626, 1.123), (0.467, 0.878), (0.641, 1.14), (0.487, 0.886), (0.526, 0.984), (0.641, 1.17), (0.544, 1.001), + (0.536, 0.976), (0.497, 0.91), (0.554, 1.006), (0.662, 1.185), (0.553, 1.015), (0.673, 1.193), (0.495, 0.915), + (0.514, 0.933), (0.679, 1.203), (0.518, 0.944), (0.495, 1.108), (0.734, 1.205), (0.608, 1.045), (0.62, 1.024), + (0.564, 0.962), (0.619, 1.057), (0.75, 1.235), (0.752, 1.241), (0.569, 0.957), (0.71, 1.157), (0.587, 0.967), + (0.777, 1.263), (0.777, 1.263), (0.782, 1.278), (0.598, 1), (0.785, 1.285), (0.608, 1.004), (0.613, 0.983), + (0.795, 1.298), (0.614, 0.993), (0.614, 1.001), (0.806, 1.305), (0.816, 1.323), (0.676, 1.088), (0.619, 1.011), + (0.828, 1.326), (0.689, 1.11), (0.835, 1.334), (0.834, 1.35), (0.645, 1.031), (0.641, 1.036), (0.72, 1.159), + (0.649, 1.032), (0.657, 1.046), (0.726, 1.162), (0.865, 1.386), (0.863, 1.391), (0.875, 1.39), (0.663, 1.044), + (0.806, 1.297), (0.753, 1.209), (0.679, 1.072), (0.892, 1.4), (0.681, 1.076), (0.679, 1.071), (0.764, 1.198), + (0.905, 1.423), (0.91, 1.439), (0.694, 1.083), (0.841, 1.33), (0.695, 1.097), (0.928, 1.464), (0.698, 1.08), + (0.935, 1.477), (0.786, 1.24), (0.943, 1.509), (0.708, 1.106), (0.951, 1.48), (0.946, 1.478), (0.721, 1.131), + (0.953, 1.516), (0.967, 1.494), (0.801, 1.259), (0.733, 1.151), (0.727, 1.13), (1.015, 1.567), (0.735, 1.135), + (0.747, 1.149), (0.74, 1.155), (0.753, 1.168), (1.032, 1.594), (1.032, 1.611), (0.853, 1.328), (0.849, 1.313), + (0.76, 1.166), (1.059, 1.632), (1.055, 1.651), (0.85, 1.303), (1.067, 1.639), (0.946, 1.468), (0.779, 1.175), + (1.086, 1.663), (0.791, 1.182), (1.099, 1.669), (0.792, 1.198), (0.81, 1.227), (0.807, 1.214), (0.906, 1.364), + (0.917, 1.382), (0.822, 1.243), (1.138, 1.721), (1.135, 1.713), (0.821, 1.226), (1.143, 1.726), (0.827, 1.251), + (0.843, 1.229), (0.827, 1.24), (1.17, 1.757), (0.929, 1.378), (1.03, 1.549), (1.174, 1.788), (0.864, 1.265), + (1.19, 1.771), (1.191, 1.776), (0.859, 1.258), (0.882, 1.277), (1.204, 1.803), (0.888, 1.271), (0.869, 1.266), + (1.07, 1.589), (0.964, 1.419), (1.218, 1.843), (0.881, 1.283), (0.984, 1.434), (0.993, 1.488), (1.005, 1.472), + (0.896, 1.306), (1.251, 1.851), (0.91, 1.317), (0.918, 1.322), (1.028, 1.538), (0.927, 1.333), (0.923, 1.312), + (1.275, 1.898), (0.919, 1.509), (1.285, 1.917), (1.286, 1.927), (1.294, 1.924), (0.929, 1.33), (0.959, 1.358), + (1.313, 1.944), (1.046, 1.523), (1.31, 1.945), (1.323, 1.949), (0.966, 1.358), (0.975, 1.383), (0.962, 1.356), + (1.346, 1.968), (1.347, 1.961), (1.194, 1.733), (0.979, 1.374), (1.366, 1.975), (1.363, 1.987), (1.001, 1.4), + (0.99, 1.387), (1.396, 2.009), (1.107, 1.557), (1.026, 1.417), (1.393, 2.038), (1.031, 1.418), (1.026, 1.427), + (1.039, 1.441), (1.034, 1.421), (1.429, 2.07), (1.156, 1.626), (1.431, 2.063), (1.426, 2.075), (1.17, 1.653), + (1.05, 1.434), (1.316, 1.883), (1.057, 1.445), (1.456, 2.088), (1.062, 1.457), (1.465, 2.11), (1.063, 1.456), + (1.481, 2.112), (1.48, 2.124), (1.185, 1.637), (1.225, 1.726), (1.093, 1.48), (1.187, 1.656), (1.217, 1.709), + (1.51, 2.182), (1.106, 1.503), (1.223, 1.701), (1.529, 2.185), (1.112, 1.486), (1.542, 2.209), (1.112, 1.508), + (1.125, 1.518), (1.544, 2.212), (1.131, 1.535), (1.234, 1.701), (1.563, 2.229), (1.124, 1.515), (1.147, 1.531), + (1.145, 1.521), (1.592, 2.251), (1.146, 1.555), (1.453, 2.055), (1.601, 2.287), (1.605, 2.271), (1.164, 1.536), + (1.623, 2.281), (1.174, 1.548), (1.186, 1.572), (1.626, 2.321), (1.644, 2.317), (1.642, 2.303), (1.195, 1.585), + (1.192, 1.568), (1.661, 2.331), (1.662, 2.317), (1.211, 1.586), (1.206, 1.588), (1.687, 2.378), (1.216, 1.598), + (1.696, 2.384), (1.218, 1.601), (1.238, 1.629), (1.714, 2.388), (1.715, 2.399), (1.234, 1.615), (1.39, 1.861), + (1.391, 1.869), (1.735, 2.407), (1.417, 1.91), (1.274, 1.655), (1.388, 1.862), (1.276, 1.653), (1.266, 1.643), + (1.407, 1.886), (1.771, 2.454), (1.771, 2.453), (1.273, 1.653), (1.304, 1.675), (1.799, 2.48), (1.304, 1.672), + (1.282, 1.888), (1.629, 2.214), (1.296, 1.666), (1.82, 2.506), (1.48, 1.978), (1.835, 2.53), (1.313, 1.682), + (1.852, 2.536), (1.319, 1.677), (1.345, 1.725), (1.335, 1.709), (1.347, 1.719), (1.332, 1.692), (1.502, 1.978), + (1.483, 1.96), (1.888, 2.568), (1.351, 1.723), (1.9, 2.604), (1.913, 2.617), (1.921, 2.618), (1.369, 1.732), + (1.73, 2.332), (1.383, 1.751), (1.4, 1.78), (1.939, 2.649), (1.958, 2.637), (1.403, 1.76), (1.561, 2.03), + (1.391, 1.748), (1.447, 1.789), (1.999, 2.657), (1.799, 2.374), (1.436, 1.791), (1.467, 1.823), (1.455, 1.791), + (2.022, 2.702), (1.444, 1.775), (2.044, 2.715), (1.467, 1.793), (2.054, 2.715), (2.038, 2.736), (1.495, 1.82), + (2.063, 2.744), (1.498, 1.841), (1.477, 1.809), (1.517, 1.836), (1.667, 2.113), (1.656, 2.097), (1.509, 1.832), + (1.536, 1.863), (1.667, 2.072), (1.907, 2.486), (1.753, 2.252), (2.13, 2.806), (2.15, 2.816), (1.564, 1.875), + (1.545, 1.856), (2.166, 2.832), (2.162, 2.824), (2.163, 2.827), (1.567, 1.879), (1.971, 2.513), (1.578, 1.877), + (2.194, 2.873), (2.176, 2.861), (1.744, 2.158), (1.592, 1.896), (1.608, 1.918), (1.598, 1.918), (1.834, 2.27), + (2.233, 2.897), (1.628, 1.944), (2.234, 2.962), (2.252, 2.925), (1.627, 1.938), (1.643, 1.951), (1.619, 1.906), + (1.658, 1.947), (2.282, 2.96), (2.299, 2.98), (1.652, 1.942), (2.079, 2.649), (2.313, 2.962), (1.677, 1.954), + (1.923, 2.383), (2.333, 2.988), (1.68, 1.958), (2.345, 3.014), (1.676, 1.957), (2.345, 3.023), (1.696, 1.993), + (1.71, 1.991), (1.685, 2.405), (2.384, 3.066), (1.722, 2.012), (2.386, 3.062), (1.717, 1.998), (1.968, 2.387), + (1.926, 2.321), (1.755, 2.026), (1.999, 2.441), (1.76, 2.016), (2.441, 3.105), (2.441, 3.126), (1.758, 2.025), + (1.777, 2.056), (1.996, 2.433), (2.458, 3.14), (1.77, 2.057), (2.488, 3.167), (1.789, 2.035), (1.803, 2.055), + (2.475, 3.172), (2.493, 3.16), (1.804, 2.064), (2.513, 3.184), (1.803, 2.082), (2.538, 3.215), (1.821, 2.073), + (2.027, 2.886), (2.524, 3.227), (1.856, 2.118), (2.055, 2.458), (2.565, 3.252), (1.846, 2.099), (1.869, 2.107), + (2.098, 2.514), (1.88, 2.122), (1.858, 2.103), (2.617, 3.276), (2.616, 3.288), (1.893, 2.143), (1.876, 2.117), + (2.641, 3.313), (2.121, 2.491), (2.649, 3.324), (1.901, 2.124), (1.929, 2.148), (2.671, 3.336), (2.188, 2.572), + (1.911, 2.146), (1.949, 2.17), (2.696, 3.348), (1.952, 2.163), (2.682, 3.376), (1.971, 2.193), (1.953, 2.159), + (2.729, 3.399), (2.247, 2.66), (2.738, 3.393), (2.755, 3.403), (2.492, 3.013), (1.977, 2.176), (2.007, 2.209), + (1.992, 2.191), (2.229, 2.574), (1.987, 2.183), (2.824, 3.5), (2.253, 2.603), (2.833, 3.527), (2.024, 2.21), + (2.045, 2.237), (2.039, 2.222), (2.851, 3.539), (2.039, 2.218), (2.071, 2.271), (2.046, 2.589), (2.069, 2.254), + (2.866, 3.557), (2.905, 3.587), (2.314, 2.621), (2.602, 3.111), (2.072, 2.251), (2.329, 2.671), (2.092, 2.249), + (2.934, 3.61), (2.089, 2.245), (2.956, 3.648), (2.958, 3.607), (2.127, 2.291), (2.43, 2.809), (2.141, 2.291), + (2.135, 2.294), (2.143, 2.304), (2.972, 3.652), (3.003, 3.665), (2.413, 2.751), (2.17, 2.34), (2.143, 2.306), + (3.061, 3.745), (3.061, 3.699), (2.196, 2.324), (2.177, 2.305), (3.078, 3.759), (2.466, 2.754), (2.5, 2.798), + (2.192, 2.322), (3.099, 3.74), (2.219, 2.342), (3.116, 3.8), (2.233, 2.358), (2.79, 3.255), (2.237, 2.35), + (3.127, 3.758), (2.24, 2.365), (2.276, 2.397), (2.263, 2.348), (3.176, 3.835), (3.156, 3.844), (2.293, 2.408), + (3.202, 3.836), (2.866, 3.318), (2.282, 2.399), (2.309, 2.423), (3.228, 3.858), (3.24, 3.892), (2.308, 2.4), + (3.248, 3.917), (2.318, 2.412), (2.335, 2.44), (2.318, 2.394), (2.352, 2.446), (3.289, 3.936), (2.656, 2.946), + (2.35, 2.434), (3.303, 3.949), (2.655, 2.937), (2.628, 2.863), (2.724, 3.038), (2.397, 2.451), (2.389, 2.45), + (2.406, 2.485), (3.331, 4.018), (3.364, 4.001), (3.375, 3.993), (3.366, 4.011), (2.397, 2.443), (2.751, 3.017), + (2.428, 2.465), (3.406, 4.043), (3.384, 4.062), (2.451, 2.51), (2.443, 2.48), (3.424, 4.059), (2.441, 2.479), + (2.461, 3.092), (2.786, 3.033), (2.488, 2.53), (2.473, 2.522), (3.493, 4.067), (3.495, 4.12), (2.5, 2.548), + (2.49, 2.517), (2.534, 2.584), (2.516, 2.527), (3.529, 4.156), (2.514, 2.556), (2.545, 2.565), (2.529, 2.537), + (3.565, 4.197), (2.534, 2.532), (3.189, 3.608), (3.591, 4.197), (2.829, 3.682), (2.555, 2.534), (2.922, 3.117), + (2.579, 2.569), (3.626, 4.261), (2.574, 2.58), (3.644, 4.258), (2.603, 2.567), (3.254, 3.644), (2.607, 2.599), + (3.675, 4.312), (3.681, 4.276), (2.638, 2.641), (2.608, 2.598), (3.712, 4.344), (2.942, 3.098), (2.998, 3.511), + (3.691, 4.356), (2.675, 2.647), (3.725, 4.949), (2.684, 2.679), (2.655, 2.846) +] + +DDIM_COSTS = [ + (0.072, 0.086), (0.072, 0.183), (0.073, 0.151), (0.069, 0.278), (0.071, 0.185), (0.069, 0.246), (0.062, 0.602), + (0.069, 0.203), (0.07, 0.202), (0.069, 0.237), (0.07, 0.278), (0.07, 0.233), (0.071, 0.212), (0.075, 0.192), + (0.074, 0.142), (0.068, 0.222), (0.074, 0.205), (0.07, 0.224), (0.069, 0.22), (0.068, 0.237), (0.07, 0.226), + (0.068, 0.236), (0.073, 0.214), (0.074, 0.188), (0.069, 0.257), (0.067, 0.245), (0.069, 0.24), (0.071, 0.207), + (0.066, 0.286), (0.069, 0.258), (0.067, 0.275), (0.069, 0.271), (0.068, 0.326), (0.069, 0.275), (0.073, 0.25), + (0.072, 0.255), (0.071, 0.293), (0.072, 0.283), (0.073, 0.289), (0.076, 0.266), (0.075, 0.294), (0.072, 0.298), + (0.074, 0.293), (0.073, 0.308), (0.078, 0.308), (0.078, 0.27), (0.08, 0.275), (0.075, 0.31), (0.076, 0.328), + (0.078, 0.31), (0.078, 0.322), (0.079, 0.322), (0.079, 0.347), (0.081, 0.333), (0.079, 0.334), (0.08, 0.331), + (0.083, 0.342), (0.083, 0.344), (0.083, 0.358), (0.087, 0.32), (0.086, 0.357), (0.088, 0.354), (0.089, 0.348), + (0.089, 0.344), (0.099, 0.359), (0.101, 0.365), (0.099, 0.331), (0.104, 0.379), (0.106, 0.375), (0.106, 0.376), + (0.105, 0.381), (0.109, 0.377), (0.107, 0.389), (0.109, 0.392), (0.11, 0.399), (0.112, 0.403), (0.112, 0.395), + (0.112, 0.395), (0.112, 0.414), (0.115, 0.391), (0.117, 0.405), (0.118, 0.418), (0.117, 0.427), (0.121, 0.39), + (0.122, 0.431), (0.125, 0.428), (0.125, 0.434), (0.126, 0.429), (0.127, 0.443), (0.128, 0.437), (0.128, 0.442), + (0.131, 0.453), (0.132, 0.448), (0.132, 0.457), (0.134, 0.46), (0.136, 0.443), (0.139, 0.467), (0.142, 0.472), + (0.144, 0.469), (0.145, 0.45), (0.144, 0.478), (0.149, 0.478), (0.146, 0.487), (0.152, 0.476), (0.153, 0.49), + (0.151, 0.495), (0.151, 0.506), (0.158, 0.486), (0.154, 0.5), (0.157, 0.494), (0.159, 0.501), (0.16, 0.497), + (0.163, 0.517), (0.167, 0.521), (0.167, 0.524), (0.169, 0.527), (0.17, 0.504), (0.17, 0.529), (0.172, 0.54), + (0.173, 0.526), (0.172, 0.529), (0.173, 0.544), (0.176, 0.559), (0.179, 0.563), (0.179, 0.575), (0.178, 0.561), + (0.178, 0.563), (0.184, 0.569), (0.192, 0.571), (0.19, 0.57), (0.191, 0.582), (0.193, 0.574), (0.201, 0.594), + (0.197, 0.592), (0.202, 0.6), (0.205, 0.602), (0.205, 0.607), (0.209, 0.609), (0.208, 0.615), (0.209, 0.615), + (0.212, 0.619), (0.213, 0.623), (0.215, 0.619), (0.218, 0.621), (0.22, 0.644), (0.219, 0.636), (0.225, 0.651), + (0.225, 0.649), (0.226, 0.651), (0.227, 0.655), (0.228, 0.659), (0.233, 0.667), (0.233, 0.668), (0.235, 0.663), + (0.236, 0.683), (0.234, 0.663), (0.236, 0.68), (0.237, 0.682), (0.24, 0.687), (0.241, 0.693), (0.247, 0.718), + (0.246, 0.705), (0.246, 0.703), (0.249, 0.712), (0.251, 0.713), (0.25, 0.712), (0.253, 0.715), (0.256, 0.724), + (0.26, 0.719), (0.26, 0.737), (0.268, 0.742), (0.268, 0.733), (0.27, 0.747), (0.271, 0.753), (0.273, 0.756), + (0.272, 0.752), (0.277, 0.759), (0.277, 0.76), (0.282, 0.776), (0.279, 0.792), (0.285, 0.778), (0.284, 0.785), + (0.282, 0.778), (0.286, 0.788), (0.29, 0.792), (0.292, 0.8), (0.293, 0.793), (0.291, 0.802), (0.297, 0.803), + (0.298, 0.814), (0.299, 0.808), (0.3, 0.818), (0.309, 0.823), (0.306, 0.821), (0.309, 0.835), (0.311, 0.839), + (0.317, 0.836), (0.316, 0.85), (0.318, 0.862), (0.32, 0.854), (0.323, 0.824), (0.327, 0.848), (0.33, 0.873), + (0.332, 0.877), (0.333, 0.875), (0.331, 0.87), (0.336, 0.887), (0.34, 0.89), (0.341, 0.898), (0.339, 0.899), + (0.34, 0.895), (0.344, 0.903), (0.342, 0.903), (0.347, 0.902), (0.347, 0.911), (0.357, 0.915), (0.355, 0.921), + (0.353, 0.925), (0.354, 0.922), (0.359, 0.931), (0.366, 0.946), (0.363, 0.95), (0.36, 0.959), (0.369, 0.956), + (0.376, 0.96), (0.369, 0.959), (0.373, 0.96), (0.377, 0.973), (0.378, 0.964), (0.381, 0.969), (0.382, 0.985), + (0.385, 0.995), (0.391, 0.999), (0.391, 0.988), (0.388, 0.998), (0.39, 1.007), (0.392, 1.001), (0.404, 1.018), + (0.4, 1.01), (0.397, 1.014), (0.407, 1.029), (0.409, 1.026), (0.407, 1.056), (0.407, 1.036), (0.412, 1.047), + (0.413, 1.042), (0.415, 1.057), (0.416, 1.057), (0.418, 1.039), (0.423, 1.067), (0.425, 1.05), (0.424, 1.071), + (0.43, 1.073), (0.428, 1.062), (0.433, 1.086), (0.425, 1.292), (0.453, 1.096), (0.451, 1.105), (0.453, 1.094), + (0.454, 1.108), (0.456, 1.124), (0.454, 1.104), (0.462, 1.102), (0.462, 1.124), (0.466, 1.127), (0.47, 1.155), + (0.467, 1.134), (0.467, 1.143), (0.481, 1.151), (0.482, 1.157), (0.483, 1.16), (0.486, 1.158), (0.488, 1.17), + (0.486, 1.155), (0.491, 1.179), (0.494, 1.191), (0.499, 1.18), (0.494, 1.172), (0.5, 1.189), (0.503, 1.196), + (0.51, 1.199), (0.509, 1.195), (0.513, 1.206), (0.512, 1.207), (0.518, 1.22), (0.52, 1.231), (0.52, 1.227), + (0.524, 1.244), (0.528, 1.241), (0.529, 1.24), (0.526, 1.23), (0.53, 1.241), (0.538, 1.247), (0.539, 1.256), + (0.536, 1.249), (0.541, 1.272), (0.547, 1.27), (0.542, 1.281), (0.549, 1.287), (0.552, 1.276), (0.554, 1.296), + (0.552, 1.285), (0.554, 1.288), (0.562, 1.307), (0.562, 1.305), (0.57, 1.313), (0.572, 1.308), (0.573, 1.32), + (0.573, 1.321), (0.58, 1.331), (0.581, 1.349), (0.583, 1.346), (0.59, 1.337), (0.584, 1.343), (0.59, 1.371), + (0.589, 1.35), (0.598, 1.364), (0.597, 1.39), (0.6, 1.37), (0.605, 1.369), (0.605, 1.361), (0.614, 1.385), + (0.616, 1.359), (0.616, 1.403), (0.62, 1.379), (0.615, 1.38), (0.619, 1.394), (0.624, 1.424), (0.627, 1.408), + (0.632, 1.424), (0.634, 1.418), (0.632, 1.428), (0.64, 1.429), (0.636, 1.426), (0.635, 1.432), (0.644, 1.432), + (0.657, 1.461), (0.659, 1.458), (0.658, 1.456), (0.661, 1.474), (0.664, 1.471), (0.668, 1.482), (0.664, 1.479), + (0.672, 1.474), (0.675, 1.482), (0.671, 1.485), (0.681, 1.495), (0.682, 1.499), (0.688, 1.503), (0.688, 1.518), + (0.688, 1.509), (0.692, 1.523), (0.697, 1.525), (0.697, 1.532), (0.695, 1.542), (0.699, 1.532), (0.708, 1.53), + (0.703, 1.533), (0.712, 1.55), (0.714, 1.558), (0.718, 1.557), (0.714, 1.55), (0.721, 1.566), (0.726, 1.57), + (0.725, 1.579), (0.729, 1.586), (0.735, 1.605), (0.734, 1.587), (0.741, 1.603), (0.745, 1.595), (0.744, 1.612), + (0.749, 1.613), (0.755, 1.615), (0.756, 1.616), (0.754, 1.629), (0.754, 1.623), (0.765, 1.634), (0.766, 1.651), + (0.771, 1.65), (0.765, 1.824), (0.773, 1.639), (0.771, 1.656), (0.781, 1.649), (0.784, 1.657), (0.788, 1.691), + (0.785, 1.664), (0.792, 1.69), (0.793, 1.702), (0.801, 1.698), (0.813, 1.703), (0.801, 1.702), (0.818, 1.726), + (0.812, 1.697), (0.817, 1.7), (0.811, 1.726), (0.83, 1.735), (0.828, 1.727), (0.828, 1.721), (0.827, 1.748), + (0.841, 1.764), (0.846, 1.749), (0.855, 1.748), (0.851, 1.773), (0.853, 1.768), (0.857, 1.79), (0.871, 1.798), + (0.864, 1.783), (0.872, 1.793), (0.87, 1.781), (0.884, 1.799), (0.874, 1.798), (0.874, 1.812), (0.879, 1.819), + (0.894, 1.845), (0.881, 1.824), (0.898, 1.834), (0.897, 1.808), (0.908, 1.852), (0.895, 1.824), (0.912, 1.846), + (0.903, 1.833), (0.911, 1.829), (0.908, 1.864), (0.924, 1.855), (0.919, 1.884), (0.929, 1.884), (0.922, 1.886), + (0.926, 1.884), (0.936, 1.896), (0.949, 1.897), (0.93, 1.883), (0.95, 1.914), (0.942, 1.89), (0.964, 1.909), + (0.952, 1.919), (0.95, 1.926), (0.961, 1.933), (0.962, 1.945), (0.957, 1.932), (0.965, 1.952), (0.974, 1.951), + (0.978, 1.943), (0.972, 1.933), (0.983, 1.955), (0.982, 1.971), (0.987, 1.953), (0.991, 1.966), (0.992, 1.989), + (0.995, 1.979), (1.004, 1.997), (1.005, 1.995), (1.006, 1.991), (1.016, 1.996), (1.016, 2.01), (1.018, 2.021), + (1.02, 2.027), (1.022, 2.008), (1.03, 2.013), (1.032, 2.039), (1.035, 2.05), (1.036, 2.045), (1.043, 2.057), + (1.041, 2.044), (1.046, 2.065), (1.053, 2.07), (1.058, 2.072), (1.057, 2.055), (1.063, 2.084), (1.07, 2.073), + (1.072, 2.098), (1.075, 2.087), (1.079, 2.122), (1.085, 2.112), (1.086, 2.121), (1.088, 2.125), (1.093, 2.129), + (1.099, 2.134), (1.106, 2.133), (1.101, 2.133), (1.107, 2.139), (1.111, 2.159), (1.117, 2.145), (1.115, 2.143), + (1.113, 2.402), (1.121, 2.172), (1.128, 2.181), (1.128, 2.168), (1.133, 2.2), (1.141, 2.18), (1.145, 2.183), + (1.141, 2.207), (1.148, 2.196), (1.151, 2.227), (1.156, 2.211), (1.154, 2.227), (1.16, 2.216), (1.159, 2.494), + (1.169, 2.243), (1.172, 2.226), (1.174, 2.251), (1.183, 2.243), (1.188, 2.252), (1.183, 2.252), (1.19, 2.283), + (1.193, 2.279), (1.2, 2.285), (1.204, 2.289), (1.204, 2.28), (1.209, 2.293), (1.216, 2.297), (1.214, 2.313), + (1.223, 2.301), (1.232, 2.32), (1.234, 2.308), (1.232, 2.328), (1.24, 2.322), (1.244, 2.348), (1.252, 2.325), + (1.253, 2.337), (1.251, 2.355), (1.258, 2.347), (1.265, 2.385), (1.262, 2.361), (1.264, 2.378), (1.275, 2.409), + (1.278, 2.376), (1.281, 2.386), (1.28, 2.407), (1.301, 2.422), (1.301, 2.409), (1.301, 2.42), (1.306, 2.441), + (1.316, 2.423), (1.316, 2.441), (1.317, 2.432), (1.322, 2.442), (1.342, 2.433), (1.338, 2.456), (1.341, 2.472), + (1.343, 2.477), (1.348, 2.464), (1.356, 2.47), (1.358, 2.476), (1.36, 2.492), (1.362, 2.515), (1.367, 2.512), + (1.368, 2.488), (1.37, 2.507), (1.38, 2.522), (1.382, 2.54), (1.386, 2.527), (1.386, 2.551), (1.393, 2.554), + (1.398, 2.543), (1.401, 2.574), (1.399, 2.557), (1.408, 2.55), (1.414, 2.58), (1.416, 2.577), (1.416, 2.572), + (1.431, 2.581), (1.433, 2.586), (1.432, 2.591), (1.437, 2.603), (1.449, 2.597), (1.449, 2.6), (1.451, 2.617), + (1.451, 2.627), (1.461, 2.625), (1.465, 2.636), (1.463, 2.615), (1.469, 2.634), (1.481, 2.632), (1.482, 2.672), + (1.481, 2.645), (1.477, 2.953), (1.49, 2.663), (1.497, 2.663), (1.503, 2.673), (1.5, 2.68), (1.506, 2.678), + (1.509, 2.699), (1.51, 2.682), (1.514, 2.69), (1.523, 2.731), (1.526, 2.719), (1.525, 2.721), (1.532, 2.718), + (1.544, 2.733), (1.542, 2.75), (1.549, 2.727), (1.548, 2.741), (1.556, 2.745), (1.563, 2.762), (1.567, 2.76), + (1.564, 2.777), (1.582, 2.771), (1.581, 2.769), (1.578, 2.769), (1.582, 2.803), (1.59, 2.779), (1.599, 2.813), + (1.588, 3.247), (1.599, 2.817), (1.611, 2.827), (1.615, 2.82), (1.614, 2.816), (1.621, 2.851), (1.632, 2.857), + (1.63, 2.853), (1.633, 2.853), (1.639, 2.857), (1.645, 2.856), (1.651, 2.856), (1.647, 2.887), (1.65, 2.89), + (1.665, 2.899), (1.665, 2.898), (1.672, 2.9), (1.673, 2.901), (1.682, 2.905), (1.686, 2.89), (1.681, 2.911), + (1.685, 2.931), (1.696, 2.957), (1.701, 2.914), (1.706, 2.934), (1.702, 2.944), (1.717, 2.979), (1.714, 2.983), + (1.715, 2.953), (1.718, 2.967), (1.735, 2.969), (1.734, 2.97), (1.739, 2.979), (1.74, 2.987), (1.75, 2.989), + (1.752, 3.016), (1.751, 2.993), (1.755, 3.019), (1.767, 2.998), (1.77, 3.036), (1.771, 3.017), (1.777, 3.051), + (1.784, 3.068), (1.79, 3.05), (1.79, 3.033), (1.792, 3.063), (1.803, 3.094), (1.797, 3.457), (1.808, 3.065), + (1.81, 3.09), (1.821, 3.076), (1.825, 3.103), (1.827, 3.11), (1.827, 3.102), (1.841, 3.111), (1.843, 3.114), + (1.846, 3.107), (1.849, 3.115), (1.856, 3.115), (1.863, 3.132), (1.858, 3.165), (1.863, 3.14), (1.875, 3.162), + (1.879, 3.176), (1.881, 3.189), (1.881, 3.181), (1.9, 3.171), (1.895, 3.182), (1.89, 3.195), (1.901, 3.208), + (1.924, 3.201), (1.929, 3.194), (1.927, 3.215), (1.931, 3.247), (1.943, 3.214), (1.942, 3.238), (1.943, 3.254), + (1.948, 3.257), (1.964, 3.226), (1.966, 3.25), (1.966, 3.262), (1.971, 3.297), (1.985, 3.291), (1.983, 3.295), + (1.989, 3.262), (1.985, 3.302), (2.001, 3.293), (2.002, 3.311), (2.003, 3.299), (2.005, 3.333), (2.017, 3.336), + (2.023, 3.31), (2.022, 3.343), (2.02, 3.365), (2.037, 3.368), (2.039, 3.347), (2.051, 3.366), (2.043, 3.389), + (2.055, 3.368), (2.058, 3.403), (2.057, 3.4), (2.06, 3.404), (2.075, 3.411), (2.082, 3.37), (2.083, 3.4), + (2.089, 3.452), (2.1, 3.412), (2.099, 3.424), (2.096, 3.425), (2.102, 3.433), (2.116, 3.447), (2.125, 3.468), + (2.12, 3.455), (2.123, 3.449), (2.145, 3.482), (2.14, 3.475), (2.138, 3.468), (2.141, 3.499), (2.154, 3.495), + (2.163, 3.526), (2.167, 3.5), (2.159, 3.519), (2.172, 3.536), (2.18, 3.53), (2.175, 3.526), (2.182, 3.56), + (2.187, 4.05), (2.198, 3.543), (2.199, 3.585), (2.201, 3.57), (2.211, 3.566), (2.219, 3.544), (2.216, 3.585), + (2.215, 3.586), (2.238, 3.591), (2.245, 3.613), (2.242, 3.611), (2.247, 3.637), (2.256, 3.627), (2.261, 3.654), + (2.256, 3.612), (2.264, 3.627), (2.282, 3.659), (2.28, 3.637), (2.266, 4.232), (2.29, 3.652), (2.295, 3.671), + (2.297, 3.69), (2.294, 3.664), (2.304, 3.673), (2.321, 3.672), (2.32, 3.705), (2.324, 3.711), (2.326, 3.709), + (2.337, 3.701), (2.342, 3.72), (2.342, 3.722), (2.349, 3.719), (2.355, 3.746), (2.359, 3.732), (2.355, 3.935), + (2.362, 3.762), (2.372, 3.763), (2.369, 4.084), (2.378, 3.791), (2.38, 4.085) +] + +NAI_COSTS = [ + (0.07, 0.067), (0.07, 0.138), (0.069, 0.165), (0.074, 0.121), (0.069, 0.149), (0.069, 0.172), (0.069, 0.155), + (0.07, 0.13), (0.068, 0.229), (0.071, 0.127), (0.072, 0.145), (0.071, 0.21), (0.07, 0.172), (0.068, 0.204), + (0.068, 0.185), (0.068, 0.153), (0.073, 0.142), (0.067, 0.18), (0.069, 0.18), (0.062, 0.389), (0.067, 0.206), + (0.072, 0.156), (0.068, 0.206), (0.068, 0.179), (0.067, 0.206), (0.066, 0.21), (0.067, 0.199), (0.066, 0.21), + (0.068, 0.216), (0.067, 0.222), (0.07, 0.206), (0.067, 0.215), (0.068, 0.248), (0.069, 0.243), (0.07, 0.221), + (0.083, 0.028), (0.073, 0.228), (0.072, 0.256), (0.072, 0.23), (0.072, 0.22), (0.072, 0.249), (0.072, 0.234), + (0.073, 0.255), (0.074, 0.259), (0.074, 0.251), (0.075, 0.259), (0.075, 0.264), (0.075, 0.243), (0.075, 0.273), + (0.079, 0.244), (0.079, 0.264), (0.079, 0.269), (0.079, 0.286), (0.081, 0.268), (0.079, 0.283), (0.081, 0.275), + (0.084, 0.286), (0.084, 0.29), (0.085, 0.29), (0.087, 0.27), (0.087, 0.298), (0.089, 0.298), (0.09, 0.29), + (0.09, 0.285), (0.1, 0.293), (0.102, 0.298), (0.1, 0.264), (0.105, 0.305), (0.107, 0.31), (0.106, 0.305), + (0.105, 0.315), (0.109, 0.307), (0.108, 0.319), (0.11, 0.321), (0.111, 0.322), (0.113, 0.324), (0.113, 0.319), + (0.113, 0.321), (0.113, 0.338), (0.116, 0.314), (0.118, 0.323), (0.119, 0.337), (0.118, 0.343), (0.119, 0.356), + (0.123, 0.346), (0.126, 0.346), (0.126, 0.352), (0.127, 0.35), (0.128, 0.358), (0.129, 0.344), (0.13, 0.348), + (0.132, 0.362), (0.134, 0.354), (0.134, 0.364), (0.135, 0.378), (0.137, 0.352), (0.14, 0.393), (0.143, 0.378), + (0.145, 0.373), (0.146, 0.355), (0.145, 0.384), (0.15, 0.383), (0.148, 0.378), (0.153, 0.38), (0.154, 0.388), + (0.153, 0.391), (0.152, 0.398), (0.158, 0.391), (0.155, 0.401), (0.158, 0.39), (0.161, 0.403), (0.161, 0.397), + (0.164, 0.408), (0.167, 0.412), (0.168, 0.412), (0.17, 0.416), (0.17, 0.415), (0.172, 0.417), (0.173, 0.425), + (0.174, 0.411), (0.173, 0.416), (0.175, 0.429), (0.178, 0.432), (0.179, 0.445), (0.181, 0.441), (0.18, 0.44), + (0.18, 0.448), (0.186, 0.443), (0.193, 0.446), (0.191, 0.446), (0.194, 0.453), (0.194, 0.442), (0.203, 0.465), + (0.198, 0.473), (0.203, 0.472), (0.207, 0.473), (0.207, 0.473), (0.21, 0.476), (0.21, 0.477), (0.211, 0.481), + (0.215, 0.485), (0.215, 0.486), (0.217, 0.475), (0.22, 0.475), (0.222, 0.497), (0.221, 0.49), (0.226, 0.505), + (0.227, 0.501), (0.228, 0.506), (0.228, 0.515), (0.229, 0.511), (0.235, 0.507), (0.235, 0.524), (0.236, 0.511), + (0.238, 0.521), (0.236, 0.515), (0.238, 0.526), (0.239, 0.534), (0.242, 0.528), (0.243, 0.534), (0.249, 0.539), + (0.247, 0.548), (0.248, 0.55), (0.251, 0.548), (0.252, 0.554), (0.252, 0.549), (0.254, 0.56), (0.257, 0.557), + (0.261, 0.552), (0.261, 0.572), (0.269, 0.567), (0.269, 0.571), (0.273, 0.569), (0.272, 0.58), (0.275, 0.577), + (0.273, 0.581), (0.279, 0.589), (0.279, 0.594), (0.284, 0.585), (0.281, 0.602), (0.287, 0.593), (0.286, 0.603), + (0.285, 0.598), (0.288, 0.604), (0.293, 0.603), (0.294, 0.602), (0.294, 0.617), (0.294, 0.613), (0.299, 0.614), + (0.3, 0.619), (0.302, 0.611), (0.302, 0.621), (0.311, 0.623), (0.309, 0.62), (0.31, 0.642), (0.313, 0.633), + (0.32, 0.627), (0.318, 0.641), (0.322, 0.637), (0.322, 0.656), (0.324, 0.634), (0.329, 0.648), (0.333, 0.661), + (0.333, 0.681), (0.336, 0.663), (0.333, 0.657), (0.337, 0.673), (0.342, 0.673), (0.343, 0.677), (0.342, 0.678), + (0.343, 0.677), (0.347, 0.687), (0.345, 0.672), (0.349, 0.679), (0.35, 0.693), (0.358, 0.69), (0.359, 0.686), + (0.356, 0.685), (0.357, 0.696), (0.361, 0.695), (0.368, 0.706), (0.366, 0.729), (0.364, 0.712), (0.372, 0.719), + (0.378, 0.726), (0.372, 0.715), (0.376, 0.716), (0.379, 0.73), (0.381, 0.719), (0.383, 0.732), (0.384, 0.734), + (0.388, 0.731), (0.395, 0.732), (0.393, 0.735), (0.391, 0.751), (0.393, 0.747), (0.396, 0.743), (0.406, 0.754), + (0.403, 0.749), (0.4, 0.765), (0.41, 0.757), (0.41, 0.776), (0.41, 0.772), (0.41, 0.777), (0.415, 0.778), + (0.417, 0.764), (0.418, 0.779), (0.419, 0.782), (0.42, 0.784), (0.425, 0.794), (0.427, 0.791), (0.427, 0.801), + (0.432, 0.818), (0.431, 0.791), (0.436, 0.809), (0.428, 1.007), (0.483, 0.805), (0.485, 0.81), (0.487, 0.808), + (0.485, 0.821), (0.491, 0.823), (0.495, 0.818), (0.497, 0.812), (0.494, 0.83), (0.51, 0.835), (0.508, 0.849), + (0.513, 0.826), (0.51, 0.831), (0.518, 0.836), (0.517, 0.846), (0.521, 0.838), (0.527, 0.848), (0.529, 0.854), + (0.53, 0.847), (0.531, 0.879), (0.533, 0.868), (0.537, 0.854), (0.542, 0.858), (0.543, 0.866), (0.54, 0.876), + (0.55, 0.87), (0.551, 0.886), (0.554, 0.874), (0.557, 0.89), (0.559, 0.892), (0.558, 0.894), (0.563, 0.885), + (0.568, 0.895), (0.571, 0.891), (0.569, 0.898), (0.575, 0.897), (0.573, 0.912), (0.581, 0.896), (0.581, 0.901), + (0.584, 0.92), (0.584, 0.913), (0.591, 0.929), (0.595, 0.926), (0.592, 0.928), (0.594, 0.94), (0.6, 0.943), + (0.603, 0.924), (0.608, 0.917), (0.608, 0.944), (0.61, 0.949), (0.611, 0.936), (0.617, 0.94), (0.615, 0.959), + (0.623, 0.941), (0.62, 0.966), (0.626, 0.953), (0.621, 0.963), (0.634, 0.966), (0.632, 0.967), (0.629, 0.964), + (0.632, 0.978), (0.638, 0.983), (0.639, 0.978), (0.639, 0.986), (0.638, 1.001), (0.652, 0.982), (0.647, 0.991), + (0.653, 0.984), (0.653, 1), (0.659, 0.994), (0.663, 0.998), (0.664, 0.991), (0.662, 1.001), (0.67, 1.013), + (0.666, 1.02), (0.678, 1.008), (0.673, 1.015), (0.682, 1.032), (0.685, 1.012), (0.681, 1.005), (0.685, 1.031), + (0.7, 1.024), (0.697, 1.04), (0.704, 1.033), (0.696, 1.043), (0.711, 1.044), (0.713, 1.058), (0.718, 1.068), + (0.718, 1.043), (0.722, 1.064), (0.732, 1.045), (0.732, 1.052), (0.726, 1.088), (0.74, 1.056), (0.733, 1.072), + (0.737, 1.079), (0.735, 1.074), (0.756, 1.087), (0.75, 1.084), (0.754, 1.079), (0.75, 1.082), (0.758, 1.096), + (0.767, 1.083), (0.769, 1.086), (0.763, 1.108), (0.775, 1.103), (0.777, 1.091), (0.777, 1.115), (0.774, 1.123), + (0.78, 1.115), (0.779, 1.125), (0.786, 1.124), (0.78, 1.127), (0.793, 1.119), (0.792, 1.142), (0.796, 1.131), + (0.796, 1.122), (0.808, 1.133), (0.804, 1.143), (0.807, 1.161), (0.804, 1.169), (0.815, 1.146), (0.815, 1.169), + (0.822, 1.147), (0.812, 1.355), (0.827, 1.161), (0.829, 1.151), (0.834, 1.153), (0.827, 1.174), (0.843, 1.184), + (0.85, 1.144), (0.846, 1.164), (0.847, 1.172), (0.859, 1.166), (0.854, 1.185), (0.858, 1.206), (0.858, 1.188), + (0.874, 1.182), (0.877, 1.176), (0.872, 1.2), (0.872, 1.205), (0.886, 1.209), (0.887, 1.184), (0.885, 1.2), + (0.884, 1.204), (0.907, 1.21), (0.901, 1.208), (0.908, 1.221), (0.905, 1.231), (0.914, 1.228), (0.914, 1.232), + (0.917, 1.227), (0.919, 1.228), (0.932, 1.236), (0.925, 1.238), (0.93, 1.244), (0.924, 1.248), (0.932, 1.264), + (0.934, 1.246), (0.935, 1.257), (0.947, 1.246), (0.946, 1.24), (0.947, 1.257), (0.951, 1.253), (0.947, 1.266), + (0.959, 1.258), (0.956, 1.273), (0.961, 1.286), (0.959, 1.279), (0.969, 1.281), (0.969, 1.27), (0.97, 1.293), + (0.977, 1.287), (0.982, 1.291), (0.978, 1.296), (0.986, 1.286), (0.995, 1.303), (0.998, 1.288), (0.996, 1.29), + (0.997, 1.323), (0.998, 1.311), (1.005, 1.315), (1.008, 1.31), (1.011, 1.317), (1.009, 1.317), (1.021, 1.318), + (1.02, 1.334), (1.027, 1.328), (1.025, 1.349), (1.03, 1.342), (1.03, 1.315), (1.033, 1.33), (1.046, 1.336), + (1.051, 1.341), (1.049, 1.357), (1.054, 1.351), (1.05, 1.365), (1.061, 1.34), (1.064, 1.344), (1.066, 1.367), + (1.066, 1.366), (1.077, 1.359), (1.079, 1.366), (1.08, 1.379), (1.079, 1.382), (1.094, 1.368), (1.089, 1.386), + (1.099, 1.394), (1.093, 1.396), (1.103, 1.387), (1.112, 1.379), (1.113, 1.392), (1.111, 1.396), (1.116, 1.404), + (1.116, 1.421), (1.122, 1.392), (1.12, 1.422), (1.134, 1.415), (1.133, 1.421), (1.135, 1.43), (1.137, 1.421), + (1.142, 1.442), (1.154, 1.412), (1.152, 1.43), (1.147, 1.421), (1.156, 1.437), (1.165, 1.419), (1.161, 1.458), + (1.154, 1.712), (1.166, 1.472), (1.166, 1.453), (1.18, 1.438), (1.172, 1.471), (1.182, 1.45), (1.184, 1.474), + (1.197, 1.458), (1.187, 1.467), (1.197, 1.471), (1.197, 1.468), (1.197, 1.481), (1.197, 1.481), (1.201, 1.778), + (1.213, 1.485), (1.225, 1.483), (1.212, 1.509), (1.224, 1.475), (1.238, 1.472), (1.239, 1.481), (1.228, 1.503), + (1.244, 1.495), (1.242, 1.508), (1.246, 1.521), (1.25, 1.513), (1.268, 1.509), (1.254, 1.533), (1.26, 1.53), + (1.258, 1.529), (1.295, 1.528), (1.307, 1.499), (1.298, 1.543), (1.296, 1.541), (1.307, 1.545), (1.308, 1.543), + (1.318, 1.524), (1.306, 1.561), (1.338, 1.547), (1.32, 1.569), (1.345, 1.54), (1.327, 1.573), (1.337, 1.555), + (1.351, 1.549), (1.339, 1.558), (1.337, 1.57), (1.355, 1.593), (1.352, 1.58), (1.362, 1.576), (1.356, 1.585), + (1.373, 1.598), (1.371, 1.582), (1.374, 1.593), (1.371, 1.616), (1.392, 1.585), (1.411, 1.558), (1.399, 1.605), + (1.392, 1.615), (1.422, 1.593), (1.421, 1.585), (1.42, 1.59), (1.408, 1.608), (1.423, 1.636), (1.422, 1.607), + (1.441, 1.621), (1.428, 1.625), (1.438, 1.628), (1.435, 1.635), (1.445, 1.645), (1.437, 1.668), (1.457, 1.637), + (1.47, 1.618), (1.46, 1.659), (1.457, 1.642), (1.483, 1.644), (1.469, 1.671), (1.471, 1.679), (1.468, 1.653), + (1.489, 1.665), (1.5, 1.637), (1.512, 1.655), (1.491, 1.681), (1.503, 1.676), (1.517, 1.665), (1.505, 1.677), + (1.506, 1.699), (1.535, 1.67), (1.515, 1.703), (1.541, 1.687), (1.522, 1.682), (1.54, 1.668), (1.535, 1.689), + (1.537, 1.723), (1.527, 2.106), (1.567, 1.699), (1.554, 1.717), (1.566, 1.7), (1.555, 1.709), (1.568, 1.74), + (1.566, 1.713), (1.574, 1.719), (1.57, 1.741), (1.583, 1.717), (1.6, 1.714), (1.604, 1.714), (1.589, 1.737), + (1.601, 1.749), (1.596, 1.751), (1.612, 1.728), (1.602, 1.741), (1.637, 1.733), (1.618, 1.76), (1.625, 1.753), + (1.622, 1.77), (1.639, 1.763), (1.634, 1.771), (1.653, 1.754), (1.633, 1.782), (1.668, 1.775), (1.65, 1.782), + (1.652, 2.134), (1.659, 1.781), (1.669, 1.791), (1.666, 1.796), (1.684, 1.793), (1.671, 1.796), (1.689, 1.794), + (1.683, 1.812), (1.692, 1.817), (1.689, 1.816), (1.721, 1.8), (1.721, 1.797), (1.706, 1.814), (1.706, 1.818), + (1.739, 1.808), (1.726, 1.825), (1.747, 1.807), (1.725, 1.836), (1.742, 1.836), (1.756, 1.84), (1.746, 1.838), + (1.742, 1.865), (1.757, 1.862), (1.772, 1.824), (1.762, 1.839), (1.764, 1.858), (1.775, 1.862), (1.769, 1.863), + (1.795, 1.849), (1.775, 1.858), (1.804, 1.845), (1.813, 1.834), (1.804, 1.89), (1.796, 1.877), (1.81, 1.888), + (1.811, 1.904), (1.812, 1.884), (1.814, 1.9), (1.849, 1.866), (1.832, 1.888), (1.855, 1.871), (1.837, 1.916), + (1.845, 1.905), (1.851, 1.906), (1.866, 1.888), (1.854, 1.914), (1.864, 1.932), (1.86, 2.242), (1.873, 1.915), + (1.876, 1.928), (1.904, 1.926), (1.888, 1.92), (1.894, 1.93), (1.884, 1.945), (1.9, 1.934), (1.905, 1.939), + (1.924, 1.946), (1.907, 1.951), (1.937, 1.946), (1.94, 1.926), (1.922, 1.949), (1.922, 1.966), (1.938, 1.953), + (1.942, 1.952), (1.94, 1.977), (1.947, 1.965), (1.963, 1.934), (1.953, 1.967), (1.956, 2.003), (1.958, 1.982), + (2.01, 1.984), (2.01, 1.945), (1.992, 1.972), (1.991, 1.983), (2.022, 2.004), (2.017, 1.99), (2.009, 1.999), + (2.006, 1.996), (2.036, 1.972), (2.024, 1.992), (2.048, 2.012), (2.03, 2.008), (2.045, 2.009), (2.039, 2.063), + (2.053, 1.995), (2.043, 2.015), (2.06, 2.034), (2.059, 2.023), (2.084, 2.022), (2.071, 2.023), (2.083, 2.034), + (2.103, 2.003), (2.087, 2.062), (2.08, 2.047), (2.094, 2.059), (2.121, 2.04), (2.128, 2.009), (2.101, 2.075), + (2.134, 2.039), (2.114, 2.073), (2.121, 2.059), (2.123, 2.079), (2.133, 2.071), (2.156, 2.05), (2.138, 2.105), + (2.142, 2.092), (2.173, 2.069), (2.151, 2.084), (2.156, 2.087), (2.158, 2.099), (2.179, 2.084), (2.178, 2.086), + (2.178, 2.109), (2.184, 2.086), (2.215, 2.077), (2.217, 2.09), (2.215, 2.1), (2.194, 2.124), (2.211, 2.131), + (2.212, 2.101), (2.241, 2.094), (2.222, 2.128), (2.23, 2.134), (2.233, 2.136), (2.248, 2.115), (2.236, 2.15), + (2.238, 2.623), (2.252, 2.149), (2.258, 2.141), (2.259, 2.173), (2.296, 2.145), (2.298, 2.131), (2.273, 2.155), + (2.275, 2.151), (2.294, 2.168), (2.299, 2.158), (2.319, 2.174), (2.3, 2.174), (2.313, 2.16), (2.313, 2.177), + (2.337, 2.173), (2.32, 2.18), (2.336, 2.189), (2.36, 2.153), (2.321, 2.81), (2.344, 2.199), (2.358, 2.174), + (2.353, 2.202), (2.376, 2.186), (2.355, 2.216), (2.401, 2.187), (2.38, 2.203), (2.392, 2.21), (2.382, 2.218), + (2.416, 2.204), (2.424, 2.2), (2.398, 2.219), (2.394, 2.229), (2.437, 2.221), (2.425, 2.252), (2.418, 2.556), + (2.428, 2.239), (2.432, 2.248), (2.448, 2.689), (2.434, 2.27), (2.436, 2.589) +]