1use once_cell::sync::Lazy;
9
10#[cfg(feature = "python")]
11use pyo3::prelude::*;
12
13use interpn::MulticubicRegular;
14
15use super::*;
16use crate::{calc_config, calc_input_names, calc_output_names, py_json_methods};
17
18pub static INTERPOLATOR: Lazy<MulticubicRegular<'static, f64, 1>> = Lazy::new(|| {
24 MulticubicRegular::<'_, f64, 1>::new(
25 [PROBE_RESISTANCE_N],
26 [PROBE_RESISTANCE_START_OHM],
27 [PROBE_RESISTANCE_STEP_OHM],
28 &PROBE_TEMP_K,
29 true,
30 )
31 .unwrap()
32});
33
34#[cfg_attr(feature = "python", pyclass)]
36#[derive(Serialize, Deserialize, Default, Debug)]
37pub struct RtdPt100 {
38 resistance_name: String,
40 save_outputs: bool,
41
42 #[serde(skip)]
44 input_index: usize,
45
46 #[serde(skip)]
47 output_index: usize,
48}
49
50impl RtdPt100 {
51 pub fn new(resistance_name: String, save_outputs: bool) -> Box<Self> {
52 let input_index = usize::MAX;
55 let output_index = usize::MAX;
56
57 Box::new(Self {
58 resistance_name,
59 save_outputs,
60
61 input_index,
62 output_index,
63 })
64 }
65}
66
67py_json_methods!(
68 RtdPt100,
69 Calc,
70 #[new]
71 fn py_new(resistance_name: String, save_outputs: bool) -> Self {
72 *Self::new(resistance_name, save_outputs)
73 }
74);
75
76#[typetag::serde]
77impl Calc for RtdPt100 {
78 fn init(
80 &mut self,
81 _: ControllerCtx,
82 input_indices: Vec<usize>,
83 output_range: Range<usize>,
84 ) -> Result<(), String> {
85 self.input_index = input_indices[0];
86 self.output_index = output_range.clone().next().unwrap();
87
88 INTERPOLATOR.interp_one([0.0]).unwrap();
90 Ok(())
91 }
92
93 fn terminate(&mut self) -> Result<(), String> {
94 self.input_index = usize::MAX;
95 self.output_index = usize::MAX;
96 Ok(())
97 }
98
99 fn eval(&mut self, tape: &mut [f64]) -> Result<(), String> {
101 let sensed_resistance = tape[self.input_index];
102
103 let y = INTERPOLATOR.interp_one([sensed_resistance]).unwrap();
106
107 tape[self.output_index] = y;
108 Ok(())
109 }
110
111 fn get_input_map(&self) -> BTreeMap<CalcInputName, FieldName> {
114 let mut map = BTreeMap::new();
115 map.insert("resistance_ohm".to_owned(), self.resistance_name.clone());
116 map
117 }
118
119 fn update_input_map(&mut self, field: &str, source: &str) -> Result<(), String> {
121 if field == "resistance_ohm" {
122 self.resistance_name = source.to_owned();
123 } else {
124 return Err(format!("Unrecognized field {field}"));
125 }
126
127 Ok(())
128 }
129
130 calc_config!();
131 calc_input_names!(resistance_ohm);
132 calc_output_names!(temperature_K);
133}
134
135#[cfg(test)]
136mod test {
137 use super::INTERPOLATOR;
138
139 #[test]
140 fn test_interpolator() {
141 let inp = [19.82];
143 let interped = INTERPOLATOR.interp_one(inp).unwrap();
144 let expected = -197.0 + 273.15;
145 println!("{interped}, {expected}");
146 let rel_err = (interped - expected) / expected;
147 assert!(rel_err.abs() < 1e-8);
148 }
149}
150
151const PROBE_RESISTANCE_START_OHM: f64 = 18.52; const PROBE_RESISTANCE_STEP_OHM: f64 = 0.17703950499761945; const PROBE_RESISTANCE_N: usize = 2102;
155
156#[rustfmt::skip]
158static PROBE_TEMP_K: [f64; 2102] = [73.14999999999998, 73.54953424498137, 73.95287677971633, 74.36042511805756, 74.77263095357831, 75.18534308136765, 75.59706286043188, 76.00878263949612, 76.42050241856036, 76.83222219762459, 77.24394197668882, 77.65566175575304, 78.06738153481729, 78.47910131388151, 78.89082109294576, 79.30254087200998, 79.71426065107421, 80.12598043013845, 80.53770020920268, 80.94941998826691, 81.36113976733115, 81.77285954639538, 82.18457932545962, 82.59629910452385, 83.00801888358808, 83.4197386626523, 83.83145844171655, 84.24317822078078, 84.654897999845, 85.06661777890923, 85.47833755797348, 85.8900573370377, 86.30154176143334, 86.71182745587153, 87.12493277640789, 87.54448933344317, 87.96735950200011, 88.38969468121333, 88.81241910088106, 89.23114552947179, 89.6435761399638, 90.0538675663397, 90.46466591126249, 90.87546871360448, 91.29123071346882, 91.71411684804401, 92.13544088081984, 92.5479334343093, 92.95791088395453, 93.37493599050416, 93.79833409217511, 94.21813179181856, 94.62932102677142, 95.04000054043878, 95.45890658141661, 95.8824084344657, 96.3004039781231, 96.71068847194302, 97.12246877196141, 97.54306132814536, 97.96625871685494, 98.38233656547241, 98.79211504048823, 99.20535297203942, 99.62595026014894, 100.04886557294243, 100.4712956792387, 100.89364850239718, 101.31083585594949, 101.72103390808252, 102.13298269485686, 102.55264864834602, 102.97553200260388, 103.39734253530064, 103.81886516624733, 104.24047319324588, 104.66338019818409, 105.08409953869338, 105.49753735051486, 105.90728010121919, 106.32282638156732, 106.74459519574403, 107.1672330863498, 107.58742583270579, 108.00900574386968, 108.4376571344489, 108.8715259966628, 109.2999891686124, 109.7214820793985, 110.14170547269833, 110.56322726139477, 110.98474989234148, 111.4062725232882, 111.82779515423493, 112.24931778518166, 112.67084041612836, 113.09236304707505, 113.51388567802178, 113.9354083089685, 114.35693093991522, 114.77845357086193, 115.19997620180862, 115.62149883275535, 116.04302146370208, 116.46370708601913, 116.88430184284593, 117.3103548940882, 117.74376589834601, 118.17473126421547, 118.59765628591488, 119.01767740192425, 119.43901203508531, 119.86053466603202, 120.28205729697875, 120.70357992792546, 121.12510255887217, 121.54545370921498, 121.96664547669602, 122.3944072124051, 122.82823135449564, 123.25757479055376, 123.67949950038127, 124.09960030394944, 124.52002422426897, 124.94100775212375, 125.36823084860072, 125.8019726479285, 126.23176302695053, 126.65250028407115, 127.07330374576821, 127.50320397161187, 127.93692462617463, 128.36404203484642, 128.78498692497277, 129.20542526042348, 129.6255151283825, 130.04749510717733, 130.47609253492493, 130.90912209606495, 131.34179046956936, 131.77496681652906, 132.20429873211742, 132.62541350343983, 133.04587726309384, 133.47517099242285, 133.9089868139262, 134.33633380008376, 134.75605551487251, 135.17857400445985, 135.60912222827312, 136.04238052645852, 136.4751413243683, 136.90774908340597, 137.33424462287695, 137.75242399472907, 138.17720671660516, 138.6187537690085, 139.06371864054762, 139.49972809021773, 139.93079546882055, 140.3567126040749, 140.7763149460043, 141.19922722526096, 141.63003698929865, 142.06328234274892, 142.4951666453837, 142.92697031610962, 143.3587739868355, 143.7905776575614, 144.22238132828733, 144.65418499901324, 145.08598866973912, 145.51779234046504, 145.94959601119095, 146.3818837233622, 146.81494563147263, 147.24359082111675, 147.6641796084067, 148.08514385318202, 148.51429753320713, 148.9474479364043, 149.37963513309575, 149.8114388038216, 150.24324247454751, 150.67504614527343, 151.10684981599934, 151.53865348672525, 151.9704571574511, 152.40226082817702, 152.83406449890293, 153.2657179647063, 153.6959549866308, 154.12922633958303, 154.5711004060893, 155.01518968214071, 155.45113630441884, 155.88174947282897, 156.3128841086126, 156.7446877793385, 157.17649145006442, 157.60829512079033, 158.04009879151624, 158.4719024622421, 158.90370613296798, 159.33550980369392, 159.76731347441984, 160.1990881161444, 160.62940159957552, 161.06180443822242, 161.50233323618812, 161.94689806275534, 162.3842588981438, 162.81527662913652, 163.24602738069763, 163.67627179858573, 164.1092711633485, 164.55076163515997, 164.99502268935163, 165.43137781045053, 165.86209537862067, 166.29292683494944, 166.72317465869511, 167.15684358672107, 167.59922315361644, 168.04303186906122, 168.47843174996572, 168.90892162671386, 169.33979436977975, 169.7701180707837, 170.20455849057564, 170.64770161525357, 171.09090942558012, 171.52542860756932, 171.95576326429614, 172.38718090108077, 172.81898457180668, 173.25067265245158, 173.6809141750146, 174.11397654624375, 174.55555871082643, 174.99978160461907, 175.43452003320843, 175.8629047763317, 176.30344921352807, 176.76210827657104, 177.21075197160107, 177.63238562621652, 178.05010582159716, 178.48696958794557, 178.9328346055257, 179.3704266765362, 179.80014570580525, 180.234111351598, 180.67765194467268, 181.12041428853732, 181.5518920714666, 181.98168218968289, 182.42712366410723, 182.88435903093185, 183.33499552087554, 183.77858139852515, 184.2172936781289, 184.6484254147123, 185.07951228548757, 185.519305426145, 185.9633318122188, 186.4062708234174, 186.8488695859115, 187.29167529867362, 187.73577610231683, 188.17631944662813, 188.6080841425352, 189.03865455335952, 189.47767796209035, 189.92157777529104, 190.36465968586384, 190.80725844835794, 191.2499653197363, 191.6940776079283, 192.13522940468084, 192.56773231417793, 192.9978943282624, 193.4360926924451, 193.87981055037696, 194.3230485483103, 194.76564731080438, 195.20824607329843, 195.6508448357925, 196.0934435982865, 196.53604236078056, 196.9786411232746, 197.42123988576867, 197.86383864826274, 198.30643741075676, 198.7490361732508, 199.19163493574487, 199.63423369823892, 200.07683246073302, 200.51943122322703, 200.96202998572105, 201.40462874821512, 201.84722751070916, 202.28982627320323, 202.73242503569728, 203.17502379819132, 203.6176225606854, 204.0602213231794, 204.50282008567348, 204.9454188481675, 205.3880176106616, 205.8306163731556, 206.27321513564968, 206.71581389814372, 207.1584126606378, 207.6010114231318, 208.04361018562585, 208.48620894811995, 208.928807710614, 209.37140647310804, 209.81400523560208, 210.25660399809615, 210.6992027605902, 211.14180152308427, 211.58440028557828, 212.0269990480723, 212.46959781056637, 212.9121965730604, 213.3547953355545, 213.79739409804853, 214.2398971787714, 214.6808703354087, 215.12488407133054, 215.57806950419217, 216.03342839604124, 216.47990967734293, 216.92111197513336, 217.36318419800094, 217.80578296049504, 218.24826842561393, 218.68923642058675, 219.13337300458164, 219.586723678954, 220.04199014821094, 220.48829879311995, 220.92946835486455, 221.3715730604474, 221.81417182294146, 222.25663838449123, 222.69760364405153, 223.14186550237133, 223.5953785432683, 224.05054761300613, 224.49668609829652, 224.9378253502473, 225.37943324353236, 225.82063776161073, 226.2671303898488, 226.7224951391461, 227.1756696937354, 227.61967549835714, 228.06064907610295, 228.50210590000734, 228.94407290352254, 229.3932973316324, 229.8494413614054, 230.29994646762208, 230.74242998834328, 231.18373154966545, 231.62480198700274, 232.0680547028734, 232.52006845124814, 232.97591847550973, 233.42291256793538, 233.86320273507152, 234.3098309901786, 234.7655802885586, 235.21783860761144, 235.65967030042805, 236.1017990484654, 236.5544926656263, 237.0100781360382, 237.45620134756103, 237.89651392401404, 238.34402425964637, 238.7999921440466, 239.25146143986026, 239.6928444806205, 240.1355435704275, 240.58893336974452, 241.0441754441739, 241.48945628167453, 241.92986813852397, 242.3782704660657, 242.8343780943532, 243.2850148905658, 243.72602615034927, 244.16936743768142, 244.62192760195185, 245.07743466724045, 245.53255304016824, 245.98680753372392, 246.4332495858648, 246.87353848170406, 247.32043877128933, 247.77626435838656, 248.22828312088902, 248.66996732200383, 249.11226488041441, 249.56393567954268, 250.01945232264822, 250.47445627825638, 250.92918953210398, 251.3769348544028, 251.81732023517554, 252.2626284239816, 252.71636893028068, 253.17163149075614, 253.62703714456086, 254.0802722895582, 254.5246480829378, 254.96524892052065, 255.41395388306648, 255.868971516872, 256.32361695895725, 256.7775644076691, 257.2315871733174, 257.68710312497785, 258.1395347379967, 258.5827019402223, 259.02380353117564, 259.47378040585244, 259.929087978436, 260.38350297172286, 260.8374504204347, 261.29160973219444, 261.7471154267316, 262.19859732566977, 262.64071982353295, 263.08255725006563, 263.5336975036851, 263.9891744600679, 264.4433889844884, 264.8973364332003, 265.35128388191214, 265.80523133062394, 266.2591787793358, 266.71312622804766, 267.16707721308796, 267.62246955251294, 268.0757608468615, 268.5202328364312, 268.9608052237364, 269.4094103925141, 269.86440105674035, 270.3190647921014, 270.7730122408133, 271.22695968952513, 271.680907138237, 272.13485458694885, 272.58880203566065, 273.0427494843725, 273.49669693308437, 273.9506443817962, 274.4045918305081, 274.8585392792199, 275.31248672793174, 275.7664341766436, 276.22038162535546, 276.67432907406726, 277.1282765227791, 277.582223971491, 278.03617142020283, 278.49011886891464, 278.9440663176265, 279.39801376633835, 279.8519612150502, 280.305908663762, 280.75985611247387, 281.2138035611857, 281.6677510098976, 282.1216984586094, 282.57564590732125, 283.0295933560331, 283.48354080474496, 283.9374882534568, 284.3914357021686, 284.8453831508805, 285.29933059959234, 285.7532780483042, 286.2072254970161, 286.6611729457279, 287.1151203944397, 287.56906784315163, 288.0230152918635, 288.47696274057535, 288.93091018928715, 289.384857637999, 289.83880508671086, 290.292519691903, 290.74478603418373, 291.2014215181296, 291.6679866366962, 292.13396264442207, 292.58997439536796, 293.04221674102405, 293.4960257020466, 293.94997315075847, 294.4039205994703, 294.8578680481822, 295.31181549689404, 295.7657629456059, 296.219650137869, 296.6719168199465, 297.1273200173537, 297.59255288813245, 298.05966030414373, 298.5170502831355, 298.96939361315646, 299.42298356094165, 299.8769310096535, 300.3305212576431, 300.78286435642053, 301.24025257630035, 301.70735890124763, 302.17259351467146, 302.62799800641005, 303.0802645749571, 303.5341516249893, 303.98809907370116, 304.44124170181476, 304.8941098668048, 305.3539862304128, 305.8220522390421, 306.28481319286647, 306.73875754198434, 307.1913503698426, 307.6436693322998, 308.09865780216137, 308.56329646551256, 309.0307357921534, 309.4887249879694, 309.94115964543545, 310.39404282614476, 310.8466322416253, 311.3054067956557, 311.77317622250865, 312.23703450971834, 312.69154658546114, 313.14397160640584, 313.5964422159711, 314.0508021396055, 314.51438597997105, 314.9822467286242, 315.44050407421554, 315.89205932839843, 316.35121904773234, 316.81927267320305, 317.2818990775061, 317.73417921943525, 318.18924883132956, 318.65562165250356, 319.12181035073786, 319.57663985925893, 320.02903673585587, 320.49194816536203, 320.959946300507, 321.41950253956566, 321.8722824879199, 322.32514577441975, 322.77747480836564, 323.23466783629976, 323.7000628177059, 324.16736390171025, 324.63478064784096, 325.0997267338376, 325.5550122276606, 326.00718435582365, 326.4695222528406, 326.9376224903413, 327.3970853864206, 327.8486578206699, 328.3066186007483, 328.7743974730245, 329.2381363479017, 329.690934726246, 330.145091289138, 330.61067512121895, 331.0775469820708, 331.53337735573683, 331.9853591148808, 332.4463203316511, 332.9135340747246, 333.3804809855567, 333.84772268470766, 334.30881685481404, 334.7608460720325, 335.21648350248887, 335.6816465558752, 336.14901048387736, 336.6177211273146, 337.0822578322463, 337.5284173135351, 337.96690371843243, 338.42232248030774, 338.89053441356646, 339.358065218923, 339.82540045995347, 340.28698452991415, 340.7392132942793, 341.1943727098441, 341.6592374229636, 342.12667105016243, 342.59257120669355, 343.05846464089785, 343.52546757819954, 343.9916787053415, 344.4494205521575, 344.90098931366566, 345.3599516428211, 345.8266178411824, 346.29340289085405, 346.7592963250582, 347.22525591968696, 347.69278335551064, 348.1568865059709, 348.61100518530094, 349.06383003948736, 349.5264909518397, 349.99397537589164, 350.46012800921875, 350.926021443423, 351.39191487762724, 351.8578083118314, 352.3237017460357, 352.78959518024, 353.2556145723158, 353.72315277644293, 354.18675232879144, 354.6403319888668, 355.09359085753783, 355.5568316853754, 356.0243592251506, 356.4904268644004, 356.9563202986047, 357.4222137328089, 357.8881071670132, 358.3540006012175, 358.8198940354217, 359.28578746962603, 359.7516809038303, 360.2175743380346, 360.6834677722388, 361.1493612064431, 361.6152546406473, 362.0811480748515, 362.5470415090558, 363.0129349432601, 363.47882837746437, 363.9447218116686, 364.4106152458729, 364.87650868007717, 365.34240211428147, 365.80829554848566, 366.27418898268996, 366.7400824168942, 367.2059758510985, 367.6718692853027, 368.13776271950695, 368.60365615371126, 369.0695495879155, 369.5354430221198, 370.0013364563241, 370.4672298905283, 370.93312332473255, 371.39901675893685, 371.8649101931411, 372.3308036273454, 372.79669706154965, 373.26259049575395, 373.7284839299582, 374.1943773641625, 374.6602707983667, 375.1261642325709, 375.5920576667752, 376.0579511009795, 376.52134796591577, 376.98651395037615, 377.4706257852776, 377.9668209379829, 378.44422053919186, 378.90722783247327, 379.3718367193567, 379.8377301535609, 380.3036235877652, 380.7695170219695, 381.2354104561737, 381.70130389037803, 382.16719334434725, 382.6314388260291, 383.0983550587429, 383.57562125588566, 384.05548244101783, 384.52498830898026, 384.98917194834365, 385.4547671534858, 385.9206605876901, 386.38655402189437, 386.85244745609856, 387.31834089030286, 387.78423432450717, 388.2501277587114, 388.71602119291566, 389.18191462711997, 389.64780806132416, 390.11370149552846, 390.578153404395, 391.04434072533047, 391.52036801755634, 392.0007938195218, 392.471510488681, 392.93587328132736, 393.40062398668283, 393.8651727463561, 394.3367690310429, 394.81745176242504, 395.2925866504993, 395.7583378362915, 396.22288016556666, 396.68700760371496, 397.1548003394327, 397.6332397240147, 398.1122730578129, 398.58064664199094, 399.0447601466467, 399.5093793913382, 399.974787546828, 400.4491147005404, 400.9299367056364, 401.40169015791344, 401.86509668739944, 402.33588241044157, 402.81656029884704, 403.29148480442234, 403.7554957624819, 404.22327348123554, 404.7028539573695, 405.18057490768757, 405.6478045880852, 406.1119920441201, 406.57643214779, 407.0425977438621, 407.51858360537153, 407.99902389796574, 408.4688379810758, 408.93233230932435, 409.4050810858892, 409.88596034339196, 410.35896283593377, 410.8224938554095, 411.29183601949234, 411.77053080571426, 412.2501710896999, 412.7286562383421, 413.20714138698435, 413.6856265356266, 414.164116585881, 414.64567073425354, 415.1217628039631, 415.57750959808186, 416.028238379136, 416.4998380921318, 416.9818910522034, 417.45245573056854, 417.91589657459366, 418.3881648492635, 418.8690278456837, 419.3425075259932, 419.80612369601135, 420.2752397430813, 420.7554460271776, 421.2319440923311, 421.6966637971973, 422.16305914598547, 422.6416554221771, 423.12054741120755, 423.5872975028412, 424.05179732713304, 424.5267248881684, 425.0068807407494, 425.4865645318497, 425.9656778675749, 426.43606464951273, 426.8994727154284, 427.3702185102874, 427.84810951679117, 428.3335377354769, 428.82908495335647, 429.31209101944296, 429.7755665503307, 430.2424207674624, 430.7205419925229, 431.2003878461994, 431.67887299484164, 432.15735884121153, 432.6374188878449, 433.1147590951875, 433.5816229987161, 434.0460498160691, 434.52085291488385, 435.00099745670093, 435.4797271569523, 435.95821230559454, 436.4366974542368, 436.915182602879, 437.3936677515212, 437.8721529001634, 438.35105580887625, 438.8310444847658, 439.30469371369884, 439.7685835577967, 440.23660529716255, 440.71465285647844, 441.1945219136319, 441.6730070622741, 442.15149221091633, 442.62997735955855, 443.1084625082008, 443.58694765684294, 444.0654328054852, 444.54391795412744, 445.0224031027696, 445.5008882514119, 445.9793734000541, 446.4578585486963, 446.93634369733854, 447.4154982308609, 447.89515520610456, 448.36727949264343, 448.83077533386484, 449.30032492563527, 449.7791088372, 450.25871271080695, 450.73719785944917, 451.2156830080914, 451.6941681567336, 452.17265330537583, 452.65113845401817, 453.1296236026603, 453.6081087513025, 454.0865938999448, 454.56507904858694, 455.04356419722916, 455.5220493458714, 456.0005344945136, 456.4790196431558, 456.95750479179804, 457.4351677314744, 457.91253715104153, 458.39845911310215, 458.8927194547463, 459.37886709734477, 459.85630445347647, 460.33392785932057, 460.8124130079628, 461.290898156605, 461.76938330524723, 462.24786845388945, 462.7263536025317, 463.2048387511739, 463.6833238998161, 464.16180710825586, 464.63856911627687, 465.1183668038039, 465.60942161053856, 466.10202066223286, 466.583225821679, 467.0598513000726, 467.5394292050249, 468.0180170919301, 468.4860070228356, 468.9488089551747, 469.4298285219857, 469.9253597862465, 470.4111455636356, 470.88834306142434, 471.3661133051186, 471.8445984537608, 472.323083602403, 472.8015687510452, 473.279846735125, 473.7564980544015, 474.2385502232588, 474.7317449098373, 475.22188445540075, 475.70107676540067, 476.17799181856776, 476.65647696721, 477.1349621158522, 477.611824746871, 478.0912070597801, 478.58165164686585, 479.07466692042874, 479.55643460608627, 480.0330704864689, 480.5102109456223, 480.9882800554962, 481.47618465255624, 481.97023568080647, 482.4544246729098, 482.9313659950102, 483.40862182851134, 483.8857987768609, 484.37102177019455, 484.8652430789152, 485.35164248360906, 485.82767825803296, 486.310407141633, 486.80433187718523, 487.29272495847056, 487.7710051520895, 488.24810613906493, 488.7247316658399, 489.2060999208687, 489.69882887518014, 490.1896849186114, 490.6675570990105, 491.1461132091701, 491.6377554678437, 492.12986821699644, 492.60893813677546, 493.0864090171468, 493.5766892218992, 494.06977257701624, 494.55029482875295, 495.02696219217125, 495.5156658586814, 496.0094302815711, 496.49159241905, 496.96773797835004, 497.45472109952453, 497.9488770519955, 498.4327961517734, 498.90870161979046, 499.3938906657636, 499.88814860962407, 500.37387127103005, 500.8498183605991, 501.33321027873285, 501.8272806757913, 502.3147830209269, 502.791053444883, 503.27253666301766, 503.764367402692, 504.2574934085922, 504.7510505820928, 505.2393864486994, 505.7164744726679, 506.1961186341325, 506.6869317255984, 507.1802487415302, 507.67374935562833, 508.1635983993278, 508.64195917322985, 509.1200067177508, 509.6095570253366, 510.10308964117957, 510.5963583900314, 511.0874109255201, 511.56743617089694, 512.0443092054554, 512.5322799810713, 513.0258186718874, 513.5189143644668, 514.0109340637343, 514.4928340899974, 514.9689877645144, 515.4551372719671, 515.9484481412691, 516.4406552435349, 516.9324316463061, 517.4256053492907, 517.9195000708398, 518.3968882927697, 518.8576202477512, 519.3326047570531, 519.8257305964332, 520.3193109101486, 520.8110873129198, 521.302863715691, 521.7946401184621, 522.2866307196136, 522.7801485312951, 523.2678396191808, 523.7445661130994, 524.2248819472688, 524.7161059731052, 525.2092971600825, 525.7010735628537, 526.192824505702, 526.6826993820845, 527.1768150142993, 527.6832091418365, 528.1882395198096, 528.6812078105557, 529.1712861600297, 529.6630625628009, 530.154839276154, 530.6482700641994, 531.1385429190157, 531.6174206249871, 532.0950310993742, 532.5840945567289, 533.0776550039491, 533.5694960071924, 534.0612724099635, 534.5530488127348, 535.0448252155059, 535.536601618277, 536.0283780210483, 536.5201544238193, 537.0119308265904, 537.5037072293617, 537.995483632133, 538.4872600349041, 538.9790364376752, 539.4708128404463, 539.9625892432177, 540.4543656459888, 540.9461420487598, 541.4379184515311, 541.9296948543023, 542.4214712570734, 542.9132476598445, 543.4050240626157, 543.8968004653871, 544.3879490139049, 544.878269561191, 545.3771654389868, 545.8855553150582, 546.385447534086, 546.8760298428533, 547.3670130625628, 547.8587894653341, 548.3505658681052, 548.8423422708763, 549.3341186736475, 549.8258950764186, 550.3176714791899, 550.8094478819611, 551.3012242847323, 551.7930006875033, 552.2845494043045, 552.7744296578167, 553.2706032908828, 553.7783542987064, 554.281083335758, 554.7727270602071, 555.2632132846793, 555.7549896874505, 556.2468788163362, 556.7404420772253, 557.2289178052549, 557.7041398296418, 558.186238927063, 558.6918170961899, 559.198047922555, 559.6908595412766, 560.180977312391, 560.6727537151622, 561.1645271038327, 561.6544731067178, 562.1480552573205, 562.6538817013086, 563.1595473241233, 563.6529964549949, 564.1429670240051, 564.6329887424048, 565.126194739414, 565.6315500992815, 566.1376673181296, 566.6315076286746, 567.1214140155752, 567.6115104978036, 568.1043602179913, 568.6092199785539, 569.1157492247654, 569.6100112424903, 570.0998733240536, 570.5900375013415, 571.0825508214797, 571.586893132075, 572.09379351629, 572.586951044238, 573.0774487120548, 573.5815961452159, 574.088578590101, 574.5834024772109, 575.0732372515504, 575.5634754027783, 576.0556000134065, 576.5592758314546, 577.0665788228479, 577.5618860212466, 578.0517209601086, 578.5433708815908, 579.0351472843621, 579.5256412850625, 580.017264665686, 580.5199501676254, 581.0277186296914, 581.5226745986963, 582.0123424508826, 582.5146588536043, 583.0224802699353, 583.5175874452744, 584.0072049332241, 584.5093681516552, 585.0172402201504, 585.5124996851393, 586.0020690470062, 586.5040780857297, 587.0119985042885, 587.5061221813512, 587.9952132753631, 588.5071994736886, 589.0316795327574, 589.5433857278367, 590.0470678535038, 590.5412044270856, 591.031074709254, 591.5339400534513, 592.0415574498359, 592.5361192871899, 593.025931050609, 593.5274238804624, 594.0350923090814, 594.5423543336403, 595.0480418568221, 595.5422949727579, 596.0321780969423, 596.5338233832922, 597.0415000814115, 597.5487740454486, 598.0543782017575, 598.548469930311, 599.0384277163985, 599.5402238287512, 600.0479070986432, 600.55386210648, 601.0596892636161, 601.566898254808, 602.0722578692327, 602.5659007642636, 603.0560871690033, 603.5582997753824, 604.0659924365449, 604.571907934997, 605.077735092133, 605.5850202653227, 606.0901218042351, 606.5848664544324, 607.0747019399771, 607.5649363035134, 608.0570815042639, 608.5594306063841, 609.0671234052262, 609.5730366492147, 610.0788638063508, 610.5846909634869, 611.090518120623, 611.5978556642482, 612.1027662027409, 612.5956690143275, 613.0863068621128, 613.5891956925766, 614.0968730882531, 614.6027367920038, 615.1085639491399, 615.614391106276, 616.1202182634121, 616.6260454205482, 617.1318725776842, 617.6376997348201, 618.1435268919563, 618.6493540490923, 619.1551812062283, 619.6610083633644, 620.1668355205005, 620.6726626776366, 621.1785006325509, 621.6861375123407, 622.1895299646018, 622.6805831456028, 623.1729235839878, 623.6774474384878, 624.1848813490176, 624.6907085061537, 625.1965356632896, 625.7023628204257, 626.2081899775618, 626.7140171346978, 627.2197765966879, 627.7235735156901, 628.2329951351095, 628.7553041408564, 629.2731251587849, 629.7788502450121, 630.2833786632217, 630.7892058203578, 631.2950329774939, 631.8008601346298, 632.3066872917659, 632.8125144489019, 633.318341606038, 633.824168763174, 634.3299959203101, 634.8358230774462, 635.341207281158, 635.845281766844, 636.357929475077, 636.8812649485026, 637.3956093951983, 637.9000597747106, 638.40518460597, 638.911011763106, 639.4168389202421, 639.9226660773782, 640.4284932345142, 640.9343203916503, 641.4401475487864, 641.9459747059225, 642.4518018630586, 642.9576290201945, 643.4634561773306, 643.9692833344665, 644.4751104916027, 644.9809376487387, 645.4856426298201, 645.9909247097935, 646.5077513410929, 647.0305042970267, 647.5408119687174, 648.0446206280772, 648.5502991772626, 649.0561263343986, 649.5604646513285, 650.0667474308804, 650.5856241701345, 651.1073032356443, 651.6158228540723, 652.1196740216942, 652.6237186730268, 653.1310465786154, 653.6514802352388, 654.1718484339226, 654.6791254394752, 655.1831791834287, 655.6870240599821, 656.1956057563998, 656.7173352381022, 657.23603880258, 657.7402466179972, 658.2485635299257, 658.7710765463922, 659.2884770882788, 659.7940060340035, 660.2983289868516, 660.8022286431398, 661.3136779248075, 661.8368087052178, 662.3519220735762, 662.8550397426624, 663.3670298867625, 663.890386023438, 664.403763732889, 664.9067843537612, 665.420517548896, 665.9438481344529, 666.4554860686707, 666.9586533799308, 667.474115176945, 667.9971693039982, 668.5071140799199, 669.01067182017, 669.5277970366454, 670.0503237978108, 670.5586727656355, 671.0628646734779, 671.5815373937337, 672.1032858816268, 672.6101871248168, 673.1152569388535, 673.6353105139463, 674.156029833891, 674.6616821564627, 675.1678687492509, 675.687205629726, 676.2095703884713, 676.7322175338162, 677.2491091882174, 677.7531342875668, 678.2618376070104, 678.7845073419027, 679.3012598766983, 679.8047066479152, 680.3147078280558, 680.8360924099509, 681.3582255881406, 681.8804773089861, 682.3947169284747, 682.9005019063511, 683.3956369442151, 683.8797114030777, 684.4029506797722, 684.9642529548338, 685.4998269318993, 686.0166065965328, 686.5252439473794, 687.0289968220159, 687.5466818136579, 688.0689636033134, 688.5783394032945, 689.082137323692, 689.586292253466, 690.0929797728467, 690.610896460926, 691.1334774772507, 691.6541856818882, 692.1748901083519, 692.6955945348154, 693.2163567420154, 693.7390068883874, 694.255735629721, 694.7596738582175, 695.2683989411939, 695.789243496106, 696.3111137553547, 696.8318181818182, 697.3525226082818, 697.8732270347456, 698.393931461209, 698.9146358876727, 699.4361595092178, 699.9578188550768, 700.4685938565235, 700.971837156983, 701.4866609359311, 702.0092116584531, 702.5301551082117, 703.0508595346754, 703.5715639611391, 704.0922683876024, 704.6129728140661, 705.1336772405297, 705.6543816669932, 706.175086093457, 706.6957905199204, 707.216494946384, 707.7371993728477, 708.2579037993114, 708.7786082257747, 709.2993126522384, 709.8200170787021, 710.3407215051658, 710.8614259316292, 711.3821303580927, 711.9028347845565, 712.4235392110199, 712.9442436374836, 713.4649480639472, 713.9856524904108, 714.5063569168743, 715.0270613433381, 715.5477657698016, 716.0684701962649, 716.5891746227287, 717.1098790491923, 717.6322724195072, 718.1512697001659, 718.6570254722988, 719.163100213826, 719.6803134035476, 720.205667724947, 720.7434838196538, 721.2769904705749, 721.7974626545902, 722.3169233138283, 722.8376277402916, 723.3583321667554, 723.8790365932189, 724.3997410196827, 724.9204454461461, 725.4411498726097, 725.9618542990733, 726.4814236103647, 727.0016203117202, 727.5345128543706, 728.0726643429286, 728.5968966339728, 729.1155103017785, 729.6361970490242, 730.1569007480995, 730.6755837493448, 731.1991573244936, 731.7368638126898, 732.2705524153037, 732.7911116953354, 733.3105397989752, 733.8312442254389, 734.3514481532335, 734.8704258064636, 735.3993752125531, 735.9386092234492, 736.4664505434114, 736.985232575897, 737.5043339895178, 738.02483061396, 738.558388876812, 739.096174373604, 739.6198539034516, 740.1385228754729, 740.6572682923004, 741.1804304502213, 741.7177988079792, 742.2520031877586, 742.7728241849945, 743.2918926040986, 743.8105856724958, 744.3377494394501, 744.876915504775, 745.4058214442249, 745.9236182135028, 746.4535625470427, 746.9925648334552, 747.5188798389426, 748.0374958024642, 748.5565114413623, 749.0777861187681, 749.612788972787, 750.149545136124, 750.6701009676859, 751.191665993409, 751.7292412939727, 752.2629669625612, 752.7815387897766, 753.3065147673399, 753.8455107294299, 754.3754864671606, 754.8932845440011, 755.4221588285188, 755.9613285237949, 756.4873645007108, 757.0055990811527, 757.5395543886711, 758.0772703768066, 758.5866434457939, 759.0899662131571, 759.6207863634942, 760.1609056021556, 760.6993518570838, 761.232366499686, 761.75135588882, 762.2753383618356, 762.814072864665, 763.3451044928123, 763.8629925462985, 764.3901498780817, 764.9280953011016, 765.4661165823327, 766.0031736401289, 766.5275738578111, 767.0462623805093, 767.5787396659422, 768.1172300016465, 768.6555525835238, 769.1895607645838, 769.7092807349278, 770.231865581768, 770.7680587743001, 771.3061390933569, 771.844461793791, 772.3735557955586, 772.8913569542847, 773.4193851922968, 773.957524139153, 774.4944391559575, 775.0309225044352, 775.5688762797021, 776.1044969986375, 776.626134317631, 777.1466033198074, 777.6813524443158, 778.2195195649979, 778.7560029134754, 779.2924862619531, 779.8289696104308, 780.3659805338197, 780.9039681288086, 781.431300988375, 781.9491653019471, 782.4789372639343, 783.0173462476063, 783.5540500194712, 784.0905333679489, 784.6270167164266, 785.1635000649042, 785.6999834133818, 786.2364667618593, 786.7729501103371, 787.3100259719918, 787.8500006973859, 788.3721185657286, 788.8721489134849, 789.3908893044118, 789.9302073927536, 790.4677274890745, 791.0042108375523, 791.5406941860298, 792.0771775345072, 792.613660882985, 793.1501442314626, 793.6866275799403, 794.223110928418, 794.7595942768955, 795.2960776253733, 795.8325609738507, 796.3690443223285, 796.9055276708061, 797.4420110192838, 797.9784943677615, 798.5149777162392, 799.0514610647166, 799.5879444131941, 800.1244277616719, 800.6609111101495, 801.1973944586273, 801.7338778071048, 802.2703611555826, 802.80684450406, 803.3433278525378, 803.8798112010154, 804.4154690878358, 804.9507614036545, 805.4988442337112, 806.0541640384744, 806.5947128783325, 807.1290211626497, 807.6673628023638, 808.2011145235659, 808.7206205619187, 809.2435208714655, 809.7798840096018, 810.3176113827469, 810.8540947312247, 811.3898807376722, 811.9249256973176, 812.4721898221238, 813.0278070335702, 813.5690635940298, 814.103330840161, 814.6397812008711, 815.1762645493488, 815.7127478978265, 816.2490905246894, 816.783378896501, 817.3261741757501, 817.8821824154122, 818.4277618995925, 818.9624065546816, 819.4984343674729, 820.0349177159507, 820.5697709447435, 821.1072713293372, 821.6598899509044, 822.212009334981, 822.7491725419336, 823.2838737213817, 823.818254005193, 824.3621236230132, 824.9182309534929, 825.4626991209163, 825.9971557759401, 826.5318863531734, 827.0687308933185, 827.6203308247219, 828.1734264568197, 828.7112825298882, 829.2459114382212, 829.7801945121088, 830.3228934310921, 830.8788862257882, 831.4237118870468, 831.9572482027595, 832.5050509833998, 833.0602915721257, 833.6006807626374, 834.1350034440837, 834.6694187116676, 835.2090398433735, 835.7638265415483, 836.312690069419, 836.8463965131223, 837.3901091095973, 837.9462049058644, 838.4886258290991, 839.0226490133102, 839.572706810765, 840.1268402316424, 840.663600531411, 841.2011046439742, 841.7557582578108, 842.3048907723993, 842.8386562990846, 843.382081739715, 843.93818876167, 844.4808929246518, 845.0148352548497, 845.5631304599062, 846.1184828051505, 846.6736878210135, 847.22363575285, 847.7583798878429, 848.2989086452217, 848.8547558720952, 849.4004473482213, 849.9339149151183, 850.4797746607818, 851.0350592769494, 851.5900922821331, 852.1418514697581, 852.6782390141382, 853.2161072069829, 853.7688909714477, 854.3238450040411, 854.8788754921729, 855.422920977284, 855.9564540419146, 856.5030146063906, 857.0583526546745, 857.613426576123, 858.1647299633432, 858.7005927289686, 859.2390960842789, 859.7922381810455, 860.3467069252737, 860.8999553783913, 861.4541594791801, 862.0080231006077, 862.5480659804128, 863.0829176952844, 863.633028443728, 864.1882170308544, 864.7435766216836, 865.2919535701772, 865.8279133995576, 866.3627073183469, 866.8975266250806, 867.4439154176887, 867.9997721465379, 868.5403451605673, 869.0750685282828, 869.6249839397121, 870.1801790813898, 870.7334275345073, 871.286675987625, 871.8399244407425, 872.3938405451404, 872.9483477213976, 873.4902180844737, 874.024258686015, 874.5728202395214, 875.1281582022409, 875.6814136125655, 876.234662065683, 876.7879105188005, 877.3411589719182, 877.8944074250356, 878.4476558781533, 879.0009043312708, 879.5541527843885, 880.107401237506, 880.6606496906237, 881.2138981437412, 881.7671465968587, 882.3203950499761, 882.8736435030937, 883.4268919562113, 883.9801404093288, 884.5333888624465, 885.086637315564, 885.6398857686817, 886.1931342217991, 886.7463826749168, 887.2999151643928, 887.8550694446, 888.3998571342173, 888.9333236801288, 889.4791648622896, 890.0344477159276, 890.5878718467396, 891.1411202998571, 891.6921564346723, 892.2496536077332, 892.8230265683093, 893.3876188568133, 893.9391899561176, 894.4918610185626, 895.0451094716801, 895.5983579247978, 896.1516063779153, 896.704854831033, 897.2579325029446, 897.8089247830468, 898.3694584364777, 898.9420937782859, 899.5150074532701, 900.0856843183465, 900.6421818916477, 901.1933424559733, 901.746590909091, 902.2995266098739, 902.8506829270857, 903.4131964853343, 903.987117913568, 904.5464537930889, 905.0973746853709, 905.6505800809139, 906.2037836137274, 906.7547042876382, 907.3143959854137, 907.8900019975767, 908.4429576625049, 908.9744727441057, 909.5211320160848, 910.0764931684896, 910.6278539089989, 911.1836588943406, 911.7559995898143, 912.3223394107407, 912.8725929676019, 913.4349108002249, 914.0086931182211, 914.5673822607267, 915.1183197233945, 915.6694197917858, 916.2262871757988, 916.7993487407135, 917.3647070931538, 917.9164843043644, 918.4679087885719, 919.0207007934985, 919.5888085065874, 920.1601994439798, 920.7127781311062, 921.2690602588185, 921.8426470968247, 922.4058105508049, 922.9559657866927, 923.5215016207869, 924.0942407814864, 924.6485395504056, 925.2027513687264, 925.775439436398, 926.3410856690198, 926.8912512782985, 927.4542999410851, 928.027916456086, 928.5842997554415, 929.13681057, 929.7081290767392, 930.27610476162, 930.8267369639292, 931.3872585932234, 931.9612815261231, 932.5200053431515, 933.0712621299996, 933.6388848610471, 934.2119920471247, 934.785293150453, 935.3493194349765, 935.899458434329, 936.4628274620951, 937.0363586529256, 937.5942468904454, 938.1452407311551, 938.6962631908309, 939.2538773959886, 939.827300355479, 940.3910390543438, 940.9411564446912, 941.5048721975162, 942.0781634303156, 942.6512516673531, 943.2191259308844, 943.7705384473485, 944.3284963931007, 944.9007409466631, 945.4725499378177, 946.0436451152292, 946.616517984046, 947.1852265591564, 947.7372657215483, 948.2941321322585, 948.8659792461509, 949.4379581151833, 950.0090532925948, 950.5817697934026, 951.1512244525801, 951.704012418224, 952.2598253786862, 952.8312120039674, 953.4033662925489, 953.9744614699606, 954.5455566473722, 955.116651824784, 955.6877470021956, 956.2590045176288, 956.8322126847441, 957.395470031032, 957.9469769748563, 958.4983817324528, 959.0516364556361, 959.6168825242777, 960.1928165539232, 960.7866220407988, 961.3636139947711, 961.9121398435957, 962.4740956805227, 963.0473230995101, 963.6185633569268, 964.1896585343385, 964.7607537117501, 965.3318488891618, 965.9029440665735, 966.4740392439852, 967.0451344213968, 967.6162295988084, 968.1873247762202, 968.7584199536318, 969.3295151310435, 969.9006103084552, 970.4717054858669, 971.0428006632785, 971.6138958406902, 972.1849910181019, 972.7560861955138, 973.3271813729255, 973.898276550337, 974.4693717277488, 975.0404669051604, 975.6115620825722, 976.1826572599838, 976.7537524373955, 977.3252355192466, 977.898116562918, 978.4584755124646, 979.0089603280002, 979.5730447549959, 980.1480327353055, 980.7388100102119, 981.3245148979713, 981.8944370919883, 982.4647042115122, 983.0357993889239, 983.6068945663355, 984.1779897437473, 984.7490849211589, 985.3197729883626, 985.8888669927227, 986.4715536544788, 987.0639560729111, 987.6389906704054, 988.2079140501451, 988.7790092275567, 989.3501044049684, 989.92119958238, 990.4909893634018, 991.0621659090613, 991.6506396524182, 992.2390764072085, 992.8102319989812, 993.3793385522513, 993.9489617050842, 994.5337599169676, 995.125128691275, 995.6985706117213, 996.2675554049551, 996.8363567540516, 997.4171757752933, 998.0101305264234, 998.586755502113, 999.1554961055274, 999.7242072399774, 1000.3011844471007, 1000.8942132242678, 1001.4746428541704, 1002.0434030577334, 1002.6123693468753, 1003.1860831520947, 1003.7776740045128, 1004.3614993197319, 1004.9293362048033, 1005.5127947729277, 1006.1045597103919, 1006.6785077034865, 1007.2476032918273, 1007.8186984692389, 1008.3897936466506, 1008.9608888240623, 1009.5304564330604, 1010.102357183916, 1010.6919748985313, 1011.2789316741018, 1011.8472059290932, 1012.4272970367016, 1013.0201738746655, 1013.5946333832036, 1014.1655317909995, 1014.7567043133923, 1015.341325960637, 1015.9091971614149, 1016.4918408811232, 1017.0839532294849, 1017.6562949784629, 1018.2289508778964, 1018.8190003681771, 1019.4110838165959, 1020.0021366405206, 1020.5769511090217, 1021.1473928353928, 1021.7381548438741, 1022.3234666781842, 1022.8914075251935, 1023.472194790034, 1024.0645699075826, 1024.6568091935526, 1025.2430300410465, 1025.8117378374723, 1026.3896634952114, 1026.9816280982595, 1027.573765954103, 1028.1620623357755, 1028.7322802153874, 1029.3074085829778, 1029.8985787190782, 1030.4894574012378, 1031.079589084563, 1031.6717788546368, 1032.2575760468053, 1032.8260905596362, 1033.4045322540937, 1033.9965992921734, 1034.587045851182, 1035.1771889339452, 1035.7696227910683, 1036.3523759792847, 1036.920222544751, 1037.5033137544435, 1038.09524189908, 1038.6672409357675, 1039.2402352344775, 1039.8304679067676, 1040.4225489390622, 1041.013455840576, 1041.5879021178523, 1042.1586212191778, 1042.7473607799016, 1043.339021101063, 1043.9291527843886, 1044.5192844677138, 1045.1094161510393, 1045.6995478343647, 1046.28967951769, 1046.8798112010156, 1047.469942884341, 1048.060074567666, 1048.6521901464146, 1049.2385389839185, 1049.8073112912675, 1050.3850781255003, 1050.9770086044641, 1051.5675313342854, 1052.1576630176107, 1052.747794700936, 1053.3379263842617, 1053.928058067587, 1054.5181897509124, 1055.108321434238, 1055.698453117563, 1056.2885848008884, 1056.878716484214, 1057.4699467723742, 1058.0601729479413, 1058.6331548905243, 1059.2051193052807, 1059.7947574797236, 1060.3854262389275, 1060.9742255275542, 1061.5802404397512, 1062.1905465356444, 1062.7815453460203, 1063.3701650007936, 1063.9602966841187, 1064.5504283674443, 1065.1405600507696, 1065.730691734095, 1066.3208234174203, 1066.910955100746, 1067.501086784071, 1068.0912184673964, 1068.6790301862025, 1069.2743230862172, 1069.887654944323, 1070.4876760519928, 1071.0753009568205, 1071.6653419006823, 1072.2554735840079, 1072.8456052673332, 1073.4347144531932, 1074.0241989636618, 1074.6319225927084, 1075.2407658598593, 1075.830820268943, 1076.419728700619, 1077.0098603839442, 1077.5999920672698, 1078.1901237505951, 1078.7802554339205, 1079.3703871172459, 1079.9605188005712, 1080.5506504838966, 1081.140782167222, 1081.7284341569784, 1082.3254019639248, 1082.939001231671, 1083.537196014468, 1084.124784793322, 1084.7124711188933, 1085.3088848028024, 1085.9224322002965, 1086.5212104771247, 1087.1087942497384, 1087.6965143238579, 1088.2923859533994, 1088.9058485642367, 1089.5038054901486, 1090.0919195285337, 1090.701680136018, 1091.3083053133237, 1091.8973269967544, 1092.4852995043905, 1093.0756460839877, 1093.6849872593432, 1094.291867499211, 1094.8788863250234, 1095.4804420143346, 1096.0929354966815, 1096.683907460477, 1097.277261172198, 1097.8906170046666, 1098.4892058442615, 1099.077063868048, 1099.6863604925438, 1100.2931906419146, 1100.8801990148445, 1101.4818116511365, 1102.0942826373632, 1102.6852129177234, 1103.2783753179922, 1103.8896512453803, 1104.5022592278574, 1105.1120146405453, 1105.7023897194044, 1106.2964557723951, 1106.9099423660343, 1107.50916455275, 1108.0967550593693, 1108.684499191221, 1109.2799713053353, 1109.8933483189892, 1110.4918235815335, 1111.0797255284383, 1111.6891069189724, 1112.295836535584, 1112.8828246486776, 1113.4833242579355, 1114.0961876811114, 1114.7067135518394, 1115.3175760317336, 1115.9298786261693, 1116.5262439553042, 1117.1148039865022, 1117.7252338532046, 1118.3310616650906, 1118.9197972873699, 1119.5077601817054, 1120.0985410713383, 1120.7062900725762, 1121.3185568448525, 1121.9290378965682, 1122.539518948284, 1123.15];